diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/doc/files/abs.txt b/doc/files/abs.txt new file mode 100644 index 0000000..32edbd7 --- /dev/null +++ b/doc/files/abs.txt @@ -0,0 +1,4 @@ +#title Abs [RCBasic Doc] +#header function Abs(n) + + diff --git a/doc/files/accelname.txt b/doc/files/accelname.txt new file mode 100644 index 0000000..1c3d583 --- /dev/null +++ b/doc/files/accelname.txt @@ -0,0 +1,4 @@ +#title AccelName$ [RCBasic Doc] +#header function AccelName$(accel_num) + + diff --git a/doc/files/acos.txt b/doc/files/acos.txt new file mode 100644 index 0000000..03e6ca2 --- /dev/null +++ b/doc/files/acos.txt @@ -0,0 +1,4 @@ +#title Acos [RCBasic Doc] +#header function Acos(n) + + diff --git a/doc/files/activecanvas.txt b/doc/files/activecanvas.txt new file mode 100644 index 0000000..5375827 --- /dev/null +++ b/doc/files/activecanvas.txt @@ -0,0 +1,4 @@ +#title ActiveCanvas [RCBasic Doc] +#header function ActiveCanvas() + + diff --git a/doc/files/actoranimationislooped.txt b/doc/files/actoranimationislooped.txt new file mode 100644 index 0000000..e860f8d --- /dev/null +++ b/doc/files/actoranimationislooped.txt @@ -0,0 +1,4 @@ +#title actorAnimationIsLooped [RCBasic Doc] +#header function actorAnimationIsLooped( actor ) + + diff --git a/doc/files/actorisintransition.txt b/doc/files/actorisintransition.txt new file mode 100644 index 0000000..f5865b9 --- /dev/null +++ b/doc/files/actorisintransition.txt @@ -0,0 +1,4 @@ +#title ActorIsInTransition [RCBasic Doc] +#header function ActorIsInTransition( actor ) + + diff --git a/doc/files/actorissolid.txt b/doc/files/actorissolid.txt new file mode 100644 index 0000000..cbe5cfd --- /dev/null +++ b/doc/files/actorissolid.txt @@ -0,0 +1,4 @@ +#title ActorIsSolid [RCBasic Doc] +#header function ActorIsSolid(actor) + + diff --git a/doc/files/actorisvisible.txt b/doc/files/actorisvisible.txt new file mode 100644 index 0000000..ff72669 --- /dev/null +++ b/doc/files/actorisvisible.txt @@ -0,0 +1,4 @@ +#title ActorIsVisible [RCBasic Doc] +#header function ActorIsVisible( actor ) + + diff --git a/doc/files/addactorshadow.txt b/doc/files/addactorshadow.txt new file mode 100644 index 0000000..7dcf389 --- /dev/null +++ b/doc/files/addactorshadow.txt @@ -0,0 +1,4 @@ +#title AddActorShadow [RCBasic Doc] +#header sub AddActorShadow( actor ) + + diff --git a/doc/files/addmatrix.txt b/doc/files/addmatrix.txt new file mode 100644 index 0000000..ffc9b5c --- /dev/null +++ b/doc/files/addmatrix.txt @@ -0,0 +1,4 @@ +#title AddMatrix [RCBasic Doc] +#header function AddMatrix(mA, mB, mC) + + diff --git a/doc/files/addmeshbuffer.txt b/doc/files/addmeshbuffer.txt new file mode 100644 index 0000000..4290b96 --- /dev/null +++ b/doc/files/addmeshbuffer.txt @@ -0,0 +1,4 @@ +#title AddMeshBuffer [RCBasic Doc] +#header sub AddMeshBuffer( mesh, vertex_count, ByRef vertex_data, ByRef normal_data, ByRef uv_data, index_count, ByRef index_data ) + + diff --git a/doc/files/addsceneskybox.txt b/doc/files/addsceneskybox.txt new file mode 100644 index 0000000..ca69f8a --- /dev/null +++ b/doc/files/addsceneskybox.txt @@ -0,0 +1,4 @@ +#title AddSceneSkyBox [RCBasic Doc] +#header sub AddSceneSkyBox( img_top, img_bottom, img_left, img_right, img_front, img_back) + + diff --git a/doc/files/addsceneskydome.txt b/doc/files/addsceneskydome.txt new file mode 100644 index 0000000..f61ad56 --- /dev/null +++ b/doc/files/addsceneskydome.txt @@ -0,0 +1,4 @@ +#title AddSceneSkyDome [RCBasic Doc] +#header sub AddSceneSkyDome( img ) + + diff --git a/doc/files/addsceneskydomeex.txt b/doc/files/addsceneskydomeex.txt new file mode 100644 index 0000000..11a4e77 --- /dev/null +++ b/doc/files/addsceneskydomeex.txt @@ -0,0 +1,4 @@ +#title AddSceneSkyDomeEx [RCBasic Doc] +#header sub AddSceneSkyDomeEx( img, horiRes, vertRes, txPercentage, spherePercentage, radius) + + diff --git a/doc/files/adjointmatrix.txt b/doc/files/adjointmatrix.txt new file mode 100644 index 0000000..98fd0e0 --- /dev/null +++ b/doc/files/adjointmatrix.txt @@ -0,0 +1,4 @@ +#title AdjointMatrix [RCBasic Doc] +#header function AdjointMatrix(mA, mB) + + diff --git a/doc/files/andbit.txt b/doc/files/andbit.txt new file mode 100644 index 0000000..ee6487f --- /dev/null +++ b/doc/files/andbit.txt @@ -0,0 +1,4 @@ +#title AndBit [RCBasic Doc] +#header function AndBit(a,b) + + diff --git a/doc/files/android_getexternalstoragepath.txt b/doc/files/android_getexternalstoragepath.txt new file mode 100644 index 0000000..bd7281b --- /dev/null +++ b/doc/files/android_getexternalstoragepath.txt @@ -0,0 +1,4 @@ +#title Android_GetExternalStoragePath$ [RCBasic Doc] +#header function Android_GetExternalStoragePath$() + + diff --git a/doc/files/android_getexternalstoragestate.txt b/doc/files/android_getexternalstoragestate.txt new file mode 100644 index 0000000..e5b59ab --- /dev/null +++ b/doc/files/android_getexternalstoragestate.txt @@ -0,0 +1,4 @@ +#title Android_GetExternalStorageState [RCBasic Doc] +#header function Android_GetExternalStorageState() + + diff --git a/doc/files/android_getinternalstoragepath.txt b/doc/files/android_getinternalstoragepath.txt new file mode 100644 index 0000000..3d8f3ae --- /dev/null +++ b/doc/files/android_getinternalstoragepath.txt @@ -0,0 +1,4 @@ +#title Android_GetInternalStoragePath$ [RCBasic Doc] +#header function Android_GetInternalStoragePath$() + + diff --git a/doc/files/android_jni_message.txt b/doc/files/android_jni_message.txt new file mode 100644 index 0000000..50c2082 --- /dev/null +++ b/doc/files/android_jni_message.txt @@ -0,0 +1,4 @@ +#title Android_JNI_Message$ [RCBasic Doc] +#header function Android_JNI_Message$(arg$) + + diff --git a/doc/files/applyactorcentralforcelocal.txt b/doc/files/applyactorcentralforcelocal.txt new file mode 100644 index 0000000..a1dce3a --- /dev/null +++ b/doc/files/applyactorcentralforcelocal.txt @@ -0,0 +1,4 @@ +#title applyActorCentralForceLocal [RCBasic Doc] +#header sub applyActorCentralForceLocal( actor, x, y, z) + + diff --git a/doc/files/applyactorcentralforceworld.txt b/doc/files/applyactorcentralforceworld.txt new file mode 100644 index 0000000..23d3287 --- /dev/null +++ b/doc/files/applyactorcentralforceworld.txt @@ -0,0 +1,4 @@ +#title applyActorCentralForceWorld [RCBasic Doc] +#header sub applyActorCentralForceWorld( actor, x, y, z) + + diff --git a/doc/files/applyactorcentralimpulselocal.txt b/doc/files/applyactorcentralimpulselocal.txt new file mode 100644 index 0000000..f07e2b8 --- /dev/null +++ b/doc/files/applyactorcentralimpulselocal.txt @@ -0,0 +1,4 @@ +#title applyActorCentralImpulseLocal [RCBasic Doc] +#header sub applyActorCentralImpulseLocal( actor, x, y, z) + + diff --git a/doc/files/applyactorcentralimpulseworld.txt b/doc/files/applyactorcentralimpulseworld.txt new file mode 100644 index 0000000..11672f9 --- /dev/null +++ b/doc/files/applyactorcentralimpulseworld.txt @@ -0,0 +1,4 @@ +#title applyActorCentralImpulseWorld [RCBasic Doc] +#header sub applyActorCentralImpulseWorld( actor, x, y, z) + + diff --git a/doc/files/applyactordamping.txt b/doc/files/applyactordamping.txt new file mode 100644 index 0000000..b865faa --- /dev/null +++ b/doc/files/applyactordamping.txt @@ -0,0 +1,4 @@ +#title applyActorDamping [RCBasic Doc] +#header sub applyActorDamping( actor, timeStep) + + diff --git a/doc/files/applyactorforcelocal.txt b/doc/files/applyactorforcelocal.txt new file mode 100644 index 0000000..d4cab50 --- /dev/null +++ b/doc/files/applyactorforcelocal.txt @@ -0,0 +1,4 @@ +#title applyActorForceLocal [RCBasic Doc] +#header sub applyActorForceLocal( actor, x, y, z, rel_x, rel_y, rel_z) + + diff --git a/doc/files/applyactorforceworld.txt b/doc/files/applyactorforceworld.txt new file mode 100644 index 0000000..8832691 --- /dev/null +++ b/doc/files/applyactorforceworld.txt @@ -0,0 +1,4 @@ +#title applyActorForceWorld [RCBasic Doc] +#header sub applyActorForceWorld( actor, x, y, z, rel_x, rel_y, rel_z) + + diff --git a/doc/files/applyactorimpulselocal.txt b/doc/files/applyactorimpulselocal.txt new file mode 100644 index 0000000..c06d7d9 --- /dev/null +++ b/doc/files/applyactorimpulselocal.txt @@ -0,0 +1,4 @@ +#title applyActorImpulseLocal [RCBasic Doc] +#header sub applyActorImpulseLocal( actor, x, y, z, rel_x, rel_y, rel_z) + + diff --git a/doc/files/applyactorimpulseworld.txt b/doc/files/applyactorimpulseworld.txt new file mode 100644 index 0000000..208d365 --- /dev/null +++ b/doc/files/applyactorimpulseworld.txt @@ -0,0 +1,4 @@ +#title applyActorImpulseWorld [RCBasic Doc] +#header sub applyActorImpulseWorld( actor, x, y, z, rel_x, rel_y, rel_z) + + diff --git a/doc/files/applyactortorqueimpulselocal.txt b/doc/files/applyactortorqueimpulselocal.txt new file mode 100644 index 0000000..3743c32 --- /dev/null +++ b/doc/files/applyactortorqueimpulselocal.txt @@ -0,0 +1,4 @@ +#title applyActorTorqueImpulseLocal [RCBasic Doc] +#header sub applyActorTorqueImpulseLocal( actor, x, y, z) + + diff --git a/doc/files/applyactortorqueimpulseworld.txt b/doc/files/applyactortorqueimpulseworld.txt new file mode 100644 index 0000000..94cd719 --- /dev/null +++ b/doc/files/applyactortorqueimpulseworld.txt @@ -0,0 +1,4 @@ +#title applyActorTorqueImpulseWorld [RCBasic Doc] +#header sub applyActorTorqueImpulseWorld( actor, x, y, z) + + diff --git a/doc/files/applyactortorquelocal.txt b/doc/files/applyactortorquelocal.txt new file mode 100644 index 0000000..d8ccb15 --- /dev/null +++ b/doc/files/applyactortorquelocal.txt @@ -0,0 +1,4 @@ +#title applyActorTorqueLocal [RCBasic Doc] +#header sub applyActorTorqueLocal( actor, x, y, z) + + diff --git a/doc/files/applyactortorqueworld.txt b/doc/files/applyactortorqueworld.txt new file mode 100644 index 0000000..f7a1325 --- /dev/null +++ b/doc/files/applyactortorqueworld.txt @@ -0,0 +1,4 @@ +#title applyActorTorqueWorld [RCBasic Doc] +#header sub applyActorTorqueWorld( actor, x, y, z) + + diff --git a/doc/files/arraycopy.txt b/doc/files/arraycopy.txt new file mode 100644 index 0000000..fb12f51 --- /dev/null +++ b/doc/files/arraycopy.txt @@ -0,0 +1,4 @@ +#title ArrayCopy [RCBasic Doc] +#header sub ArrayCopy(ByRef src, ByRef dst) + + diff --git a/doc/files/arraydim.txt b/doc/files/arraydim.txt new file mode 100644 index 0000000..48f6625 --- /dev/null +++ b/doc/files/arraydim.txt @@ -0,0 +1,4 @@ +#title ArrayDim [RCBasic Doc] +#header function ArrayDim(Byref id) + + diff --git a/doc/files/arrayfill.txt b/doc/files/arrayfill.txt new file mode 100644 index 0000000..d5fe622 --- /dev/null +++ b/doc/files/arrayfill.txt @@ -0,0 +1,4 @@ +#title ArrayFill [RCBasic Doc] +#header sub ArrayFill(ByRef src, fdata) + + diff --git a/doc/files/arraysize.txt b/doc/files/arraysize.txt new file mode 100644 index 0000000..0655266 --- /dev/null +++ b/doc/files/arraysize.txt @@ -0,0 +1,4 @@ +#title ArraySize [RCBasic Doc] +#header function ArraySize(Byref id, array_dim) + + diff --git a/doc/files/asc.txt b/doc/files/asc.txt new file mode 100644 index 0000000..feaa868 --- /dev/null +++ b/doc/files/asc.txt @@ -0,0 +1,4 @@ +#title Asc [RCBasic Doc] +#header function Asc(c$) + + diff --git a/doc/files/asin.txt b/doc/files/asin.txt new file mode 100644 index 0000000..beb64e3 --- /dev/null +++ b/doc/files/asin.txt @@ -0,0 +1,4 @@ +#title Asin [RCBasic Doc] +#header function Asin(n) + + diff --git a/doc/files/atan.txt b/doc/files/atan.txt new file mode 100644 index 0000000..edd314a --- /dev/null +++ b/doc/files/atan.txt @@ -0,0 +1,4 @@ +#title Atan [RCBasic Doc] +#header function Atan(n) + + diff --git a/doc/files/atan2.txt b/doc/files/atan2.txt new file mode 100644 index 0000000..431dc5a --- /dev/null +++ b/doc/files/atan2.txt @@ -0,0 +1,4 @@ +#title ATan2 [RCBasic Doc] +#header Function ATan2(y, x) + + diff --git a/doc/files/augmentmatrix.txt b/doc/files/augmentmatrix.txt new file mode 100644 index 0000000..44de6c9 --- /dev/null +++ b/doc/files/augmentmatrix.txt @@ -0,0 +1,4 @@ +#title AugmentMatrix [RCBasic Doc] +#header function AugmentMatrix(mA, mB, mC) + + diff --git a/doc/files/bin.txt b/doc/files/bin.txt new file mode 100644 index 0000000..f61de98 --- /dev/null +++ b/doc/files/bin.txt @@ -0,0 +1,4 @@ +#title Bin$ [RCBasic Doc] +#header function Bin$(n) + + diff --git a/doc/files/bufferfrommatrix.txt b/doc/files/bufferfrommatrix.txt new file mode 100644 index 0000000..21d0bc7 --- /dev/null +++ b/doc/files/bufferfrommatrix.txt @@ -0,0 +1,4 @@ +#title BufferFromMatrix [RCBasic Doc] +#header sub BufferFromMatrix(ByRef buffer, mA) + + diff --git a/doc/files/bufferfromstring.txt b/doc/files/bufferfromstring.txt new file mode 100644 index 0000000..7123030 --- /dev/null +++ b/doc/files/bufferfromstring.txt @@ -0,0 +1,4 @@ +#title BufferFromString [RCBasic Doc] +#header function BufferFromString(s$, ByRef buffer) + + diff --git a/doc/files/canvas.txt b/doc/files/canvas.txt new file mode 100644 index 0000000..ae85296 --- /dev/null +++ b/doc/files/canvas.txt @@ -0,0 +1,4 @@ +#title Canvas [RCBasic Doc] +#header sub Canvas(c_num) + + diff --git a/doc/files/canvasclip.txt b/doc/files/canvasclip.txt new file mode 100644 index 0000000..93157e3 --- /dev/null +++ b/doc/files/canvasclip.txt @@ -0,0 +1,4 @@ +#title CanvasClip [RCBasic Doc] +#header sub CanvasClip(slot, x, y, w, h, flag) + + diff --git a/doc/files/canvasisvisible.txt b/doc/files/canvasisvisible.txt new file mode 100644 index 0000000..b934d7d --- /dev/null +++ b/doc/files/canvasisvisible.txt @@ -0,0 +1,4 @@ +#title CanvasIsVisible [RCBasic Doc] +#header function CanvasIsVisible(c_num) + + diff --git a/doc/files/changedir.txt b/doc/files/changedir.txt new file mode 100644 index 0000000..57cb16b --- /dev/null +++ b/doc/files/changedir.txt @@ -0,0 +1,4 @@ +#title ChangeDir [RCBasic Doc] +#header sub ChangeDir(p$) + + diff --git a/doc/files/channelispaused.txt b/doc/files/channelispaused.txt new file mode 100644 index 0000000..5df80ad --- /dev/null +++ b/doc/files/channelispaused.txt @@ -0,0 +1,4 @@ +#title ChannelIsPaused [RCBasic Doc] +#header function ChannelIsPaused(channel) + + diff --git a/doc/files/channelisplaying.txt b/doc/files/channelisplaying.txt new file mode 100644 index 0000000..97e5412 --- /dev/null +++ b/doc/files/channelisplaying.txt @@ -0,0 +1,4 @@ +#title ChannelIsPlaying [RCBasic Doc] +#header function ChannelIsPlaying(channel) + + diff --git a/doc/files/checksockets.txt b/doc/files/checksockets.txt new file mode 100644 index 0000000..ad37354 --- /dev/null +++ b/doc/files/checksockets.txt @@ -0,0 +1,4 @@ +#title CheckSockets [RCBasic Doc] +#header function CheckSockets(timeout_ms) + + diff --git a/doc/files/chr.txt b/doc/files/chr.txt new file mode 100644 index 0000000..516c510 --- /dev/null +++ b/doc/files/chr.txt @@ -0,0 +1,4 @@ +#title Chr$ [RCBasic Doc] +#header function Chr$(n) + + diff --git a/doc/files/cint32.txt b/doc/files/cint32.txt new file mode 100644 index 0000000..6138638 --- /dev/null +++ b/doc/files/cint32.txt @@ -0,0 +1,4 @@ +#title CInt32 [RCBasic Doc] +#header function CInt32(i) + + diff --git a/doc/files/cint64.txt b/doc/files/cint64.txt new file mode 100644 index 0000000..823e12b --- /dev/null +++ b/doc/files/cint64.txt @@ -0,0 +1,4 @@ +#title CInt64 [RCBasic Doc] +#header function CInt64(i) + + diff --git a/doc/files/circle.txt b/doc/files/circle.txt new file mode 100644 index 0000000..8a0f755 --- /dev/null +++ b/doc/files/circle.txt @@ -0,0 +1,4 @@ +#title Circle [RCBasic Doc] +#header sub Circle(x,y,radius) + + diff --git a/doc/files/circlefill.txt b/doc/files/circlefill.txt new file mode 100644 index 0000000..d429351 --- /dev/null +++ b/doc/files/circlefill.txt @@ -0,0 +1,4 @@ +#title CircleFill [RCBasic Doc] +#header sub CircleFill(x,y,radius) + + diff --git a/doc/files/clearactorforces.txt b/doc/files/clearactorforces.txt new file mode 100644 index 0000000..9ec7cb5 --- /dev/null +++ b/doc/files/clearactorforces.txt @@ -0,0 +1,4 @@ +#title clearActorForces [RCBasic Doc] +#header sub clearActorForces( actor) + + diff --git a/doc/files/clearcanvas.txt b/doc/files/clearcanvas.txt new file mode 100644 index 0000000..0f2b01c --- /dev/null +++ b/doc/files/clearcanvas.txt @@ -0,0 +1,4 @@ +#title ClearCanvas [RCBasic Doc] +#header sub ClearCanvas() + + diff --git a/doc/files/clearmatrix.txt b/doc/files/clearmatrix.txt new file mode 100644 index 0000000..d1b0af5 --- /dev/null +++ b/doc/files/clearmatrix.txt @@ -0,0 +1,4 @@ +#title ClearMatrix [RCBasic Doc] +#header sub ClearMatrix(mA) + + diff --git a/doc/files/clearmatrixcolumns.txt b/doc/files/clearmatrixcolumns.txt new file mode 100644 index 0000000..afd413c --- /dev/null +++ b/doc/files/clearmatrixcolumns.txt @@ -0,0 +1,4 @@ +#title ClearMatrixColumns [RCBasic Doc] +#header function ClearMatrixColumns(mA, c, num_cols) + + diff --git a/doc/files/clearmatrixrows.txt b/doc/files/clearmatrixrows.txt new file mode 100644 index 0000000..879cace --- /dev/null +++ b/doc/files/clearmatrixrows.txt @@ -0,0 +1,4 @@ +#title ClearMatrixRows [RCBasic Doc] +#header function ClearMatrixRows(mA, r, num_rows) + + diff --git a/doc/files/clearmousezone.txt b/doc/files/clearmousezone.txt new file mode 100644 index 0000000..96bff0e --- /dev/null +++ b/doc/files/clearmousezone.txt @@ -0,0 +1,4 @@ +#title ClearMouseZone [RCBasic Doc] +#header sub ClearMouseZone() + + diff --git a/doc/files/clearstack_n.txt b/doc/files/clearstack_n.txt new file mode 100644 index 0000000..e409102 --- /dev/null +++ b/doc/files/clearstack_n.txt @@ -0,0 +1,4 @@ +#title ClearStack_N [RCBasic Doc] +#header sub ClearStack_N( num_stack ) + + diff --git a/doc/files/clearstack_s.txt b/doc/files/clearstack_s.txt new file mode 100644 index 0000000..456371e --- /dev/null +++ b/doc/files/clearstack_s.txt @@ -0,0 +1,4 @@ +#title ClearStack_S [RCBasic Doc] +#header sub ClearStack_S( str_stack ) + + diff --git a/doc/files/clipmatrix.txt b/doc/files/clipmatrix.txt new file mode 100644 index 0000000..edac91b --- /dev/null +++ b/doc/files/clipmatrix.txt @@ -0,0 +1,4 @@ +#title ClipMatrix [RCBasic Doc] +#header sub ClipMatrix(mA, r, c, num_rows, num_cols, mB) + + diff --git a/doc/files/clonecanvas.txt b/doc/files/clonecanvas.txt new file mode 100644 index 0000000..337797b --- /dev/null +++ b/doc/files/clonecanvas.txt @@ -0,0 +1,4 @@ +#title CloneCanvas [RCBasic Doc] +#header sub CloneCanvas(src, dst) + + diff --git a/doc/files/closecanvas.txt b/doc/files/closecanvas.txt new file mode 100644 index 0000000..e19b2cb --- /dev/null +++ b/doc/files/closecanvas.txt @@ -0,0 +1,4 @@ +#title CloseCanvas [RCBasic Doc] +#header sub CanvasClose(c_num) + + diff --git a/doc/files/closefile.txt b/doc/files/closefile.txt new file mode 100644 index 0000000..e6618f5 --- /dev/null +++ b/doc/files/closefile.txt @@ -0,0 +1,4 @@ +#title CloseFile [RCBasic Doc] +#header sub FileClose(stream) + + diff --git a/doc/files/closewindow.txt b/doc/files/closewindow.txt new file mode 100644 index 0000000..b1c1132 --- /dev/null +++ b/doc/files/closewindow.txt @@ -0,0 +1,4 @@ +#title CloseWindow [RCBasic Doc] +#header sub WindowClose(win) + + diff --git a/doc/files/cls.txt b/doc/files/cls.txt new file mode 100644 index 0000000..4bed83b --- /dev/null +++ b/doc/files/cls.txt @@ -0,0 +1,4 @@ +#title Cls [RCBasic Doc] +#header sub Cls() + + diff --git a/doc/files/cofactormatrix.txt b/doc/files/cofactormatrix.txt new file mode 100644 index 0000000..d166131 --- /dev/null +++ b/doc/files/cofactormatrix.txt @@ -0,0 +1,4 @@ +#title CofactorMatrix [RCBasic Doc] +#header sub SubMatrix(mA, r, c) + + diff --git a/doc/files/colorkey.txt b/doc/files/colorkey.txt new file mode 100644 index 0000000..cbd8ee3 --- /dev/null +++ b/doc/files/colorkey.txt @@ -0,0 +1,4 @@ +#title ColorKey [RCBasic Doc] +#header sub ColorKey(slot, c) + + diff --git a/doc/files/command.txt b/doc/files/command.txt new file mode 100644 index 0000000..c297bee --- /dev/null +++ b/doc/files/command.txt @@ -0,0 +1,4 @@ +#title Command$ [RCBasic Doc] +#header function Command$(arg) + + diff --git a/doc/files/computeactorangularimpulsedenominator.txt b/doc/files/computeactorangularimpulsedenominator.txt new file mode 100644 index 0000000..cdd9186 --- /dev/null +++ b/doc/files/computeactorangularimpulsedenominator.txt @@ -0,0 +1,4 @@ +#title computeActorAngularImpulseDenominator [RCBasic Doc] +#header function computeActorAngularImpulseDenominator( actor, x, y, z) + + diff --git a/doc/files/computeactorgyroimpulselocal.txt b/doc/files/computeactorgyroimpulselocal.txt new file mode 100644 index 0000000..ce916c6 --- /dev/null +++ b/doc/files/computeactorgyroimpulselocal.txt @@ -0,0 +1,4 @@ +#title computeActorGyroImpulseLocal [RCBasic Doc] +#header sub computeActorGyroImpulseLocal( actor, dt, ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/computeactorgyroimpulseworld.txt b/doc/files/computeactorgyroimpulseworld.txt new file mode 100644 index 0000000..dce0b58 --- /dev/null +++ b/doc/files/computeactorgyroimpulseworld.txt @@ -0,0 +1,4 @@ +#title computeActorGyroImpulseWorld [RCBasic Doc] +#header sub computeActorGyroImpulseWorld( actor, dt, ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/computeactorimpulsedenominator.txt b/doc/files/computeactorimpulsedenominator.txt new file mode 100644 index 0000000..8b113b7 --- /dev/null +++ b/doc/files/computeactorimpulsedenominator.txt @@ -0,0 +1,4 @@ +#title computeActorImpulseDenominator [RCBasic Doc] +#header function computeActorImpulseDenominator( actor, pos_x, pos_y, pos_z, normal_x, normal_y, normal_z) + + diff --git a/doc/files/copyactormaterial.txt b/doc/files/copyactormaterial.txt new file mode 100644 index 0000000..d61d8f0 --- /dev/null +++ b/doc/files/copyactormaterial.txt @@ -0,0 +1,4 @@ +#title copyActorMaterial [RCBasic Doc] +#header function copyActorMaterial( actor, material_num) + + diff --git a/doc/files/copyfile.txt b/doc/files/copyfile.txt new file mode 100644 index 0000000..2955ab6 --- /dev/null +++ b/doc/files/copyfile.txt @@ -0,0 +1,4 @@ +#title CopyFile [RCBasic Doc] +#header sub CopyFile(src$, dst$) + + diff --git a/doc/files/copyimage.txt b/doc/files/copyimage.txt new file mode 100644 index 0000000..d00dd64 --- /dev/null +++ b/doc/files/copyimage.txt @@ -0,0 +1,4 @@ +#title CopyImage [RCBasic Doc] +#header sub CopyImage(src, dst) + + diff --git a/doc/files/copymaterial.txt b/doc/files/copymaterial.txt new file mode 100644 index 0000000..3cfadee --- /dev/null +++ b/doc/files/copymaterial.txt @@ -0,0 +1,4 @@ +#title copyMaterial [RCBasic Doc] +#header function copyMaterial( smaterial_id) + + diff --git a/doc/files/copymatrix.txt b/doc/files/copymatrix.txt new file mode 100644 index 0000000..2cad01c --- /dev/null +++ b/doc/files/copymatrix.txt @@ -0,0 +1,4 @@ +#title CopyMatrix [RCBasic Doc] +#header sub CopyMatrix(mA, mB) + + diff --git a/doc/files/copymatrixcolumns.txt b/doc/files/copymatrixcolumns.txt new file mode 100644 index 0000000..31b30b0 --- /dev/null +++ b/doc/files/copymatrixcolumns.txt @@ -0,0 +1,4 @@ +#title CopyMatrixColumns [RCBasic Doc] +#header function CopyMatrixColumns(mA, mB, c, num_cols) + + diff --git a/doc/files/copymatrixrows.txt b/doc/files/copymatrixrows.txt new file mode 100644 index 0000000..7b3b1db --- /dev/null +++ b/doc/files/copymatrixrows.txt @@ -0,0 +1,4 @@ +#title CopyMatrixRows [RCBasic Doc] +#header function CopyMatrixRows(mA, mB, r, num_rows) + + diff --git a/doc/files/cos.txt b/doc/files/cos.txt new file mode 100644 index 0000000..e5f1542 --- /dev/null +++ b/doc/files/cos.txt @@ -0,0 +1,4 @@ +#title Cos [RCBasic Doc] +#header function Cos(n) + + diff --git a/doc/files/createbillboardactor.txt b/doc/files/createbillboardactor.txt new file mode 100644 index 0000000..bc20673 --- /dev/null +++ b/doc/files/createbillboardactor.txt @@ -0,0 +1,4 @@ +#title CreateBillboardActor [RCBasic Doc] +#header function CreateBillboardActor( ) + + diff --git a/doc/files/createconeconstraint.txt b/doc/files/createconeconstraint.txt new file mode 100644 index 0000000..0c0ff52 --- /dev/null +++ b/doc/files/createconeconstraint.txt @@ -0,0 +1,4 @@ +#title createConeConstraint [RCBasic Doc] +#header function createConeConstraint( actorA, rbAFrame_matrix) + + diff --git a/doc/files/createconeconstraintex.txt b/doc/files/createconeconstraintex.txt new file mode 100644 index 0000000..fbe70d5 --- /dev/null +++ b/doc/files/createconeconstraintex.txt @@ -0,0 +1,4 @@ +#title createConeConstraintEx [RCBasic Doc] +#header function createConeConstraintEx( actorA, actorB, rbAFrame_matrix, rbBFrame_matrix) + + diff --git a/doc/files/createcubeactor.txt b/doc/files/createcubeactor.txt new file mode 100644 index 0000000..5e12da9 --- /dev/null +++ b/doc/files/createcubeactor.txt @@ -0,0 +1,4 @@ +#title CreateCubeActor [RCBasic Doc] +#header function CreateCubeActor( cube_size ) + + diff --git a/doc/files/createhingeconstraint.txt b/doc/files/createhingeconstraint.txt new file mode 100644 index 0000000..25c7911 --- /dev/null +++ b/doc/files/createhingeconstraint.txt @@ -0,0 +1,4 @@ +#title createHingeConstraint [RCBasic Doc] +#header function createHingeConstraint( actorA, pxA, pyA, pzA, axA, ayA, azA) + + diff --git a/doc/files/createhingeconstraintex.txt b/doc/files/createhingeconstraintex.txt new file mode 100644 index 0000000..76b3069 --- /dev/null +++ b/doc/files/createhingeconstraintex.txt @@ -0,0 +1,4 @@ +#title createHingeConstraintEx [RCBasic Doc] +#header function createHingeConstraintEx( actorA, actorB, pxA, pyA, pzA, pxB, pyB, pzB, axA, ayA, azA, axB, ayB, azB) + + diff --git a/doc/files/createimage.txt b/doc/files/createimage.txt new file mode 100644 index 0000000..4640713 --- /dev/null +++ b/doc/files/createimage.txt @@ -0,0 +1,4 @@ +#title createImage [RCBasic Doc] +#header sub ImageFromBuffer(slot, w, h, byref buffer) + + diff --git a/doc/files/createimageex.txt b/doc/files/createimageex.txt new file mode 100644 index 0000000..7a87a28 --- /dev/null +++ b/doc/files/createimageex.txt @@ -0,0 +1,4 @@ +#title createImageEx [RCBasic Doc] +#header sub ImageFromBuffer_Ex(slot, w, h, byref buffer, colkey) + + diff --git a/doc/files/createlightactor.txt b/doc/files/createlightactor.txt new file mode 100644 index 0000000..f200db0 --- /dev/null +++ b/doc/files/createlightactor.txt @@ -0,0 +1,4 @@ +#title CreateLightActor [RCBasic Doc] +#header function CreateLightActor( ) + + diff --git a/doc/files/creatematerial.txt b/doc/files/creatematerial.txt new file mode 100644 index 0000000..ff2e6fa --- /dev/null +++ b/doc/files/creatematerial.txt @@ -0,0 +1,4 @@ +#title createMaterial [RCBasic Doc] +#header function createMaterial() + + diff --git a/doc/files/createmesh.txt b/doc/files/createmesh.txt new file mode 100644 index 0000000..819c6e4 --- /dev/null +++ b/doc/files/createmesh.txt @@ -0,0 +1,4 @@ +#title CreateMesh [RCBasic Doc] +#header function CreateMesh( ) + + diff --git a/doc/files/createmeshactor.txt b/doc/files/createmeshactor.txt new file mode 100644 index 0000000..bc2fb28 --- /dev/null +++ b/doc/files/createmeshactor.txt @@ -0,0 +1,4 @@ +#title CreateMeshActor [RCBasic Doc] +#header function CreateMeshActor( mesh ) + + diff --git a/doc/files/createmeshoctreeactor.txt b/doc/files/createmeshoctreeactor.txt new file mode 100644 index 0000000..40b6084 --- /dev/null +++ b/doc/files/createmeshoctreeactor.txt @@ -0,0 +1,4 @@ +#title CreateMeshOctreeActor [RCBasic Doc] +#header function CreateMeshOctreeActor( mesh ) + + diff --git a/doc/files/createpointconstraint.txt b/doc/files/createpointconstraint.txt new file mode 100644 index 0000000..c1950d4 --- /dev/null +++ b/doc/files/createpointconstraint.txt @@ -0,0 +1,4 @@ +#title createPointConstraint [RCBasic Doc] +#header function createPointConstraint( actorA, pxA, pyA, pzA) + + diff --git a/doc/files/createpointconstraintex.txt b/doc/files/createpointconstraintex.txt new file mode 100644 index 0000000..f0997dd --- /dev/null +++ b/doc/files/createpointconstraintex.txt @@ -0,0 +1,4 @@ +#title createPointConstraintEx [RCBasic Doc] +#header function createPointConstraintEx( actorA, actorB, pxA, pyA, pzA, pxB, pyB, pzB) + + diff --git a/doc/files/createslideconstraint.txt b/doc/files/createslideconstraint.txt new file mode 100644 index 0000000..dd1af90 --- /dev/null +++ b/doc/files/createslideconstraint.txt @@ -0,0 +1,4 @@ +#title createSlideConstraint [RCBasic Doc] +#header function createSlideConstraint( actorA, frameInB_matrix, useLinearReferenceFrameA) + + diff --git a/doc/files/createslideconstraintex.txt b/doc/files/createslideconstraintex.txt new file mode 100644 index 0000000..730cf58 --- /dev/null +++ b/doc/files/createslideconstraintex.txt @@ -0,0 +1,4 @@ +#title createSlideConstraintEx [RCBasic Doc] +#header function createSlideConstraintEx( actorA, actorB, frameInA_matrix, frameInB_matrix, useLinearReferenceFrameA) + + diff --git a/doc/files/createsound.txt b/doc/files/createsound.txt new file mode 100644 index 0000000..5f87fc0 --- /dev/null +++ b/doc/files/createsound.txt @@ -0,0 +1,4 @@ +#title CreateSound [RCBasic Doc] +#header sub SoundFromBuffer(slot, byref buffer, buffer_size, vol) + + diff --git a/doc/files/createsphereactor.txt b/doc/files/createsphereactor.txt new file mode 100644 index 0000000..873766a --- /dev/null +++ b/doc/files/createsphereactor.txt @@ -0,0 +1,4 @@ +#title CreateSphereActor [RCBasic Doc] +#header function CreateSphereActor( radius ) + + diff --git a/doc/files/createsprite.txt b/doc/files/createsprite.txt new file mode 100644 index 0000000..ecd5926 --- /dev/null +++ b/doc/files/createsprite.txt @@ -0,0 +1,4 @@ +#title CreateSprite [RCBasic Doc] +#header function CreateSprite( img ) + + diff --git a/doc/files/createstack_n.txt b/doc/files/createstack_n.txt new file mode 100644 index 0000000..bcb49a0 --- /dev/null +++ b/doc/files/createstack_n.txt @@ -0,0 +1,4 @@ +#title CreateStack_N [RCBasic Doc] +#header function CreateStack_N( ) + + diff --git a/doc/files/createstack_s.txt b/doc/files/createstack_s.txt new file mode 100644 index 0000000..645f100 --- /dev/null +++ b/doc/files/createstack_s.txt @@ -0,0 +1,4 @@ +#title CreateStack_S [RCBasic Doc] +#header function CreateStack_S() + + diff --git a/doc/files/createterrainactor.txt b/doc/files/createterrainactor.txt new file mode 100644 index 0000000..a194677 --- /dev/null +++ b/doc/files/createterrainactor.txt @@ -0,0 +1,4 @@ +#title CreateTerrainActor [RCBasic Doc] +#header function CreateTerrainActor( hmap_file$ ) + + diff --git a/doc/files/createwaterplaneactor.txt b/doc/files/createwaterplaneactor.txt new file mode 100644 index 0000000..9c64627 --- /dev/null +++ b/doc/files/createwaterplaneactor.txt @@ -0,0 +1,4 @@ +#title CreateWaterPlaneActor [RCBasic Doc] +#header function CreateWaterPlaneActor( w, h ) + + diff --git a/doc/files/cubematrix.txt b/doc/files/cubematrix.txt new file mode 100644 index 0000000..3c86f0e --- /dev/null +++ b/doc/files/cubematrix.txt @@ -0,0 +1,4 @@ +#title CubeMatrix [RCBasic Doc] +#header function CubeMatrix(mA, mB) + + diff --git a/doc/files/date.txt b/doc/files/date.txt new file mode 100644 index 0000000..b7b34de --- /dev/null +++ b/doc/files/date.txt @@ -0,0 +1,4 @@ +#title Date$ [RCBasic Doc] +#header function Date$() + + diff --git a/doc/files/degrees.txt b/doc/files/degrees.txt new file mode 100644 index 0000000..ede8871 --- /dev/null +++ b/doc/files/degrees.txt @@ -0,0 +1,4 @@ +#title Degrees [RCBasic Doc] +#header function Degrees(r) + + diff --git a/doc/files/deleteactor.txt b/doc/files/deleteactor.txt new file mode 100644 index 0000000..d5bd360 --- /dev/null +++ b/doc/files/deleteactor.txt @@ -0,0 +1,4 @@ +#title DeleteActor [RCBasic Doc] +#header sub DeleteActor( actor ) + + diff --git a/doc/files/deleteconstraint.txt b/doc/files/deleteconstraint.txt new file mode 100644 index 0000000..3343c48 --- /dev/null +++ b/doc/files/deleteconstraint.txt @@ -0,0 +1,4 @@ +#title deleteConstraint [RCBasic Doc] +#header sub deleteConstraint( constraint_id) + + diff --git a/doc/files/deletefont.txt b/doc/files/deletefont.txt new file mode 100644 index 0000000..6075701 --- /dev/null +++ b/doc/files/deletefont.txt @@ -0,0 +1,4 @@ +#title DeleteFont [RCBasic Doc] +#header sub DeleteFont(slot) + + diff --git a/doc/files/deleteimage.txt b/doc/files/deleteimage.txt new file mode 100644 index 0000000..b46b058 --- /dev/null +++ b/doc/files/deleteimage.txt @@ -0,0 +1,4 @@ +#title DeleteImage [RCBasic Doc] +#header sub DeleteImage(slot) + + diff --git a/doc/files/deletematerial.txt b/doc/files/deletematerial.txt new file mode 100644 index 0000000..9cf7b5e --- /dev/null +++ b/doc/files/deletematerial.txt @@ -0,0 +1,4 @@ +#title deleteMaterial [RCBasic Doc] +#header sub deleteMaterial( material_id) + + diff --git a/doc/files/deletematrix.txt b/doc/files/deletematrix.txt new file mode 100644 index 0000000..77027e8 --- /dev/null +++ b/doc/files/deletematrix.txt @@ -0,0 +1,4 @@ +#title DeleteMatrix [RCBasic Doc] +#header Sub DeleteMatrix(mA) + + diff --git a/doc/files/deletematrixcolumns.txt b/doc/files/deletematrixcolumns.txt new file mode 100644 index 0000000..d27e822 --- /dev/null +++ b/doc/files/deletematrixcolumns.txt @@ -0,0 +1,4 @@ +#title DeleteMatrixColumns [RCBasic Doc] +#header function DeleteMatrixColumns(mA, c, num_cols) + + diff --git a/doc/files/deletematrixrows.txt b/doc/files/deletematrixrows.txt new file mode 100644 index 0000000..d266ea6 --- /dev/null +++ b/doc/files/deletematrixrows.txt @@ -0,0 +1,4 @@ +#title DeleteMatrixRows [RCBasic Doc] +#header function DeleteMatrixRows(mA, r, num_rows) + + diff --git a/doc/files/deletemesh.txt b/doc/files/deletemesh.txt new file mode 100644 index 0000000..3c18e4a --- /dev/null +++ b/doc/files/deletemesh.txt @@ -0,0 +1,4 @@ +#title DeleteMesh [RCBasic Doc] +#header sub DeleteMesh( mesh ) + + diff --git a/doc/files/deletemusic.txt b/doc/files/deletemusic.txt new file mode 100644 index 0000000..c6bbfe1 --- /dev/null +++ b/doc/files/deletemusic.txt @@ -0,0 +1,4 @@ +#title DeleteMusic [RCBasic Doc] +#header sub DeleteMusic() + + diff --git a/doc/files/deletesound.txt b/doc/files/deletesound.txt new file mode 100644 index 0000000..67fe4d9 --- /dev/null +++ b/doc/files/deletesound.txt @@ -0,0 +1,4 @@ +#title DeleteSound [RCBasic Doc] +#header sub DeleteSound(slot) + + diff --git a/doc/files/deletesprite.txt b/doc/files/deletesprite.txt new file mode 100644 index 0000000..9f23cd1 --- /dev/null +++ b/doc/files/deletesprite.txt @@ -0,0 +1,4 @@ +#title DeleteSprite [RCBasic Doc] +#header Sub DeleteSprite( sprite ) + + diff --git a/doc/files/deletestack_n.txt b/doc/files/deletestack_n.txt new file mode 100644 index 0000000..da74203 --- /dev/null +++ b/doc/files/deletestack_n.txt @@ -0,0 +1,4 @@ +#title DeleteStack_N [RCBasic Doc] +#header sub DeleteStack_N( num_stack ) + + diff --git a/doc/files/deletestack_s.txt b/doc/files/deletestack_s.txt new file mode 100644 index 0000000..b7ac9a3 --- /dev/null +++ b/doc/files/deletestack_s.txt @@ -0,0 +1,4 @@ +#title DeleteStack_S [RCBasic Doc] +#header sub DeleteStack_S( str_stack ) + + diff --git a/doc/files/deletevideo.txt b/doc/files/deletevideo.txt new file mode 100644 index 0000000..13a01cb --- /dev/null +++ b/doc/files/deletevideo.txt @@ -0,0 +1,4 @@ +#title DeleteVideo [RCBasic Doc] +#header sub DeleteVideo() + + diff --git a/doc/files/determinant.txt b/doc/files/determinant.txt new file mode 100644 index 0000000..17ed49d --- /dev/null +++ b/doc/files/determinant.txt @@ -0,0 +1,4 @@ +#title Determinant [RCBasic Doc] +#header function Determinant(mA) + + diff --git a/doc/files/dimmatrix.txt b/doc/files/dimmatrix.txt new file mode 100644 index 0000000..acf88f0 --- /dev/null +++ b/doc/files/dimmatrix.txt @@ -0,0 +1,4 @@ +#title DimMatrix [RCBasic Doc] +#header sub DimMatrix(m, m_rows, m_cols, preserve_flag) + + diff --git a/doc/files/dir.txt b/doc/files/dir.txt new file mode 100644 index 0000000..7b5e957 --- /dev/null +++ b/doc/files/dir.txt @@ -0,0 +1,4 @@ +#title Dir$ [RCBasic Doc] +#header function Dir$() + + diff --git a/doc/files/direxists.txt b/doc/files/direxists.txt new file mode 100644 index 0000000..bfdbd44 --- /dev/null +++ b/doc/files/direxists.txt @@ -0,0 +1,4 @@ +#title DirExists [RCBasic Doc] +#header function DirExists(p$) + + diff --git a/doc/files/dirfirst.txt b/doc/files/dirfirst.txt new file mode 100644 index 0000000..dd726d1 --- /dev/null +++ b/doc/files/dirfirst.txt @@ -0,0 +1,4 @@ +#title DirFirst$ [RCBasic Doc] +#header function DirFirst$() + + diff --git a/doc/files/dirnext.txt b/doc/files/dirnext.txt new file mode 100644 index 0000000..0e19975 --- /dev/null +++ b/doc/files/dirnext.txt @@ -0,0 +1,4 @@ +#title DirNext$ [RCBasic Doc] +#header function DirNext$() + + diff --git a/doc/files/distance2d.txt b/doc/files/distance2d.txt new file mode 100644 index 0000000..b9d678a --- /dev/null +++ b/doc/files/distance2d.txt @@ -0,0 +1,4 @@ +#title Distance2D [RCBasic Doc] +#header Function Distance2D(x1, y1, x2, y2) + + diff --git a/doc/files/distance3d.txt b/doc/files/distance3d.txt new file mode 100644 index 0000000..3bfc44d --- /dev/null +++ b/doc/files/distance3d.txt @@ -0,0 +1,4 @@ +#title Distance3D [RCBasic Doc] +#header Function Distance3D(x1, y1, z1, x2, y2, z2) + + diff --git a/doc/files/drawimage.txt b/doc/files/drawimage.txt new file mode 100644 index 0000000..dce18e0 --- /dev/null +++ b/doc/files/drawimage.txt @@ -0,0 +1,4 @@ +#title DrawImage [RCBasic Doc] +#header sub DrawImage(slot, x, y) + + diff --git a/doc/files/drawimage_blit.txt b/doc/files/drawimage_blit.txt new file mode 100644 index 0000000..5d8502b --- /dev/null +++ b/doc/files/drawimage_blit.txt @@ -0,0 +1,4 @@ +#title DrawImage_Blit [RCBasic Doc] +#header sub DrawImage_Blit(slot, x, y, src_x, src_y, src_w, src_h) + + diff --git a/doc/files/drawimage_blitex.txt b/doc/files/drawimage_blitex.txt new file mode 100644 index 0000000..7675fa2 --- /dev/null +++ b/doc/files/drawimage_blitex.txt @@ -0,0 +1,4 @@ +#title DrawImage_BlitEx [RCBasic Doc] +#header sub DrawImage_BlitEx(slot, x, y, w, h, src_x, src_y, src_w, src_h) + + diff --git a/doc/files/drawimage_flip.txt b/doc/files/drawimage_flip.txt new file mode 100644 index 0000000..dee1fc7 --- /dev/null +++ b/doc/files/drawimage_flip.txt @@ -0,0 +1,4 @@ +#title DrawImage_Flip [RCBasic Doc] +#header sub DrawImage_Flip(slot, x, y, h, v) + + diff --git a/doc/files/drawimage_flipex.txt b/doc/files/drawimage_flipex.txt new file mode 100644 index 0000000..496709d --- /dev/null +++ b/doc/files/drawimage_flipex.txt @@ -0,0 +1,4 @@ +#title DrawImage_FlipEx [RCBasic Doc] +#header sub DrawImage_FlipEx(slot, x, y, src_x, src_y, src_w, src_h, h, v) + + diff --git a/doc/files/drawimage_rotate.txt b/doc/files/drawimage_rotate.txt new file mode 100644 index 0000000..7028f75 --- /dev/null +++ b/doc/files/drawimage_rotate.txt @@ -0,0 +1,4 @@ +#title DrawImage_Rotate [RCBasic Doc] +#header sub DrawImage_Rotate(slot, x, y, angle) + + diff --git a/doc/files/drawimage_rotateex.txt b/doc/files/drawimage_rotateex.txt new file mode 100644 index 0000000..11b019c --- /dev/null +++ b/doc/files/drawimage_rotateex.txt @@ -0,0 +1,4 @@ +#title DrawImage_RotateEx [RCBasic Doc] +#header sub DrawImage_RotateEx(slot, x, y, src_x, src_y, src_w, src_h, angle) + + diff --git a/doc/files/drawimage_rotozoom.txt b/doc/files/drawimage_rotozoom.txt new file mode 100644 index 0000000..cc7d397 --- /dev/null +++ b/doc/files/drawimage_rotozoom.txt @@ -0,0 +1,4 @@ +#title DrawImage_Rotozoom [RCBasic Doc] +#header sub DrawImage_Rotozoom(slot, x, y, angle, zx, zy) + + diff --git a/doc/files/drawimage_rotozoomex.txt b/doc/files/drawimage_rotozoomex.txt new file mode 100644 index 0000000..341692a --- /dev/null +++ b/doc/files/drawimage_rotozoomex.txt @@ -0,0 +1,4 @@ +#title DrawImage_RotozoomEx [RCBasic Doc] +#header sub DrawImage_RotozoomEx(slot, x, y, src_x, src_y, src_w, src_h, angle, zx, zy) + + diff --git a/doc/files/drawimage_zoom.txt b/doc/files/drawimage_zoom.txt new file mode 100644 index 0000000..d337723 --- /dev/null +++ b/doc/files/drawimage_zoom.txt @@ -0,0 +1,4 @@ +#title DrawImage_Zoom [RCBasic Doc] +#header sub DrawImage_Zoom(slot, x, y, zx, zy) + + diff --git a/doc/files/drawimage_zoomex.txt b/doc/files/drawimage_zoomex.txt new file mode 100644 index 0000000..58a7a56 --- /dev/null +++ b/doc/files/drawimage_zoomex.txt @@ -0,0 +1,4 @@ +#title DrawImage_ZoomEx [RCBasic Doc] +#header sub DrawImage_ZoomEx(slot, x, y, src_x, src_y, src_w, src_h, zx, zy) + + diff --git a/doc/files/drawtext.txt b/doc/files/drawtext.txt new file mode 100644 index 0000000..8f0ef4c --- /dev/null +++ b/doc/files/drawtext.txt @@ -0,0 +1,4 @@ +#title DrawText [RCBasic Doc] +#header sub DrawText(txt$, x, y) + + diff --git a/doc/files/easter.txt b/doc/files/easter.txt new file mode 100644 index 0000000..f5a9c89 --- /dev/null +++ b/doc/files/easter.txt @@ -0,0 +1,4 @@ +#title Easter$ [RCBasic Doc] +#header function Easter$(year) + + diff --git a/doc/files/ellipse.txt b/doc/files/ellipse.txt new file mode 100644 index 0000000..d2d5d07 --- /dev/null +++ b/doc/files/ellipse.txt @@ -0,0 +1,4 @@ +#title Ellipse [RCBasic Doc] +#header sub Ellipse(x,y,rx,ry) + + diff --git a/doc/files/ellipsefill.txt b/doc/files/ellipsefill.txt new file mode 100644 index 0000000..538b21a --- /dev/null +++ b/doc/files/ellipsefill.txt @@ -0,0 +1,4 @@ +#title EllipseFill [RCBasic Doc] +#header sub EllipseFill(x,y,rx,ry) + + diff --git a/doc/files/env.txt b/doc/files/env.txt new file mode 100644 index 0000000..92ae079 --- /dev/null +++ b/doc/files/env.txt @@ -0,0 +1,4 @@ +#title Env$ [RCBasic Doc] +#header function Env$(v$) + + diff --git a/doc/files/eof.txt b/doc/files/eof.txt new file mode 100644 index 0000000..b3c57f7 --- /dev/null +++ b/doc/files/eof.txt @@ -0,0 +1,4 @@ +#title EOF [RCBasic Doc] +#header function EOF(stream) + + diff --git a/doc/files/evaljs.txt b/doc/files/evaljs.txt new file mode 100644 index 0000000..1975531 --- /dev/null +++ b/doc/files/evaljs.txt @@ -0,0 +1,4 @@ +#title EvalJS$ [RCBasic Doc] +#header Function EvalJS$(js_code$) 'Only useable in Emscripten + + diff --git a/doc/files/exp.txt b/doc/files/exp.txt new file mode 100644 index 0000000..b611925 --- /dev/null +++ b/doc/files/exp.txt @@ -0,0 +1,4 @@ +#title Exp [RCBasic Doc] +#header function Exp(n) + + diff --git a/doc/files/fademusicin.txt b/doc/files/fademusicin.txt new file mode 100644 index 0000000..df342f9 --- /dev/null +++ b/doc/files/fademusicin.txt @@ -0,0 +1,4 @@ +#title FadeMusicIn [RCBasic Doc] +#header sub FadeMusicIn(fade_time, loops) + + diff --git a/doc/files/fademusicout.txt b/doc/files/fademusicout.txt new file mode 100644 index 0000000..e48002d --- /dev/null +++ b/doc/files/fademusicout.txt @@ -0,0 +1,4 @@ +#title FadeMusicOut [RCBasic Doc] +#header sub FadeMusicOut(fade_time) + + diff --git a/doc/files/fileexists.txt b/doc/files/fileexists.txt new file mode 100644 index 0000000..064a7f2 --- /dev/null +++ b/doc/files/fileexists.txt @@ -0,0 +1,4 @@ +#title FileExists [RCBasic Doc] +#header function FileExists(fileName$) + + diff --git a/doc/files/filelength.txt b/doc/files/filelength.txt new file mode 100644 index 0000000..862f603 --- /dev/null +++ b/doc/files/filelength.txt @@ -0,0 +1,4 @@ +#title FileLength [RCBasic Doc] +#header function FileLength(fileName$) + + diff --git a/doc/files/fillmatrix.txt b/doc/files/fillmatrix.txt new file mode 100644 index 0000000..345a729 --- /dev/null +++ b/doc/files/fillmatrix.txt @@ -0,0 +1,4 @@ +#title FillMatrix [RCBasic Doc] +#header sub FillMatrix(mA, v) + + diff --git a/doc/files/fillmatrixcolumns.txt b/doc/files/fillmatrixcolumns.txt new file mode 100644 index 0000000..8e62940 --- /dev/null +++ b/doc/files/fillmatrixcolumns.txt @@ -0,0 +1,4 @@ +#title FillMatrixColumns [RCBasic Doc] +#header function FillMatrixColumns(mA, c, num_cols, v) + + diff --git a/doc/files/fillmatrixrows.txt b/doc/files/fillmatrixrows.txt new file mode 100644 index 0000000..d8e0cac --- /dev/null +++ b/doc/files/fillmatrixrows.txt @@ -0,0 +1,4 @@ +#title FillMatrixRows [RCBasic Doc] +#header function FillMatrixRows(mA, r, num_rows, v) + + diff --git a/doc/files/flashwindow.txt b/doc/files/flashwindow.txt new file mode 100644 index 0000000..3b67cb7 --- /dev/null +++ b/doc/files/flashwindow.txt @@ -0,0 +1,4 @@ +#title FlashWindow [RCBasic Doc] +#header function FlashWindow(win) + + diff --git a/doc/files/floodfill.txt b/doc/files/floodfill.txt new file mode 100644 index 0000000..99f344b --- /dev/null +++ b/doc/files/floodfill.txt @@ -0,0 +1,4 @@ +#title FloodFill [RCBasic Doc] +#header sub FloodFill(x,y) + + diff --git a/doc/files/fontexists.txt b/doc/files/fontexists.txt new file mode 100644 index 0000000..26f260b --- /dev/null +++ b/doc/files/fontexists.txt @@ -0,0 +1,4 @@ +#title FontExists [RCBasic Doc] +#header function FontIsLoaded(slot) + + diff --git a/doc/files/fprint.txt b/doc/files/fprint.txt new file mode 100644 index 0000000..60ee416 --- /dev/null +++ b/doc/files/fprint.txt @@ -0,0 +1,4 @@ +#title Fprint [RCBasic Doc] +#header sub Fprint(txt$) + + diff --git a/doc/files/fps.txt b/doc/files/fps.txt new file mode 100644 index 0000000..805531c --- /dev/null +++ b/doc/files/fps.txt @@ -0,0 +1,4 @@ +#title FPS [RCBasic Doc] +#header function FPS() + + diff --git a/doc/files/frac.txt b/doc/files/frac.txt new file mode 100644 index 0000000..b08356f --- /dev/null +++ b/doc/files/frac.txt @@ -0,0 +1,4 @@ +#title Frac [RCBasic Doc] +#header function Frac(n) + + diff --git a/doc/files/getaccel.txt b/doc/files/getaccel.txt new file mode 100644 index 0000000..3d151a5 --- /dev/null +++ b/doc/files/getaccel.txt @@ -0,0 +1,4 @@ +#title GetAccel [RCBasic Doc] +#header sub GetAccel(accel_num, ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/getactoraabb.txt b/doc/files/getactoraabb.txt new file mode 100644 index 0000000..0e9abdd --- /dev/null +++ b/doc/files/getactoraabb.txt @@ -0,0 +1,4 @@ +#title getActorAABB [RCBasic Doc] +#header sub getActorAABB( actor, ByRef min_x, ByRef min_y, ByRef min_z, ByRef max_x, ByRef max_y, ByRef max_z) + + diff --git a/doc/files/getactorangulardamping.txt b/doc/files/getactorangulardamping.txt new file mode 100644 index 0000000..1b520aa --- /dev/null +++ b/doc/files/getactorangulardamping.txt @@ -0,0 +1,4 @@ +#title getActorAngularDamping [RCBasic Doc] +#header function getActorAngularDamping( actor) + + diff --git a/doc/files/getactorangularfactor.txt b/doc/files/getactorangularfactor.txt new file mode 100644 index 0000000..2394c62 --- /dev/null +++ b/doc/files/getactorangularfactor.txt @@ -0,0 +1,4 @@ +#title getActorAngularFactor [RCBasic Doc] +#header sub getActorAngularFactor( actor, ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/getactorangularsleepthreshold.txt b/doc/files/getactorangularsleepthreshold.txt new file mode 100644 index 0000000..5684108 --- /dev/null +++ b/doc/files/getactorangularsleepthreshold.txt @@ -0,0 +1,4 @@ +#title getActorAngularSleepThreshold [RCBasic Doc] +#header function getActorAngularSleepThreshold( actor) + + diff --git a/doc/files/getactorangularvelocity.txt b/doc/files/getactorangularvelocity.txt new file mode 100644 index 0000000..cc5a94f --- /dev/null +++ b/doc/files/getactorangularvelocity.txt @@ -0,0 +1,4 @@ +#title getActorAngularVelocity [RCBasic Doc] +#header sub getActorAngularVelocity( actor, ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/getactorangularvelocitylocal.txt b/doc/files/getactorangularvelocitylocal.txt new file mode 100644 index 0000000..d090d9a --- /dev/null +++ b/doc/files/getactorangularvelocitylocal.txt @@ -0,0 +1,4 @@ +#title getActorAngularVelocityLocal [RCBasic Doc] +#header sub getActorAngularVelocityLocal( actor, ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/getactoranimationspeed.txt b/doc/files/getactoranimationspeed.txt new file mode 100644 index 0000000..f9f217d --- /dev/null +++ b/doc/files/getactoranimationspeed.txt @@ -0,0 +1,4 @@ +#title GetActorAnimationSpeed [RCBasic Doc] +#header function GetActorAnimationSpeed( actor ) + + diff --git a/doc/files/getactorautoculling.txt b/doc/files/getactorautoculling.txt new file mode 100644 index 0000000..7f47303 --- /dev/null +++ b/doc/files/getactorautoculling.txt @@ -0,0 +1,4 @@ +#title GetActorAutoCulling [RCBasic Doc] +#header function GetActorAutoCulling( actor ) + + diff --git a/doc/files/getactorcollision.txt b/doc/files/getactorcollision.txt new file mode 100644 index 0000000..194b481 --- /dev/null +++ b/doc/files/getactorcollision.txt @@ -0,0 +1,4 @@ +#title GetActorCollision [RCBasic Doc] +#header function GetActorCollision(actor1, actor2) + + diff --git a/doc/files/getactorcollisionshape.txt b/doc/files/getactorcollisionshape.txt new file mode 100644 index 0000000..dda6521 --- /dev/null +++ b/doc/files/getactorcollisionshape.txt @@ -0,0 +1,4 @@ +#title GetActorCollisionShape [RCBasic Doc] +#header function GetActorCollisionShape(actor) + + diff --git a/doc/files/getactorcomposition.txt b/doc/files/getactorcomposition.txt new file mode 100644 index 0000000..9977fb6 --- /dev/null +++ b/doc/files/getactorcomposition.txt @@ -0,0 +1,4 @@ +#title getActorCOMPosition [RCBasic Doc] +#header sub getActorCOMPosition( actor, ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/getactorcurrentframe.txt b/doc/files/getactorcurrentframe.txt new file mode 100644 index 0000000..5f8183d --- /dev/null +++ b/doc/files/getactorcurrentframe.txt @@ -0,0 +1,4 @@ +#title GetActorCurrentFrame [RCBasic Doc] +#header function GetActorCurrentFrame( actor ) + + diff --git a/doc/files/getactorendframe.txt b/doc/files/getactorendframe.txt new file mode 100644 index 0000000..abc424a --- /dev/null +++ b/doc/files/getactorendframe.txt @@ -0,0 +1,4 @@ +#title GetActorEndFrame [RCBasic Doc] +#header function GetActorEndFrame( actor ) + + diff --git a/doc/files/getactorgravity.txt b/doc/files/getactorgravity.txt new file mode 100644 index 0000000..dc3d015 --- /dev/null +++ b/doc/files/getactorgravity.txt @@ -0,0 +1,4 @@ +#title GetActorGravity [RCBasic Doc] +#header sub GetActorGravity( actor, ByRef x, ByRef y, ByRef z ) + + diff --git a/doc/files/getactorinverseinertiadiaglocal.txt b/doc/files/getactorinverseinertiadiaglocal.txt new file mode 100644 index 0000000..2d5d1fb --- /dev/null +++ b/doc/files/getactorinverseinertiadiaglocal.txt @@ -0,0 +1,4 @@ +#title getActorInverseInertiaDiagLocal [RCBasic Doc] +#header sub getActorInverseInertiaDiagLocal( actor, ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/getactorinversemass.txt b/doc/files/getactorinversemass.txt new file mode 100644 index 0000000..a24daec --- /dev/null +++ b/doc/files/getactorinversemass.txt @@ -0,0 +1,4 @@ +#title getActorInverseMass [RCBasic Doc] +#header function getActorInverseMass( actor) + + diff --git a/doc/files/getactorlineardamping.txt b/doc/files/getactorlineardamping.txt new file mode 100644 index 0000000..21563a6 --- /dev/null +++ b/doc/files/getactorlineardamping.txt @@ -0,0 +1,4 @@ +#title getActorLinearDamping [RCBasic Doc] +#header function getActorLinearDamping( actor) + + diff --git a/doc/files/getactorlinearfactor.txt b/doc/files/getactorlinearfactor.txt new file mode 100644 index 0000000..52654ea --- /dev/null +++ b/doc/files/getactorlinearfactor.txt @@ -0,0 +1,4 @@ +#title getActorLinearFactor [RCBasic Doc] +#header sub getActorLinearFactor( actor, ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/getactorlinearsleepthreshold.txt b/doc/files/getactorlinearsleepthreshold.txt new file mode 100644 index 0000000..946fa6c --- /dev/null +++ b/doc/files/getactorlinearsleepthreshold.txt @@ -0,0 +1,4 @@ +#title getActorLinearSleepThreshold [RCBasic Doc] +#header function getActorLinearSleepThreshold( actor) + + diff --git a/doc/files/getactorlinearvelocity.txt b/doc/files/getactorlinearvelocity.txt new file mode 100644 index 0000000..414a5f4 --- /dev/null +++ b/doc/files/getactorlinearvelocity.txt @@ -0,0 +1,4 @@ +#title getActorLinearVelocity [RCBasic Doc] +#header sub getActorLinearVelocity( actor, ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/getactorlinearvelocitylocal.txt b/doc/files/getactorlinearvelocitylocal.txt new file mode 100644 index 0000000..f44d509 --- /dev/null +++ b/doc/files/getactorlinearvelocitylocal.txt @@ -0,0 +1,4 @@ +#title getActorLinearVelocityLocal [RCBasic Doc] +#header sub getActorLinearVelocityLocal( actor, ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/getactorlocalinertia.txt b/doc/files/getactorlocalinertia.txt new file mode 100644 index 0000000..1b5c7e9 --- /dev/null +++ b/doc/files/getactorlocalinertia.txt @@ -0,0 +1,4 @@ +#title getActorLocalInertia [RCBasic Doc] +#header sub getActorLocalInertia( actor, ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/getactorlocalpointvelocity.txt b/doc/files/getactorlocalpointvelocity.txt new file mode 100644 index 0000000..8305998 --- /dev/null +++ b/doc/files/getactorlocalpointvelocity.txt @@ -0,0 +1,4 @@ +#title getActorLocalPointVelocity [RCBasic Doc] +#header sub getActorLocalPointVelocity( actor, rel_x, rel_y, rel_z, ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/getactormaterial.txt b/doc/files/getactormaterial.txt new file mode 100644 index 0000000..40e4367 --- /dev/null +++ b/doc/files/getactormaterial.txt @@ -0,0 +1,4 @@ +#title getActorMaterial [RCBasic Doc] +#header function getActorMaterial( actor, material_num) + + diff --git a/doc/files/getactormaterialcount.txt b/doc/files/getactormaterialcount.txt new file mode 100644 index 0000000..757fd4b --- /dev/null +++ b/doc/files/getactormaterialcount.txt @@ -0,0 +1,4 @@ +#title getActorMaterialCount [RCBasic Doc] +#header function getActorMaterialCount( actor) + + diff --git a/doc/files/getactormaterialflag.txt b/doc/files/getactormaterialflag.txt new file mode 100644 index 0000000..52561c8 --- /dev/null +++ b/doc/files/getactormaterialflag.txt @@ -0,0 +1,4 @@ +#title getActorMaterialFlag [RCBasic Doc] +#header function getActorMaterialFlag( actor, material, flag) + + diff --git a/doc/files/getactormaterialtype.txt b/doc/files/getactormaterialtype.txt new file mode 100644 index 0000000..ffff942 --- /dev/null +++ b/doc/files/getactormaterialtype.txt @@ -0,0 +1,4 @@ +#title getActorMaterialType [RCBasic Doc] +#header function getActorMaterialType( actor, material) + + diff --git a/doc/files/getactorposition.txt b/doc/files/getactorposition.txt new file mode 100644 index 0000000..937ae82 --- /dev/null +++ b/doc/files/getactorposition.txt @@ -0,0 +1,4 @@ +#title GetActorPosition [RCBasic Doc] +#header sub GetActorPosition( actor, ByRef x, ByRef y, ByRef z ) + + diff --git a/doc/files/getactorrotation.txt b/doc/files/getactorrotation.txt new file mode 100644 index 0000000..1239120 --- /dev/null +++ b/doc/files/getactorrotation.txt @@ -0,0 +1,4 @@ +#title GetActorRotation [RCBasic Doc] +#header sub GetActorRotation( actor, ByRef x, ByRef y, ByRef z ) + + diff --git a/doc/files/getactorrotationq.txt b/doc/files/getactorrotationq.txt new file mode 100644 index 0000000..81b4e3d --- /dev/null +++ b/doc/files/getactorrotationq.txt @@ -0,0 +1,4 @@ +#title getActorRotationQ [RCBasic Doc] +#header sub getActorRotationQ( actor, ByRef x, ByRef y, ByRef z, ByRef w) + + diff --git a/doc/files/getactorscale.txt b/doc/files/getactorscale.txt new file mode 100644 index 0000000..0c30791 --- /dev/null +++ b/doc/files/getactorscale.txt @@ -0,0 +1,4 @@ +#title GetActorScale [RCBasic Doc] +#header sub GetActorScale( actor, ByRef x, ByRef y, ByRef z ) + + diff --git a/doc/files/getactorstartframe.txt b/doc/files/getactorstartframe.txt new file mode 100644 index 0000000..72748f5 --- /dev/null +++ b/doc/files/getactorstartframe.txt @@ -0,0 +1,4 @@ +#title GetActorStartFrame [RCBasic Doc] +#header function GetActorStartFrame( actor ) + + diff --git a/doc/files/getactortotalforce.txt b/doc/files/getactortotalforce.txt new file mode 100644 index 0000000..b48a59f --- /dev/null +++ b/doc/files/getactortotalforce.txt @@ -0,0 +1,4 @@ +#title getActorTotalForce [RCBasic Doc] +#header sub getActorTotalForce( actor, ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/getactortotaltorque.txt b/doc/files/getactortotaltorque.txt new file mode 100644 index 0000000..9e64af4 --- /dev/null +++ b/doc/files/getactortotaltorque.txt @@ -0,0 +1,4 @@ +#title getActorTotalTorque [RCBasic Doc] +#header sub getActorTotalTorque( actor, ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/getactortransform.txt b/doc/files/getactortransform.txt new file mode 100644 index 0000000..49805f1 --- /dev/null +++ b/doc/files/getactortransform.txt @@ -0,0 +1,4 @@ +#title GetActorTransform [RCBasic Doc] +#header sub GetActorTransform( actor, matrix ) + + diff --git a/doc/files/getactortransitiontime.txt b/doc/files/getactortransitiontime.txt new file mode 100644 index 0000000..7466040 --- /dev/null +++ b/doc/files/getactortransitiontime.txt @@ -0,0 +1,4 @@ +#title GetActorTransitionTime [RCBasic Doc] +#header function GetActorTransitionTime( actor ) + + diff --git a/doc/files/getbilinearfilter.txt b/doc/files/getbilinearfilter.txt new file mode 100644 index 0000000..b2231d1 --- /dev/null +++ b/doc/files/getbilinearfilter.txt @@ -0,0 +1,4 @@ +#title getBilinearFilter [RCBasic Doc] +#header function getBilinearFilter() + + diff --git a/doc/files/getblendmode.txt b/doc/files/getblendmode.txt new file mode 100644 index 0000000..f6d47ca --- /dev/null +++ b/doc/files/getblendmode.txt @@ -0,0 +1,4 @@ +#title GetBlendMode [RCBasic Doc] +#header function ImageBlendMode(slot) + + diff --git a/doc/files/getcameraaspectratio.txt b/doc/files/getcameraaspectratio.txt new file mode 100644 index 0000000..9afda9c --- /dev/null +++ b/doc/files/getcameraaspectratio.txt @@ -0,0 +1,4 @@ +#title GetCameraAspectRatio [RCBasic Doc] +#header function GetCameraAspectRatio( ) + + diff --git a/doc/files/getcamerafarvalue.txt b/doc/files/getcamerafarvalue.txt new file mode 100644 index 0000000..c886428 --- /dev/null +++ b/doc/files/getcamerafarvalue.txt @@ -0,0 +1,4 @@ +#title GetCameraFarValue [RCBasic Doc] +#header function GetCameraFarValue( ) + + diff --git a/doc/files/getcamerafov.txt b/doc/files/getcamerafov.txt new file mode 100644 index 0000000..224f298 --- /dev/null +++ b/doc/files/getcamerafov.txt @@ -0,0 +1,4 @@ +#title GetCameraFOV [RCBasic Doc] +#header function GetCameraFOV( ) + + diff --git a/doc/files/getcameranearvalue.txt b/doc/files/getcameranearvalue.txt new file mode 100644 index 0000000..f0db708 --- /dev/null +++ b/doc/files/getcameranearvalue.txt @@ -0,0 +1,4 @@ +#title GetCameraNearValue [RCBasic Doc] +#header function GetCameraNearValue( ) + + diff --git a/doc/files/getcameraposition.txt b/doc/files/getcameraposition.txt new file mode 100644 index 0000000..b6b38be --- /dev/null +++ b/doc/files/getcameraposition.txt @@ -0,0 +1,4 @@ +#title GetCameraPosition [RCBasic Doc] +#header sub GetCameraPosition(ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/getcamerarotation.txt b/doc/files/getcamerarotation.txt new file mode 100644 index 0000000..127cd88 --- /dev/null +++ b/doc/files/getcamerarotation.txt @@ -0,0 +1,4 @@ +#title GetCameraRotation [RCBasic Doc] +#header sub GetCameraRotation(ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/getcanvasalpha.txt b/doc/files/getcanvasalpha.txt new file mode 100644 index 0000000..04b92ed --- /dev/null +++ b/doc/files/getcanvasalpha.txt @@ -0,0 +1,4 @@ +#title GetCanvasAlpha [RCBasic Doc] +#header function CanvasAlpha(c_num) + + diff --git a/doc/files/getcanvascolormod.txt b/doc/files/getcanvascolormod.txt new file mode 100644 index 0000000..ccd1489 --- /dev/null +++ b/doc/files/getcanvascolormod.txt @@ -0,0 +1,4 @@ +#title GetCanvasColorMod [RCBasic Doc] +#header function CanvasColorMod(c_num) + + diff --git a/doc/files/getcanvasoffset.txt b/doc/files/getcanvasoffset.txt new file mode 100644 index 0000000..2d21688 --- /dev/null +++ b/doc/files/getcanvasoffset.txt @@ -0,0 +1,4 @@ +#title GetCanvasOffset [RCBasic Doc] +#header sub GetCanvasOffset(c_num, byref x, byref y) + + diff --git a/doc/files/getcanvassize.txt b/doc/files/getcanvassize.txt new file mode 100644 index 0000000..5e5a54f --- /dev/null +++ b/doc/files/getcanvassize.txt @@ -0,0 +1,4 @@ +#title GetCanvasSize [RCBasic Doc] +#header sub GetCanvasSize(c_num, byref w, byref h) + + diff --git a/doc/files/getcanvasviewport.txt b/doc/files/getcanvasviewport.txt new file mode 100644 index 0000000..4226d0b --- /dev/null +++ b/doc/files/getcanvasviewport.txt @@ -0,0 +1,4 @@ +#title GetCanvasViewport [RCBasic Doc] +#header sub GetCanvasViewport(c_num, byref x, byref y, byref w, byref h) + + diff --git a/doc/files/getcanvasz.txt b/doc/files/getcanvasz.txt new file mode 100644 index 0000000..9314a95 --- /dev/null +++ b/doc/files/getcanvasz.txt @@ -0,0 +1,4 @@ +#title GetCanvasZ [RCBasic Doc] +#header function CanvasZ(c_num) + + diff --git a/doc/files/getchannelvolume.txt b/doc/files/getchannelvolume.txt new file mode 100644 index 0000000..2903365 --- /dev/null +++ b/doc/files/getchannelvolume.txt @@ -0,0 +1,4 @@ +#title GetChannelVolume [RCBasic Doc] +#header function ChannelVolume(channel) + + diff --git a/doc/files/getcirclelineintersection.txt b/doc/files/getcirclelineintersection.txt new file mode 100644 index 0000000..590b29d --- /dev/null +++ b/doc/files/getcirclelineintersection.txt @@ -0,0 +1,4 @@ +#title GetCircleLineIntersection [RCBasic Doc] +#header function GetCircleLineIntersection(circle_x, circle_y, radius, x1, y1, x2, y2, ByRef ix1, ByRef iy1, ByRef ix2, ByRef iy2) + + diff --git a/doc/files/getclipboardtext.txt b/doc/files/getclipboardtext.txt new file mode 100644 index 0000000..c587697 --- /dev/null +++ b/doc/files/getclipboardtext.txt @@ -0,0 +1,4 @@ +#title GetClipboardText$ [RCBasic Doc] +#header function ClipboardText$() + + diff --git a/doc/files/getconstraintactora.txt b/doc/files/getconstraintactora.txt new file mode 100644 index 0000000..1bee2c2 --- /dev/null +++ b/doc/files/getconstraintactora.txt @@ -0,0 +1,4 @@ +#title getConstraintActorA [RCBasic Doc] +#header function getConstraintActorA( constraint_id) + + diff --git a/doc/files/getconstraintactorb.txt b/doc/files/getconstraintactorb.txt new file mode 100644 index 0000000..46bebe2 --- /dev/null +++ b/doc/files/getconstraintactorb.txt @@ -0,0 +1,4 @@ +#title getConstraintActorB [RCBasic Doc] +#header function getConstraintActorB( constraint_id) + + diff --git a/doc/files/getconstraintaframe.txt b/doc/files/getconstraintaframe.txt new file mode 100644 index 0000000..8de1538 --- /dev/null +++ b/doc/files/getconstraintaframe.txt @@ -0,0 +1,4 @@ +#title getConstraintAFrame [RCBasic Doc] +#header function getConstraintAFrame( constraint_id, mA) + + diff --git a/doc/files/getconstraintanchora.txt b/doc/files/getconstraintanchora.txt new file mode 100644 index 0000000..d14b775 --- /dev/null +++ b/doc/files/getconstraintanchora.txt @@ -0,0 +1,4 @@ +#title getConstraintAnchorA [RCBasic Doc] +#header sub getConstraintAnchorA( constraint_id, ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/getconstraintanchorb.txt b/doc/files/getconstraintanchorb.txt new file mode 100644 index 0000000..bc26079 --- /dev/null +++ b/doc/files/getconstraintanchorb.txt @@ -0,0 +1,4 @@ +#title getConstraintAnchorB [RCBasic Doc] +#header sub getConstraintAnchorB( constraint_id, ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/getconstraintangdepth.txt b/doc/files/getconstraintangdepth.txt new file mode 100644 index 0000000..08d3090 --- /dev/null +++ b/doc/files/getconstraintangdepth.txt @@ -0,0 +1,4 @@ +#title getConstraintAngDepth [RCBasic Doc] +#header function getConstraintAngDepth( constraint_id) + + diff --git a/doc/files/getconstraintanglepoint.txt b/doc/files/getconstraintanglepoint.txt new file mode 100644 index 0000000..b0fc5db --- /dev/null +++ b/doc/files/getconstraintanglepoint.txt @@ -0,0 +1,4 @@ +#title getConstraintAnglePoint [RCBasic Doc] +#header sub getConstraintAnglePoint( constraint_id, angle, c_len, ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/getconstraintangularonly.txt b/doc/files/getconstraintangularonly.txt new file mode 100644 index 0000000..3e57409 --- /dev/null +++ b/doc/files/getconstraintangularonly.txt @@ -0,0 +1,4 @@ +#title getConstraintAngularOnly [RCBasic Doc] +#header function getConstraintAngularOnly( constraint_id) + + diff --git a/doc/files/getconstraintangularpos.txt b/doc/files/getconstraintangularpos.txt new file mode 100644 index 0000000..660b04a --- /dev/null +++ b/doc/files/getconstraintangularpos.txt @@ -0,0 +1,4 @@ +#title getConstraintAngularPos [RCBasic Doc] +#header function getConstraintAngularPos( constraint_id) + + diff --git a/doc/files/getconstraintappliedimpulse.txt b/doc/files/getconstraintappliedimpulse.txt new file mode 100644 index 0000000..180117a --- /dev/null +++ b/doc/files/getconstraintappliedimpulse.txt @@ -0,0 +1,4 @@ +#title getConstraintAppliedImpulse [RCBasic Doc] +#header function getConstraintAppliedImpulse( constraint_id) + + diff --git a/doc/files/getconstraintbframe.txt b/doc/files/getconstraintbframe.txt new file mode 100644 index 0000000..9a889c3 --- /dev/null +++ b/doc/files/getconstraintbframe.txt @@ -0,0 +1,4 @@ +#title getConstraintBFrame [RCBasic Doc] +#header function getConstraintBFrame( constraint_id, mA) + + diff --git a/doc/files/getconstraintbiasfactor.txt b/doc/files/getconstraintbiasfactor.txt new file mode 100644 index 0000000..c03fb4e --- /dev/null +++ b/doc/files/getconstraintbiasfactor.txt @@ -0,0 +1,4 @@ +#title getConstraintBiasFactor [RCBasic Doc] +#header function getConstraintBiasFactor( constraint_id) + + diff --git a/doc/files/getconstraintbreakingimpulsethreshold.txt b/doc/files/getconstraintbreakingimpulsethreshold.txt new file mode 100644 index 0000000..48f058a --- /dev/null +++ b/doc/files/getconstraintbreakingimpulsethreshold.txt @@ -0,0 +1,4 @@ +#title getConstraintBreakingImpulseThreshold [RCBasic Doc] +#header function getConstraintBreakingImpulseThreshold( constraint_id) + + diff --git a/doc/files/getconstraintdamping.txt b/doc/files/getconstraintdamping.txt new file mode 100644 index 0000000..5bcacaf --- /dev/null +++ b/doc/files/getconstraintdamping.txt @@ -0,0 +1,4 @@ +#title getConstraintDamping [RCBasic Doc] +#header function getConstraintDamping( constraint_id) + + diff --git a/doc/files/getconstraintdampingdirang.txt b/doc/files/getconstraintdampingdirang.txt new file mode 100644 index 0000000..ec7455d --- /dev/null +++ b/doc/files/getconstraintdampingdirang.txt @@ -0,0 +1,4 @@ +#title getConstraintDampingDirAng [RCBasic Doc] +#header function getConstraintDampingDirAng( constraint_id) + + diff --git a/doc/files/getconstraintdampingdirlin.txt b/doc/files/getconstraintdampingdirlin.txt new file mode 100644 index 0000000..3be12ab --- /dev/null +++ b/doc/files/getconstraintdampingdirlin.txt @@ -0,0 +1,4 @@ +#title getConstraintDampingDirLin [RCBasic Doc] +#header function getConstraintDampingDirLin( constraint_id) + + diff --git a/doc/files/getconstraintdampinglimang.txt b/doc/files/getconstraintdampinglimang.txt new file mode 100644 index 0000000..26e8479 --- /dev/null +++ b/doc/files/getconstraintdampinglimang.txt @@ -0,0 +1,4 @@ +#title getConstraintDampingLimAng [RCBasic Doc] +#header function getConstraintDampingLimAng( constraint_id) + + diff --git a/doc/files/getconstraintdampinglimlin.txt b/doc/files/getconstraintdampinglimlin.txt new file mode 100644 index 0000000..be91d76 --- /dev/null +++ b/doc/files/getconstraintdampinglimlin.txt @@ -0,0 +1,4 @@ +#title getConstraintDampingLimLin [RCBasic Doc] +#header function getConstraintDampingLimLin( constraint_id) + + diff --git a/doc/files/getconstraintdampingorthoang.txt b/doc/files/getconstraintdampingorthoang.txt new file mode 100644 index 0000000..bfd17bb --- /dev/null +++ b/doc/files/getconstraintdampingorthoang.txt @@ -0,0 +1,4 @@ +#title getConstraintDampingOrthoAng [RCBasic Doc] +#header function getConstraintDampingOrthoAng( constraint_id) + + diff --git a/doc/files/getconstraintdampingortholin.txt b/doc/files/getconstraintdampingortholin.txt new file mode 100644 index 0000000..30a043d --- /dev/null +++ b/doc/files/getconstraintdampingortholin.txt @@ -0,0 +1,4 @@ +#title getConstraintDampingOrthoLin [RCBasic Doc] +#header function getConstraintDampingOrthoLin( constraint_id) + + diff --git a/doc/files/getconstraintfixedactor.txt b/doc/files/getconstraintfixedactor.txt new file mode 100644 index 0000000..57e4599 --- /dev/null +++ b/doc/files/getconstraintfixedactor.txt @@ -0,0 +1,4 @@ +#title getConstraintFixedActor [RCBasic Doc] +#header function getConstraintFixedActor( constraint_id) + + diff --git a/doc/files/getconstraintfixthresh.txt b/doc/files/getconstraintfixthresh.txt new file mode 100644 index 0000000..bbd8049 --- /dev/null +++ b/doc/files/getconstraintfixthresh.txt @@ -0,0 +1,4 @@ +#title getConstraintFixThresh [RCBasic Doc] +#header function getConstraintFixThresh( constraint_id) + + diff --git a/doc/files/getconstraintframeoffseta.txt b/doc/files/getconstraintframeoffseta.txt new file mode 100644 index 0000000..c6fea6a --- /dev/null +++ b/doc/files/getconstraintframeoffseta.txt @@ -0,0 +1,4 @@ +#title getConstraintFrameOffsetA [RCBasic Doc] +#header sub getConstraintFrameOffsetA( constraint_id, ByRef x, ByRef y, ByRef z, ByRef rx, ByRef ry, ByRef rz) + + diff --git a/doc/files/getconstraintframeoffsetb.txt b/doc/files/getconstraintframeoffsetb.txt new file mode 100644 index 0000000..01130ad --- /dev/null +++ b/doc/files/getconstraintframeoffsetb.txt @@ -0,0 +1,4 @@ +#title getConstraintFrameOffsetB [RCBasic Doc] +#header sub getConstraintFrameOffsetB( constraint_id, ByRef x, ByRef y, ByRef z, ByRef rx, ByRef ry, ByRef rz) + + diff --git a/doc/files/getconstraintlimit.txt b/doc/files/getconstraintlimit.txt new file mode 100644 index 0000000..608577e --- /dev/null +++ b/doc/files/getconstraintlimit.txt @@ -0,0 +1,4 @@ +#title getConstraintLimit [RCBasic Doc] +#header function getConstraintLimit( constraint_id, limit_index) + + diff --git a/doc/files/getconstraintlimitbiasfactor.txt b/doc/files/getconstraintlimitbiasfactor.txt new file mode 100644 index 0000000..8abe447 --- /dev/null +++ b/doc/files/getconstraintlimitbiasfactor.txt @@ -0,0 +1,4 @@ +#title getConstraintLimitBiasFactor [RCBasic Doc] +#header function getConstraintLimitBiasFactor( constraint_id) + + diff --git a/doc/files/getconstraintlimitsign.txt b/doc/files/getconstraintlimitsign.txt new file mode 100644 index 0000000..d96d0fd --- /dev/null +++ b/doc/files/getconstraintlimitsign.txt @@ -0,0 +1,4 @@ +#title getConstraintLimitSign [RCBasic Doc] +#header function getConstraintLimitSign( constraint_id) + + diff --git a/doc/files/getconstraintlimitsoftness.txt b/doc/files/getconstraintlimitsoftness.txt new file mode 100644 index 0000000..4a653d5 --- /dev/null +++ b/doc/files/getconstraintlimitsoftness.txt @@ -0,0 +1,4 @@ +#title getConstraintLimitSoftness [RCBasic Doc] +#header function getConstraintLimitSoftness( constraint_id) + + diff --git a/doc/files/getconstraintlindepth.txt b/doc/files/getconstraintlindepth.txt new file mode 100644 index 0000000..7adf880 --- /dev/null +++ b/doc/files/getconstraintlindepth.txt @@ -0,0 +1,4 @@ +#title getConstraintLinDepth [RCBasic Doc] +#header function getConstraintLinDepth( constraint_id) + + diff --git a/doc/files/getconstraintlinearpos.txt b/doc/files/getconstraintlinearpos.txt new file mode 100644 index 0000000..0af783a --- /dev/null +++ b/doc/files/getconstraintlinearpos.txt @@ -0,0 +1,4 @@ +#title getConstraintLinearPos [RCBasic Doc] +#header function getConstraintLinearPos( constraint_id) + + diff --git a/doc/files/getconstraintloweranglimit.txt b/doc/files/getconstraintloweranglimit.txt new file mode 100644 index 0000000..394bf21 --- /dev/null +++ b/doc/files/getconstraintloweranglimit.txt @@ -0,0 +1,4 @@ +#title getConstraintLowerAngLimit [RCBasic Doc] +#header function getConstraintLowerAngLimit( constraint_id) + + diff --git a/doc/files/getconstraintlowerlinlimit.txt b/doc/files/getconstraintlowerlinlimit.txt new file mode 100644 index 0000000..e35a996 --- /dev/null +++ b/doc/files/getconstraintlowerlinlimit.txt @@ -0,0 +1,4 @@ +#title getConstraintLowerLinLimit [RCBasic Doc] +#header function getConstraintLowerLinLimit( constraint_id) + + diff --git a/doc/files/getconstraintpivota.txt b/doc/files/getconstraintpivota.txt new file mode 100644 index 0000000..7f3f56f --- /dev/null +++ b/doc/files/getconstraintpivota.txt @@ -0,0 +1,4 @@ +#title getConstraintPivotA [RCBasic Doc] +#header sub getConstraintPivotA( constraint_id, ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/getconstraintpivotb.txt b/doc/files/getconstraintpivotb.txt new file mode 100644 index 0000000..7426ede --- /dev/null +++ b/doc/files/getconstraintpivotb.txt @@ -0,0 +1,4 @@ +#title getConstraintPivotB [RCBasic Doc] +#header sub getConstraintPivotB( constraint_id, ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/getconstraintrestitutiondirang.txt b/doc/files/getconstraintrestitutiondirang.txt new file mode 100644 index 0000000..07920a4 --- /dev/null +++ b/doc/files/getconstraintrestitutiondirang.txt @@ -0,0 +1,4 @@ +#title getConstraintRestitutionDirAng [RCBasic Doc] +#header function getConstraintRestitutionDirAng( constraint_id) + + diff --git a/doc/files/getconstraintrestitutiondirlin.txt b/doc/files/getconstraintrestitutiondirlin.txt new file mode 100644 index 0000000..c8e4226 --- /dev/null +++ b/doc/files/getconstraintrestitutiondirlin.txt @@ -0,0 +1,4 @@ +#title getConstraintRestitutionDirLin [RCBasic Doc] +#header function getConstraintRestitutionDirLin( constraint_id) + + diff --git a/doc/files/getconstraintrestitutionlimang.txt b/doc/files/getconstraintrestitutionlimang.txt new file mode 100644 index 0000000..3f3a8c5 --- /dev/null +++ b/doc/files/getconstraintrestitutionlimang.txt @@ -0,0 +1,4 @@ +#title getConstraintRestitutionLimAng [RCBasic Doc] +#header function getConstraintRestitutionLimAng( constraint_id) + + diff --git a/doc/files/getconstraintrestitutionlimlin.txt b/doc/files/getconstraintrestitutionlimlin.txt new file mode 100644 index 0000000..33e665c --- /dev/null +++ b/doc/files/getconstraintrestitutionlimlin.txt @@ -0,0 +1,4 @@ +#title getConstraintRestitutionLimLin [RCBasic Doc] +#header function getConstraintRestitutionLimLin( constraint_id) + + diff --git a/doc/files/getconstraintrestitutionorthoang.txt b/doc/files/getconstraintrestitutionorthoang.txt new file mode 100644 index 0000000..48e7777 --- /dev/null +++ b/doc/files/getconstraintrestitutionorthoang.txt @@ -0,0 +1,4 @@ +#title getConstraintRestitutionOrthoAng [RCBasic Doc] +#header function getConstraintRestitutionOrthoAng( constraint_id) + + diff --git a/doc/files/getconstraintrestitutionortholin.txt b/doc/files/getconstraintrestitutionortholin.txt new file mode 100644 index 0000000..30f11aa --- /dev/null +++ b/doc/files/getconstraintrestitutionortholin.txt @@ -0,0 +1,4 @@ +#title getConstraintRestitutionOrthoLin [RCBasic Doc] +#header function getConstraintRestitutionOrthoLin( constraint_id) + + diff --git a/doc/files/getconstraintsoftnessdirang.txt b/doc/files/getconstraintsoftnessdirang.txt new file mode 100644 index 0000000..53f473c --- /dev/null +++ b/doc/files/getconstraintsoftnessdirang.txt @@ -0,0 +1,4 @@ +#title getConstraintSoftnessDirAng [RCBasic Doc] +#header function getConstraintSoftnessDirAng( constraint_id) + + diff --git a/doc/files/getconstraintsoftnessdirlin.txt b/doc/files/getconstraintsoftnessdirlin.txt new file mode 100644 index 0000000..62f30bb --- /dev/null +++ b/doc/files/getconstraintsoftnessdirlin.txt @@ -0,0 +1,4 @@ +#title getConstraintSoftnessDirLin [RCBasic Doc] +#header function getConstraintSoftnessDirLin( constraint_id) + + diff --git a/doc/files/getconstraintsoftnesslimang.txt b/doc/files/getconstraintsoftnesslimang.txt new file mode 100644 index 0000000..1640733 --- /dev/null +++ b/doc/files/getconstraintsoftnesslimang.txt @@ -0,0 +1,4 @@ +#title getConstraintSoftnessLimAng [RCBasic Doc] +#header function getConstraintSoftnessLimAng( constraint_id) + + diff --git a/doc/files/getconstraintsoftnesslimlin.txt b/doc/files/getconstraintsoftnesslimlin.txt new file mode 100644 index 0000000..dc2b3b6 --- /dev/null +++ b/doc/files/getconstraintsoftnesslimlin.txt @@ -0,0 +1,4 @@ +#title getConstraintSoftnessLimLin [RCBasic Doc] +#header function getConstraintSoftnessLimLin( constraint_id) + + diff --git a/doc/files/getconstraintsoftnessorthoang.txt b/doc/files/getconstraintsoftnessorthoang.txt new file mode 100644 index 0000000..504afb8 --- /dev/null +++ b/doc/files/getconstraintsoftnessorthoang.txt @@ -0,0 +1,4 @@ +#title getConstraintSoftnessOrthoAng [RCBasic Doc] +#header function getConstraintSoftnessOrthoAng( constraint_id) + + diff --git a/doc/files/getconstraintsoftnessortholin.txt b/doc/files/getconstraintsoftnessortholin.txt new file mode 100644 index 0000000..eceda39 --- /dev/null +++ b/doc/files/getconstraintsoftnessortholin.txt @@ -0,0 +1,4 @@ +#title getConstraintSoftnessOrthoLin [RCBasic Doc] +#header function getConstraintSoftnessOrthoLin( constraint_id) + + diff --git a/doc/files/getconstraintsolveanglimit.txt b/doc/files/getconstraintsolveanglimit.txt new file mode 100644 index 0000000..648e66d --- /dev/null +++ b/doc/files/getconstraintsolveanglimit.txt @@ -0,0 +1,4 @@ +#title getConstraintSolveAngLimit [RCBasic Doc] +#header function getConstraintSolveAngLimit( constraint_id) + + diff --git a/doc/files/getconstraintsolvelimit.txt b/doc/files/getconstraintsolvelimit.txt new file mode 100644 index 0000000..ab40279 --- /dev/null +++ b/doc/files/getconstraintsolvelimit.txt @@ -0,0 +1,4 @@ +#title getConstraintSolveLimit [RCBasic Doc] +#header function getConstraintSolveLimit( constraint_id) + + diff --git a/doc/files/getconstraintsolvelinlimit.txt b/doc/files/getconstraintsolvelinlimit.txt new file mode 100644 index 0000000..8770ab5 --- /dev/null +++ b/doc/files/getconstraintsolvelinlimit.txt @@ -0,0 +1,4 @@ +#title getConstraintSolveLinLimit [RCBasic Doc] +#header function getConstraintSolveLinLimit( constraint_id) + + diff --git a/doc/files/getconstraintsolveriterations.txt b/doc/files/getconstraintsolveriterations.txt new file mode 100644 index 0000000..951060c --- /dev/null +++ b/doc/files/getconstraintsolveriterations.txt @@ -0,0 +1,4 @@ +#title getConstraintSolverIterations [RCBasic Doc] +#header function getConstraintSolverIterations( constraint_id) + + diff --git a/doc/files/getconstraintsolveswinglimit.txt b/doc/files/getconstraintsolveswinglimit.txt new file mode 100644 index 0000000..54941f1 --- /dev/null +++ b/doc/files/getconstraintsolveswinglimit.txt @@ -0,0 +1,4 @@ +#title getConstraintSolveSwingLimit [RCBasic Doc] +#header function getConstraintSolveSwingLimit( constraint_id) + + diff --git a/doc/files/getconstraintsolvetwistlimit.txt b/doc/files/getconstraintsolvetwistlimit.txt new file mode 100644 index 0000000..e1bda1c --- /dev/null +++ b/doc/files/getconstraintsolvetwistlimit.txt @@ -0,0 +1,4 @@ +#title getConstraintSolveTwistLimit [RCBasic Doc] +#header function getConstraintSolveTwistLimit( constraint_id) + + diff --git a/doc/files/getconstraintswingspan1.txt b/doc/files/getconstraintswingspan1.txt new file mode 100644 index 0000000..7d18cd2 --- /dev/null +++ b/doc/files/getconstraintswingspan1.txt @@ -0,0 +1,4 @@ +#title getConstraintSwingSpan1 [RCBasic Doc] +#header function getConstraintSwingSpan1( constraint_id) + + diff --git a/doc/files/getconstraintswingspan2.txt b/doc/files/getconstraintswingspan2.txt new file mode 100644 index 0000000..92e49e5 --- /dev/null +++ b/doc/files/getconstraintswingspan2.txt @@ -0,0 +1,4 @@ +#title getConstraintSwingSpan2 [RCBasic Doc] +#header function getConstraintSwingSpan2( constraint_id) + + diff --git a/doc/files/getconstrainttwistangle.txt b/doc/files/getconstrainttwistangle.txt new file mode 100644 index 0000000..6098a36 --- /dev/null +++ b/doc/files/getconstrainttwistangle.txt @@ -0,0 +1,4 @@ +#title getConstraintTwistAngle [RCBasic Doc] +#header function getConstraintTwistAngle( constraint_id) + + diff --git a/doc/files/getconstrainttwistlimitsign.txt b/doc/files/getconstrainttwistlimitsign.txt new file mode 100644 index 0000000..139ffe8 --- /dev/null +++ b/doc/files/getconstrainttwistlimitsign.txt @@ -0,0 +1,4 @@ +#title getConstraintTwistLimitSign [RCBasic Doc] +#header function getConstraintTwistLimitSign( constraint_id) + + diff --git a/doc/files/getconstrainttwistspan.txt b/doc/files/getconstrainttwistspan.txt new file mode 100644 index 0000000..b9f9a23 --- /dev/null +++ b/doc/files/getconstrainttwistspan.txt @@ -0,0 +1,4 @@ +#title getConstraintTwistSpan [RCBasic Doc] +#header function getConstraintTwistSpan( constraint_id) + + diff --git a/doc/files/getconstraintupperanglimit.txt b/doc/files/getconstraintupperanglimit.txt new file mode 100644 index 0000000..3d891f4 --- /dev/null +++ b/doc/files/getconstraintupperanglimit.txt @@ -0,0 +1,4 @@ +#title getConstraintUpperAngLimit [RCBasic Doc] +#header function getConstraintUpperAngLimit( constraint_id) + + diff --git a/doc/files/getconstraintupperlinlimit.txt b/doc/files/getconstraintupperlinlimit.txt new file mode 100644 index 0000000..e3df5b9 --- /dev/null +++ b/doc/files/getconstraintupperlinlimit.txt @@ -0,0 +1,4 @@ +#title getConstraintUpperLinLimit [RCBasic Doc] +#header function getConstraintUpperLinLimit( constraint_id) + + diff --git a/doc/files/getconstraintuseframeoffset.txt b/doc/files/getconstraintuseframeoffset.txt new file mode 100644 index 0000000..abae60a --- /dev/null +++ b/doc/files/getconstraintuseframeoffset.txt @@ -0,0 +1,4 @@ +#title getConstraintUseFrameOffset [RCBasic Doc] +#header function getConstraintUseFrameOffset( constraint_id) + + diff --git a/doc/files/getdesktopdisplaymode.txt b/doc/files/getdesktopdisplaymode.txt new file mode 100644 index 0000000..6bb36b9 --- /dev/null +++ b/doc/files/getdesktopdisplaymode.txt @@ -0,0 +1,4 @@ +#title GetDesktopDisplayMode [RCBasic Doc] +#header Sub GetDesktopDisplayMode(index, ByRef w, ByRef h, ByRef freq) + + diff --git a/doc/files/getglobalmouse.txt b/doc/files/getglobalmouse.txt new file mode 100644 index 0000000..7c8a923 --- /dev/null +++ b/doc/files/getglobalmouse.txt @@ -0,0 +1,4 @@ +#title GetGlobalMouse [RCBasic Doc] +#header sub GetGlobalMouse(ByRef x, ByRef y, ByRef mb1, ByRef mb2, ByRef mb3) + + diff --git a/doc/files/getgravity3d.txt b/doc/files/getgravity3d.txt new file mode 100644 index 0000000..2878e14 --- /dev/null +++ b/doc/files/getgravity3d.txt @@ -0,0 +1,4 @@ +#title GetGravity3D [RCBasic Doc] +#header sub GetGravity3D(ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/getgyro.txt b/doc/files/getgyro.txt new file mode 100644 index 0000000..34b13c8 --- /dev/null +++ b/doc/files/getgyro.txt @@ -0,0 +1,4 @@ +#title GetGyro [RCBasic Doc] +#header sub GetGyro(gyro_num, ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/gethingeangle.txt b/doc/files/gethingeangle.txt new file mode 100644 index 0000000..5d33ab8 --- /dev/null +++ b/doc/files/gethingeangle.txt @@ -0,0 +1,4 @@ +#title getHingeAngle [RCBasic Doc] +#header function getHingeAngle( constraint_id) + + diff --git a/doc/files/gethingeangleex.txt b/doc/files/gethingeangleex.txt new file mode 100644 index 0000000..ce3fa17 --- /dev/null +++ b/doc/files/gethingeangleex.txt @@ -0,0 +1,4 @@ +#title getHingeAngleEx [RCBasic Doc] +#header function getHingeAngleEx( constraint_id, t_matrixA, t_matrixB) + + diff --git a/doc/files/gethingesolvelimit.txt b/doc/files/gethingesolvelimit.txt new file mode 100644 index 0000000..39368ae --- /dev/null +++ b/doc/files/gethingesolvelimit.txt @@ -0,0 +1,4 @@ +#title getHingeSolveLimit [RCBasic Doc] +#header function getHingeSolveLimit( constraint_id) + + diff --git a/doc/files/getimagealpha.txt b/doc/files/getimagealpha.txt new file mode 100644 index 0000000..15ac64d --- /dev/null +++ b/doc/files/getimagealpha.txt @@ -0,0 +1,4 @@ +#title GetImageAlpha [RCBasic Doc] +#header function ImageAlpha(slot) + + diff --git a/doc/files/getimagebuffer.txt b/doc/files/getimagebuffer.txt new file mode 100644 index 0000000..89f0571 --- /dev/null +++ b/doc/files/getimagebuffer.txt @@ -0,0 +1,4 @@ +#title getImageBuffer [RCBasic Doc] +#header sub BufferFromImage(slot, byref buffer) + + diff --git a/doc/files/getimagecolormod.txt b/doc/files/getimagecolormod.txt new file mode 100644 index 0000000..a9cc26f --- /dev/null +++ b/doc/files/getimagecolormod.txt @@ -0,0 +1,4 @@ +#title GetImageColorMod [RCBasic Doc] +#header function ImageColorMod(slot) + + diff --git a/doc/files/getimagesize.txt b/doc/files/getimagesize.txt new file mode 100644 index 0000000..8cccefa --- /dev/null +++ b/doc/files/getimagesize.txt @@ -0,0 +1,4 @@ +#title GetImageSize [RCBasic Doc] +#header sub GetImageSize(slot, byref w, byref h) + + diff --git a/doc/files/getjoytrackball.txt b/doc/files/getjoytrackball.txt new file mode 100644 index 0000000..45e361a --- /dev/null +++ b/doc/files/getjoytrackball.txt @@ -0,0 +1,4 @@ +#title GetJoyTrackBall [RCBasic Doc] +#header sub GetJoyTrackBall(joy_num, ball, byref dx, byref dy) + + diff --git a/doc/files/getlightambientcolor.txt b/doc/files/getlightambientcolor.txt new file mode 100644 index 0000000..11744f5 --- /dev/null +++ b/doc/files/getlightambientcolor.txt @@ -0,0 +1,4 @@ +#title GetLightAmbientColor [RCBasic Doc] +#header function GetLightAmbientColor( actor ) + + diff --git a/doc/files/getlightattenuation.txt b/doc/files/getlightattenuation.txt new file mode 100644 index 0000000..6142f0e --- /dev/null +++ b/doc/files/getlightattenuation.txt @@ -0,0 +1,4 @@ +#title GetLightAttenuation [RCBasic Doc] +#header sub GetLightAttenuation( actor, ByRef constant, ByRef linear, ByRef quadratic) + + diff --git a/doc/files/getlightdiffusecolor.txt b/doc/files/getlightdiffusecolor.txt new file mode 100644 index 0000000..4a300ca --- /dev/null +++ b/doc/files/getlightdiffusecolor.txt @@ -0,0 +1,4 @@ +#title GetLightDiffuseColor [RCBasic Doc] +#header function GetLightDiffuseColor( actor ) + + diff --git a/doc/files/getlightfalloff.txt b/doc/files/getlightfalloff.txt new file mode 100644 index 0000000..0dca414 --- /dev/null +++ b/doc/files/getlightfalloff.txt @@ -0,0 +1,4 @@ +#title GetLightFalloff [RCBasic Doc] +#header function GetLightFalloff( actor ) + + diff --git a/doc/files/getlightinnercone.txt b/doc/files/getlightinnercone.txt new file mode 100644 index 0000000..68af791 --- /dev/null +++ b/doc/files/getlightinnercone.txt @@ -0,0 +1,4 @@ +#title GetLightInnerCone [RCBasic Doc] +#header function GetLightInnerCone( actor ) + + diff --git a/doc/files/getlightoutercone.txt b/doc/files/getlightoutercone.txt new file mode 100644 index 0000000..e75df8d --- /dev/null +++ b/doc/files/getlightoutercone.txt @@ -0,0 +1,4 @@ +#title GetLightOuterCone [RCBasic Doc] +#header function GetLightOuterCone( actor ) + + diff --git a/doc/files/getlightradius.txt b/doc/files/getlightradius.txt new file mode 100644 index 0000000..ec081ad --- /dev/null +++ b/doc/files/getlightradius.txt @@ -0,0 +1,4 @@ +#title getLightRadius [RCBasic Doc] +#header function getLightRadius( actor ) + + diff --git a/doc/files/getlightspecularcolor.txt b/doc/files/getlightspecularcolor.txt new file mode 100644 index 0000000..606295f --- /dev/null +++ b/doc/files/getlightspecularcolor.txt @@ -0,0 +1,4 @@ +#title GetLightSpecularColor [RCBasic Doc] +#header function GetLightSpecularColor( actor ) + + diff --git a/doc/files/getlighttype.txt b/doc/files/getlighttype.txt new file mode 100644 index 0000000..3af04b0 --- /dev/null +++ b/doc/files/getlighttype.txt @@ -0,0 +1,4 @@ +#title getLightType [RCBasic Doc] +#header function getLightType( actor ) + + diff --git a/doc/files/getlimitrelaxationfactor.txt b/doc/files/getlimitrelaxationfactor.txt new file mode 100644 index 0000000..31c6ef9 --- /dev/null +++ b/doc/files/getlimitrelaxationfactor.txt @@ -0,0 +1,4 @@ +#title getLimitRelaxationFactor [RCBasic Doc] +#header function getLimitRelaxationFactor( constraint_id) + + diff --git a/doc/files/getlineintersection.txt b/doc/files/getlineintersection.txt new file mode 100644 index 0000000..f4a988d --- /dev/null +++ b/doc/files/getlineintersection.txt @@ -0,0 +1,4 @@ +#title GetLineIntersection [RCBasic Doc] +#header Function GetLineIntersection(p0_x, p0_y, p1_x, p1_y, p2_x, p2_y, p3_x, p3_y, ByRef i_x, ByRef i_y) + + diff --git a/doc/files/getlineplaneintersection.txt b/doc/files/getlineplaneintersection.txt new file mode 100644 index 0000000..f5fd2d3 --- /dev/null +++ b/doc/files/getlineplaneintersection.txt @@ -0,0 +1,4 @@ +#title GetLinePlaneIntersection [RCBasic Doc] +#header function GetLinePlaneIntersection(ByRef line_point, ByRef line_direction, ByRef plane_point_1, ByRef plane_point_2, ByRef plane_point_3, ByRef intersection) + + diff --git a/doc/files/getmaterialambientcolor.txt b/doc/files/getmaterialambientcolor.txt new file mode 100644 index 0000000..764e1cb --- /dev/null +++ b/doc/files/getmaterialambientcolor.txt @@ -0,0 +1,4 @@ +#title getMaterialAmbientColor [RCBasic Doc] +#header function getMaterialAmbientColor( material_id) + + diff --git a/doc/files/getmaterialantialiasing.txt b/doc/files/getmaterialantialiasing.txt new file mode 100644 index 0000000..d290198 --- /dev/null +++ b/doc/files/getmaterialantialiasing.txt @@ -0,0 +1,4 @@ +#title getMaterialAntiAliasing [RCBasic Doc] +#header function getMaterialAntiAliasing( material_id) + + diff --git a/doc/files/getmaterialbackfaceculling.txt b/doc/files/getmaterialbackfaceculling.txt new file mode 100644 index 0000000..712a6d6 --- /dev/null +++ b/doc/files/getmaterialbackfaceculling.txt @@ -0,0 +1,4 @@ +#title getMaterialBackfaceCulling [RCBasic Doc] +#header function getMaterialBackfaceCulling( material_id) + + diff --git a/doc/files/getmaterialblendfactor.txt b/doc/files/getmaterialblendfactor.txt new file mode 100644 index 0000000..7029210 --- /dev/null +++ b/doc/files/getmaterialblendfactor.txt @@ -0,0 +1,4 @@ +#title getMaterialBlendFactor [RCBasic Doc] +#header function getMaterialBlendFactor( material_id) + + diff --git a/doc/files/getmaterialblendmode.txt b/doc/files/getmaterialblendmode.txt new file mode 100644 index 0000000..125970b --- /dev/null +++ b/doc/files/getmaterialblendmode.txt @@ -0,0 +1,4 @@ +#title getMaterialBlendMode [RCBasic Doc] +#header function getMaterialBlendMode( material_id) + + diff --git a/doc/files/getmaterialcolormask.txt b/doc/files/getmaterialcolormask.txt new file mode 100644 index 0000000..9f9248a --- /dev/null +++ b/doc/files/getmaterialcolormask.txt @@ -0,0 +1,4 @@ +#title getMaterialColorMask [RCBasic Doc] +#header function getMaterialColorMask( material_id) + + diff --git a/doc/files/getmaterialcolormode.txt b/doc/files/getmaterialcolormode.txt new file mode 100644 index 0000000..325aa39 --- /dev/null +++ b/doc/files/getmaterialcolormode.txt @@ -0,0 +1,4 @@ +#title getMaterialColorMode [RCBasic Doc] +#header function getMaterialColorMode( material_id) + + diff --git a/doc/files/getmaterialdiffusecolor.txt b/doc/files/getmaterialdiffusecolor.txt new file mode 100644 index 0000000..18cfae9 --- /dev/null +++ b/doc/files/getmaterialdiffusecolor.txt @@ -0,0 +1,4 @@ +#title getMaterialDiffuseColor [RCBasic Doc] +#header function getMaterialDiffuseColor( material_id) + + diff --git a/doc/files/getmaterialemissivecolor.txt b/doc/files/getmaterialemissivecolor.txt new file mode 100644 index 0000000..0e097c3 --- /dev/null +++ b/doc/files/getmaterialemissivecolor.txt @@ -0,0 +1,4 @@ +#title getMaterialEmissiveColor [RCBasic Doc] +#header function getMaterialEmissiveColor( material_id) + + diff --git a/doc/files/getmaterialflag.txt b/doc/files/getmaterialflag.txt new file mode 100644 index 0000000..1b85f61 --- /dev/null +++ b/doc/files/getmaterialflag.txt @@ -0,0 +1,4 @@ +#title getMaterialFlag [RCBasic Doc] +#header function getMaterialFlag( material_id, material_flag) + + diff --git a/doc/files/getmaterialfog.txt b/doc/files/getmaterialfog.txt new file mode 100644 index 0000000..5c3979c --- /dev/null +++ b/doc/files/getmaterialfog.txt @@ -0,0 +1,4 @@ +#title getMaterialFog [RCBasic Doc] +#header function getMaterialFog( material_id) + + diff --git a/doc/files/getmaterialfrontfaceculling.txt b/doc/files/getmaterialfrontfaceculling.txt new file mode 100644 index 0000000..f2f3f26 --- /dev/null +++ b/doc/files/getmaterialfrontfaceculling.txt @@ -0,0 +1,4 @@ +#title getMaterialFrontfaceCulling [RCBasic Doc] +#header function getMaterialFrontfaceCulling( material_id) + + diff --git a/doc/files/getmaterialshininess.txt b/doc/files/getmaterialshininess.txt new file mode 100644 index 0000000..f6a4d03 --- /dev/null +++ b/doc/files/getmaterialshininess.txt @@ -0,0 +1,4 @@ +#title getMaterialShininess [RCBasic Doc] +#header function getMaterialShininess( material_id) + + diff --git a/doc/files/getmaterialspecularcolor.txt b/doc/files/getmaterialspecularcolor.txt new file mode 100644 index 0000000..1d98a48 --- /dev/null +++ b/doc/files/getmaterialspecularcolor.txt @@ -0,0 +1,4 @@ +#title getMaterialSpecularColor [RCBasic Doc] +#header function getMaterialSpecularColor( material_id) + + diff --git a/doc/files/getmaterialthickness.txt b/doc/files/getmaterialthickness.txt new file mode 100644 index 0000000..a2a6c92 --- /dev/null +++ b/doc/files/getmaterialthickness.txt @@ -0,0 +1,4 @@ +#title getMaterialThickness [RCBasic Doc] +#header function getMaterialThickness( material_id) + + diff --git a/doc/files/getmaterialtype.txt b/doc/files/getmaterialtype.txt new file mode 100644 index 0000000..61737b5 --- /dev/null +++ b/doc/files/getmaterialtype.txt @@ -0,0 +1,4 @@ +#title getMaterialType [RCBasic Doc] +#header function getMaterialType( material_id) + + diff --git a/doc/files/getmatrixrotation.txt b/doc/files/getmatrixrotation.txt new file mode 100644 index 0000000..d12d89e --- /dev/null +++ b/doc/files/getmatrixrotation.txt @@ -0,0 +1,4 @@ +#title GetMatrixRotation [RCBasic Doc] +#header sub GetMatrixRotation( mA, ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/getmatrixscale.txt b/doc/files/getmatrixscale.txt new file mode 100644 index 0000000..e5be064 --- /dev/null +++ b/doc/files/getmatrixscale.txt @@ -0,0 +1,4 @@ +#title GetMatrixScale [RCBasic Doc] +#header sub GetMatrixScale( mA, ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/getmatrixsize.txt b/doc/files/getmatrixsize.txt new file mode 100644 index 0000000..e9fa2d9 --- /dev/null +++ b/doc/files/getmatrixsize.txt @@ -0,0 +1,4 @@ +#title GetMatrixSize [RCBasic Doc] +#header sub GetMatrixSize(mA, ByRef r, ByRef c) + + diff --git a/doc/files/getmatrixtranslation.txt b/doc/files/getmatrixtranslation.txt new file mode 100644 index 0000000..7e752c7 --- /dev/null +++ b/doc/files/getmatrixtranslation.txt @@ -0,0 +1,4 @@ +#title GetMatrixTranslation [RCBasic Doc] +#header sub GetMatrixTranslation( mA, ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/getmouse.txt b/doc/files/getmouse.txt new file mode 100644 index 0000000..9f54209 --- /dev/null +++ b/doc/files/getmouse.txt @@ -0,0 +1,4 @@ +#title GetMouse [RCBasic Doc] +#header sub GetMouse(byref x, byref y, byref mb1, byref mb2, byref mb3) + + diff --git a/doc/files/getmousewheel.txt b/doc/files/getmousewheel.txt new file mode 100644 index 0000000..b86095c --- /dev/null +++ b/doc/files/getmousewheel.txt @@ -0,0 +1,4 @@ +#title GetMouseWheel [RCBasic Doc] +#header sub GetMouseWheel(byref x_axis, byref y_axis) + + diff --git a/doc/files/getmultitouch.txt b/doc/files/getmultitouch.txt new file mode 100644 index 0000000..8e76580 --- /dev/null +++ b/doc/files/getmultitouch.txt @@ -0,0 +1,4 @@ +#title GetMultiTouch [RCBasic Doc] +#header sub GetMultiTouch(byref status, byref x, byref y, byref fingers, byref dist, byref theta) + + diff --git a/doc/files/getmusicposition.txt b/doc/files/getmusicposition.txt new file mode 100644 index 0000000..493b860 --- /dev/null +++ b/doc/files/getmusicposition.txt @@ -0,0 +1,4 @@ +#title GetMusicPosition [RCBasic Doc] +#header function MusicPosition() + + diff --git a/doc/files/getmusicvolume.txt b/doc/files/getmusicvolume.txt new file mode 100644 index 0000000..25aa1b4 --- /dev/null +++ b/doc/files/getmusicvolume.txt @@ -0,0 +1,4 @@ +#title GetMusicVolume [RCBasic Doc] +#header function MusicVolume() + + diff --git a/doc/files/getparticlebox.txt b/doc/files/getparticlebox.txt new file mode 100644 index 0000000..35214ce --- /dev/null +++ b/doc/files/getparticlebox.txt @@ -0,0 +1,4 @@ +#title getParticleBox [RCBasic Doc] +#header sub getParticleBox( actor, ByRef min_x, ByRef min_y, ByRef min_z, ByRef max_x, ByRef max_y, ByRef max_z) + + diff --git a/doc/files/getparticlecenter.txt b/doc/files/getparticlecenter.txt new file mode 100644 index 0000000..760052f --- /dev/null +++ b/doc/files/getparticlecenter.txt @@ -0,0 +1,4 @@ +#title getParticleCenter [RCBasic Doc] +#header sub getParticleCenter( actor, ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/getparticledirection.txt b/doc/files/getparticledirection.txt new file mode 100644 index 0000000..0d6bc11 --- /dev/null +++ b/doc/files/getparticledirection.txt @@ -0,0 +1,4 @@ +#title getParticleDirection [RCBasic Doc] +#header sub getParticleDirection( actor, ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/getparticlelength.txt b/doc/files/getparticlelength.txt new file mode 100644 index 0000000..da50454 --- /dev/null +++ b/doc/files/getparticlelength.txt @@ -0,0 +1,4 @@ +#title getParticleLength [RCBasic Doc] +#header function getParticleLength( actor) + + diff --git a/doc/files/getparticlemaxangle.txt b/doc/files/getparticlemaxangle.txt new file mode 100644 index 0000000..6ef2483 --- /dev/null +++ b/doc/files/getparticlemaxangle.txt @@ -0,0 +1,4 @@ +#title getParticleMaxAngle [RCBasic Doc] +#header function getParticleMaxAngle( actor) + + diff --git a/doc/files/getparticlemaxlife.txt b/doc/files/getparticlemaxlife.txt new file mode 100644 index 0000000..9d8e33a --- /dev/null +++ b/doc/files/getparticlemaxlife.txt @@ -0,0 +1,4 @@ +#title getParticleMaxLife [RCBasic Doc] +#header function getParticleMaxLife( actor) + + diff --git a/doc/files/getparticlemaxparticlespersecond.txt b/doc/files/getparticlemaxparticlespersecond.txt new file mode 100644 index 0000000..e28dc7b --- /dev/null +++ b/doc/files/getparticlemaxparticlespersecond.txt @@ -0,0 +1,4 @@ +#title getParticleMaxParticlesPerSecond [RCBasic Doc] +#header function getParticleMaxParticlesPerSecond( actor) + + diff --git a/doc/files/getparticlemaxstartcolor.txt b/doc/files/getparticlemaxstartcolor.txt new file mode 100644 index 0000000..7a98047 --- /dev/null +++ b/doc/files/getparticlemaxstartcolor.txt @@ -0,0 +1,4 @@ +#title getParticleMaxStartColor [RCBasic Doc] +#header function getParticleMaxStartColor( actor) + + diff --git a/doc/files/getparticlemaxstartsize.txt b/doc/files/getparticlemaxstartsize.txt new file mode 100644 index 0000000..7ec819f --- /dev/null +++ b/doc/files/getparticlemaxstartsize.txt @@ -0,0 +1,4 @@ +#title getParticleMaxStartSize [RCBasic Doc] +#header sub getParticleMaxStartSize( actor, ByRef w, ByRef h) + + diff --git a/doc/files/getparticleminlife.txt b/doc/files/getparticleminlife.txt new file mode 100644 index 0000000..2e218bc --- /dev/null +++ b/doc/files/getparticleminlife.txt @@ -0,0 +1,4 @@ +#title getParticleMinLife [RCBasic Doc] +#header function getParticleMinLife( actor) + + diff --git a/doc/files/getparticleminparticlespersecond.txt b/doc/files/getparticleminparticlespersecond.txt new file mode 100644 index 0000000..da946d5 --- /dev/null +++ b/doc/files/getparticleminparticlespersecond.txt @@ -0,0 +1,4 @@ +#title getParticleMinParticlesPerSecond [RCBasic Doc] +#header function getParticleMinParticlesPerSecond( actor) + + diff --git a/doc/files/getparticleminstartcolor.txt b/doc/files/getparticleminstartcolor.txt new file mode 100644 index 0000000..d6d58f9 --- /dev/null +++ b/doc/files/getparticleminstartcolor.txt @@ -0,0 +1,4 @@ +#title getParticleMinStartColor [RCBasic Doc] +#header function getParticleMinStartColor( actor) + + diff --git a/doc/files/getparticleminstartsize.txt b/doc/files/getparticleminstartsize.txt new file mode 100644 index 0000000..e04b978 --- /dev/null +++ b/doc/files/getparticleminstartsize.txt @@ -0,0 +1,4 @@ +#title getParticleMinStartSize [RCBasic Doc] +#header sub getParticleMinStartSize( actor, ByRef w, ByRef h) + + diff --git a/doc/files/getparticlenormal.txt b/doc/files/getparticlenormal.txt new file mode 100644 index 0000000..67a106b --- /dev/null +++ b/doc/files/getparticlenormal.txt @@ -0,0 +1,4 @@ +#title getParticleNormal [RCBasic Doc] +#header sub getParticleNormal( actor, ByRef x, ByRef y, ByRef z) + + diff --git a/doc/files/getparticlenormaldirectionmod.txt b/doc/files/getparticlenormaldirectionmod.txt new file mode 100644 index 0000000..994e71b --- /dev/null +++ b/doc/files/getparticlenormaldirectionmod.txt @@ -0,0 +1,4 @@ +#title getParticleNormalDirectionMod [RCBasic Doc] +#header function getParticleNormalDirectionMod( actor) + + diff --git a/doc/files/getparticleradius.txt b/doc/files/getparticleradius.txt new file mode 100644 index 0000000..fa21818 --- /dev/null +++ b/doc/files/getparticleradius.txt @@ -0,0 +1,4 @@ +#title getParticleRadius [RCBasic Doc] +#header function getParticleRadius( actor) + + diff --git a/doc/files/getparticleringthickness.txt b/doc/files/getparticleringthickness.txt new file mode 100644 index 0000000..7741e4e --- /dev/null +++ b/doc/files/getparticleringthickness.txt @@ -0,0 +1,4 @@ +#title getParticleRingThickness [RCBasic Doc] +#header function getParticleRingThickness( actor) + + diff --git a/doc/files/getpixel.txt b/doc/files/getpixel.txt new file mode 100644 index 0000000..2d7eb2c --- /dev/null +++ b/doc/files/getpixel.txt @@ -0,0 +1,4 @@ +#title GetPixel [RCBasic Doc] +#header function GetPixel(x,y) + + diff --git a/doc/files/getpowerinfo.txt b/doc/files/getpowerinfo.txt new file mode 100644 index 0000000..54e7ccc --- /dev/null +++ b/doc/files/getpowerinfo.txt @@ -0,0 +1,4 @@ +#title GetPowerInfo [RCBasic Doc] +#header Sub GetPowerInfo(ByRef status, ByRef secs, ByRef pct) + + diff --git a/doc/files/getsoundvolume.txt b/doc/files/getsoundvolume.txt new file mode 100644 index 0000000..c30e6b9 --- /dev/null +++ b/doc/files/getsoundvolume.txt @@ -0,0 +1,4 @@ +#title GetSoundVolume [RCBasic Doc] +#header function SoundVolume(slot) + + diff --git a/doc/files/getterraincenter.txt b/doc/files/getterraincenter.txt new file mode 100644 index 0000000..40d1607 --- /dev/null +++ b/doc/files/getterraincenter.txt @@ -0,0 +1,4 @@ +#title GetTerrainCenter [RCBasic Doc] +#header sub GetTerrainCenter( actor, ByRef x, ByRef y, ByRef z ) + + diff --git a/doc/files/getterrainheight.txt b/doc/files/getterrainheight.txt new file mode 100644 index 0000000..682b7a0 --- /dev/null +++ b/doc/files/getterrainheight.txt @@ -0,0 +1,4 @@ +#title GetTerrainHeight [RCBasic Doc] +#header function GetTerrainHeight( actor, patchX, patchZ ) + + diff --git a/doc/files/getterrainpatchaabb.txt b/doc/files/getterrainpatchaabb.txt new file mode 100644 index 0000000..fd00cb6 --- /dev/null +++ b/doc/files/getterrainpatchaabb.txt @@ -0,0 +1,4 @@ +#title GetTerrainPatchAABB [RCBasic Doc] +#header sub GetTerrainPatchAABB( actor, patchX, patchZ, ByRef minX, ByRef minY, ByRef minZ, ByRef maxX, ByRef maxY, ByRef maxZ ) + + diff --git a/doc/files/getterrainpatchlod.txt b/doc/files/getterrainpatchlod.txt new file mode 100644 index 0000000..a48d218 --- /dev/null +++ b/doc/files/getterrainpatchlod.txt @@ -0,0 +1,4 @@ +#title GetTerrainPatchLOD [RCBasic Doc] +#header function GetTerrainPatchLOD( actor, patchX, patchZ ) + + diff --git a/doc/files/gettextheight.txt b/doc/files/gettextheight.txt new file mode 100644 index 0000000..d3e5d73 --- /dev/null +++ b/doc/files/gettextheight.txt @@ -0,0 +1,4 @@ +#title GetTextHeight [RCBasic Doc] +#header function GetTextHeight(txt$) + + diff --git a/doc/files/gettextsize.txt b/doc/files/gettextsize.txt new file mode 100644 index 0000000..827a6b9 --- /dev/null +++ b/doc/files/gettextsize.txt @@ -0,0 +1,4 @@ +#title GetTextSize [RCBasic Doc] +#header sub GetTextSize(slot, txt$, byref w, byref h) + + diff --git a/doc/files/gettextwidth.txt b/doc/files/gettextwidth.txt new file mode 100644 index 0000000..3091a72 --- /dev/null +++ b/doc/files/gettextwidth.txt @@ -0,0 +1,4 @@ +#title GetTextWidth [RCBasic Doc] +#header function GetTextWidth(txt$) + + diff --git a/doc/files/gettouch.txt b/doc/files/gettouch.txt new file mode 100644 index 0000000..5f83a70 --- /dev/null +++ b/doc/files/gettouch.txt @@ -0,0 +1,4 @@ +#title GetTouch [RCBasic Doc] +#header sub GetTouch(byref status, byref x, byref y, byref dx, byref dy) + + diff --git a/doc/files/gettouchfinger.txt b/doc/files/gettouchfinger.txt new file mode 100644 index 0000000..e7f9d7a --- /dev/null +++ b/doc/files/gettouchfinger.txt @@ -0,0 +1,4 @@ +#title GetTouchFinger [RCBasic Doc] +#header sub GetTouchFinger(finger, byref x, byref y, byref pressure) + + diff --git a/doc/files/getvideodrawrect.txt b/doc/files/getvideodrawrect.txt new file mode 100644 index 0000000..5d99c12 --- /dev/null +++ b/doc/files/getvideodrawrect.txt @@ -0,0 +1,4 @@ +#title GetVideoDrawRect [RCBasic Doc] +#header sub GetVideoDrawRect(byref x, byref y, byref w, byref h) + + diff --git a/doc/files/getvideoposition.txt b/doc/files/getvideoposition.txt new file mode 100644 index 0000000..e29cb53 --- /dev/null +++ b/doc/files/getvideoposition.txt @@ -0,0 +1,4 @@ +#title GetVideoPosition [RCBasic Doc] +#header function VideoPosition() + + diff --git a/doc/files/getvideosize.txt b/doc/files/getvideosize.txt new file mode 100644 index 0000000..1b737b3 --- /dev/null +++ b/doc/files/getvideosize.txt @@ -0,0 +1,4 @@ +#title GetVideoSize [RCBasic Doc] +#header sub GetVideoSize(byref w, byref h) + + diff --git a/doc/files/getvideostats.txt b/doc/files/getvideostats.txt new file mode 100644 index 0000000..4087b96 --- /dev/null +++ b/doc/files/getvideostats.txt @@ -0,0 +1,4 @@ +#title GetVideoStats [RCBasic Doc] +#header sub GetVideoStats(vFile$, byref vLen, byref vfps, byref frame_w, byref frame_h) + + diff --git a/doc/files/getvideovolume.txt b/doc/files/getvideovolume.txt new file mode 100644 index 0000000..3ae5dce --- /dev/null +++ b/doc/files/getvideovolume.txt @@ -0,0 +1,4 @@ +#title GetVideoVolume [RCBasic Doc] +#header function GetVideoVolume( ) + + diff --git a/doc/files/getwatercolor.txt b/doc/files/getwatercolor.txt new file mode 100644 index 0000000..d228770 --- /dev/null +++ b/doc/files/getwatercolor.txt @@ -0,0 +1,4 @@ +#title getWaterColor [RCBasic Doc] +#header function getWaterColor( actor) + + diff --git a/doc/files/getwatercolorblendfactor.txt b/doc/files/getwatercolorblendfactor.txt new file mode 100644 index 0000000..95cf8bd --- /dev/null +++ b/doc/files/getwatercolorblendfactor.txt @@ -0,0 +1,4 @@ +#title getWaterColorBlendFactor [RCBasic Doc] +#header function getWaterColorBlendFactor( actor) + + diff --git a/doc/files/getwaterwaveheight.txt b/doc/files/getwaterwaveheight.txt new file mode 100644 index 0000000..cfa0909 --- /dev/null +++ b/doc/files/getwaterwaveheight.txt @@ -0,0 +1,4 @@ +#title getWaterWaveHeight [RCBasic Doc] +#header function getWaterWaveHeight( actor) + + diff --git a/doc/files/getwaterwinddirection.txt b/doc/files/getwaterwinddirection.txt new file mode 100644 index 0000000..e2f6112 --- /dev/null +++ b/doc/files/getwaterwinddirection.txt @@ -0,0 +1,4 @@ +#title getWaterWindDirection [RCBasic Doc] +#header sub getWaterWindDirection( actor, ByRef x, ByRef z) + + diff --git a/doc/files/getwaterwindforce.txt b/doc/files/getwaterwindforce.txt new file mode 100644 index 0000000..4216525 --- /dev/null +++ b/doc/files/getwaterwindforce.txt @@ -0,0 +1,4 @@ +#title getWaterWindForce [RCBasic Doc] +#header function getWaterWindForce( actor) + + diff --git a/doc/files/getwindowmaxsize.txt b/doc/files/getwindowmaxsize.txt new file mode 100644 index 0000000..23e710b --- /dev/null +++ b/doc/files/getwindowmaxsize.txt @@ -0,0 +1,4 @@ +#title GetWindowMaxSize [RCBasic Doc] +#header sub GetWindowMaxSize(win, byref w, byref h) + + diff --git a/doc/files/getwindowminsize.txt b/doc/files/getwindowminsize.txt new file mode 100644 index 0000000..89e7c81 --- /dev/null +++ b/doc/files/getwindowminsize.txt @@ -0,0 +1,4 @@ +#title GetWindowMinSize [RCBasic Doc] +#header sub GetWindowMinSize(win, byref w, byref h) + + diff --git a/doc/files/getwindowmode.txt b/doc/files/getwindowmode.txt new file mode 100644 index 0000000..3a5de6b --- /dev/null +++ b/doc/files/getwindowmode.txt @@ -0,0 +1,4 @@ +#title getWindowMode [RCBasic Doc] +#header function WindowFlags(win) + + diff --git a/doc/files/getwindowposition.txt b/doc/files/getwindowposition.txt new file mode 100644 index 0000000..7384272 --- /dev/null +++ b/doc/files/getwindowposition.txt @@ -0,0 +1,4 @@ +#title GetWindowPosition [RCBasic Doc] +#header sub GetWindowPosition(win, byref x, byref y) + + diff --git a/doc/files/getwindowsize.txt b/doc/files/getwindowsize.txt new file mode 100644 index 0000000..c55bfd8 --- /dev/null +++ b/doc/files/getwindowsize.txt @@ -0,0 +1,4 @@ +#title GetWindowSize [RCBasic Doc] +#header sub GetWindowSize(win, byref w, byref h) + + diff --git a/doc/files/globalmousex.txt b/doc/files/globalmousex.txt new file mode 100644 index 0000000..6b384f8 --- /dev/null +++ b/doc/files/globalmousex.txt @@ -0,0 +1,4 @@ +#title GlobalMouseX [RCBasic Doc] +#header function GlobalMouseX() + + diff --git a/doc/files/globalmousey.txt b/doc/files/globalmousey.txt new file mode 100644 index 0000000..64ea0b3 --- /dev/null +++ b/doc/files/globalmousey.txt @@ -0,0 +1,4 @@ +#title GlobalMouseY [RCBasic Doc] +#header function GlobalMouseY() + + diff --git a/doc/files/grabinput.txt b/doc/files/grabinput.txt new file mode 100644 index 0000000..a149e9f --- /dev/null +++ b/doc/files/grabinput.txt @@ -0,0 +1,4 @@ +#title GrabInput [RCBasic Doc] +#header sub GrabInput(flag) + + diff --git a/doc/files/gyroname.txt b/doc/files/gyroname.txt new file mode 100644 index 0000000..0308818 --- /dev/null +++ b/doc/files/gyroname.txt @@ -0,0 +1,4 @@ +#title GyroName$ [RCBasic Doc] +#header function GyroName$(gyro_num) + + diff --git a/doc/files/hasclipboardtext.txt b/doc/files/hasclipboardtext.txt new file mode 100644 index 0000000..bd68430 --- /dev/null +++ b/doc/files/hasclipboardtext.txt @@ -0,0 +1,4 @@ +#title HasClipboardText [RCBasic Doc] +#header function HasClipboardText() + + diff --git a/doc/files/hex.txt b/doc/files/hex.txt new file mode 100644 index 0000000..3829236 --- /dev/null +++ b/doc/files/hex.txt @@ -0,0 +1,4 @@ +#title Hex$ [RCBasic Doc] +#header function Hex$(n) + + diff --git a/doc/files/hexval.txt b/doc/files/hexval.txt new file mode 100644 index 0000000..3479219 --- /dev/null +++ b/doc/files/hexval.txt @@ -0,0 +1,4 @@ +#title HexVal [RCBasic Doc] +#header function HexVal(n$) + + diff --git a/doc/files/hidemouse.txt b/doc/files/hidemouse.txt new file mode 100644 index 0000000..1f56680 --- /dev/null +++ b/doc/files/hidemouse.txt @@ -0,0 +1,4 @@ +#title HideMouse [RCBasic Doc] +#header sub HideMouse() + + diff --git a/doc/files/hidewindow.txt b/doc/files/hidewindow.txt new file mode 100644 index 0000000..e1ace06 --- /dev/null +++ b/doc/files/hidewindow.txt @@ -0,0 +1,4 @@ +#title HideWindow [RCBasic Doc] +#header sub HideWindow(win) + + diff --git a/doc/files/imageexists.txt b/doc/files/imageexists.txt new file mode 100644 index 0000000..c493f60 --- /dev/null +++ b/doc/files/imageexists.txt @@ -0,0 +1,4 @@ +#title ImageExists [RCBasic Doc] +#header function ImageExists(slot) + + diff --git a/doc/files/incrementmatrixcolumns.txt b/doc/files/incrementmatrixcolumns.txt new file mode 100644 index 0000000..33dfea4 --- /dev/null +++ b/doc/files/incrementmatrixcolumns.txt @@ -0,0 +1,4 @@ +#title IncrementMatrixColumns [RCBasic Doc] +#header sub IncrementMatrixColumns(mA, mB, c, num_cols, value) + + diff --git a/doc/files/incrementmatrixrows.txt b/doc/files/incrementmatrixrows.txt new file mode 100644 index 0000000..fa257a1 --- /dev/null +++ b/doc/files/incrementmatrixrows.txt @@ -0,0 +1,4 @@ +#title IncrementMatrixRows [RCBasic Doc] +#header sub IncrementMatrixRows(mA, mB, r, num_rows, value) + + diff --git a/doc/files/inkey.txt b/doc/files/inkey.txt new file mode 100644 index 0000000..ef48103 --- /dev/null +++ b/doc/files/inkey.txt @@ -0,0 +1,4 @@ +#title InKey [RCBasic Doc] +#header function InKey() + + diff --git a/doc/files/input.txt b/doc/files/input.txt new file mode 100644 index 0000000..b63ca4b --- /dev/null +++ b/doc/files/input.txt @@ -0,0 +1,4 @@ +#title Input$ [RCBasic Doc] +#header function Input$(prompt$) + + diff --git a/doc/files/insert.txt b/doc/files/insert.txt new file mode 100644 index 0000000..a38fa5b --- /dev/null +++ b/doc/files/insert.txt @@ -0,0 +1,4 @@ +#title Insert$ [RCBasic Doc] +#header function Insert$(src$, tgt$, pos) + + diff --git a/doc/files/insertmatrixcolumns.txt b/doc/files/insertmatrixcolumns.txt new file mode 100644 index 0000000..d4a3abc --- /dev/null +++ b/doc/files/insertmatrixcolumns.txt @@ -0,0 +1,4 @@ +#title InsertMatrixColumns [RCBasic Doc] +#header function InsertMatrixColumns(mA, c, num_cols) + + diff --git a/doc/files/insertmatrixrows.txt b/doc/files/insertmatrixrows.txt new file mode 100644 index 0000000..1727f83 --- /dev/null +++ b/doc/files/insertmatrixrows.txt @@ -0,0 +1,4 @@ +#title InsertMatrixRows [RCBasic Doc] +#header function InsertMatrixRows(mA, r, num_rows) + + diff --git a/doc/files/instr.txt b/doc/files/instr.txt new file mode 100644 index 0000000..4d85ebc --- /dev/null +++ b/doc/files/instr.txt @@ -0,0 +1,4 @@ +#title InStr [RCBasic Doc] +#header function InStr(src$, substr$) + + diff --git a/doc/files/int.txt b/doc/files/int.txt new file mode 100644 index 0000000..8e2e13c --- /dev/null +++ b/doc/files/int.txt @@ -0,0 +1,4 @@ +#title Int [RCBasic Doc] +#header function Int(n) + + diff --git a/doc/files/integrateactorvelocities.txt b/doc/files/integrateactorvelocities.txt new file mode 100644 index 0000000..995e6f0 --- /dev/null +++ b/doc/files/integrateactorvelocities.txt @@ -0,0 +1,4 @@ +#title integrateActorVelocities [RCBasic Doc] +#header sub integrateActorVelocities( actor, v_step) + + diff --git a/doc/files/interpolate.txt b/doc/files/interpolate.txt new file mode 100644 index 0000000..41193c0 --- /dev/null +++ b/doc/files/interpolate.txt @@ -0,0 +1,4 @@ +#title Interpolate [RCBasic Doc] +#header Function Interpolate(min_a, max_a, mid_a, min_b, max_b) + + diff --git a/doc/files/invertmatrix.txt b/doc/files/invertmatrix.txt new file mode 100644 index 0000000..c6b72a6 --- /dev/null +++ b/doc/files/invertmatrix.txt @@ -0,0 +1,4 @@ +#title InvertMatrix [RCBasic Doc] +#header function InvertMatrix(mA, mB) + + diff --git a/doc/files/isequalmatrix.txt b/doc/files/isequalmatrix.txt new file mode 100644 index 0000000..5909dcb --- /dev/null +++ b/doc/files/isequalmatrix.txt @@ -0,0 +1,4 @@ +#title IsEqualMatrix [RCBasic Doc] +#header function IsEqualMatrix(mA, mB, tolerance) + + diff --git a/doc/files/joinmatrixcolumns.txt b/doc/files/joinmatrixcolumns.txt new file mode 100644 index 0000000..7596865 --- /dev/null +++ b/doc/files/joinmatrixcolumns.txt @@ -0,0 +1,4 @@ +#title JoinMatrixColumns [RCBasic Doc] +#header sub JoinMatrixColumns(mA, mB, mC) + + diff --git a/doc/files/joinmatrixrows.txt b/doc/files/joinmatrixrows.txt new file mode 100644 index 0000000..79f7f4b --- /dev/null +++ b/doc/files/joinmatrixrows.txt @@ -0,0 +1,4 @@ +#title JoinMatrixRows [RCBasic Doc] +#header sub JoinMatrixRows(mA, mB, mC) + + diff --git a/doc/files/joyaxis.txt b/doc/files/joyaxis.txt new file mode 100644 index 0000000..133963e --- /dev/null +++ b/doc/files/joyaxis.txt @@ -0,0 +1,4 @@ +#title JoyAxis [RCBasic Doc] +#header function JoyAxis(joy_num, joy_axis) + + diff --git a/doc/files/joybutton.txt b/doc/files/joybutton.txt new file mode 100644 index 0000000..e291c8c --- /dev/null +++ b/doc/files/joybutton.txt @@ -0,0 +1,4 @@ +#title JoyButton [RCBasic Doc] +#header function JoyButton(joy_num, joy_button) + + diff --git a/doc/files/joyhat.txt b/doc/files/joyhat.txt new file mode 100644 index 0000000..bd677fb --- /dev/null +++ b/doc/files/joyhat.txt @@ -0,0 +1,4 @@ +#title JoyHat [RCBasic Doc] +#header function JoyHat(joy_num, joy_hat) + + diff --git a/doc/files/joyname.txt b/doc/files/joyname.txt new file mode 100644 index 0000000..d234523 --- /dev/null +++ b/doc/files/joyname.txt @@ -0,0 +1,4 @@ +#title JoyName$ [RCBasic Doc] +#header function JoyName$(joy_num) + + diff --git a/doc/files/joyrumbleplay.txt b/doc/files/joyrumbleplay.txt new file mode 100644 index 0000000..49723c4 --- /dev/null +++ b/doc/files/joyrumbleplay.txt @@ -0,0 +1,4 @@ +#title JoyRumblePlay [RCBasic Doc] +#header sub JoyRumblePlay(joy_num, strength, duration) + + diff --git a/doc/files/joyrumblestop.txt b/doc/files/joyrumblestop.txt new file mode 100644 index 0000000..5ce95f4 --- /dev/null +++ b/doc/files/joyrumblestop.txt @@ -0,0 +1,4 @@ +#title JoyRumbleStop [RCBasic Doc] +#header sub JoyRumbleStop(joy_num) + + diff --git a/doc/files/joystickisconnected.txt b/doc/files/joystickisconnected.txt new file mode 100644 index 0000000..d691385 --- /dev/null +++ b/doc/files/joystickisconnected.txt @@ -0,0 +1,4 @@ +#title JoystickIsConnected [RCBasic Doc] +#header function JoystickIsConnected(joy_num) + + diff --git a/doc/files/joystickishaptic.txt b/doc/files/joystickishaptic.txt new file mode 100644 index 0000000..89381fc --- /dev/null +++ b/doc/files/joystickishaptic.txt @@ -0,0 +1,4 @@ +#title JoystickIsHaptic [RCBasic Doc] +#header function JoystickIsHaptic(joy_num) + + diff --git a/doc/files/key.txt b/doc/files/key.txt new file mode 100644 index 0000000..76feca5 --- /dev/null +++ b/doc/files/key.txt @@ -0,0 +1,4 @@ +#title Key [RCBasic Doc] +#header function Key(key_code) + + diff --git a/doc/files/lcase.txt b/doc/files/lcase.txt new file mode 100644 index 0000000..7fe61dd --- /dev/null +++ b/doc/files/lcase.txt @@ -0,0 +1,4 @@ +#title Lcase$ [RCBasic Doc] +#header function Lcase$(src$) + + diff --git a/doc/files/left.txt b/doc/files/left.txt new file mode 100644 index 0000000..3ea0198 --- /dev/null +++ b/doc/files/left.txt @@ -0,0 +1,4 @@ +#title Left$ [RCBasic Doc] +#header function Left$(src$, n) + + diff --git a/doc/files/len.txt b/doc/files/len.txt new file mode 100644 index 0000000..3933724 --- /dev/null +++ b/doc/files/len.txt @@ -0,0 +1,4 @@ +#title Len [RCBasic Doc] +#header function Len(src$) + + diff --git a/doc/files/length.txt b/doc/files/length.txt new file mode 100644 index 0000000..583b3d8 --- /dev/null +++ b/doc/files/length.txt @@ -0,0 +1,4 @@ +#title Length [RCBasic Doc] +#header function Length(src$) + + diff --git a/doc/files/lightiscastingshadow.txt b/doc/files/lightiscastingshadow.txt new file mode 100644 index 0000000..6e1bc52 --- /dev/null +++ b/doc/files/lightiscastingshadow.txt @@ -0,0 +1,4 @@ +#title lightIsCastingShadow [RCBasic Doc] +#header function lightIsCastingShadow( actor ) + + diff --git a/doc/files/line.txt b/doc/files/line.txt new file mode 100644 index 0000000..3218a53 --- /dev/null +++ b/doc/files/line.txt @@ -0,0 +1,4 @@ +#title Line [RCBasic Doc] +#header sub Line(x1, y1, x2, y2) + + diff --git a/doc/files/loadfont.txt b/doc/files/loadfont.txt new file mode 100644 index 0000000..4d8ef52 --- /dev/null +++ b/doc/files/loadfont.txt @@ -0,0 +1,4 @@ +#title LoadFont [RCBasic Doc] +#header sub LoadFont(slot, fnt_file$, size) + + diff --git a/doc/files/loadimage.txt b/doc/files/loadimage.txt new file mode 100644 index 0000000..30353cd --- /dev/null +++ b/doc/files/loadimage.txt @@ -0,0 +1,4 @@ +#title LoadImage [RCBasic Doc] +#header sub LoadImage(slot, img$) + + diff --git a/doc/files/loadimageex.txt b/doc/files/loadimageex.txt new file mode 100644 index 0000000..0e621a5 --- /dev/null +++ b/doc/files/loadimageex.txt @@ -0,0 +1,4 @@ +#title LoadImageEx [RCBasic Doc] +#header sub LoadImage_Ex(slot, img$, colkey) + + diff --git a/doc/files/loadmesh.txt b/doc/files/loadmesh.txt new file mode 100644 index 0000000..b81238d --- /dev/null +++ b/doc/files/loadmesh.txt @@ -0,0 +1,4 @@ +#title LoadMesh [RCBasic Doc] +#header function LoadMesh( mesh_file$ ) + + diff --git a/doc/files/loadmeshfromarchive.txt b/doc/files/loadmeshfromarchive.txt new file mode 100644 index 0000000..930c0b4 --- /dev/null +++ b/doc/files/loadmeshfromarchive.txt @@ -0,0 +1,4 @@ +#title LoadMeshFromArchive [RCBasic Doc] +#header function LoadMeshFromArchive( archive$, mesh_file$ ) + + diff --git a/doc/files/loadmusic.txt b/doc/files/loadmusic.txt new file mode 100644 index 0000000..97685fa --- /dev/null +++ b/doc/files/loadmusic.txt @@ -0,0 +1,4 @@ +#title LoadMusic [RCBasic Doc] +#header sub LoadMusic(music_file$) + + diff --git a/doc/files/loadsound.txt b/doc/files/loadsound.txt new file mode 100644 index 0000000..f176298 --- /dev/null +++ b/doc/files/loadsound.txt @@ -0,0 +1,4 @@ +#title LoadSound [RCBasic Doc] +#header sub LoadSound(slot, snd_file$) + + diff --git a/doc/files/loadvideo.txt b/doc/files/loadvideo.txt new file mode 100644 index 0000000..76c4666 --- /dev/null +++ b/doc/files/loadvideo.txt @@ -0,0 +1,4 @@ +#title LoadVideo [RCBasic Doc] +#header sub LoadVideo(vid$) + + diff --git a/doc/files/log.txt b/doc/files/log.txt new file mode 100644 index 0000000..333ad0c --- /dev/null +++ b/doc/files/log.txt @@ -0,0 +1,4 @@ +#title Log [RCBasic Doc] +#header function Log(n) + + diff --git a/doc/files/loopactoranimation.txt b/doc/files/loopactoranimation.txt new file mode 100644 index 0000000..b59dd23 --- /dev/null +++ b/doc/files/loopactoranimation.txt @@ -0,0 +1,4 @@ +#title loopActorAnimation [RCBasic Doc] +#header sub loopActorAnimation( actor, flag ) + + diff --git a/doc/files/ltrim.txt b/doc/files/ltrim.txt new file mode 100644 index 0000000..7875047 --- /dev/null +++ b/doc/files/ltrim.txt @@ -0,0 +1,4 @@ +#title Ltrim$ [RCBasic Doc] +#header function Ltrim$(src$) + + diff --git a/doc/files/makedir.txt b/doc/files/makedir.txt new file mode 100644 index 0000000..db76b7c --- /dev/null +++ b/doc/files/makedir.txt @@ -0,0 +1,4 @@ +#title MakeDir [RCBasic Doc] +#header function MakeDir(p$) + + diff --git a/doc/files/materialisaplhablend.txt b/doc/files/materialisaplhablend.txt new file mode 100644 index 0000000..e81c4d1 --- /dev/null +++ b/doc/files/materialisaplhablend.txt @@ -0,0 +1,4 @@ +#title materialIsAplhaBlend [RCBasic Doc] +#header function materialIsAplhaBlend( material_id) + + diff --git a/doc/files/materialisgouraudshaded.txt b/doc/files/materialisgouraudshaded.txt new file mode 100644 index 0000000..4f086f8 --- /dev/null +++ b/doc/files/materialisgouraudshaded.txt @@ -0,0 +1,4 @@ +#title materialIsGouraudShaded [RCBasic Doc] +#header function materialIsGouraudShaded( material_id) + + diff --git a/doc/files/materialislit.txt b/doc/files/materialislit.txt new file mode 100644 index 0000000..7097a8f --- /dev/null +++ b/doc/files/materialislit.txt @@ -0,0 +1,4 @@ +#title materialIsLit [RCBasic Doc] +#header function materialIsLit( material_id) + + diff --git a/doc/files/materialisnormalized.txt b/doc/files/materialisnormalized.txt new file mode 100644 index 0000000..7c57568 --- /dev/null +++ b/doc/files/materialisnormalized.txt @@ -0,0 +1,4 @@ +#title materialIsNormalized [RCBasic Doc] +#header function materialIsNormalized( material_id) + + diff --git a/doc/files/materialispointcloud.txt b/doc/files/materialispointcloud.txt new file mode 100644 index 0000000..9598967 --- /dev/null +++ b/doc/files/materialispointcloud.txt @@ -0,0 +1,4 @@ +#title materialIsPointCloud [RCBasic Doc] +#header function materialIsPointCloud( material_id) + + diff --git a/doc/files/materialistransparent.txt b/doc/files/materialistransparent.txt new file mode 100644 index 0000000..1a83a0a --- /dev/null +++ b/doc/files/materialistransparent.txt @@ -0,0 +1,4 @@ +#title materialIsTransparent [RCBasic Doc] +#header function materialIsTransparent( material_id) + + diff --git a/doc/files/materialiswireframe.txt b/doc/files/materialiswireframe.txt new file mode 100644 index 0000000..4dce2fa --- /dev/null +++ b/doc/files/materialiswireframe.txt @@ -0,0 +1,4 @@ +#title materialIsWireframe [RCBasic Doc] +#header function materialIsWireframe( material_id) + + diff --git a/doc/files/matrixfrombuffer.txt b/doc/files/matrixfrombuffer.txt new file mode 100644 index 0000000..6086349 --- /dev/null +++ b/doc/files/matrixfrombuffer.txt @@ -0,0 +1,4 @@ +#title MatrixFromBuffer [RCBasic Doc] +#header sub MatrixFromBuffer(mA, r, c, ByRef buffer) + + diff --git a/doc/files/matrixvalue.txt b/doc/files/matrixvalue.txt new file mode 100644 index 0000000..013e5ba --- /dev/null +++ b/doc/files/matrixvalue.txt @@ -0,0 +1,4 @@ +#title MatrixValue [RCBasic Doc] +#header function MatrixValue(mA, r, c) + + diff --git a/doc/files/max.txt b/doc/files/max.txt new file mode 100644 index 0000000..1a2dede --- /dev/null +++ b/doc/files/max.txt @@ -0,0 +1,4 @@ +#title Max [RCBasic Doc] +#header function Max(a, b) + + diff --git a/doc/files/maximizewindow.txt b/doc/files/maximizewindow.txt new file mode 100644 index 0000000..ef2deb5 --- /dev/null +++ b/doc/files/maximizewindow.txt @@ -0,0 +1,4 @@ +#title MaximizeWindow [RCBasic Doc] +#header sub MaximizeWindow(win) + + diff --git a/doc/files/messagebox.txt b/doc/files/messagebox.txt new file mode 100644 index 0000000..1756441 --- /dev/null +++ b/doc/files/messagebox.txt @@ -0,0 +1,4 @@ +#title MessageBox [RCBasic Doc] +#header function MessageBox(title$, msg$) + + diff --git a/doc/files/mid.txt b/doc/files/mid.txt new file mode 100644 index 0000000..8b14040 --- /dev/null +++ b/doc/files/mid.txt @@ -0,0 +1,4 @@ +#title Mid$ [RCBasic Doc] +#header function Mid$(src$, start, n) + + diff --git a/doc/files/min.txt b/doc/files/min.txt new file mode 100644 index 0000000..6828ac4 --- /dev/null +++ b/doc/files/min.txt @@ -0,0 +1,4 @@ +#title Min [RCBasic Doc] +#header function Min(a, b) + + diff --git a/doc/files/minimizewindow.txt b/doc/files/minimizewindow.txt new file mode 100644 index 0000000..9e8d60a --- /dev/null +++ b/doc/files/minimizewindow.txt @@ -0,0 +1,4 @@ +#title MinimizeWindow [RCBasic Doc] +#header sub MinimizeWindow(win) + + diff --git a/doc/files/mousebutton.txt b/doc/files/mousebutton.txt new file mode 100644 index 0000000..fb4f088 --- /dev/null +++ b/doc/files/mousebutton.txt @@ -0,0 +1,4 @@ +#title MouseButton [RCBasic Doc] +#header function MouseButton(mb) + + diff --git a/doc/files/mouseisvisible.txt b/doc/files/mouseisvisible.txt new file mode 100644 index 0000000..1360aa6 --- /dev/null +++ b/doc/files/mouseisvisible.txt @@ -0,0 +1,4 @@ +#title MouseIsVisible [RCBasic Doc] +#header function MouseIsVisible() + + diff --git a/doc/files/mousewheelx.txt b/doc/files/mousewheelx.txt new file mode 100644 index 0000000..09c476d --- /dev/null +++ b/doc/files/mousewheelx.txt @@ -0,0 +1,4 @@ +#title MouseWheelX [RCBasic Doc] +#header function MouseWheelX() + + diff --git a/doc/files/mousewheely.txt b/doc/files/mousewheely.txt new file mode 100644 index 0000000..ee42d6d --- /dev/null +++ b/doc/files/mousewheely.txt @@ -0,0 +1,4 @@ +#title MouseWheelY [RCBasic Doc] +#header function MouseWheelY() + + diff --git a/doc/files/mousex.txt b/doc/files/mousex.txt new file mode 100644 index 0000000..a8ac3ec --- /dev/null +++ b/doc/files/mousex.txt @@ -0,0 +1,4 @@ +#title MouseX [RCBasic Doc] +#header function MouseX() + + diff --git a/doc/files/mousey.txt b/doc/files/mousey.txt new file mode 100644 index 0000000..867d7b4 --- /dev/null +++ b/doc/files/mousey.txt @@ -0,0 +1,4 @@ +#title MouseY [RCBasic Doc] +#header function MouseY() + + diff --git a/doc/files/movefile.txt b/doc/files/movefile.txt new file mode 100644 index 0000000..b1000a6 --- /dev/null +++ b/doc/files/movefile.txt @@ -0,0 +1,4 @@ +#title MoveFile [RCBasic Doc] +#header function MoveFile(src$, dst$) + + diff --git a/doc/files/multiplymatrix.txt b/doc/files/multiplymatrix.txt new file mode 100644 index 0000000..02f194d --- /dev/null +++ b/doc/files/multiplymatrix.txt @@ -0,0 +1,4 @@ +#title MultiplyMatrix [RCBasic Doc] +#header function MultiplyMatrix(mA, mB, mC) + + diff --git a/doc/files/musicexists.txt b/doc/files/musicexists.txt new file mode 100644 index 0000000..a0c8e39 --- /dev/null +++ b/doc/files/musicexists.txt @@ -0,0 +1,4 @@ +#title MusicExists [RCBasic Doc] +#header function MusicExists() + + diff --git a/doc/files/musicisplaying.txt b/doc/files/musicisplaying.txt new file mode 100644 index 0000000..7a13f25 --- /dev/null +++ b/doc/files/musicisplaying.txt @@ -0,0 +1,4 @@ +#title MusicIsPlaying [RCBasic Doc] +#header function MusicIsPlaying() + + diff --git a/doc/files/numaccels.txt b/doc/files/numaccels.txt new file mode 100644 index 0000000..a88ead3 --- /dev/null +++ b/doc/files/numaccels.txt @@ -0,0 +1,4 @@ +#title NumAccels [RCBasic Doc] +#header function NumAccels() + + diff --git a/doc/files/numberarraycopy.txt b/doc/files/numberarraycopy.txt new file mode 100644 index 0000000..2dae7f5 --- /dev/null +++ b/doc/files/numberarraycopy.txt @@ -0,0 +1,4 @@ +#title NumberArrayCopy [RCBasic Doc] +#header sub NumberArrayCopy(ByRef src, ByRef dst) + + diff --git a/doc/files/numberarraydim.txt b/doc/files/numberarraydim.txt new file mode 100644 index 0000000..5669b6d --- /dev/null +++ b/doc/files/numberarraydim.txt @@ -0,0 +1,4 @@ +#title NumberArrayDim [RCBasic Doc] +#header function NumberArrayDim(Byref id) + + diff --git a/doc/files/numberarrayfill.txt b/doc/files/numberarrayfill.txt new file mode 100644 index 0000000..b4ec9f8 --- /dev/null +++ b/doc/files/numberarrayfill.txt @@ -0,0 +1,4 @@ +#title NumberArrayFill [RCBasic Doc] +#header sub NumberArrayFill(ByRef src, fdata) + + diff --git a/doc/files/numberarraysize.txt b/doc/files/numberarraysize.txt new file mode 100644 index 0000000..ca13632 --- /dev/null +++ b/doc/files/numberarraysize.txt @@ -0,0 +1,4 @@ +#title NumberArraySize [RCBasic Doc] +#header function NumberArraySize(Byref id, array_dim) + + diff --git a/doc/files/numcommands.txt b/doc/files/numcommands.txt new file mode 100644 index 0000000..19c71ad --- /dev/null +++ b/doc/files/numcommands.txt @@ -0,0 +1,4 @@ +#title NumCommands [RCBasic Doc] +#header function NumCommands() + + diff --git a/doc/files/numcpus.txt b/doc/files/numcpus.txt new file mode 100644 index 0000000..fe43f47 --- /dev/null +++ b/doc/files/numcpus.txt @@ -0,0 +1,4 @@ +#title NumCPUs [RCBasic Doc] +#header function NumCPUs() + + diff --git a/doc/files/numfingers.txt b/doc/files/numfingers.txt new file mode 100644 index 0000000..870a488 --- /dev/null +++ b/doc/files/numfingers.txt @@ -0,0 +1,4 @@ +#title NumFingers [RCBasic Doc] +#header function NumFingers() + + diff --git a/doc/files/numgyros.txt b/doc/files/numgyros.txt new file mode 100644 index 0000000..e4c04f2 --- /dev/null +++ b/doc/files/numgyros.txt @@ -0,0 +1,4 @@ +#title NumGyros [RCBasic Doc] +#header function NumGyros() + + diff --git a/doc/files/numjoyaxes.txt b/doc/files/numjoyaxes.txt new file mode 100644 index 0000000..015ee49 --- /dev/null +++ b/doc/files/numjoyaxes.txt @@ -0,0 +1,4 @@ +#title NumJoyAxes [RCBasic Doc] +#header function NumJoyAxes(joy_num) + + diff --git a/doc/files/numjoybuttons.txt b/doc/files/numjoybuttons.txt new file mode 100644 index 0000000..1ad0dd1 --- /dev/null +++ b/doc/files/numjoybuttons.txt @@ -0,0 +1,4 @@ +#title NumJoyButtons [RCBasic Doc] +#header function NumJoyButtons(joy_num) + + diff --git a/doc/files/numjoyhats.txt b/doc/files/numjoyhats.txt new file mode 100644 index 0000000..38efbbf --- /dev/null +++ b/doc/files/numjoyhats.txt @@ -0,0 +1,4 @@ +#title NumJoyHats [RCBasic Doc] +#header function NumJoyHats(joy_num) + + diff --git a/doc/files/numjoysticks.txt b/doc/files/numjoysticks.txt new file mode 100644 index 0000000..d72534b --- /dev/null +++ b/doc/files/numjoysticks.txt @@ -0,0 +1,4 @@ +#title NumJoysticks [RCBasic Doc] +#header function NumJoysticks() + + diff --git a/doc/files/numjoytrackballs.txt b/doc/files/numjoytrackballs.txt new file mode 100644 index 0000000..929b48d --- /dev/null +++ b/doc/files/numjoytrackballs.txt @@ -0,0 +1,4 @@ +#title NumJoyTrackBalls [RCBasic Doc] +#header function NumJoyTrackBalls(joy_num) + + diff --git a/doc/files/numsoundchannels.txt b/doc/files/numsoundchannels.txt new file mode 100644 index 0000000..7e5221f --- /dev/null +++ b/doc/files/numsoundchannels.txt @@ -0,0 +1,4 @@ +#title NumSoundChannels [RCBasic Doc] +#header function NumSoundChannels() + + diff --git a/doc/files/opencanvas.txt b/doc/files/opencanvas.txt new file mode 100644 index 0000000..7c86f60 --- /dev/null +++ b/doc/files/opencanvas.txt @@ -0,0 +1,4 @@ +#title OpenCanvas [RCBasic Doc] +#header sub CanvasOpen(c_num, w, h, viewport_x, viewport_y, viewport_w, viewport_h, mode) + + diff --git a/doc/files/openfile.txt b/doc/files/openfile.txt new file mode 100644 index 0000000..ec0faf8 --- /dev/null +++ b/doc/files/openfile.txt @@ -0,0 +1,4 @@ +#title OpenFile [RCBasic Doc] +#header function FileOpen(stream, fileName$, mode) + + diff --git a/doc/files/openurl.txt b/doc/files/openurl.txt new file mode 100644 index 0000000..7fd2cf7 --- /dev/null +++ b/doc/files/openurl.txt @@ -0,0 +1,4 @@ +#title OpenURL [RCBasic Doc] +#header function OpenURL(url$) + + diff --git a/doc/files/openwindow.txt b/doc/files/openwindow.txt new file mode 100644 index 0000000..aaffd30 --- /dev/null +++ b/doc/files/openwindow.txt @@ -0,0 +1,4 @@ +#title OpenWindow [RCBasic Doc] +#header sub WindowOpen(win, title$, x, y, w, h, flag, vsync) + + diff --git a/doc/files/openwindowex.txt b/doc/files/openwindowex.txt new file mode 100644 index 0000000..441ebf8 --- /dev/null +++ b/doc/files/openwindowex.txt @@ -0,0 +1,4 @@ +#title OpenWindowEx [RCBasic Doc] +#header function OpenWindowEx(title$, x, y, w, h, mode, aa, stencil_buffer, vsync) + + diff --git a/doc/files/orbit.txt b/doc/files/orbit.txt new file mode 100644 index 0000000..26590c5 --- /dev/null +++ b/doc/files/orbit.txt @@ -0,0 +1,4 @@ +#title OrBit [RCBasic Doc] +#header function OrBit(a, b) + + diff --git a/doc/files/os.txt b/doc/files/os.txt new file mode 100644 index 0000000..4e9286f --- /dev/null +++ b/doc/files/os.txt @@ -0,0 +1,4 @@ +#title OS$ [RCBasic Doc] +#header function OS$() + + diff --git a/doc/files/particleisusingeverymeshvertex.txt b/doc/files/particleisusingeverymeshvertex.txt new file mode 100644 index 0000000..5c97b62 --- /dev/null +++ b/doc/files/particleisusingeverymeshvertex.txt @@ -0,0 +1,4 @@ +#title particleIsUsingEveryMeshVertex [RCBasic Doc] +#header function particleIsUsingEveryMeshVertex( actor) + + diff --git a/doc/files/particleisusingnormaldirection.txt b/doc/files/particleisusingnormaldirection.txt new file mode 100644 index 0000000..1cae291 --- /dev/null +++ b/doc/files/particleisusingnormaldirection.txt @@ -0,0 +1,4 @@ +#title particleIsUsingNormalDirection [RCBasic Doc] +#header function particleIsUsingNormalDirection( actor) + + diff --git a/doc/files/particleisusingoutlineonly.txt b/doc/files/particleisusingoutlineonly.txt new file mode 100644 index 0000000..b114c1b --- /dev/null +++ b/doc/files/particleisusingoutlineonly.txt @@ -0,0 +1,4 @@ +#title particleIsUsingOutlineOnly [RCBasic Doc] +#header function particleIsUsingOutlineOnly( actor) + + diff --git a/doc/files/pausemusic.txt b/doc/files/pausemusic.txt new file mode 100644 index 0000000..754eee6 --- /dev/null +++ b/doc/files/pausemusic.txt @@ -0,0 +1,4 @@ +#title PauseMusic [RCBasic Doc] +#header sub PauseMusic() + + diff --git a/doc/files/pausesound.txt b/doc/files/pausesound.txt new file mode 100644 index 0000000..7bfb363 --- /dev/null +++ b/doc/files/pausesound.txt @@ -0,0 +1,4 @@ +#title PauseSound [RCBasic Doc] +#header sub PauseSound(channel) + + diff --git a/doc/files/pausevideo.txt b/doc/files/pausevideo.txt new file mode 100644 index 0000000..e4f9c22 --- /dev/null +++ b/doc/files/pausevideo.txt @@ -0,0 +1,4 @@ +#title PauseVideo [RCBasic Doc] +#header sub PauseVideo() + + diff --git a/doc/files/playmusic.txt b/doc/files/playmusic.txt new file mode 100644 index 0000000..73204db --- /dev/null +++ b/doc/files/playmusic.txt @@ -0,0 +1,4 @@ +#title PlayMusic [RCBasic Doc] +#header sub PlayMusic(mLoops) + + diff --git a/doc/files/playsound.txt b/doc/files/playsound.txt new file mode 100644 index 0000000..4c4c62d --- /dev/null +++ b/doc/files/playsound.txt @@ -0,0 +1,4 @@ +#title PlaySound [RCBasic Doc] +#header sub PlaySound(slot, channel, loops) + + diff --git a/doc/files/playsoundtimed.txt b/doc/files/playsoundtimed.txt new file mode 100644 index 0000000..5e0cf1c --- /dev/null +++ b/doc/files/playsoundtimed.txt @@ -0,0 +1,4 @@ +#title PlaySoundTimed [RCBasic Doc] +#header sub PlaySoundTimed(slot, channel, loops, ms) + + diff --git a/doc/files/playvideo.txt b/doc/files/playvideo.txt new file mode 100644 index 0000000..47ad2f9 --- /dev/null +++ b/doc/files/playvideo.txt @@ -0,0 +1,4 @@ +#title PlayVideo [RCBasic Doc] +#header sub PlayVideo(vLoops) + + diff --git a/doc/files/pointinquad.txt b/doc/files/pointinquad.txt new file mode 100644 index 0000000..4f3ca9b --- /dev/null +++ b/doc/files/pointinquad.txt @@ -0,0 +1,4 @@ +#title PointInQuad [RCBasic Doc] +#header function PointInQuad(x, y, x1, y1, x2, y2, x3, y3, x4, y4) + + diff --git a/doc/files/pointintri.txt b/doc/files/pointintri.txt new file mode 100644 index 0000000..49a29e1 --- /dev/null +++ b/doc/files/pointintri.txt @@ -0,0 +1,4 @@ +#title PointInTri [RCBasic Doc] +#header function PointInTri(x, y, x1, y1, x2, y2, x3, y3) + + diff --git a/doc/files/poly.txt b/doc/files/poly.txt new file mode 100644 index 0000000..1294e69 --- /dev/null +++ b/doc/files/poly.txt @@ -0,0 +1,4 @@ +#title Poly [RCBasic Doc] +#header sub Poly(n, byref x, byref y) + + diff --git a/doc/files/pop_n.txt b/doc/files/pop_n.txt new file mode 100644 index 0000000..a785a85 --- /dev/null +++ b/doc/files/pop_n.txt @@ -0,0 +1,4 @@ +#title Pop_N [RCBasic Doc] +#header function Pop_N( num_stack ) + + diff --git a/doc/files/pop_s.txt b/doc/files/pop_s.txt new file mode 100644 index 0000000..e66028e --- /dev/null +++ b/doc/files/pop_s.txt @@ -0,0 +1,4 @@ +#title Pop_S$ [RCBasic Doc] +#header function Pop_S$( str_stack ) + + diff --git a/doc/files/prefpath.txt b/doc/files/prefpath.txt new file mode 100644 index 0000000..0dfc3ff --- /dev/null +++ b/doc/files/prefpath.txt @@ -0,0 +1,4 @@ +#title PrefPath$ [RCBasic Doc] +#header function PrefPath$(org_name$, app_name$) + + diff --git a/doc/files/pset.txt b/doc/files/pset.txt new file mode 100644 index 0000000..411e190 --- /dev/null +++ b/doc/files/pset.txt @@ -0,0 +1,4 @@ +#title Pset [RCBasic Doc] +#header sub Pset(x,y) + + diff --git a/doc/files/push_n.txt b/doc/files/push_n.txt new file mode 100644 index 0000000..1a9f83b --- /dev/null +++ b/doc/files/push_n.txt @@ -0,0 +1,4 @@ +#title Push_N [RCBasic Doc] +#header sub Push_N( num_stack, n ) + + diff --git a/doc/files/push_s.txt b/doc/files/push_s.txt new file mode 100644 index 0000000..a6b04e2 --- /dev/null +++ b/doc/files/push_s.txt @@ -0,0 +1,4 @@ +#title Push_S [RCBasic Doc] +#header sub Push_S( str_stack, s$ ) + + diff --git a/doc/files/queryaudiospec.txt b/doc/files/queryaudiospec.txt new file mode 100644 index 0000000..969989f --- /dev/null +++ b/doc/files/queryaudiospec.txt @@ -0,0 +1,4 @@ +#title QueryAudioSpec [RCBasic Doc] +#header function QueryAudioSpec(ByRef freq, ByRef format, ByRef channels) + + diff --git a/doc/files/radians.txt b/doc/files/radians.txt new file mode 100644 index 0000000..0f0f324 --- /dev/null +++ b/doc/files/radians.txt @@ -0,0 +1,4 @@ +#title Radians [RCBasic Doc] +#header function Radians(d) + + diff --git a/doc/files/raisewindow.txt b/doc/files/raisewindow.txt new file mode 100644 index 0000000..200fd1b --- /dev/null +++ b/doc/files/raisewindow.txt @@ -0,0 +1,4 @@ +#title RaiseWindow [RCBasic Doc] +#header sub RaiseWindow(win) + + diff --git a/doc/files/rand.txt b/doc/files/rand.txt new file mode 100644 index 0000000..380a601 --- /dev/null +++ b/doc/files/rand.txt @@ -0,0 +1,4 @@ +#title Rand [RCBasic Doc] +#header function Rand(n) + + diff --git a/doc/files/randomize.txt b/doc/files/randomize.txt new file mode 100644 index 0000000..c3c2ef4 --- /dev/null +++ b/doc/files/randomize.txt @@ -0,0 +1,4 @@ +#title Randomize [RCBasic Doc] +#header function Randomize(n) + + diff --git a/doc/files/randomizematrix.txt b/doc/files/randomizematrix.txt new file mode 100644 index 0000000..cdc4a09 --- /dev/null +++ b/doc/files/randomizematrix.txt @@ -0,0 +1,4 @@ +#title RandomizeMatrix [RCBasic Doc] +#header sub RandomizeMatrix(mA, vmin, vmax) + + diff --git a/doc/files/readbyte.txt b/doc/files/readbyte.txt new file mode 100644 index 0000000..b5b06e9 --- /dev/null +++ b/doc/files/readbyte.txt @@ -0,0 +1,4 @@ +#title ReadByte [RCBasic Doc] +#header function ReadByte(stream) + + diff --git a/doc/files/readbytebuffer.txt b/doc/files/readbytebuffer.txt new file mode 100644 index 0000000..10f06fe --- /dev/null +++ b/doc/files/readbytebuffer.txt @@ -0,0 +1,4 @@ +#title ReadByteBuffer [RCBasic Doc] +#header function ReadByteBuffer(stream, ByRef buf, buf_size) + + diff --git a/doc/files/readinput_settext.txt b/doc/files/readinput_settext.txt new file mode 100644 index 0000000..4cd14c9 --- /dev/null +++ b/doc/files/readinput_settext.txt @@ -0,0 +1,4 @@ +#title ReadInput_SetText [RCBasic Doc] +#header sub ReadInput_SetText(txt$) + + diff --git a/doc/files/readinput_start.txt b/doc/files/readinput_start.txt new file mode 100644 index 0000000..a3fd1af --- /dev/null +++ b/doc/files/readinput_start.txt @@ -0,0 +1,4 @@ +#title ReadInput_Start [RCBasic Doc] +#header sub ReadInput_Start() + + diff --git a/doc/files/readinput_stop.txt b/doc/files/readinput_stop.txt new file mode 100644 index 0000000..48afa3c --- /dev/null +++ b/doc/files/readinput_stop.txt @@ -0,0 +1,4 @@ +#title ReadInput_Stop [RCBasic Doc] +#header sub ReadInput_Stop() + + diff --git a/doc/files/readinput_text.txt b/doc/files/readinput_text.txt new file mode 100644 index 0000000..16cc690 --- /dev/null +++ b/doc/files/readinput_text.txt @@ -0,0 +1,4 @@ +#title ReadInput_Text$ [RCBasic Doc] +#header function ReadInput_Text$() + + diff --git a/doc/files/readinput_togglebackspace.txt b/doc/files/readinput_togglebackspace.txt new file mode 100644 index 0000000..6a4b6aa --- /dev/null +++ b/doc/files/readinput_togglebackspace.txt @@ -0,0 +1,4 @@ +#title ReadInput_ToggleBackspace [RCBasic Doc] +#header sub ReadInput_ToggleBackspace(flag) + + diff --git a/doc/files/readline.txt b/doc/files/readline.txt new file mode 100644 index 0000000..905c7e4 --- /dev/null +++ b/doc/files/readline.txt @@ -0,0 +1,4 @@ +#title ReadLine$ [RCBasic Doc] +#header function ReadLine$(stream) + + diff --git a/doc/files/rect.txt b/doc/files/rect.txt new file mode 100644 index 0000000..ca7d960 --- /dev/null +++ b/doc/files/rect.txt @@ -0,0 +1,4 @@ +#title Rect [RCBasic Doc] +#header sub Rect(x, y, w, h) + + diff --git a/doc/files/rectfill.txt b/doc/files/rectfill.txt new file mode 100644 index 0000000..1b5a196 --- /dev/null +++ b/doc/files/rectfill.txt @@ -0,0 +1,4 @@ +#title RectFill [RCBasic Doc] +#header sub RectFill(x, y, w, h) + + diff --git a/doc/files/removeactorshadow.txt b/doc/files/removeactorshadow.txt new file mode 100644 index 0000000..0f699b1 --- /dev/null +++ b/doc/files/removeactorshadow.txt @@ -0,0 +1,4 @@ +#title RemoveActorShadow [RCBasic Doc] +#header sub RemoveActorShadow( actor ) + + diff --git a/doc/files/removedir.txt b/doc/files/removedir.txt new file mode 100644 index 0000000..c03614a --- /dev/null +++ b/doc/files/removedir.txt @@ -0,0 +1,4 @@ +#title RemoveDir [RCBasic Doc] +#header function RemoveDir(p$) + + diff --git a/doc/files/removefile.txt b/doc/files/removefile.txt new file mode 100644 index 0000000..87b2c15 --- /dev/null +++ b/doc/files/removefile.txt @@ -0,0 +1,4 @@ +#title RemoveFile [RCBasic Doc] +#header function RemoveFile(fileName$) + + diff --git a/doc/files/removescenesky.txt b/doc/files/removescenesky.txt new file mode 100644 index 0000000..b665641 --- /dev/null +++ b/doc/files/removescenesky.txt @@ -0,0 +1,4 @@ +#title RemoveSceneSky [RCBasic Doc] +#header sub RemoveSceneSky( ) + + diff --git a/doc/files/renamefile.txt b/doc/files/renamefile.txt new file mode 100644 index 0000000..abbdf67 --- /dev/null +++ b/doc/files/renamefile.txt @@ -0,0 +1,4 @@ +#title RenameFile [RCBasic Doc] +#header function RenameFile(src$, dst$) + + diff --git a/doc/files/replace.txt b/doc/files/replace.txt new file mode 100644 index 0000000..33bc7c2 --- /dev/null +++ b/doc/files/replace.txt @@ -0,0 +1,4 @@ +#title Replace$ [RCBasic Doc] +#header function Replace$(src$, tgt$, rpc$) + + diff --git a/doc/files/replacesubstr.txt b/doc/files/replacesubstr.txt new file mode 100644 index 0000000..92ef6a0 --- /dev/null +++ b/doc/files/replacesubstr.txt @@ -0,0 +1,4 @@ +#title ReplaceSubstr$ [RCBasic Doc] +#header function ReplaceSubstr$(src$, rpc$, pos) + + diff --git a/doc/files/restorewindow.txt b/doc/files/restorewindow.txt new file mode 100644 index 0000000..9a00ab0 --- /dev/null +++ b/doc/files/restorewindow.txt @@ -0,0 +1,4 @@ +#title RestoreWindow [RCBasic Doc] +#header sub RestoreWindow(win) + + diff --git a/doc/files/resumemusic.txt b/doc/files/resumemusic.txt new file mode 100644 index 0000000..371cdd7 --- /dev/null +++ b/doc/files/resumemusic.txt @@ -0,0 +1,4 @@ +#title ResumeMusic [RCBasic Doc] +#header sub ResumeMusic() + + diff --git a/doc/files/resumesound.txt b/doc/files/resumesound.txt new file mode 100644 index 0000000..be12b60 --- /dev/null +++ b/doc/files/resumesound.txt @@ -0,0 +1,4 @@ +#title ResumeSound [RCBasic Doc] +#header sub ResumeSound(channel) + + diff --git a/doc/files/resumevideo.txt b/doc/files/resumevideo.txt new file mode 100644 index 0000000..2c6b1a0 --- /dev/null +++ b/doc/files/resumevideo.txt @@ -0,0 +1,4 @@ +#title ResumeVideo [RCBasic Doc] +#header sub ResumeVideo() + + diff --git a/doc/files/reverse.txt b/doc/files/reverse.txt new file mode 100644 index 0000000..f087869 --- /dev/null +++ b/doc/files/reverse.txt @@ -0,0 +1,4 @@ +#title Reverse$ [RCBasic Doc] +#header function Reverse$(src$) + + diff --git a/doc/files/rewindmusic.txt b/doc/files/rewindmusic.txt new file mode 100644 index 0000000..230a3bc --- /dev/null +++ b/doc/files/rewindmusic.txt @@ -0,0 +1,4 @@ +#title RewindMusic [RCBasic Doc] +#header sub RewindMusic() + + diff --git a/doc/files/rgb.txt b/doc/files/rgb.txt new file mode 100644 index 0000000..327923b --- /dev/null +++ b/doc/files/rgb.txt @@ -0,0 +1,4 @@ +#title RGB [RCBasic Doc] +#header function RGB(r,g,b) + + diff --git a/doc/files/rgba.txt b/doc/files/rgba.txt new file mode 100644 index 0000000..afebfcb --- /dev/null +++ b/doc/files/rgba.txt @@ -0,0 +1,4 @@ +#title RGBA [RCBasic Doc] +#header function RGBA(r,g,b,a) + + diff --git a/doc/files/right.txt b/doc/files/right.txt new file mode 100644 index 0000000..2f571dd --- /dev/null +++ b/doc/files/right.txt @@ -0,0 +1,4 @@ +#title Right$ [RCBasic Doc] +#header function Right$(src$, n) + + diff --git a/doc/files/rotateactor.txt b/doc/files/rotateactor.txt new file mode 100644 index 0000000..16db805 --- /dev/null +++ b/doc/files/rotateactor.txt @@ -0,0 +1,4 @@ +#title RotateActor [RCBasic Doc] +#header sub RotateActor( actor, x, y, z ) + + diff --git a/doc/files/rotatecamera.txt b/doc/files/rotatecamera.txt new file mode 100644 index 0000000..8dd2d7f --- /dev/null +++ b/doc/files/rotatecamera.txt @@ -0,0 +1,4 @@ +#title RotateCamera [RCBasic Doc] +#header sub RotateCamera( x, y, z) + + diff --git a/doc/files/round.txt b/doc/files/round.txt new file mode 100644 index 0000000..c6dade7 --- /dev/null +++ b/doc/files/round.txt @@ -0,0 +1,4 @@ +#title Round [RCBasic Doc] +#header function Round(n) + + diff --git a/doc/files/rtrim.txt b/doc/files/rtrim.txt new file mode 100644 index 0000000..ff3ab2c --- /dev/null +++ b/doc/files/rtrim.txt @@ -0,0 +1,4 @@ +#title Rtrim$ [RCBasic Doc] +#header function Rtrim$(src$) + + diff --git a/doc/files/runtime.txt b/doc/files/runtime.txt new file mode 100644 index 0000000..fdfdbb5 --- /dev/null +++ b/doc/files/runtime.txt @@ -0,0 +1,4 @@ +#title Runtime$ [RCBasic Doc] +#header function Runtime$() + + diff --git a/doc/files/runtime_utility_message.txt b/doc/files/runtime_utility_message.txt new file mode 100644 index 0000000..711b420 --- /dev/null +++ b/doc/files/runtime_utility_message.txt @@ -0,0 +1,4 @@ +#title Runtime_Utility_Message$ [RCBasic Doc] +#header function Runtime_Utility_Message$(arg$) + + diff --git a/doc/files/scalarmatrix.txt b/doc/files/scalarmatrix.txt new file mode 100644 index 0000000..ae1d0b9 --- /dev/null +++ b/doc/files/scalarmatrix.txt @@ -0,0 +1,4 @@ +#title ScalarMatrix [RCBasic Doc] +#header sub ScalarMatrix(mA, mB, s_value) + + diff --git a/doc/files/scalarmatrixcolumns.txt b/doc/files/scalarmatrixcolumns.txt new file mode 100644 index 0000000..d627d3b --- /dev/null +++ b/doc/files/scalarmatrixcolumns.txt @@ -0,0 +1,4 @@ +#title ScalarMatrixColumns [RCBasic Doc] +#header function ScalarMatrixColumns(mA, mB, c, num_cols, s_value) + + diff --git a/doc/files/scalarmatrixrows.txt b/doc/files/scalarmatrixrows.txt new file mode 100644 index 0000000..4cede18 --- /dev/null +++ b/doc/files/scalarmatrixrows.txt @@ -0,0 +1,4 @@ +#title ScalarMatrixRows [RCBasic Doc] +#header function ScalarMatrixRows(mA, mB, r, num_rows, s_value) + + diff --git a/doc/files/scaleactor.txt b/doc/files/scaleactor.txt new file mode 100644 index 0000000..ff1e0c5 --- /dev/null +++ b/doc/files/scaleactor.txt @@ -0,0 +1,4 @@ +#title ScaleActor [RCBasic Doc] +#header sub ScaleActor( actor, x, y, z ) + + diff --git a/doc/files/scaleterraintexture.txt b/doc/files/scaleterraintexture.txt new file mode 100644 index 0000000..74a4097 --- /dev/null +++ b/doc/files/scaleterraintexture.txt @@ -0,0 +1,4 @@ +#title ScaleTerrainTexture [RCBasic Doc] +#header sub ScaleTerrainTexture( actor, scale, scale2 ) + + diff --git a/doc/files/seek.txt b/doc/files/seek.txt new file mode 100644 index 0000000..eeff200 --- /dev/null +++ b/doc/files/seek.txt @@ -0,0 +1,4 @@ +#title Seek [RCBasic Doc] +#header function Seek(stream, pos) + + diff --git a/doc/files/setactorangularfactor.txt b/doc/files/setactorangularfactor.txt new file mode 100644 index 0000000..23eb2c8 --- /dev/null +++ b/doc/files/setactorangularfactor.txt @@ -0,0 +1,4 @@ +#title setActorAngularFactor [RCBasic Doc] +#header sub setActorAngularFactor( actor, x, y, z) + + diff --git a/doc/files/setactorangularvelocitylocal.txt b/doc/files/setactorangularvelocitylocal.txt new file mode 100644 index 0000000..d1f7541 --- /dev/null +++ b/doc/files/setactorangularvelocitylocal.txt @@ -0,0 +1,4 @@ +#title setActorAngularVelocityLocal [RCBasic Doc] +#header sub setActorAngularVelocityLocal( actor, x, y, z) + + diff --git a/doc/files/setactorangularvelocityworld.txt b/doc/files/setactorangularvelocityworld.txt new file mode 100644 index 0000000..1fa8210 --- /dev/null +++ b/doc/files/setactorangularvelocityworld.txt @@ -0,0 +1,4 @@ +#title setActorAngularVelocityWorld [RCBasic Doc] +#header sub setActorAngularVelocityWorld( actor, x, y, z) + + diff --git a/doc/files/setactoranimation.txt b/doc/files/setactoranimation.txt new file mode 100644 index 0000000..bdc4b0b --- /dev/null +++ b/doc/files/setactoranimation.txt @@ -0,0 +1,4 @@ +#title SetActorAnimation [RCBasic Doc] +#header sub SetActorAnimation( actor, start_frame, end_frame) + + diff --git a/doc/files/setactoranimationspeed.txt b/doc/files/setactoranimationspeed.txt new file mode 100644 index 0000000..acc056a --- /dev/null +++ b/doc/files/setactoranimationspeed.txt @@ -0,0 +1,4 @@ +#title SetActorAnimationSpeed [RCBasic Doc] +#header sub SetActorAnimationSpeed( actor, speed ) + + diff --git a/doc/files/setactorautoculling.txt b/doc/files/setactorautoculling.txt new file mode 100644 index 0000000..a6ded76 --- /dev/null +++ b/doc/files/setactorautoculling.txt @@ -0,0 +1,4 @@ +#title SetActorAutoCulling [RCBasic Doc] +#header sub SetActorAutoCulling( actor, cull_type ) + + diff --git a/doc/files/setactorcollisionshape.txt b/doc/files/setactorcollisionshape.txt new file mode 100644 index 0000000..001c947 --- /dev/null +++ b/doc/files/setactorcollisionshape.txt @@ -0,0 +1,4 @@ +#title SetActorCollisionShape [RCBasic Doc] +#header sub SetActorCollisionShape( actor, shape_type, mass) + + diff --git a/doc/files/setactordamping.txt b/doc/files/setactordamping.txt new file mode 100644 index 0000000..579f522 --- /dev/null +++ b/doc/files/setactordamping.txt @@ -0,0 +1,4 @@ +#title setActorDamping [RCBasic Doc] +#header sub setActorDamping( actor, lin_damping, ang_damping) + + diff --git a/doc/files/setactorframe.txt b/doc/files/setactorframe.txt new file mode 100644 index 0000000..089229e --- /dev/null +++ b/doc/files/setactorframe.txt @@ -0,0 +1,4 @@ +#title SetActorFrame [RCBasic Doc] +#header sub SetActorFrame( actor, frame ) + + diff --git a/doc/files/setactorgravity.txt b/doc/files/setactorgravity.txt new file mode 100644 index 0000000..98493c6 --- /dev/null +++ b/doc/files/setactorgravity.txt @@ -0,0 +1,4 @@ +#title SetActorGravity [RCBasic Doc] +#header sub SetActorGravity( actor, x, y, z ) + + diff --git a/doc/files/setactorinverseinertiadiaglocal.txt b/doc/files/setactorinverseinertiadiaglocal.txt new file mode 100644 index 0000000..00943f8 --- /dev/null +++ b/doc/files/setactorinverseinertiadiaglocal.txt @@ -0,0 +1,4 @@ +#title setActorInverseInertiaDiagLocal [RCBasic Doc] +#header sub setActorInverseInertiaDiagLocal( actor, x, y, z) + + diff --git a/doc/files/setactorlinearfactor.txt b/doc/files/setactorlinearfactor.txt new file mode 100644 index 0000000..19e3e92 --- /dev/null +++ b/doc/files/setactorlinearfactor.txt @@ -0,0 +1,4 @@ +#title setActorLinearFactor [RCBasic Doc] +#header sub setActorLinearFactor( actor, x, y, z) + + diff --git a/doc/files/setactorlinearvelocitylocal.txt b/doc/files/setactorlinearvelocitylocal.txt new file mode 100644 index 0000000..7dcb77b --- /dev/null +++ b/doc/files/setactorlinearvelocitylocal.txt @@ -0,0 +1,4 @@ +#title setActorLinearVelocityLocal [RCBasic Doc] +#header sub setActorLinearVelocityLocal( actor, x, y, z) + + diff --git a/doc/files/setactorlinearvelocityworld.txt b/doc/files/setactorlinearvelocityworld.txt new file mode 100644 index 0000000..a583ff3 --- /dev/null +++ b/doc/files/setactorlinearvelocityworld.txt @@ -0,0 +1,4 @@ +#title setActorLinearVelocityWorld [RCBasic Doc] +#header sub setActorLinearVelocityWorld( actor, x, y, z) + + diff --git a/doc/files/setactormassproperties.txt b/doc/files/setactormassproperties.txt new file mode 100644 index 0000000..f84275d --- /dev/null +++ b/doc/files/setactormassproperties.txt @@ -0,0 +1,4 @@ +#title setActorMassProperties [RCBasic Doc] +#header sub setActorMassProperties( actor, mass, inertia_x, inertia_y, inertia_z) + + diff --git a/doc/files/setactormaterial.txt b/doc/files/setactormaterial.txt new file mode 100644 index 0000000..d6cf9ce --- /dev/null +++ b/doc/files/setactormaterial.txt @@ -0,0 +1,4 @@ +#title setActorMaterial [RCBasic Doc] +#header sub setActorMaterial( actor, material_num, material_id) + + diff --git a/doc/files/setactormaterialflag.txt b/doc/files/setactormaterialflag.txt new file mode 100644 index 0000000..18fbb8c --- /dev/null +++ b/doc/files/setactormaterialflag.txt @@ -0,0 +1,4 @@ +#title setActorMaterialFlag [RCBasic Doc] +#header sub setActorMaterialFlag( actor, flag, flag_value) + + diff --git a/doc/files/setactormaterialtype.txt b/doc/files/setactormaterialtype.txt new file mode 100644 index 0000000..dca867d --- /dev/null +++ b/doc/files/setactormaterialtype.txt @@ -0,0 +1,4 @@ +#title setActorMaterialType [RCBasic Doc] +#header sub setActorMaterialType( actor, material_type) + + diff --git a/doc/files/setactormd2animation.txt b/doc/files/setactormd2animation.txt new file mode 100644 index 0000000..0edae0a --- /dev/null +++ b/doc/files/setactormd2animation.txt @@ -0,0 +1,4 @@ +#title SetActorMD2Animation [RCBasic Doc] +#header sub SetActorMD2Animation( actor, anim ) + + diff --git a/doc/files/setactormd2animationbyname.txt b/doc/files/setactormd2animationbyname.txt new file mode 100644 index 0000000..3e9a768 --- /dev/null +++ b/doc/files/setactormd2animationbyname.txt @@ -0,0 +1,4 @@ +#title SetActorMD2AnimationByName [RCBasic Doc] +#header sub SetActorMD2AnimationByName( actor, anim_name$ ) + + diff --git a/doc/files/setactorposition.txt b/doc/files/setactorposition.txt new file mode 100644 index 0000000..3abd393 --- /dev/null +++ b/doc/files/setactorposition.txt @@ -0,0 +1,4 @@ +#title SetActorPosition [RCBasic Doc] +#header sub SetActorPosition( actor, x, y, z ) + + diff --git a/doc/files/setactorrotation.txt b/doc/files/setactorrotation.txt new file mode 100644 index 0000000..649e2c3 --- /dev/null +++ b/doc/files/setactorrotation.txt @@ -0,0 +1,4 @@ +#title SetActorRotation [RCBasic Doc] +#header sub SetActorRotation( actor, x, y, z ) + + diff --git a/doc/files/setactorscale.txt b/doc/files/setactorscale.txt new file mode 100644 index 0000000..d8cadea --- /dev/null +++ b/doc/files/setactorscale.txt @@ -0,0 +1,4 @@ +#title SetActorScale [RCBasic Doc] +#header sub SetActorScale( actor, x, y, z ) + + diff --git a/doc/files/setactorsleepthresholds.txt b/doc/files/setactorsleepthresholds.txt new file mode 100644 index 0000000..34ca887 --- /dev/null +++ b/doc/files/setactorsleepthresholds.txt @@ -0,0 +1,4 @@ +#title setActorSleepThresholds [RCBasic Doc] +#header sub setActorSleepThresholds( actor, linear, angular) + + diff --git a/doc/files/setactorsolid.txt b/doc/files/setactorsolid.txt new file mode 100644 index 0000000..2dcf2e2 --- /dev/null +++ b/doc/files/setactorsolid.txt @@ -0,0 +1,4 @@ +#title SetActorSolid [RCBasic Doc] +#header sub SetActorSolid(actor, flag) + + diff --git a/doc/files/setactortexture.txt b/doc/files/setactortexture.txt new file mode 100644 index 0000000..ad569e4 --- /dev/null +++ b/doc/files/setactortexture.txt @@ -0,0 +1,4 @@ +#title setActorTexture [RCBasic Doc] +#header sub setActorTexture( actor, layer, image_id) + + diff --git a/doc/files/setactorvisible.txt b/doc/files/setactorvisible.txt new file mode 100644 index 0000000..8750879 --- /dev/null +++ b/doc/files/setactorvisible.txt @@ -0,0 +1,4 @@ +#title SetActorVisible [RCBasic Doc] +#header sub SetActorVisible( actor, flag ) + + diff --git a/doc/files/setbilinearfilter.txt b/doc/files/setbilinearfilter.txt new file mode 100644 index 0000000..1c9c7d4 --- /dev/null +++ b/doc/files/setbilinearfilter.txt @@ -0,0 +1,4 @@ +#title setBilinearFilter [RCBasic Doc] +#header sub setBilinearFilter( flag ) + + diff --git a/doc/files/setblendmode.txt b/doc/files/setblendmode.txt new file mode 100644 index 0000000..85e2122 --- /dev/null +++ b/doc/files/setblendmode.txt @@ -0,0 +1,4 @@ +#title SetBlendMode [RCBasic Doc] +#header function SetImageBlendMode(slot, blend_mode) + + diff --git a/doc/files/setcameraaspectratio.txt b/doc/files/setcameraaspectratio.txt new file mode 100644 index 0000000..4fc06a7 --- /dev/null +++ b/doc/files/setcameraaspectratio.txt @@ -0,0 +1,4 @@ +#title SetCameraAspectRatio [RCBasic Doc] +#header sub SetCameraAspectRatio( aspect ) + + diff --git a/doc/files/setcamerafarvalue.txt b/doc/files/setcamerafarvalue.txt new file mode 100644 index 0000000..b0fa625 --- /dev/null +++ b/doc/files/setcamerafarvalue.txt @@ -0,0 +1,4 @@ +#title SetCameraFarValue [RCBasic Doc] +#header sub SetCameraFarValue( zf ) + + diff --git a/doc/files/setcamerafov.txt b/doc/files/setcamerafov.txt new file mode 100644 index 0000000..3e4ade2 --- /dev/null +++ b/doc/files/setcamerafov.txt @@ -0,0 +1,4 @@ +#title SetCameraFOV [RCBasic Doc] +#header sub SetCameraFOV( fov ) + + diff --git a/doc/files/setcameranearvalue.txt b/doc/files/setcameranearvalue.txt new file mode 100644 index 0000000..56c78be --- /dev/null +++ b/doc/files/setcameranearvalue.txt @@ -0,0 +1,4 @@ +#title SetCameraNearValue [RCBasic Doc] +#header sub SetCameraNearValue( zn ) + + diff --git a/doc/files/setcameraposition.txt b/doc/files/setcameraposition.txt new file mode 100644 index 0000000..5c73b0b --- /dev/null +++ b/doc/files/setcameraposition.txt @@ -0,0 +1,4 @@ +#title SetCameraPosition [RCBasic Doc] +#header sub SetCameraPosition( x, y, z) + + diff --git a/doc/files/setcamerarotation.txt b/doc/files/setcamerarotation.txt new file mode 100644 index 0000000..f240439 --- /dev/null +++ b/doc/files/setcamerarotation.txt @@ -0,0 +1,4 @@ +#title SetCameraRotation [RCBasic Doc] +#header sub SetCameraRotation( x, y, z) + + diff --git a/doc/files/setcanvas3d.txt b/doc/files/setcanvas3d.txt new file mode 100644 index 0000000..6a06036 --- /dev/null +++ b/doc/files/setcanvas3d.txt @@ -0,0 +1,4 @@ +#title SetCanvas3D [RCBasic Doc] +#header Sub SetCanvas3D(c_num, flag) + + diff --git a/doc/files/setcanvasalpha.txt b/doc/files/setcanvasalpha.txt new file mode 100644 index 0000000..7a26a70 --- /dev/null +++ b/doc/files/setcanvasalpha.txt @@ -0,0 +1,4 @@ +#title SetCanvasAlpha [RCBasic Doc] +#header sub SetCanvasAlpha(c_num, a) + + diff --git a/doc/files/setcanvascolormod.txt b/doc/files/setcanvascolormod.txt new file mode 100644 index 0000000..8f7ac62 --- /dev/null +++ b/doc/files/setcanvascolormod.txt @@ -0,0 +1,4 @@ +#title SetCanvasColorMod [RCBasic Doc] +#header sub SetCanvasColorMod(c_num, c) + + diff --git a/doc/files/setcanvasoffset.txt b/doc/files/setcanvasoffset.txt new file mode 100644 index 0000000..57a6d0c --- /dev/null +++ b/doc/files/setcanvasoffset.txt @@ -0,0 +1,4 @@ +#title SetCanvasOffset [RCBasic Doc] +#header sub SetCanvasOffset(c_num, x, y) + + diff --git a/doc/files/setcanvasviewport.txt b/doc/files/setcanvasviewport.txt new file mode 100644 index 0000000..877ab80 --- /dev/null +++ b/doc/files/setcanvasviewport.txt @@ -0,0 +1,4 @@ +#title SetCanvasViewport [RCBasic Doc] +#header sub SetCanvasViewport(cnum, x, y, w, h) + + diff --git a/doc/files/setcanvasvisible.txt b/doc/files/setcanvasvisible.txt new file mode 100644 index 0000000..5b6aa06 --- /dev/null +++ b/doc/files/setcanvasvisible.txt @@ -0,0 +1,4 @@ +#title SetCanvasVisible [RCBasic Doc] +#header sub SetCanvasVisible(c_num, flag) + + diff --git a/doc/files/setcanvasz.txt b/doc/files/setcanvasz.txt new file mode 100644 index 0000000..44d8e83 --- /dev/null +++ b/doc/files/setcanvasz.txt @@ -0,0 +1,4 @@ +#title SetCanvasZ [RCBasic Doc] +#header sub SetCanvasZ(c_num, z) + + diff --git a/doc/files/setchanneldistance.txt b/doc/files/setchanneldistance.txt new file mode 100644 index 0000000..cfb814d --- /dev/null +++ b/doc/files/setchanneldistance.txt @@ -0,0 +1,4 @@ +#title SetChannelDistance [RCBasic Doc] +#header function SetChannelDistance(channel, dist_value) + + diff --git a/doc/files/setchannelpanning.txt b/doc/files/setchannelpanning.txt new file mode 100644 index 0000000..e4840ca --- /dev/null +++ b/doc/files/setchannelpanning.txt @@ -0,0 +1,4 @@ +#title SetChannelPanning [RCBasic Doc] +#header function SetChannelPanning(channel, left_value, right_value) + + diff --git a/doc/files/setchannelspaceposition.txt b/doc/files/setchannelspaceposition.txt new file mode 100644 index 0000000..53f1868 --- /dev/null +++ b/doc/files/setchannelspaceposition.txt @@ -0,0 +1,4 @@ +#title SetChannelSpacePosition [RCBasic Doc] +#header function SetChannelSpacePosition(channel, angle, distance) + + diff --git a/doc/files/setchannelvolume.txt b/doc/files/setchannelvolume.txt new file mode 100644 index 0000000..1d66782 --- /dev/null +++ b/doc/files/setchannelvolume.txt @@ -0,0 +1,4 @@ +#title SetChannelVolume [RCBasic Doc] +#header sub SetChannelVolume(channel, vol) + + diff --git a/doc/files/setclearcolor.txt b/doc/files/setclearcolor.txt new file mode 100644 index 0000000..3989e96 --- /dev/null +++ b/doc/files/setclearcolor.txt @@ -0,0 +1,4 @@ +#title SetClearColor [RCBasic Doc] +#header sub SetClearColor(c) + + diff --git a/doc/files/setclipboardtext.txt b/doc/files/setclipboardtext.txt new file mode 100644 index 0000000..a188ec5 --- /dev/null +++ b/doc/files/setclipboardtext.txt @@ -0,0 +1,4 @@ +#title SetClipboardText [RCBasic Doc] +#header sub SetClipboardText(txt$) + + diff --git a/doc/files/setcolor.txt b/doc/files/setcolor.txt new file mode 100644 index 0000000..b292335 --- /dev/null +++ b/doc/files/setcolor.txt @@ -0,0 +1,4 @@ +#title SetColor [RCBasic Doc] +#header sub SetColor(c) + + diff --git a/doc/files/setconelimit.txt b/doc/files/setconelimit.txt new file mode 100644 index 0000000..9633284 --- /dev/null +++ b/doc/files/setconelimit.txt @@ -0,0 +1,4 @@ +#title setConeLimit [RCBasic Doc] +#header sub setConeLimit( constraint_id, swingSpan1, swingSpan2, twistSpan, softness, bias_factor, relaxation_factor) + + diff --git a/doc/files/setconstraintangularonly.txt b/doc/files/setconstraintangularonly.txt new file mode 100644 index 0000000..804be68 --- /dev/null +++ b/doc/files/setconstraintangularonly.txt @@ -0,0 +1,4 @@ +#title setConstraintAngularOnly [RCBasic Doc] +#header sub setConstraintAngularOnly( constraint_id, flag) + + diff --git a/doc/files/setconstraintaxis.txt b/doc/files/setconstraintaxis.txt new file mode 100644 index 0000000..2f30401 --- /dev/null +++ b/doc/files/setconstraintaxis.txt @@ -0,0 +1,4 @@ +#title setConstraintAxis [RCBasic Doc] +#header sub setConstraintAxis( constraint_id, x, y, z) + + diff --git a/doc/files/setconstraintbreakingimpulsethreshold.txt b/doc/files/setconstraintbreakingimpulsethreshold.txt new file mode 100644 index 0000000..853ead1 --- /dev/null +++ b/doc/files/setconstraintbreakingimpulsethreshold.txt @@ -0,0 +1,4 @@ +#title setConstraintBreakingImpulseThreshold [RCBasic Doc] +#header sub setConstraintBreakingImpulseThreshold( constraint_id, threshold) + + diff --git a/doc/files/setconstraintdamping.txt b/doc/files/setconstraintdamping.txt new file mode 100644 index 0000000..7b6801c --- /dev/null +++ b/doc/files/setconstraintdamping.txt @@ -0,0 +1,4 @@ +#title setConstraintDamping [RCBasic Doc] +#header sub setConstraintDamping( constraint_id, damping) + + diff --git a/doc/files/setconstraintdampingdirang.txt b/doc/files/setconstraintdampingdirang.txt new file mode 100644 index 0000000..2997440 --- /dev/null +++ b/doc/files/setconstraintdampingdirang.txt @@ -0,0 +1,4 @@ +#title setConstraintDampingDirAng [RCBasic Doc] +#header sub setConstraintDampingDirAng( constraint_id, n) + + diff --git a/doc/files/setconstraintdampingdirlin.txt b/doc/files/setconstraintdampingdirlin.txt new file mode 100644 index 0000000..c9ee750 --- /dev/null +++ b/doc/files/setconstraintdampingdirlin.txt @@ -0,0 +1,4 @@ +#title setConstraintDampingDirLin [RCBasic Doc] +#header sub setConstraintDampingDirLin( constraint_id, n) + + diff --git a/doc/files/setconstraintdampinglimang.txt b/doc/files/setconstraintdampinglimang.txt new file mode 100644 index 0000000..ef342ae --- /dev/null +++ b/doc/files/setconstraintdampinglimang.txt @@ -0,0 +1,4 @@ +#title setConstraintDampingLimAng [RCBasic Doc] +#header sub setConstraintDampingLimAng( constraint_id, n) + + diff --git a/doc/files/setconstraintdampinglimlin.txt b/doc/files/setconstraintdampinglimlin.txt new file mode 100644 index 0000000..3401c22 --- /dev/null +++ b/doc/files/setconstraintdampinglimlin.txt @@ -0,0 +1,4 @@ +#title setConstraintDampingLimLin [RCBasic Doc] +#header sub setConstraintDampingLimLin( constraint_id, n) + + diff --git a/doc/files/setconstraintdampingorthoang.txt b/doc/files/setconstraintdampingorthoang.txt new file mode 100644 index 0000000..51615d2 --- /dev/null +++ b/doc/files/setconstraintdampingorthoang.txt @@ -0,0 +1,4 @@ +#title setConstraintDampingOrthoAng [RCBasic Doc] +#header sub setConstraintDampingOrthoAng( constraint_id, n) + + diff --git a/doc/files/setconstraintdampingortholin.txt b/doc/files/setconstraintdampingortholin.txt new file mode 100644 index 0000000..f07848a --- /dev/null +++ b/doc/files/setconstraintdampingortholin.txt @@ -0,0 +1,4 @@ +#title setConstraintDampingOrthoLin [RCBasic Doc] +#header sub setConstraintDampingOrthoLin( constraint_id, n) + + diff --git a/doc/files/setconstraintfixthresh.txt b/doc/files/setconstraintfixthresh.txt new file mode 100644 index 0000000..a65a5dd --- /dev/null +++ b/doc/files/setconstraintfixthresh.txt @@ -0,0 +1,4 @@ +#title setConstraintFixThresh [RCBasic Doc] +#header sub setConstraintFixThresh( constraint_id, fixThresh) + + diff --git a/doc/files/setconstraintframes.txt b/doc/files/setconstraintframes.txt new file mode 100644 index 0000000..554e0a8 --- /dev/null +++ b/doc/files/setconstraintframes.txt @@ -0,0 +1,4 @@ +#title setConstraintFrames [RCBasic Doc] +#header sub setConstraintFrames( constraint_id, frameA_matrix, frameB_matrix) + + diff --git a/doc/files/setconstraintloweranglimit.txt b/doc/files/setconstraintloweranglimit.txt new file mode 100644 index 0000000..3881608 --- /dev/null +++ b/doc/files/setconstraintloweranglimit.txt @@ -0,0 +1,4 @@ +#title setConstraintLowerAngLimit [RCBasic Doc] +#header sub setConstraintLowerAngLimit( constraint_id, n) + + diff --git a/doc/files/setconstraintlowerlinlimit.txt b/doc/files/setconstraintlowerlinlimit.txt new file mode 100644 index 0000000..3ad7a53 --- /dev/null +++ b/doc/files/setconstraintlowerlinlimit.txt @@ -0,0 +1,4 @@ +#title setConstraintLowerLinLimit [RCBasic Doc] +#header sub setConstraintLowerLinLimit( constraint_id, n) + + diff --git a/doc/files/setconstraintpivota.txt b/doc/files/setconstraintpivota.txt new file mode 100644 index 0000000..48b87d8 --- /dev/null +++ b/doc/files/setconstraintpivota.txt @@ -0,0 +1,4 @@ +#title setConstraintPivotA [RCBasic Doc] +#header sub setConstraintPivotA( constraint_id, x, y, z) + + diff --git a/doc/files/setconstraintpivotb.txt b/doc/files/setconstraintpivotb.txt new file mode 100644 index 0000000..b75cd89 --- /dev/null +++ b/doc/files/setconstraintpivotb.txt @@ -0,0 +1,4 @@ +#title setConstraintPivotB [RCBasic Doc] +#header sub setConstraintPivotB( constraint_id, x, y, z) + + diff --git a/doc/files/setconstraintrestitutiondirang.txt b/doc/files/setconstraintrestitutiondirang.txt new file mode 100644 index 0000000..0180b56 --- /dev/null +++ b/doc/files/setconstraintrestitutiondirang.txt @@ -0,0 +1,4 @@ +#title setConstraintRestitutionDirAng [RCBasic Doc] +#header sub setConstraintRestitutionDirAng( constraint_id, n) + + diff --git a/doc/files/setconstraintrestitutiondirlin.txt b/doc/files/setconstraintrestitutiondirlin.txt new file mode 100644 index 0000000..b41b9bd --- /dev/null +++ b/doc/files/setconstraintrestitutiondirlin.txt @@ -0,0 +1,4 @@ +#title setConstraintRestitutionDirLin [RCBasic Doc] +#header sub setConstraintRestitutionDirLin( constraint_id, n) + + diff --git a/doc/files/setconstraintrestitutionlimang.txt b/doc/files/setconstraintrestitutionlimang.txt new file mode 100644 index 0000000..bd0f13a --- /dev/null +++ b/doc/files/setconstraintrestitutionlimang.txt @@ -0,0 +1,4 @@ +#title setConstraintRestitutionLimAng [RCBasic Doc] +#header sub setConstraintRestitutionLimAng( constraint_id, n) + + diff --git a/doc/files/setconstraintrestitutionlimlin.txt b/doc/files/setconstraintrestitutionlimlin.txt new file mode 100644 index 0000000..08ca5c5 --- /dev/null +++ b/doc/files/setconstraintrestitutionlimlin.txt @@ -0,0 +1,4 @@ +#title setConstraintRestitutionLimLin [RCBasic Doc] +#header sub setConstraintRestitutionLimLin( constraint_id, n) + + diff --git a/doc/files/setconstraintrestitutionorthoang.txt b/doc/files/setconstraintrestitutionorthoang.txt new file mode 100644 index 0000000..b61ff84 --- /dev/null +++ b/doc/files/setconstraintrestitutionorthoang.txt @@ -0,0 +1,4 @@ +#title setConstraintRestitutionOrthoAng [RCBasic Doc] +#header sub setConstraintRestitutionOrthoAng( constraint_id, n) + + diff --git a/doc/files/setconstraintrestitutionortholin.txt b/doc/files/setconstraintrestitutionortholin.txt new file mode 100644 index 0000000..823363e --- /dev/null +++ b/doc/files/setconstraintrestitutionortholin.txt @@ -0,0 +1,4 @@ +#title setConstraintRestitutionOrthoLin [RCBasic Doc] +#header sub setConstraintRestitutionOrthoLin( constraint_id, n) + + diff --git a/doc/files/setconstraintsoftnessdirang.txt b/doc/files/setconstraintsoftnessdirang.txt new file mode 100644 index 0000000..cadb266 --- /dev/null +++ b/doc/files/setconstraintsoftnessdirang.txt @@ -0,0 +1,4 @@ +#title setConstraintSoftnessDirAng [RCBasic Doc] +#header sub setConstraintSoftnessDirAng( constraint_id, n) + + diff --git a/doc/files/setconstraintsoftnessdirlin.txt b/doc/files/setconstraintsoftnessdirlin.txt new file mode 100644 index 0000000..3175a26 --- /dev/null +++ b/doc/files/setconstraintsoftnessdirlin.txt @@ -0,0 +1,4 @@ +#title setConstraintSoftnessDirLin [RCBasic Doc] +#header sub setConstraintSoftnessDirLin( constraint_id, n) + + diff --git a/doc/files/setconstraintsoftnesslimang.txt b/doc/files/setconstraintsoftnesslimang.txt new file mode 100644 index 0000000..d95a1dd --- /dev/null +++ b/doc/files/setconstraintsoftnesslimang.txt @@ -0,0 +1,4 @@ +#title setConstraintSoftnessLimAng [RCBasic Doc] +#header sub setConstraintSoftnessLimAng( constraint_id, n) + + diff --git a/doc/files/setconstraintsoftnesslimlin.txt b/doc/files/setconstraintsoftnesslimlin.txt new file mode 100644 index 0000000..9ad9c87 --- /dev/null +++ b/doc/files/setconstraintsoftnesslimlin.txt @@ -0,0 +1,4 @@ +#title setConstraintSoftnessLimLin [RCBasic Doc] +#header sub setConstraintSoftnessLimLin( constraint_id, n) + + diff --git a/doc/files/setconstraintsoftnessorthoang.txt b/doc/files/setconstraintsoftnessorthoang.txt new file mode 100644 index 0000000..7d6ec32 --- /dev/null +++ b/doc/files/setconstraintsoftnessorthoang.txt @@ -0,0 +1,4 @@ +#title setConstraintSoftnessOrthoAng [RCBasic Doc] +#header sub setConstraintSoftnessOrthoAng( constraint_id, n) + + diff --git a/doc/files/setconstraintsoftnessortholin.txt b/doc/files/setconstraintsoftnessortholin.txt new file mode 100644 index 0000000..aa87256 --- /dev/null +++ b/doc/files/setconstraintsoftnessortholin.txt @@ -0,0 +1,4 @@ +#title setConstraintSoftnessOrthoLin [RCBasic Doc] +#header sub setConstraintSoftnessOrthoLin( constraint_id, n) + + diff --git a/doc/files/setconstraintsolveriterations.txt b/doc/files/setconstraintsolveriterations.txt new file mode 100644 index 0000000..6c375bb --- /dev/null +++ b/doc/files/setconstraintsolveriterations.txt @@ -0,0 +1,4 @@ +#title setConstraintSolverIterations [RCBasic Doc] +#header sub setConstraintSolverIterations( constraint_id, num) + + diff --git a/doc/files/setconstraintupperanglimit.txt b/doc/files/setconstraintupperanglimit.txt new file mode 100644 index 0000000..da069a7 --- /dev/null +++ b/doc/files/setconstraintupperanglimit.txt @@ -0,0 +1,4 @@ +#title setConstraintUpperAngLimit [RCBasic Doc] +#header sub setConstraintUpperAngLimit( constraint_id, n) + + diff --git a/doc/files/setconstraintupperlinlimit.txt b/doc/files/setconstraintupperlinlimit.txt new file mode 100644 index 0000000..b896f16 --- /dev/null +++ b/doc/files/setconstraintupperlinlimit.txt @@ -0,0 +1,4 @@ +#title setConstraintUpperLinLimit [RCBasic Doc] +#header sub setConstraintUpperLinLimit( constraint_id, n) + + diff --git a/doc/files/setenv.txt b/doc/files/setenv.txt new file mode 100644 index 0000000..b607b22 --- /dev/null +++ b/doc/files/setenv.txt @@ -0,0 +1,4 @@ +#title SetEnv [RCBasic Doc] +#header sub SetEnv(var$, value$, overwrite) + + diff --git a/doc/files/setfont.txt b/doc/files/setfont.txt new file mode 100644 index 0000000..ff6fd40 --- /dev/null +++ b/doc/files/setfont.txt @@ -0,0 +1,4 @@ +#title SetFont [RCBasic Doc] +#header sub Font(slot) + + diff --git a/doc/files/setgravity3d.txt b/doc/files/setgravity3d.txt new file mode 100644 index 0000000..4d5fd88 --- /dev/null +++ b/doc/files/setgravity3d.txt @@ -0,0 +1,4 @@ +#title SetGravity3D [RCBasic Doc] +#header sub SetGravity3D(x, y, z) + + diff --git a/doc/files/sethingelimit.txt b/doc/files/sethingelimit.txt new file mode 100644 index 0000000..4b2264b --- /dev/null +++ b/doc/files/sethingelimit.txt @@ -0,0 +1,4 @@ +#title setHingeLimit [RCBasic Doc] +#header sub setHingeLimit( constraint_id, low, high, softness, bias_factor, relaxation_factor) + + diff --git a/doc/files/setidentitymatrix.txt b/doc/files/setidentitymatrix.txt new file mode 100644 index 0000000..b0f6998 --- /dev/null +++ b/doc/files/setidentitymatrix.txt @@ -0,0 +1,4 @@ +#title SetIdentityMatrix [RCBasic Doc] +#header sub SetIdentityMatrix(mA, n) + + diff --git a/doc/files/setimagealpha.txt b/doc/files/setimagealpha.txt new file mode 100644 index 0000000..6f1f986 --- /dev/null +++ b/doc/files/setimagealpha.txt @@ -0,0 +1,4 @@ +#title SetImageAlpha [RCBasic Doc] +#header sub SetImageAlpha(slot, a) + + diff --git a/doc/files/setimagecolormod.txt b/doc/files/setimagecolormod.txt new file mode 100644 index 0000000..7a0fc77 --- /dev/null +++ b/doc/files/setimagecolormod.txt @@ -0,0 +1,4 @@ +#title SetImageColorMod [RCBasic Doc] +#header sub SetImageColorMod(slot, c) + + diff --git a/doc/files/setlightambientcolor.txt b/doc/files/setlightambientcolor.txt new file mode 100644 index 0000000..8ebec04 --- /dev/null +++ b/doc/files/setlightambientcolor.txt @@ -0,0 +1,4 @@ +#title SetLightAmbientColor [RCBasic Doc] +#header sub SetLightAmbientColor( actor, color ) + + diff --git a/doc/files/setlightattenuation.txt b/doc/files/setlightattenuation.txt new file mode 100644 index 0000000..2bcba8d --- /dev/null +++ b/doc/files/setlightattenuation.txt @@ -0,0 +1,4 @@ +#title SetLightAttenuation [RCBasic Doc] +#header sub SetLightAttenuation( actor, l_constant, l_linear, l_quadratic ) + + diff --git a/doc/files/setlightdiffusecolor.txt b/doc/files/setlightdiffusecolor.txt new file mode 100644 index 0000000..b8dcc53 --- /dev/null +++ b/doc/files/setlightdiffusecolor.txt @@ -0,0 +1,4 @@ +#title SetLightDiffuseColor [RCBasic Doc] +#header sub SetLightDiffuseColor( actor, color ) + + diff --git a/doc/files/setlightfalloff.txt b/doc/files/setlightfalloff.txt new file mode 100644 index 0000000..0118536 --- /dev/null +++ b/doc/files/setlightfalloff.txt @@ -0,0 +1,4 @@ +#title SetLightFalloff [RCBasic Doc] +#header sub SetLightFalloff( actor, falloff ) + + diff --git a/doc/files/setlightinnercone.txt b/doc/files/setlightinnercone.txt new file mode 100644 index 0000000..8ac95c8 --- /dev/null +++ b/doc/files/setlightinnercone.txt @@ -0,0 +1,4 @@ +#title SetLightInnerCone [RCBasic Doc] +#header sub SetLightInnerCone( actor, angle ) + + diff --git a/doc/files/setlightoutercone.txt b/doc/files/setlightoutercone.txt new file mode 100644 index 0000000..8adb2a4 --- /dev/null +++ b/doc/files/setlightoutercone.txt @@ -0,0 +1,4 @@ +#title SetLightOuterCone [RCBasic Doc] +#header sub SetLightOuterCone( actor, angle) + + diff --git a/doc/files/setlightradius.txt b/doc/files/setlightradius.txt new file mode 100644 index 0000000..785cb17 --- /dev/null +++ b/doc/files/setlightradius.txt @@ -0,0 +1,4 @@ +#title setLightRadius [RCBasic Doc] +#header sub setLightRadius( actor, radius ) + + diff --git a/doc/files/setlightshadowcast.txt b/doc/files/setlightshadowcast.txt new file mode 100644 index 0000000..596a0e2 --- /dev/null +++ b/doc/files/setlightshadowcast.txt @@ -0,0 +1,4 @@ +#title setLightShadowCast [RCBasic Doc] +#header sub setLightShadowCast( actor, flag ) + + diff --git a/doc/files/setlightspecularcolor.txt b/doc/files/setlightspecularcolor.txt new file mode 100644 index 0000000..7b5c38d --- /dev/null +++ b/doc/files/setlightspecularcolor.txt @@ -0,0 +1,4 @@ +#title SetLightSpecularColor [RCBasic Doc] +#header sub SetLightSpecularColor( actor, color ) + + diff --git a/doc/files/setlighttype.txt b/doc/files/setlighttype.txt new file mode 100644 index 0000000..cb4ba2f --- /dev/null +++ b/doc/files/setlighttype.txt @@ -0,0 +1,4 @@ +#title setLightType [RCBasic Doc] +#header sub setLightType( actor, light_type ) + + diff --git a/doc/files/setmaterialambientcolor.txt b/doc/files/setmaterialambientcolor.txt new file mode 100644 index 0000000..fc5eefe --- /dev/null +++ b/doc/files/setmaterialambientcolor.txt @@ -0,0 +1,4 @@ +#title setMaterialAmbientColor [RCBasic Doc] +#header sub setMaterialAmbientColor( material_id, color) + + diff --git a/doc/files/setmaterialantialiasing.txt b/doc/files/setmaterialantialiasing.txt new file mode 100644 index 0000000..aeeeaea --- /dev/null +++ b/doc/files/setmaterialantialiasing.txt @@ -0,0 +1,4 @@ +#title setMaterialAntiAliasing [RCBasic Doc] +#header sub setMaterialAntiAliasing( material_id, aa) + + diff --git a/doc/files/setmaterialbackfaceculling.txt b/doc/files/setmaterialbackfaceculling.txt new file mode 100644 index 0000000..edfe154 --- /dev/null +++ b/doc/files/setmaterialbackfaceculling.txt @@ -0,0 +1,4 @@ +#title setMaterialBackfaceCulling [RCBasic Doc] +#header sub setMaterialBackfaceCulling( material_id, flag) + + diff --git a/doc/files/setmaterialblendfactor.txt b/doc/files/setmaterialblendfactor.txt new file mode 100644 index 0000000..eb61c38 --- /dev/null +++ b/doc/files/setmaterialblendfactor.txt @@ -0,0 +1,4 @@ +#title setMaterialBlendFactor [RCBasic Doc] +#header sub setMaterialBlendFactor( material_id, bf) + + diff --git a/doc/files/setmaterialblendmode.txt b/doc/files/setmaterialblendmode.txt new file mode 100644 index 0000000..3517225 --- /dev/null +++ b/doc/files/setmaterialblendmode.txt @@ -0,0 +1,4 @@ +#title setMaterialBlendMode [RCBasic Doc] +#header sub setMaterialBlendMode( material_id, blend_mode) + + diff --git a/doc/files/setmaterialcolormask.txt b/doc/files/setmaterialcolormask.txt new file mode 100644 index 0000000..7a496c8 --- /dev/null +++ b/doc/files/setmaterialcolormask.txt @@ -0,0 +1,4 @@ +#title setMaterialColorMask [RCBasic Doc] +#header sub setMaterialColorMask( material_id, color_mask) + + diff --git a/doc/files/setmaterialcolormode.txt b/doc/files/setmaterialcolormode.txt new file mode 100644 index 0000000..416213e --- /dev/null +++ b/doc/files/setmaterialcolormode.txt @@ -0,0 +1,4 @@ +#title setMaterialColorMode [RCBasic Doc] +#header sub setMaterialColorMode( material_id, color_mode) + + diff --git a/doc/files/setmaterialdiffusecolor.txt b/doc/files/setmaterialdiffusecolor.txt new file mode 100644 index 0000000..559876e --- /dev/null +++ b/doc/files/setmaterialdiffusecolor.txt @@ -0,0 +1,4 @@ +#title setMaterialDiffuseColor [RCBasic Doc] +#header sub setMaterialDiffuseColor( material_id, color) + + diff --git a/doc/files/setmaterialemissivecolor.txt b/doc/files/setmaterialemissivecolor.txt new file mode 100644 index 0000000..3e4419f --- /dev/null +++ b/doc/files/setmaterialemissivecolor.txt @@ -0,0 +1,4 @@ +#title setMaterialEmissiveColor [RCBasic Doc] +#header sub setMaterialEmissiveColor( material_id, color) + + diff --git a/doc/files/setmaterialflag.txt b/doc/files/setmaterialflag.txt new file mode 100644 index 0000000..4982869 --- /dev/null +++ b/doc/files/setmaterialflag.txt @@ -0,0 +1,4 @@ +#title setMaterialFlag [RCBasic Doc] +#header sub setMaterialFlag( material_id, material_flag, f_value) + + diff --git a/doc/files/setmaterialfog.txt b/doc/files/setmaterialfog.txt new file mode 100644 index 0000000..b16170d --- /dev/null +++ b/doc/files/setmaterialfog.txt @@ -0,0 +1,4 @@ +#title setMaterialFog [RCBasic Doc] +#header sub setMaterialFog( material_id, flag) + + diff --git a/doc/files/setmaterialfrontfaceculling.txt b/doc/files/setmaterialfrontfaceculling.txt new file mode 100644 index 0000000..d14c0dd --- /dev/null +++ b/doc/files/setmaterialfrontfaceculling.txt @@ -0,0 +1,4 @@ +#title setMaterialFrontfaceCulling [RCBasic Doc] +#header sub setMaterialFrontfaceCulling( material_id, flag) + + diff --git a/doc/files/setmaterialgouraudshading.txt b/doc/files/setmaterialgouraudshading.txt new file mode 100644 index 0000000..3589db8 --- /dev/null +++ b/doc/files/setmaterialgouraudshading.txt @@ -0,0 +1,4 @@ +#title setMaterialGouraudShading [RCBasic Doc] +#header sub setMaterialGouraudShading( material_id, flag) + + diff --git a/doc/files/setmateriallighting.txt b/doc/files/setmateriallighting.txt new file mode 100644 index 0000000..25b2b24 --- /dev/null +++ b/doc/files/setmateriallighting.txt @@ -0,0 +1,4 @@ +#title setMaterialLighting [RCBasic Doc] +#header sub setMaterialLighting( material_id, flag) + + diff --git a/doc/files/setmaterialnormalize.txt b/doc/files/setmaterialnormalize.txt new file mode 100644 index 0000000..7ceb8f4 --- /dev/null +++ b/doc/files/setmaterialnormalize.txt @@ -0,0 +1,4 @@ +#title setMaterialNormalize [RCBasic Doc] +#header sub setMaterialNormalize( material_id, flag) + + diff --git a/doc/files/setmaterialpointcloud.txt b/doc/files/setmaterialpointcloud.txt new file mode 100644 index 0000000..28cba47 --- /dev/null +++ b/doc/files/setmaterialpointcloud.txt @@ -0,0 +1,4 @@ +#title setMaterialPointCloud [RCBasic Doc] +#header sub setMaterialPointCloud( material_id, flag) + + diff --git a/doc/files/setmaterialshininess.txt b/doc/files/setmaterialshininess.txt new file mode 100644 index 0000000..7dcae4e --- /dev/null +++ b/doc/files/setmaterialshininess.txt @@ -0,0 +1,4 @@ +#title setMaterialShininess [RCBasic Doc] +#header sub setMaterialShininess( material_id, shininess) + + diff --git a/doc/files/setmaterialspecularcolor.txt b/doc/files/setmaterialspecularcolor.txt new file mode 100644 index 0000000..791dd76 --- /dev/null +++ b/doc/files/setmaterialspecularcolor.txt @@ -0,0 +1,4 @@ +#title setMaterialSpecularColor [RCBasic Doc] +#header sub setMaterialSpecularColor( material_id, color) + + diff --git a/doc/files/setmaterialtexture.txt b/doc/files/setmaterialtexture.txt new file mode 100644 index 0000000..67085bd --- /dev/null +++ b/doc/files/setmaterialtexture.txt @@ -0,0 +1,4 @@ +#title setMaterialTexture [RCBasic Doc] +#header sub setMaterialTexture( material_id, level, img_id) + + diff --git a/doc/files/setmaterialtexturecanvas.txt b/doc/files/setmaterialtexturecanvas.txt new file mode 100644 index 0000000..ea2817f --- /dev/null +++ b/doc/files/setmaterialtexturecanvas.txt @@ -0,0 +1,4 @@ +#title setMaterialTextureCanvas [RCBasic Doc] +#header sub setMaterialTextureCanvas( material_id, level, canvas_id) + + diff --git a/doc/files/setmaterialthickness.txt b/doc/files/setmaterialthickness.txt new file mode 100644 index 0000000..d19cb52 --- /dev/null +++ b/doc/files/setmaterialthickness.txt @@ -0,0 +1,4 @@ +#title setMaterialThickness [RCBasic Doc] +#header sub setMaterialThickness( material_id, thickness) + + diff --git a/doc/files/setmaterialtype.txt b/doc/files/setmaterialtype.txt new file mode 100644 index 0000000..30dce34 --- /dev/null +++ b/doc/files/setmaterialtype.txt @@ -0,0 +1,4 @@ +#title setMaterialType [RCBasic Doc] +#header sub setMaterialType( material_id, mat_type) + + diff --git a/doc/files/setmaterialwireframe.txt b/doc/files/setmaterialwireframe.txt new file mode 100644 index 0000000..e2bf12c --- /dev/null +++ b/doc/files/setmaterialwireframe.txt @@ -0,0 +1,4 @@ +#title setMaterialWireframe [RCBasic Doc] +#header sub setMaterialWireframe( material_id, flag) + + diff --git a/doc/files/setmatrixrotation.txt b/doc/files/setmatrixrotation.txt new file mode 100644 index 0000000..907d48a --- /dev/null +++ b/doc/files/setmatrixrotation.txt @@ -0,0 +1,4 @@ +#title SetMatrixRotation [RCBasic Doc] +#header sub SetMatrixRotation( mA, x, y, z ) + + diff --git a/doc/files/setmatrixscale.txt b/doc/files/setmatrixscale.txt new file mode 100644 index 0000000..e362946 --- /dev/null +++ b/doc/files/setmatrixscale.txt @@ -0,0 +1,4 @@ +#title SetMatrixScale [RCBasic Doc] +#header sub SetMatrixScale( mA, x, y, z ) + + diff --git a/doc/files/setmatrixtranslation.txt b/doc/files/setmatrixtranslation.txt new file mode 100644 index 0000000..55c1e8f --- /dev/null +++ b/doc/files/setmatrixtranslation.txt @@ -0,0 +1,4 @@ +#title SetMatrixTranslation [RCBasic Doc] +#header sub SetMatrixTranslation( mA, x, y, z ) + + diff --git a/doc/files/setmatrixvalue.txt b/doc/files/setmatrixvalue.txt new file mode 100644 index 0000000..12bb912 --- /dev/null +++ b/doc/files/setmatrixvalue.txt @@ -0,0 +1,4 @@ +#title SetMatrixValue [RCBasic Doc] +#header sub SetMatrixValue(mA, r, c, v) + + diff --git a/doc/files/setmouserelative.txt b/doc/files/setmouserelative.txt new file mode 100644 index 0000000..5b62174 --- /dev/null +++ b/doc/files/setmouserelative.txt @@ -0,0 +1,4 @@ +#title SetMouseRelative [RCBasic Doc] +#header sub SetMouseRelative(flag) + + diff --git a/doc/files/setmousezone.txt b/doc/files/setmousezone.txt new file mode 100644 index 0000000..a1c3b94 --- /dev/null +++ b/doc/files/setmousezone.txt @@ -0,0 +1,4 @@ +#title SetMouseZone [RCBasic Doc] +#header sub SetMouseZone(x, y, w, h) + + diff --git a/doc/files/setmusicposition.txt b/doc/files/setmusicposition.txt new file mode 100644 index 0000000..7421763 --- /dev/null +++ b/doc/files/setmusicposition.txt @@ -0,0 +1,4 @@ +#title SetMusicPosition [RCBasic Doc] +#header sub SetMusicPosition(pos) + + diff --git a/doc/files/setmusicvolume.txt b/doc/files/setmusicvolume.txt new file mode 100644 index 0000000..65258be --- /dev/null +++ b/doc/files/setmusicvolume.txt @@ -0,0 +1,4 @@ +#title SetMusicVolume [RCBasic Doc] +#header sub SetMusicVolume(vol) + + diff --git a/doc/files/setparticlebox.txt b/doc/files/setparticlebox.txt new file mode 100644 index 0000000..80280b5 --- /dev/null +++ b/doc/files/setparticlebox.txt @@ -0,0 +1,4 @@ +#title setParticleBox [RCBasic Doc] +#header sub setParticleBox( actor, min_x, min_y, min_z, max_x, max_y, max_z) + + diff --git a/doc/files/setparticlecenter.txt b/doc/files/setparticlecenter.txt new file mode 100644 index 0000000..c7b9b99 --- /dev/null +++ b/doc/files/setparticlecenter.txt @@ -0,0 +1,4 @@ +#title setParticleCenter [RCBasic Doc] +#header sub setParticleCenter( actor, x, y, z) + + diff --git a/doc/files/setparticledirection.txt b/doc/files/setparticledirection.txt new file mode 100644 index 0000000..065a803 --- /dev/null +++ b/doc/files/setparticledirection.txt @@ -0,0 +1,4 @@ +#title setParticleDirection [RCBasic Doc] +#header sub setParticleDirection( actor, x, y, z) + + diff --git a/doc/files/setparticlelength.txt b/doc/files/setparticlelength.txt new file mode 100644 index 0000000..f603a87 --- /dev/null +++ b/doc/files/setparticlelength.txt @@ -0,0 +1,4 @@ +#title setParticleLength [RCBasic Doc] +#header sub setParticleLength( actor, p_len) + + diff --git a/doc/files/setparticlemaxangle.txt b/doc/files/setparticlemaxangle.txt new file mode 100644 index 0000000..f84c0fc --- /dev/null +++ b/doc/files/setparticlemaxangle.txt @@ -0,0 +1,4 @@ +#title setParticleMaxAngle [RCBasic Doc] +#header sub setParticleMaxAngle( actor, maxAngle) + + diff --git a/doc/files/setparticlemaxlife.txt b/doc/files/setparticlemaxlife.txt new file mode 100644 index 0000000..a448aa7 --- /dev/null +++ b/doc/files/setparticlemaxlife.txt @@ -0,0 +1,4 @@ +#title setParticleMaxLife [RCBasic Doc] +#header sub setParticleMaxLife( actor, maxLife) + + diff --git a/doc/files/setparticlemaxparticlespersecond.txt b/doc/files/setparticlemaxparticlespersecond.txt new file mode 100644 index 0000000..69a3e4c --- /dev/null +++ b/doc/files/setparticlemaxparticlespersecond.txt @@ -0,0 +1,4 @@ +#title setParticleMaxParticlesPerSecond [RCBasic Doc] +#header sub setParticleMaxParticlesPerSecond( actor, maxParticlesPerSecond) + + diff --git a/doc/files/setparticlemaxstartcolor.txt b/doc/files/setparticlemaxstartcolor.txt new file mode 100644 index 0000000..387b1a5 --- /dev/null +++ b/doc/files/setparticlemaxstartcolor.txt @@ -0,0 +1,4 @@ +#title setParticleMaxStartColor [RCBasic Doc] +#header sub setParticleMaxStartColor( actor, color) + + diff --git a/doc/files/setparticlemaxstartsize.txt b/doc/files/setparticlemaxstartsize.txt new file mode 100644 index 0000000..0fbc608 --- /dev/null +++ b/doc/files/setparticlemaxstartsize.txt @@ -0,0 +1,4 @@ +#title setParticleMaxStartSize [RCBasic Doc] +#header sub setParticleMaxStartSize( actor, w, h) + + diff --git a/doc/files/setparticlemesh.txt b/doc/files/setparticlemesh.txt new file mode 100644 index 0000000..e82f524 --- /dev/null +++ b/doc/files/setparticlemesh.txt @@ -0,0 +1,4 @@ +#title setParticleMesh [RCBasic Doc] +#header sub setParticleMesh( actor, mesh) + + diff --git a/doc/files/setparticleminlife.txt b/doc/files/setparticleminlife.txt new file mode 100644 index 0000000..446e5af --- /dev/null +++ b/doc/files/setparticleminlife.txt @@ -0,0 +1,4 @@ +#title setParticleMinLife [RCBasic Doc] +#header sub setParticleMinLife( actor, minLife) + + diff --git a/doc/files/setparticleminparticlespersecond.txt b/doc/files/setparticleminparticlespersecond.txt new file mode 100644 index 0000000..00d9e3c --- /dev/null +++ b/doc/files/setparticleminparticlespersecond.txt @@ -0,0 +1,4 @@ +#title setParticleMinParticlesPerSecond [RCBasic Doc] +#header sub setParticleMinParticlesPerSecond( actor, minParticlesPerSecond) + + diff --git a/doc/files/setparticleminstartcolor.txt b/doc/files/setparticleminstartcolor.txt new file mode 100644 index 0000000..c6d9d8d --- /dev/null +++ b/doc/files/setparticleminstartcolor.txt @@ -0,0 +1,4 @@ +#title setParticleMinStartColor [RCBasic Doc] +#header sub setParticleMinStartColor( actor, color) + + diff --git a/doc/files/setparticleminstartsize.txt b/doc/files/setparticleminstartsize.txt new file mode 100644 index 0000000..10491eb --- /dev/null +++ b/doc/files/setparticleminstartsize.txt @@ -0,0 +1,4 @@ +#title setParticleMinStartSize [RCBasic Doc] +#header sub setParticleMinStartSize( actor, w, h) + + diff --git a/doc/files/setparticlenormal.txt b/doc/files/setparticlenormal.txt new file mode 100644 index 0000000..1d7a7d6 --- /dev/null +++ b/doc/files/setparticlenormal.txt @@ -0,0 +1,4 @@ +#title setParticleNormal [RCBasic Doc] +#header sub setParticleNormal( actor, x, y, z) + + diff --git a/doc/files/setparticlenormaldirectionmod.txt b/doc/files/setparticlenormaldirectionmod.txt new file mode 100644 index 0000000..c5bd775 --- /dev/null +++ b/doc/files/setparticlenormaldirectionmod.txt @@ -0,0 +1,4 @@ +#title setParticleNormalDirectionMod [RCBasic Doc] +#header sub setParticleNormalDirectionMod( actor, nd_mod) + + diff --git a/doc/files/setparticleradius.txt b/doc/files/setparticleradius.txt new file mode 100644 index 0000000..5c72d42 --- /dev/null +++ b/doc/files/setparticleradius.txt @@ -0,0 +1,4 @@ +#title setParticleRadius [RCBasic Doc] +#header sub setParticleRadius( actor, radius) + + diff --git a/doc/files/setparticleringthickness.txt b/doc/files/setparticleringthickness.txt new file mode 100644 index 0000000..2a675d5 --- /dev/null +++ b/doc/files/setparticleringthickness.txt @@ -0,0 +1,4 @@ +#title setParticleRingThickness [RCBasic Doc] +#header sub setParticleRingThickness( actor, ringThickness) + + diff --git a/doc/files/setsoundchannels.txt b/doc/files/setsoundchannels.txt new file mode 100644 index 0000000..47ed129 --- /dev/null +++ b/doc/files/setsoundchannels.txt @@ -0,0 +1,4 @@ +#title SetSoundChannels [RCBasic Doc] +#header sub SetSoundChannels(max_channels) + + diff --git a/doc/files/setsoundvolume.txt b/doc/files/setsoundvolume.txt new file mode 100644 index 0000000..67afee4 --- /dev/null +++ b/doc/files/setsoundvolume.txt @@ -0,0 +1,4 @@ +#title SetSoundVolume [RCBasic Doc] +#header sub SetSoundVolume(slot, vol) + + diff --git a/doc/files/setspriteposition.txt b/doc/files/setspriteposition.txt new file mode 100644 index 0000000..531db66 --- /dev/null +++ b/doc/files/setspriteposition.txt @@ -0,0 +1,4 @@ +#title SetSpritePosition [RCBasic Doc] +#header Sub SetSpritePosition( sprite, x, y ) + + diff --git a/doc/files/setterraincameramovementdelta.txt b/doc/files/setterraincameramovementdelta.txt new file mode 100644 index 0000000..3a0d362 --- /dev/null +++ b/doc/files/setterraincameramovementdelta.txt @@ -0,0 +1,4 @@ +#title SetTerrainCameraMovementDelta [RCBasic Doc] +#header sub SetTerrainCameraMovementDelta( actor, delta ) + + diff --git a/doc/files/setterraincamerarotationdelta.txt b/doc/files/setterraincamerarotationdelta.txt new file mode 100644 index 0000000..425b0f3 --- /dev/null +++ b/doc/files/setterraincamerarotationdelta.txt @@ -0,0 +1,4 @@ +#title SetTerrainCameraRotationDelta [RCBasic Doc] +#header sub SetTerrainCameraRotationDelta( actor, delta ) + + diff --git a/doc/files/setterrainloddistance.txt b/doc/files/setterrainloddistance.txt new file mode 100644 index 0000000..f9b6f0d --- /dev/null +++ b/doc/files/setterrainloddistance.txt @@ -0,0 +1,4 @@ +#title SetTerrainLODDistance [RCBasic Doc] +#header sub SetTerrainLODDistance( actor, LOD, distance ) + + diff --git a/doc/files/setterrainpatchlod.txt b/doc/files/setterrainpatchlod.txt new file mode 100644 index 0000000..34d7d8d --- /dev/null +++ b/doc/files/setterrainpatchlod.txt @@ -0,0 +1,4 @@ +#title SetTerrainPatchLOD [RCBasic Doc] +#header sub SetTerrainPatchLOD( actor, patchX, patchZ, LOD ) + + diff --git a/doc/files/setvideodrawrect.txt b/doc/files/setvideodrawrect.txt new file mode 100644 index 0000000..b65212c --- /dev/null +++ b/doc/files/setvideodrawrect.txt @@ -0,0 +1,4 @@ +#title SetVideoDrawRect [RCBasic Doc] +#header sub SetVideoDrawRect(x, y, w, h) + + diff --git a/doc/files/setvideoposition.txt b/doc/files/setvideoposition.txt new file mode 100644 index 0000000..590eca2 --- /dev/null +++ b/doc/files/setvideoposition.txt @@ -0,0 +1,4 @@ +#title SetVideoPosition [RCBasic Doc] +#header sub SetVideoPosition(pos) + + diff --git a/doc/files/setvideovolume.txt b/doc/files/setvideovolume.txt new file mode 100644 index 0000000..371c675 --- /dev/null +++ b/doc/files/setvideovolume.txt @@ -0,0 +1,4 @@ +#title SetVideoVolume [RCBasic Doc] +#header sub SetVideoVolume( vol ) + + diff --git a/doc/files/setwatercolor.txt b/doc/files/setwatercolor.txt new file mode 100644 index 0000000..77c2e57 --- /dev/null +++ b/doc/files/setwatercolor.txt @@ -0,0 +1,4 @@ +#title setWaterColor [RCBasic Doc] +#header sub setWaterColor( actor, c) + + diff --git a/doc/files/setwatercolorblendfactor.txt b/doc/files/setwatercolorblendfactor.txt new file mode 100644 index 0000000..f2c07a6 --- /dev/null +++ b/doc/files/setwatercolorblendfactor.txt @@ -0,0 +1,4 @@ +#title setWaterColorBlendFactor [RCBasic Doc] +#header sub setWaterColorBlendFactor( actor, cbfactor) + + diff --git a/doc/files/setwaterwaveheight.txt b/doc/files/setwaterwaveheight.txt new file mode 100644 index 0000000..631b22d --- /dev/null +++ b/doc/files/setwaterwaveheight.txt @@ -0,0 +1,4 @@ +#title setWaterWaveHeight [RCBasic Doc] +#header sub setWaterWaveHeight( actor, h) + + diff --git a/doc/files/setwaterwinddirection.txt b/doc/files/setwaterwinddirection.txt new file mode 100644 index 0000000..bda16fe --- /dev/null +++ b/doc/files/setwaterwinddirection.txt @@ -0,0 +1,4 @@ +#title setWaterWindDirection [RCBasic Doc] +#header sub setWaterWindDirection( actor, x, z) + + diff --git a/doc/files/setwaterwindforce.txt b/doc/files/setwaterwindforce.txt new file mode 100644 index 0000000..fd95393 --- /dev/null +++ b/doc/files/setwaterwindforce.txt @@ -0,0 +1,4 @@ +#title setWaterWindForce [RCBasic Doc] +#header sub setWaterWindForce( actor, f) + + diff --git a/doc/files/setwindowalwaysontop.txt b/doc/files/setwindowalwaysontop.txt new file mode 100644 index 0000000..6df08b5 --- /dev/null +++ b/doc/files/setwindowalwaysontop.txt @@ -0,0 +1,4 @@ +#title SetWindowAlwaysOnTop [RCBasic Doc] +#header sub SetWindowAlwaysOnTop(win, flag) + + diff --git a/doc/files/setwindowautoclose.txt b/doc/files/setwindowautoclose.txt new file mode 100644 index 0000000..0d25945 --- /dev/null +++ b/doc/files/setwindowautoclose.txt @@ -0,0 +1,4 @@ +#title SetWindowAutoClose [RCBasic Doc] +#header sub SetWindowAutoClose( win, exit_on_close ) + + diff --git a/doc/files/setwindowbordered.txt b/doc/files/setwindowbordered.txt new file mode 100644 index 0000000..9386b6f --- /dev/null +++ b/doc/files/setwindowbordered.txt @@ -0,0 +1,4 @@ +#title SetWindowBordered [RCBasic Doc] +#header sub SetWindowBorder(win, flag) + + diff --git a/doc/files/setwindowfullscreen.txt b/doc/files/setwindowfullscreen.txt new file mode 100644 index 0000000..a377e4f --- /dev/null +++ b/doc/files/setwindowfullscreen.txt @@ -0,0 +1,4 @@ +#title SetWindowFullscreen [RCBasic Doc] +#header sub SetWindowFullscreen(win, flag) + + diff --git a/doc/files/setwindowicon.txt b/doc/files/setwindowicon.txt new file mode 100644 index 0000000..702b1e7 --- /dev/null +++ b/doc/files/setwindowicon.txt @@ -0,0 +1,4 @@ +#title SetWindowIcon [RCBasic Doc] +#header sub SetWindowIcon(win, slot) + + diff --git a/doc/files/setwindowmaxsize.txt b/doc/files/setwindowmaxsize.txt new file mode 100644 index 0000000..183e742 --- /dev/null +++ b/doc/files/setwindowmaxsize.txt @@ -0,0 +1,4 @@ +#title SetWindowMaxSize [RCBasic Doc] +#header sub SetWindowMaxSize(win, w, h) + + diff --git a/doc/files/setwindowminsize.txt b/doc/files/setwindowminsize.txt new file mode 100644 index 0000000..25471b0 --- /dev/null +++ b/doc/files/setwindowminsize.txt @@ -0,0 +1,4 @@ +#title SetWindowMinSize [RCBasic Doc] +#header sub SetWindowMinSize(win, w, h) + + diff --git a/doc/files/setwindowposition.txt b/doc/files/setwindowposition.txt new file mode 100644 index 0000000..1a6c19a --- /dev/null +++ b/doc/files/setwindowposition.txt @@ -0,0 +1,4 @@ +#title SetWindowPosition [RCBasic Doc] +#header sub SetWindowPosition(win, x, y) + + diff --git a/doc/files/setwindowresizable.txt b/doc/files/setwindowresizable.txt new file mode 100644 index 0000000..f6b60df --- /dev/null +++ b/doc/files/setwindowresizable.txt @@ -0,0 +1,4 @@ +#title SetWindowResizable [RCBasic Doc] +#header sub SetWindowResizable(win, flag) 'new + + diff --git a/doc/files/setwindowsize.txt b/doc/files/setwindowsize.txt new file mode 100644 index 0000000..bbd4588 --- /dev/null +++ b/doc/files/setwindowsize.txt @@ -0,0 +1,4 @@ +#title SetWindowSize [RCBasic Doc] +#header sub SetWindowSize(win, w, h) + + diff --git a/doc/files/setwindowtitle.txt b/doc/files/setwindowtitle.txt new file mode 100644 index 0000000..7ed9b02 --- /dev/null +++ b/doc/files/setwindowtitle.txt @@ -0,0 +1,4 @@ +#title SetWindowTitle [RCBasic Doc] +#header sub SetWindowTitle(win, title$) + + diff --git a/doc/files/setwindowvsync.txt b/doc/files/setwindowvsync.txt new file mode 100644 index 0000000..67b5dae --- /dev/null +++ b/doc/files/setwindowvsync.txt @@ -0,0 +1,4 @@ +#title SetWindowVSync [RCBasic Doc] +#header sub SetWindowVSync(win, flag) + + diff --git a/doc/files/setworld3ddeltatime.txt b/doc/files/setworld3ddeltatime.txt new file mode 100644 index 0000000..ef089fb --- /dev/null +++ b/doc/files/setworld3ddeltatime.txt @@ -0,0 +1,4 @@ +#title SetWorld3DDeltaTime [RCBasic Doc] +#header sub SetWorld3DDeltaTime( dt ) + + diff --git a/doc/files/setworld3dmaxsubsteps.txt b/doc/files/setworld3dmaxsubsteps.txt new file mode 100644 index 0000000..4b0cbd2 --- /dev/null +++ b/doc/files/setworld3dmaxsubsteps.txt @@ -0,0 +1,4 @@ +#title SetWorld3DMaxSubSteps [RCBasic Doc] +#header sub SetWorld3DMaxSubSteps( steps ) + + diff --git a/doc/files/setworld3dtimestep.txt b/doc/files/setworld3dtimestep.txt new file mode 100644 index 0000000..48d18f5 --- /dev/null +++ b/doc/files/setworld3dtimestep.txt @@ -0,0 +1,4 @@ +#title SetWorld3DTimeStep [RCBasic Doc] +#header sub SetWorld3DTimeStep( ts ) + + diff --git a/doc/files/showmouse.txt b/doc/files/showmouse.txt new file mode 100644 index 0000000..cd973b7 --- /dev/null +++ b/doc/files/showmouse.txt @@ -0,0 +1,4 @@ +#title ShowMouse [RCBasic Doc] +#header sub ShowMouse() + + diff --git a/doc/files/showwindow.txt b/doc/files/showwindow.txt new file mode 100644 index 0000000..f78733b --- /dev/null +++ b/doc/files/showwindow.txt @@ -0,0 +1,4 @@ +#title ShowWindow [RCBasic Doc] +#header sub ShowWindow(win) + + diff --git a/doc/files/sign.txt b/doc/files/sign.txt new file mode 100644 index 0000000..1f955a0 --- /dev/null +++ b/doc/files/sign.txt @@ -0,0 +1,4 @@ +#title Sign [RCBasic Doc] +#header function Sign(n) + + diff --git a/doc/files/sin.txt b/doc/files/sin.txt new file mode 100644 index 0000000..0957f8a --- /dev/null +++ b/doc/files/sin.txt @@ -0,0 +1,4 @@ +#title Sin [RCBasic Doc] +#header function Sin(n) + + diff --git a/doc/files/size.txt b/doc/files/size.txt new file mode 100644 index 0000000..cbf8089 --- /dev/null +++ b/doc/files/size.txt @@ -0,0 +1,4 @@ +#title Size [RCBasic Doc] +#header function Size(s$) + + diff --git a/doc/files/solvematrix.txt b/doc/files/solvematrix.txt new file mode 100644 index 0000000..633ba20 --- /dev/null +++ b/doc/files/solvematrix.txt @@ -0,0 +1,4 @@ +#title SolveMatrix [RCBasic Doc] +#header function SolveMatrix(mA, mB, mC) + + diff --git a/doc/files/soundexists.txt b/doc/files/soundexists.txt new file mode 100644 index 0000000..0a4e2e6 --- /dev/null +++ b/doc/files/soundexists.txt @@ -0,0 +1,4 @@ +#title SoundExists [RCBasic Doc] +#header function SoundExists(slot) + + diff --git a/doc/files/soundisenabled.txt b/doc/files/soundisenabled.txt new file mode 100644 index 0000000..c5f80c2 --- /dev/null +++ b/doc/files/soundisenabled.txt @@ -0,0 +1,4 @@ +#title SoundIsEnabled [RCBasic Doc] +#header function SoundIsEnabled() + + diff --git a/doc/files/sqrt.txt b/doc/files/sqrt.txt new file mode 100644 index 0000000..66cf612 --- /dev/null +++ b/doc/files/sqrt.txt @@ -0,0 +1,4 @@ +#title Sqrt [RCBasic Doc] +#header function Sqrt(n) + + diff --git a/doc/files/squarematrix.txt b/doc/files/squarematrix.txt new file mode 100644 index 0000000..25527e0 --- /dev/null +++ b/doc/files/squarematrix.txt @@ -0,0 +1,4 @@ +#title SquareMatrix [RCBasic Doc] +#header function SquareMatrix(mA, mB) + + diff --git a/doc/files/stack_size_n.txt b/doc/files/stack_size_n.txt new file mode 100644 index 0000000..80f3c93 --- /dev/null +++ b/doc/files/stack_size_n.txt @@ -0,0 +1,4 @@ +#title Stack_Size_N [RCBasic Doc] +#header function Stack_Size_N( num_stack ) + + diff --git a/doc/files/stack_size_s.txt b/doc/files/stack_size_s.txt new file mode 100644 index 0000000..24ba602 --- /dev/null +++ b/doc/files/stack_size_s.txt @@ -0,0 +1,4 @@ +#title Stack_Size_S [RCBasic Doc] +#header function Stack_Size_S( str_stack ) + + diff --git a/doc/files/startactortransition.txt b/doc/files/startactortransition.txt new file mode 100644 index 0000000..ee31765 --- /dev/null +++ b/doc/files/startactortransition.txt @@ -0,0 +1,4 @@ +#title StartActorTransition [RCBasic Doc] +#header sub StartActorTransition( actor, frame, transition_time ) + + diff --git a/doc/files/startparticleemitter.txt b/doc/files/startparticleemitter.txt new file mode 100644 index 0000000..4eb7fe0 --- /dev/null +++ b/doc/files/startparticleemitter.txt @@ -0,0 +1,4 @@ +#title startParticleEmitter [RCBasic Doc] +#header sub startParticleEmitter( actor) + + diff --git a/doc/files/stopactortransition.txt b/doc/files/stopactortransition.txt new file mode 100644 index 0000000..9087ebc --- /dev/null +++ b/doc/files/stopactortransition.txt @@ -0,0 +1,4 @@ +#title StopActorTransition [RCBasic Doc] +#header sub StopActorTransition( actor ) + + diff --git a/doc/files/stopmusic.txt b/doc/files/stopmusic.txt new file mode 100644 index 0000000..198c755 --- /dev/null +++ b/doc/files/stopmusic.txt @@ -0,0 +1,4 @@ +#title StopMusic [RCBasic Doc] +#header sub StopMusic() + + diff --git a/doc/files/stopparticleemitter.txt b/doc/files/stopparticleemitter.txt new file mode 100644 index 0000000..e9524ab --- /dev/null +++ b/doc/files/stopparticleemitter.txt @@ -0,0 +1,4 @@ +#title stopParticleEmitter [RCBasic Doc] +#header sub stopParticleEmitter( actor) + + diff --git a/doc/files/stopsound.txt b/doc/files/stopsound.txt new file mode 100644 index 0000000..5273764 --- /dev/null +++ b/doc/files/stopsound.txt @@ -0,0 +1,4 @@ +#title StopSound [RCBasic Doc] +#header sub StopSound(channel) + + diff --git a/doc/files/stopvideo.txt b/doc/files/stopvideo.txt new file mode 100644 index 0000000..eb51f98 --- /dev/null +++ b/doc/files/stopvideo.txt @@ -0,0 +1,4 @@ +#title StopVideo [RCBasic Doc] +#header sub StopVideo() + + diff --git a/doc/files/str.txt b/doc/files/str.txt new file mode 100644 index 0000000..84acfb0 --- /dev/null +++ b/doc/files/str.txt @@ -0,0 +1,4 @@ +#title Str$ [RCBasic Doc] +#header function Str$(n) + + diff --git a/doc/files/str_f.txt b/doc/files/str_f.txt new file mode 100644 index 0000000..89e8cfc --- /dev/null +++ b/doc/files/str_f.txt @@ -0,0 +1,4 @@ +#title Str_F$ [RCBasic Doc] +#header function Str_F$(n) + + diff --git a/doc/files/str_s.txt b/doc/files/str_s.txt new file mode 100644 index 0000000..7ae7b55 --- /dev/null +++ b/doc/files/str_s.txt @@ -0,0 +1,4 @@ +#title Str_S$ [RCBasic Doc] +#header function Str_S$(n) + + diff --git a/doc/files/stringarraycopy.txt b/doc/files/stringarraycopy.txt new file mode 100644 index 0000000..c2ae827 --- /dev/null +++ b/doc/files/stringarraycopy.txt @@ -0,0 +1,4 @@ +#title StringArrayCopy [RCBasic Doc] +#header sub StringArrayCopy(ByRef src$, ByRef dst$) + + diff --git a/doc/files/stringarraydim.txt b/doc/files/stringarraydim.txt new file mode 100644 index 0000000..b0e621e --- /dev/null +++ b/doc/files/stringarraydim.txt @@ -0,0 +1,4 @@ +#title StringArrayDim [RCBasic Doc] +#header function StringArrayDim(Byref id$) + + diff --git a/doc/files/stringarrayfill.txt b/doc/files/stringarrayfill.txt new file mode 100644 index 0000000..4302ea4 --- /dev/null +++ b/doc/files/stringarrayfill.txt @@ -0,0 +1,4 @@ +#title StringArrayFill [RCBasic Doc] +#header sub StringArrayFill(ByRef src$, fdata$) + + diff --git a/doc/files/stringarraysize.txt b/doc/files/stringarraysize.txt new file mode 100644 index 0000000..6f277c3 --- /dev/null +++ b/doc/files/stringarraysize.txt @@ -0,0 +1,4 @@ +#title StringArraySize [RCBasic Doc] +#header function StringArraySize(Byref id$, array_dim) + + diff --git a/doc/files/stringfill.txt b/doc/files/stringfill.txt new file mode 100644 index 0000000..a171ec6 --- /dev/null +++ b/doc/files/stringfill.txt @@ -0,0 +1,4 @@ +#title StringFill$ [RCBasic Doc] +#header function StringFill$(src$, n) + + diff --git a/doc/files/stringfrombuffer.txt b/doc/files/stringfrombuffer.txt new file mode 100644 index 0000000..64f13d8 --- /dev/null +++ b/doc/files/stringfrombuffer.txt @@ -0,0 +1,4 @@ +#title StringFromBuffer$ [RCBasic Doc] +#header function StringFromBuffer$(ByRef buffer, buffer_size) + + diff --git a/doc/files/subtractmatrix.txt b/doc/files/subtractmatrix.txt new file mode 100644 index 0000000..c614614 --- /dev/null +++ b/doc/files/subtractmatrix.txt @@ -0,0 +1,4 @@ +#title SubtractMatrix [RCBasic Doc] +#header function SubtractMatrix(mA, mB, mC) + + diff --git a/doc/files/swapmatrix.txt b/doc/files/swapmatrix.txt new file mode 100644 index 0000000..a73d28b --- /dev/null +++ b/doc/files/swapmatrix.txt @@ -0,0 +1,4 @@ +#title SwapMatrix [RCBasic Doc] +#header sub SwapMatrix(mA, mB) + + diff --git a/doc/files/swapmatrixcolumn.txt b/doc/files/swapmatrixcolumn.txt new file mode 100644 index 0000000..5728a5b --- /dev/null +++ b/doc/files/swapmatrixcolumn.txt @@ -0,0 +1,4 @@ +#title SwapMatrixColumn [RCBasic Doc] +#header function SwapMatrixColumn(mA, C1, C2) + + diff --git a/doc/files/swapmatrixrow.txt b/doc/files/swapmatrixrow.txt new file mode 100644 index 0000000..5b907a5 --- /dev/null +++ b/doc/files/swapmatrixrow.txt @@ -0,0 +1,4 @@ +#title SwapMatrixRow [RCBasic Doc] +#header function SwapMatrixRow(mA, R1, R2) + + diff --git a/doc/files/system.txt b/doc/files/system.txt new file mode 100644 index 0000000..9c8f9c7 --- /dev/null +++ b/doc/files/system.txt @@ -0,0 +1,4 @@ +#title System [RCBasic Doc] +#header function System(cmd$) + + diff --git a/doc/files/systemram.txt b/doc/files/systemram.txt new file mode 100644 index 0000000..2262af5 --- /dev/null +++ b/doc/files/systemram.txt @@ -0,0 +1,4 @@ +#title SystemRam [RCBasic Doc] +#header function SystemRam() + + diff --git a/doc/files/systemreturnstdout.txt b/doc/files/systemreturnstdout.txt new file mode 100644 index 0000000..44d12c0 --- /dev/null +++ b/doc/files/systemreturnstdout.txt @@ -0,0 +1,4 @@ +#title SystemReturnStdOut$ [RCBasic Doc] +#header function SystemReturnStdOut$(cmd$) + + diff --git a/doc/files/tally.txt b/doc/files/tally.txt new file mode 100644 index 0000000..a73ac20 --- /dev/null +++ b/doc/files/tally.txt @@ -0,0 +1,4 @@ +#title Tally [RCBasic Doc] +#header function Tally(src$, substr$) + + diff --git a/doc/files/tan.txt b/doc/files/tan.txt new file mode 100644 index 0000000..fcd4fff --- /dev/null +++ b/doc/files/tan.txt @@ -0,0 +1,4 @@ +#title Tan [RCBasic Doc] +#header function Tan(n) + + diff --git a/doc/files/tcp_acceptsocket.txt b/doc/files/tcp_acceptsocket.txt new file mode 100644 index 0000000..eaf6298 --- /dev/null +++ b/doc/files/tcp_acceptsocket.txt @@ -0,0 +1,4 @@ +#title TCP_AcceptSocket [RCBasic Doc] +#header function TCP_AcceptSocket(server, client) + + diff --git a/doc/files/tcp_closesocket.txt b/doc/files/tcp_closesocket.txt new file mode 100644 index 0000000..12293bd --- /dev/null +++ b/doc/files/tcp_closesocket.txt @@ -0,0 +1,4 @@ +#title TCP_CloseSocket [RCBasic Doc] +#header sub TCP_SocketClose(socket) + + diff --git a/doc/files/tcp_getdata.txt b/doc/files/tcp_getdata.txt new file mode 100644 index 0000000..6c62b32 --- /dev/null +++ b/doc/files/tcp_getdata.txt @@ -0,0 +1,4 @@ +#title TCP_GetData [RCBasic Doc] +#header function TCP_GetData(socket, numBytes, ByRef sData$) + + diff --git a/doc/files/tcp_opensocket.txt b/doc/files/tcp_opensocket.txt new file mode 100644 index 0000000..2d405ca --- /dev/null +++ b/doc/files/tcp_opensocket.txt @@ -0,0 +1,4 @@ +#title TCP_OpenSocket [RCBasic Doc] +#header function TCP_SocketOpen(socket, host$, port) + + diff --git a/doc/files/tcp_remotehost.txt b/doc/files/tcp_remotehost.txt new file mode 100644 index 0000000..b6b0982 --- /dev/null +++ b/doc/files/tcp_remotehost.txt @@ -0,0 +1,4 @@ +#title TCP_RemoteHost [RCBasic Doc] +#header function TCP_RemoteHost(socket) + + diff --git a/doc/files/tcp_remoteport.txt b/doc/files/tcp_remoteport.txt new file mode 100644 index 0000000..dc694db --- /dev/null +++ b/doc/files/tcp_remoteport.txt @@ -0,0 +1,4 @@ +#title TCP_RemotePort [RCBasic Doc] +#header function TCP_RemotePort(socket) + + diff --git a/doc/files/tcp_senddata.txt b/doc/files/tcp_senddata.txt new file mode 100644 index 0000000..b579a59 --- /dev/null +++ b/doc/files/tcp_senddata.txt @@ -0,0 +1,4 @@ +#title TCP_SendData [RCBasic Doc] +#header sub TCP_SendData(socket, sData$) + + diff --git a/doc/files/tcp_socketready.txt b/doc/files/tcp_socketready.txt new file mode 100644 index 0000000..701ea26 --- /dev/null +++ b/doc/files/tcp_socketready.txt @@ -0,0 +1,4 @@ +#title TCP_SocketReady [RCBasic Doc] +#header function TCP_SocketReady(socket) + + diff --git a/doc/files/tell.txt b/doc/files/tell.txt new file mode 100644 index 0000000..2e8ef31 --- /dev/null +++ b/doc/files/tell.txt @@ -0,0 +1,4 @@ +#title Tell [RCBasic Doc] +#header function Tell(stream) + + diff --git a/doc/files/ticks.txt b/doc/files/ticks.txt new file mode 100644 index 0000000..9626703 --- /dev/null +++ b/doc/files/ticks.txt @@ -0,0 +1,4 @@ +#title Ticks [RCBasic Doc] +#header function Ticks() + + diff --git a/doc/files/time.txt b/doc/files/time.txt new file mode 100644 index 0000000..cef1bb2 --- /dev/null +++ b/doc/files/time.txt @@ -0,0 +1,4 @@ +#title Time$ [RCBasic Doc] +#header function Time$() + + diff --git a/doc/files/timer.txt b/doc/files/timer.txt new file mode 100644 index 0000000..308a725 --- /dev/null +++ b/doc/files/timer.txt @@ -0,0 +1,4 @@ +#title Timer [RCBasic Doc] +#header function Timer() + + diff --git a/doc/files/touchpressure.txt b/doc/files/touchpressure.txt new file mode 100644 index 0000000..84902d0 --- /dev/null +++ b/doc/files/touchpressure.txt @@ -0,0 +1,4 @@ +#title TouchPressure [RCBasic Doc] +#header function TouchPressure() + + diff --git a/doc/files/translateactor.txt b/doc/files/translateactor.txt new file mode 100644 index 0000000..5d8b8e9 --- /dev/null +++ b/doc/files/translateactor.txt @@ -0,0 +1,4 @@ +#title TranslateActor [RCBasic Doc] +#header sub TranslateActor( actor, x, y, z ) + + diff --git a/doc/files/translateactorworld.txt b/doc/files/translateactorworld.txt new file mode 100644 index 0000000..553e614 --- /dev/null +++ b/doc/files/translateactorworld.txt @@ -0,0 +1,4 @@ +#title TranslateActorWorld [RCBasic Doc] +#header sub TranslateActorWorld( actor, x, y, z ) + + diff --git a/doc/files/translatecamera.txt b/doc/files/translatecamera.txt new file mode 100644 index 0000000..bbf915a --- /dev/null +++ b/doc/files/translatecamera.txt @@ -0,0 +1,4 @@ +#title TranslateCamera [RCBasic Doc] +#header sub TranslateCamera( x, y, z) + + diff --git a/doc/files/transposematrix.txt b/doc/files/transposematrix.txt new file mode 100644 index 0000000..aa8a1c9 --- /dev/null +++ b/doc/files/transposematrix.txt @@ -0,0 +1,4 @@ +#title TransposeMatrix [RCBasic Doc] +#header function TransposeMatrix(mA, mB) + + diff --git a/doc/files/trim.txt b/doc/files/trim.txt new file mode 100644 index 0000000..d93c949 --- /dev/null +++ b/doc/files/trim.txt @@ -0,0 +1,4 @@ +#title Trim$ [RCBasic Doc] +#header function Trim$(src$) + + diff --git a/doc/files/tst.txt b/doc/files/tst.txt new file mode 100644 index 0000000..d7bf91f --- /dev/null +++ b/doc/files/tst.txt @@ -0,0 +1,4 @@ +#title tst [RCBasic Doc] +#header sub tst() + + diff --git a/doc/files/typearraycopy.txt b/doc/files/typearraycopy.txt new file mode 100644 index 0000000..a90f979 --- /dev/null +++ b/doc/files/typearraycopy.txt @@ -0,0 +1,4 @@ +#title TypeArrayCopy [RCBasic Doc] +#header sub TypeArrayCopy(ByRef src as empty, ByRef dst as empty) + + diff --git a/doc/files/typearraydim.txt b/doc/files/typearraydim.txt new file mode 100644 index 0000000..1c5deb6 --- /dev/null +++ b/doc/files/typearraydim.txt @@ -0,0 +1,4 @@ +#title TypeArrayDim [RCBasic Doc] +#header function TypeArrayDim(Byref id as empty) + + diff --git a/doc/files/typearrayfill.txt b/doc/files/typearrayfill.txt new file mode 100644 index 0000000..55c8acc --- /dev/null +++ b/doc/files/typearrayfill.txt @@ -0,0 +1,4 @@ +#title TypeArrayFill [RCBasic Doc] +#header sub TypeArrayFill(ByRef src as empty, fdata as empty) + + diff --git a/doc/files/typearraysize.txt b/doc/files/typearraysize.txt new file mode 100644 index 0000000..f9717c0 --- /dev/null +++ b/doc/files/typearraysize.txt @@ -0,0 +1,4 @@ +#title TypeArraySize [RCBasic Doc] +#header function TypeArraySize(Byref id as empty, array_dim) + + diff --git a/doc/files/ucase.txt b/doc/files/ucase.txt new file mode 100644 index 0000000..da32693 --- /dev/null +++ b/doc/files/ucase.txt @@ -0,0 +1,4 @@ +#title Ucase$ [RCBasic Doc] +#header function Ucase$(src$) + + diff --git a/doc/files/udp_closesocket.txt b/doc/files/udp_closesocket.txt new file mode 100644 index 0000000..1510a2a --- /dev/null +++ b/doc/files/udp_closesocket.txt @@ -0,0 +1,4 @@ +#title UDP_CloseSocket [RCBasic Doc] +#header function UDP_SocketClose(socket) + + diff --git a/doc/files/udp_getdata.txt b/doc/files/udp_getdata.txt new file mode 100644 index 0000000..7970b5e --- /dev/null +++ b/doc/files/udp_getdata.txt @@ -0,0 +1,4 @@ +#title UDP_GetData [RCBasic Doc] +#header function UDP_GetData(socket, byref host$, byref port, byref sData$) + + diff --git a/doc/files/udp_length.txt b/doc/files/udp_length.txt new file mode 100644 index 0000000..09b3bc8 --- /dev/null +++ b/doc/files/udp_length.txt @@ -0,0 +1,4 @@ +#title UDP_Length [RCBasic Doc] +#header function UDP_Length() + + diff --git a/doc/files/udp_maxlength.txt b/doc/files/udp_maxlength.txt new file mode 100644 index 0000000..7358d01 --- /dev/null +++ b/doc/files/udp_maxlength.txt @@ -0,0 +1,4 @@ +#title UDP_MaxLength [RCBasic Doc] +#header function UDP_MaxLength() + + diff --git a/doc/files/udp_opensocket.txt b/doc/files/udp_opensocket.txt new file mode 100644 index 0000000..5a7fbe0 --- /dev/null +++ b/doc/files/udp_opensocket.txt @@ -0,0 +1,4 @@ +#title UDP_OpenSocket [RCBasic Doc] +#header function UDP_SocketOpen(socket, port) + + diff --git a/doc/files/udp_remotehost.txt b/doc/files/udp_remotehost.txt new file mode 100644 index 0000000..1a73bbe --- /dev/null +++ b/doc/files/udp_remotehost.txt @@ -0,0 +1,4 @@ +#title UDP_RemoteHost$ [RCBasic Doc] +#header function UDP_RemoteHost$(socket) + + diff --git a/doc/files/udp_remoteport.txt b/doc/files/udp_remoteport.txt new file mode 100644 index 0000000..c8e7958 --- /dev/null +++ b/doc/files/udp_remoteport.txt @@ -0,0 +1,4 @@ +#title UDP_RemotePort [RCBasic Doc] +#header function UDP_RemotePort(socket) + + diff --git a/doc/files/udp_senddata.txt b/doc/files/udp_senddata.txt new file mode 100644 index 0000000..f7a39dd --- /dev/null +++ b/doc/files/udp_senddata.txt @@ -0,0 +1,4 @@ +#title UDP_SendData [RCBasic Doc] +#header sub UDP_SendData(socket, host$, port, sData$) + + diff --git a/doc/files/udp_socketready.txt b/doc/files/udp_socketready.txt new file mode 100644 index 0000000..0f01add --- /dev/null +++ b/doc/files/udp_socketready.txt @@ -0,0 +1,4 @@ +#title UDP_SocketReady [RCBasic Doc] +#header function UDP_SocketReady(socket) + + diff --git a/doc/files/unaugmentmatrix.txt b/doc/files/unaugmentmatrix.txt new file mode 100644 index 0000000..11b526c --- /dev/null +++ b/doc/files/unaugmentmatrix.txt @@ -0,0 +1,4 @@ +#title UnAugmentMatrix [RCBasic Doc] +#header function UnAugmentMatrix(mA, mB, mC) + + diff --git a/doc/files/update.txt b/doc/files/update.txt new file mode 100644 index 0000000..18fea69 --- /dev/null +++ b/doc/files/update.txt @@ -0,0 +1,4 @@ +#title Update [RCBasic Doc] +#header sub Update() + + diff --git a/doc/files/updateactorinertiatensor.txt b/doc/files/updateactorinertiatensor.txt new file mode 100644 index 0000000..a03f6ac --- /dev/null +++ b/doc/files/updateactorinertiatensor.txt @@ -0,0 +1,4 @@ +#title updateActorInertiaTensor [RCBasic Doc] +#header sub updateActorInertiaTensor( actor) + + diff --git a/doc/files/useconstraintframeoffset.txt b/doc/files/useconstraintframeoffset.txt new file mode 100644 index 0000000..2c21708 --- /dev/null +++ b/doc/files/useconstraintframeoffset.txt @@ -0,0 +1,4 @@ +#title useConstraintFrameOffset [RCBasic Doc] +#header sub useConstraintFrameOffset( constraint_id, flag) + + diff --git a/doc/files/usehingereferenceframea.txt b/doc/files/usehingereferenceframea.txt new file mode 100644 index 0000000..780c39d --- /dev/null +++ b/doc/files/usehingereferenceframea.txt @@ -0,0 +1,4 @@ +#title useHingeReferenceFrameA [RCBasic Doc] +#header sub useHingeReferenceFrameA( constraint_id, flag) + + diff --git a/doc/files/useparticleeverymeshvertex.txt b/doc/files/useparticleeverymeshvertex.txt new file mode 100644 index 0000000..4dd2bfd --- /dev/null +++ b/doc/files/useparticleeverymeshvertex.txt @@ -0,0 +1,4 @@ +#title useParticleEveryMeshVertex [RCBasic Doc] +#header sub useParticleEveryMeshVertex( actor, flag) + + diff --git a/doc/files/useparticlenormaldirection.txt b/doc/files/useparticlenormaldirection.txt new file mode 100644 index 0000000..90f4774 --- /dev/null +++ b/doc/files/useparticlenormaldirection.txt @@ -0,0 +1,4 @@ +#title useParticleNormalDirection [RCBasic Doc] +#header sub useParticleNormalDirection( actor, flag) + + diff --git a/doc/files/useparticleoutlineonly.txt b/doc/files/useparticleoutlineonly.txt new file mode 100644 index 0000000..0348f8c --- /dev/null +++ b/doc/files/useparticleoutlineonly.txt @@ -0,0 +1,4 @@ +#title useParticleOutlineOnly [RCBasic Doc] +#header sub useParticleOutlineOnly( actor, flag) + + diff --git a/doc/files/val.txt b/doc/files/val.txt new file mode 100644 index 0000000..2251cd0 --- /dev/null +++ b/doc/files/val.txt @@ -0,0 +1,4 @@ +#title Val [RCBasic Doc] +#header function Val(n$) + + diff --git a/doc/files/videoend.txt b/doc/files/videoend.txt new file mode 100644 index 0000000..6029416 --- /dev/null +++ b/doc/files/videoend.txt @@ -0,0 +1,4 @@ +#title VideoEnd [RCBasic Doc] +#header function VideoEnd() + + diff --git a/doc/files/videoexists.txt b/doc/files/videoexists.txt new file mode 100644 index 0000000..5b6c802 --- /dev/null +++ b/doc/files/videoexists.txt @@ -0,0 +1,4 @@ +#title VideoExists [RCBasic Doc] +#header function VideoExists() + + diff --git a/doc/files/videoisplaying.txt b/doc/files/videoisplaying.txt new file mode 100644 index 0000000..72d29e2 --- /dev/null +++ b/doc/files/videoisplaying.txt @@ -0,0 +1,4 @@ +#title VideoIsPlaying [RCBasic Doc] +#header function VideoIsPlaying() + + diff --git a/doc/files/wait.txt b/doc/files/wait.txt new file mode 100644 index 0000000..2c073f3 --- /dev/null +++ b/doc/files/wait.txt @@ -0,0 +1,4 @@ +#title Wait [RCBasic Doc] +#header sub Wait(m_sec) + + diff --git a/doc/files/waitkey.txt b/doc/files/waitkey.txt new file mode 100644 index 0000000..6282a2c --- /dev/null +++ b/doc/files/waitkey.txt @@ -0,0 +1,4 @@ +#title WaitKey [RCBasic Doc] +#header function WaitKey() + + diff --git a/doc/files/warpmouse.txt b/doc/files/warpmouse.txt new file mode 100644 index 0000000..ca6eb1c --- /dev/null +++ b/doc/files/warpmouse.txt @@ -0,0 +1,4 @@ +#title WarpMouse [RCBasic Doc] +#header sub WarpMouse(x, y) + + diff --git a/doc/files/warpmouseglobal.txt b/doc/files/warpmouseglobal.txt new file mode 100644 index 0000000..6d36e07 --- /dev/null +++ b/doc/files/warpmouseglobal.txt @@ -0,0 +1,4 @@ +#title WarpMouseGlobal [RCBasic Doc] +#header sub WarpMouseGlobal(x, y) + + diff --git a/doc/files/windowclip.txt b/doc/files/windowclip.txt new file mode 100644 index 0000000..e3bdcab --- /dev/null +++ b/doc/files/windowclip.txt @@ -0,0 +1,4 @@ +#title WindowClip [RCBasic Doc] +#header sub WindowClip(slot, x, y, w, h) + + diff --git a/doc/files/windowevent_close.txt b/doc/files/windowevent_close.txt new file mode 100644 index 0000000..c00a79b --- /dev/null +++ b/doc/files/windowevent_close.txt @@ -0,0 +1,4 @@ +#title WindowEvent_Close [RCBasic Doc] +#header function WindowEvent_Close(win) + + diff --git a/doc/files/windowevent_maximize.txt b/doc/files/windowevent_maximize.txt new file mode 100644 index 0000000..c828709 --- /dev/null +++ b/doc/files/windowevent_maximize.txt @@ -0,0 +1,4 @@ +#title WindowEvent_Maximize [RCBasic Doc] +#header function WindowEvent_Maximize(win) + + diff --git a/doc/files/windowevent_minimize.txt b/doc/files/windowevent_minimize.txt new file mode 100644 index 0000000..2f833ab --- /dev/null +++ b/doc/files/windowevent_minimize.txt @@ -0,0 +1,4 @@ +#title WindowEvent_Minimize [RCBasic Doc] +#header function WindowEvent_Minimize(win) + + diff --git a/doc/files/windowevent_resize.txt b/doc/files/windowevent_resize.txt new file mode 100644 index 0000000..dbcc3ea --- /dev/null +++ b/doc/files/windowevent_resize.txt @@ -0,0 +1,4 @@ +#title WindowEvent_Resize [RCBasic Doc] +#header function WindowEvent_Resize(win) + + diff --git a/doc/files/windowexists.txt b/doc/files/windowexists.txt new file mode 100644 index 0000000..763da9b --- /dev/null +++ b/doc/files/windowexists.txt @@ -0,0 +1,4 @@ +#title WindowExists [RCBasic Doc] +#header function WindowExists(win) + + diff --git a/doc/files/windowhasinputfocus.txt b/doc/files/windowhasinputfocus.txt new file mode 100644 index 0000000..86bd1b1 --- /dev/null +++ b/doc/files/windowhasinputfocus.txt @@ -0,0 +1,4 @@ +#title WindowHasInputFocus [RCBasic Doc] +#header function WindowHasInputFocus(win) + + diff --git a/doc/files/windowhasmousefocus.txt b/doc/files/windowhasmousefocus.txt new file mode 100644 index 0000000..91a3fec --- /dev/null +++ b/doc/files/windowhasmousefocus.txt @@ -0,0 +1,4 @@ +#title WindowHasMouseFocus [RCBasic Doc] +#header function WindowHasMouseFocus(win) + + diff --git a/doc/files/windowisbordered.txt b/doc/files/windowisbordered.txt new file mode 100644 index 0000000..c51e840 --- /dev/null +++ b/doc/files/windowisbordered.txt @@ -0,0 +1,4 @@ +#title WindowIsBordered [RCBasic Doc] +#header function WindowIsBordered(win) + + diff --git a/doc/files/windowisfullscreen.txt b/doc/files/windowisfullscreen.txt new file mode 100644 index 0000000..c85a3d2 --- /dev/null +++ b/doc/files/windowisfullscreen.txt @@ -0,0 +1,4 @@ +#title WindowIsFullscreen [RCBasic Doc] +#header function WindowIsFullscreen(win) + + diff --git a/doc/files/windowisgrabbed.txt b/doc/files/windowisgrabbed.txt new file mode 100644 index 0000000..d883040 --- /dev/null +++ b/doc/files/windowisgrabbed.txt @@ -0,0 +1,4 @@ +#title WindowIsGrabbed [RCBasic Doc] +#header function WindowIsGrabbed( ) + + diff --git a/doc/files/windowismaximized.txt b/doc/files/windowismaximized.txt new file mode 100644 index 0000000..936bd51 --- /dev/null +++ b/doc/files/windowismaximized.txt @@ -0,0 +1,4 @@ +#title WindowIsMaximized [RCBasic Doc] +#header function WindowIsMaximized(win) + + diff --git a/doc/files/windowisminimized.txt b/doc/files/windowisminimized.txt new file mode 100644 index 0000000..ad3ecb9 --- /dev/null +++ b/doc/files/windowisminimized.txt @@ -0,0 +1,4 @@ +#title WindowIsMinimized [RCBasic Doc] +#header function WindowIsMinimized(win) + + diff --git a/doc/files/windowisresizable.txt b/doc/files/windowisresizable.txt new file mode 100644 index 0000000..8cdde0c --- /dev/null +++ b/doc/files/windowisresizable.txt @@ -0,0 +1,4 @@ +#title WindowIsResizable [RCBasic Doc] +#header function WindowIsResizable(win) + + diff --git a/doc/files/windowisvisible.txt b/doc/files/windowisvisible.txt new file mode 100644 index 0000000..acd79e6 --- /dev/null +++ b/doc/files/windowisvisible.txt @@ -0,0 +1,4 @@ +#title WindowIsVisible [RCBasic Doc] +#header function WindowIsVisible(win) + + diff --git a/doc/files/windowmode.txt b/doc/files/windowmode.txt new file mode 100644 index 0000000..5fa5385 --- /dev/null +++ b/doc/files/windowmode.txt @@ -0,0 +1,4 @@ +#title WindowMode [RCBasic Doc] +#header function WindowMode(visible, fullscreen, resizable, borderless, highDPI) + + diff --git a/doc/files/windowtitle.txt b/doc/files/windowtitle.txt new file mode 100644 index 0000000..6ee6d5f --- /dev/null +++ b/doc/files/windowtitle.txt @@ -0,0 +1,4 @@ +#title WindowTitle$ [RCBasic Doc] +#header function WindowTitle$(win) + + diff --git a/doc/files/write.txt b/doc/files/write.txt new file mode 100644 index 0000000..edf82a5 --- /dev/null +++ b/doc/files/write.txt @@ -0,0 +1,4 @@ +#title Write [RCBasic Doc] +#header sub Write(stream, txt$) + + diff --git a/doc/files/writebyte.txt b/doc/files/writebyte.txt new file mode 100644 index 0000000..b017160 --- /dev/null +++ b/doc/files/writebyte.txt @@ -0,0 +1,4 @@ +#title WriteByte [RCBasic Doc] +#header sub WriteByte(stream, byte) + + diff --git a/doc/files/writebytebuffer.txt b/doc/files/writebytebuffer.txt new file mode 100644 index 0000000..fe3c08c --- /dev/null +++ b/doc/files/writebytebuffer.txt @@ -0,0 +1,4 @@ +#title WriteByteBuffer [RCBasic Doc] +#header function WriteByteBuffer(stream, ByRef buf, buf_size) + + diff --git a/doc/files/writeline.txt b/doc/files/writeline.txt new file mode 100644 index 0000000..df85cbd --- /dev/null +++ b/doc/files/writeline.txt @@ -0,0 +1,4 @@ +#title WriteLine [RCBasic Doc] +#header sub WriteLine(stream, txt$) + + diff --git a/doc/files/xorbit.txt b/doc/files/xorbit.txt new file mode 100644 index 0000000..684fbda --- /dev/null +++ b/doc/files/xorbit.txt @@ -0,0 +1,4 @@ +#title XOrBit [RCBasic Doc] +#header function XOrBit(a, b) + + diff --git a/doc/files/zeromatrix.txt b/doc/files/zeromatrix.txt new file mode 100644 index 0000000..3d81c26 --- /dev/null +++ b/doc/files/zeromatrix.txt @@ -0,0 +1,4 @@ +#title ZeroMatrix [RCBasic Doc] +#header sub ZeroMatrix(mA) + + diff --git a/icon/rcbasic.ico b/icon/rcbasic.ico old mode 100644 new mode 100755 diff --git a/icon/rcbasic1.ico b/icon/rcbasic1.ico old mode 100644 new mode 100755 diff --git a/icon/rcbasic2.ico b/icon/rcbasic2.ico old mode 100644 new mode 100755 diff --git a/rcbasic_build/.~lock.rcbasic4_changes.ods# b/rcbasic_build/.~lock.rcbasic4_changes.ods# new file mode 100644 index 0000000..2ce5712 --- /dev/null +++ b/rcbasic_build/.~lock.rcbasic4_changes.ods# @@ -0,0 +1 @@ +,n00b,fedora,28.09.2024 11:15,file:///home/n00b/.config/libreoffice/4; \ No newline at end of file diff --git a/rcbasic_build/cbc_spec.txt b/rcbasic_build/cbc_spec.txt old mode 100644 new mode 100755 diff --git a/rcbasic_build/constants.h b/rcbasic_build/constants.h old mode 100644 new mode 100755 diff --git a/rcbasic_build/doc_tmp/tmp.html b/rcbasic_build/doc_tmp/tmp.html new file mode 100644 index 0000000..e3906f8 --- /dev/null +++ b/rcbasic_build/doc_tmp/tmp.html @@ -0,0 +1,49 @@ + + + + + + RC BASIC ABS + + + + + + +
abcdefghi
dfdfkljljlwllwelwlel
+ +This is the start of a par This is line 2 of a par This is the end of a par + + +
    +
  1. +item1 +
  2. +
  3. +item2 + +
  4. +
+ +Print "Hello World" + + + + + + diff --git a/rcbasic_build/embedded_functions.bas b/rcbasic_build/embedded_functions.bas index 40b7519..fe347a1 100644 --- a/rcbasic_build/embedded_functions.bas +++ b/rcbasic_build/embedded_functions.bas @@ -1,527 +1,44 @@ -'StringFill -'Stack_Size_N -'Stack_Size_S -'Text I/O -sub FPrint(txt$) -function Input$(prompt$) -'Arrays -function ArrayDim(Byref id) -function StringArrayDim(Byref id$) -function NumberArrayDim(Byref id) -function ArraySize(Byref id, array_dim) -function StringArraySize(Byref id$, array_dim) -function NumberArraySize(Byref id, array_dim) -'Math -function Abs(n) -function ACos(n) -function AndBit(a,b) -function ASin(n) -function ATan(n) -function Bin$(n) -function CInt32(i) -function CInt64(i) -function Cos(n) -function Degrees(r) -function Exp(n) -function Frac(n) -function Hex$(n) -function HexVal(n$) -function Int(n) -function Log(n) -function Max(a, b) -function Min(a, b) -function OrBit(a, b) -function Radians(d) -function Randomize(n) -function Rand(n) -function Round(n) -function Sign(n) -function Sin(n) -function Sqrt(n) -function Tan(n) -function XOrBit(a, b) -'Strings -function Asc(c$) -function Chr$(n) -function Insert$(src$, tgt$, pos) -function InStr(src$, substr$) -function LCase$(src$) -function Left$(src$, n) -function Length(src$) -function Len(src$) -function LTrim$(src$) -function Mid$(src$, start, n) -function ReplaceSubstr$(src$, rpc$, pos) -function Replace$(src$, tgt$, rpc$) -function Reverse$(src$) -function Right$(src$, n) -function RTrim$(src$) -function StringFill$(src$, n) -function Str$(n) -function Str_F$(n) -function Str_S$(n) -function Tally(src$, substr$) -function Trim$(src$) -function UCase$(src$) -function Val(n$) -'Stacks -sub Stack_N(n) -sub Stack_S(n) -sub Push_N(n) -function Pop_N() -sub Push_S(s$) -function Pop_S$() -function Stack_Size_N() -function Stack_Size_S() -'File I/O -function FileOpen(stream, fileName$, mode) -sub FileClose(stream) -function ReadByte(stream) -sub WriteByte(stream, byte) -function ReadLine$(stream) -sub Write(stream, txt$) -sub WriteLine(stream, txt$) -sub CopyFile(src$, dst$) -function RemoveFile(fileName$) -function FileExists(fileName$) -function MoveFile(src$, dst$) -function RenameFile(src$, dst$) -function FileLength(fileName$) -function Tell(stream) -function Seek(stream, pos) -function EOF(stream) -function FreeFile() -'Directories -sub ChangeDir(p$) -function DirExists(p$) -function DirFirst$() -function Dir$() -function DirNext$() -function MakeDir(p$) -function RemoveDir(p$) -'Date and Time -function Date$() -function Easter$(year) -function Ticks() -function Time$() -function Timer() -sub Wait(m_sec) -'Window Management -sub WindowOpen(win, title$, x, y, w, h, flag, vsync) -sub WindowClose(win) -sub RaiseWindow(win) -sub Window(win) -sub Update() -sub Cls() -sub SetClearColor(c) -sub ShowWindow(win) -sub HideWindow(win) -sub SetWindowTitle(win, title$) -function WindowTitle$(win) -sub SetWindowPosition(win, x, y) -sub GetWindowPosition(win, byref x, byref y) -sub SetWindowSize(win, w, h) -sub GetWindowSize(win, byref w, byref h) -sub SetWindowMinSize(win, w, h) -sub GetWindowMinSize(win, byref w, byref h) -sub SetWindowMaxSize(win, w, h) -sub GetWindowMaxSize(win, byref w, byref h) -function WindowIsFullscreen(win) -function WindowIsVisible(win) -function WindowIsBordered(win) -function WindowIsResizable(win) -function WindowIsMinimized(win) -function WindowIsMaximized(win) -function WindowHasInputFocus(win) -function WindowHasMouseFocus(win) -sub SetWindowFullscreen(win, flag) -sub MaximizeWindow(win) -sub MinimizeWindow(win) -sub SetWindowBorder(win, flag) -sub WindowClip(slot, x, y, w, h) -function WindowExists(win) -function NumWindows() -function WindowEvent_Close(win) -function WindowEvent_Maximize(win) -function WindowEvent_Minimize(win) -function ActiveWindow() -function FPS() -sub SetWindowIcon(win, slot) -'Canvases -sub CanvasOpen(c_num, w, h, viewport_x, viewport_y, viewport_w, viewport_h, mode) -sub CanvasClose(c_num) -sub SetCanvasVisible(c_num, flag) -function CanvasIsVisible(c_num) -sub SetCanvasViewport(cnum, x, y, w, h) -sub GetCanvasViewport(c_num, byref x, byref y, byref w, byref h) -sub Canvas(c_num) -sub SetCanvasOffset(c_num, x, y) -sub GetCanvasOffset(c_num, byref x, byref y) -sub GetCanvasSize(c_num, byref w, byref h) -sub ClearCanvas() -sub SetCanvasAlpha(c_num, a) -function CanvasAlpha(c_num) -function SetCanvasBlendMode(c_num, blend_mode) -function CanvasBlendMode(c_num) -function SetCanvasColorMod(c_num, c) -function CanvasColorMod(c_num) -sub CopyCanvas(src, x, y, w, h, dst, dx, dy) -sub CloneCanvas(src, dst) -sub SetCanvasZ(c_num, z) -function CanvasZ(c_num) -sub CanvasClip(slot, x, y, w, h, flag) -function ActiveCanvas() -'Graphics Primitives -sub Box(x1, y1, x2, y2) -sub BoxFill(x1, y1, x2, y2) -sub Circle(x,y,radius) -sub CircleFill(x,y,radius) -sub Ellipse(x,y,rx,ry) -sub EllipseFill(x,y,rx,ry) -sub FloodFill(x,y) -function GetPixel(x,y) -sub SetColor(c) -sub Line(x1, y1, x2, y2) -sub Poly(n, byref x, byref y) -sub PolyFill(n, byref x, byref y) -sub Rect(x, y, w, h) -sub RectFill(x, y, w, h) -sub RoundRect(x, y, w, h, r) -sub RoundRectFill(x, y, w, h, r) -function RGB(r,g,b) -function RGBA(r,g,b,a) -sub PSet(x,y) -'Images -sub LoadImage(slot, img$) -sub LoadImage_Ex(slot, img$, colkey) -sub ImageFromBuffer(slot, w, h, byref buffer) -sub ImageFromBuffer_Ex(slot, w, h, byref buffer, colkey) -sub BufferFromImage(slot, byref buffer) -function ImageExists(slot) -sub ColorKey(slot, c) -sub CopyImage(src, dst) -sub DeleteImage(slot) -sub SetImageAlpha(slot, a) -function ImageAlpha(slot) -sub GetImageSize(slot, byref w, byref h) -function SetImageBlendMode(slot, blend_mode) -function ImageBlendMode(slot) -function SetImageColorMod(slot, c) -function ImageColorMod(slot) -sub DrawImage(slot, x, y) -sub DrawImage_Blit(slot, x, y, src_x, src_y, src_w, src_h) -sub DrawImage_Blit_Ex(slot, x, y, w, h, src_x, src_y, src_w, src_h) -sub DrawImage_Rotate(slot, x, y, angle) -sub DrawImage_Rotate_Ex(slot, x, y, src_x, src_y, src_w, src_h, angle) -sub DrawImage_Zoom(slot, x, y, zx, zy) -sub DrawImage_Zoom_Ex(slot, x, y, src_x, src_y, src_w, src_h, zx, zy) -sub DrawImage_Rotozoom(slot, x, y, angle, zx, zy) -sub DrawImage_Rotozoom_Ex(slot, x, y, src_x, src_y, src_w, src_h, angle, zx, zy) -sub DrawImage_Flip(slot, x, y, h, v) -sub DrawImage_Flip_Ex(slot, x, y, src_x, src_y, src_w, src_h, h, v) -'Keyboard and Mouse -function InKey() -function Key(key_code) -function WaitKey() -sub HideMouse() -sub ShowMouse() -function MouseIsVisible() -sub GetMouse(byref x, byref y, byref mb1, byref mb2, byref mb3) -function MouseX() -function MouseY() -function MouseButton(mb) -sub GetMouseWheel(byref x_axis, byref y_axis) -function MouseWheelX() -function MouseWheelY() -'Sound and Music -sub SoundFromBuffer(slot, byref buffer, buffer_size, vol) -sub LoadSound(slot, snd_file$) -sub LoadMusic(music_file$) -sub PlaySound(slot, channel, loops) -sub PlaySoundTimed(slot, channel, loops, ms) -sub PlayMusic(mLoops) -sub PauseSound(channel) -sub ResumeSound(channel) -sub PauseMusic() -sub ResumeMusic() -sub DeleteSound(slot) -sub DeleteMusic() -sub FadeMusicIn(fade_time, loops) -sub FadeMusicOut(fade_time) -function MusicExists() -sub SetMusicVolume(vol) -function MusicVolume() -sub SetMusicPosition(pos) -function MusicPosition() -sub RewindMusic() -sub SetSoundChannels(max_channels) -function NumSoundChannels() -function SoundIsEnabled() -function SoundExists(slot) -sub SetChannelVolume(channel, vol) -function ChannelVolume(channel) -sub SetSoundVolume(slot, vol) -function SoundVolume(slot) -sub StopMusic() -sub StopSound(channel) -function SetChannelPanning(channel, left_value, right_value) -function SetChannelDistance(channel, dist_value) -function ChannelIsPlaying(channel) -function ChannelIsPaused(channel) -'Joysticks -function NumJoysticks() -function NumJoyAxes(joy_num) -function NumJoyButtons(joy_num) -function NumJoyHats(joy_num) -function NumJoyTrackBalls(joy_num) -function JoyAxis(joy_num, joy_axis) -function JoyButton(joy_num, joy_button) -function JoyHat(joy_num, joy_hat) -sub GetJoyTrackBall(joy_num, ball, byref dx, byref dy) -function JoyName$(joy_num) -function JoystickIsConnected(joy_num) -'Screen Console -sub GetCursor(byref x, byref y) -sub PrintS(txt$) -function InputS$(prompt$) -function ZoneInputS$(x, y, w, h) -sub Locate(x, y) -'Text Editing -sub ReadInput_Start() -sub ReadInput_Stop() -function ReadInput_Text$() -sub ReadInput_SetText(txt$) -sub ReadInput_ToggleBackspace(flag) -'Text Drawing -sub LoadFont(slot, fnt_file$, size) -sub DeleteFont(slot) -function FontIsLoaded(slot) -sub Font(slot) -sub SetFontStyle(slot, style) -sub DrawText(txt$, x, y) -sub DrawText_Shaded(txt$, x, y, fg_color, bg_color) -sub DrawText_Blended(txt$, x, y) -sub RenderText(slot, txt$) -sub GetTextSize(slot, txt$, byref w, byref h) -'Touch Events -function TouchPressure() -sub GetTouch(byref status, byref x, byref y, byref dx, byref dy) -sub GetMultiTouch(byref status, byref x, byref y, byref fingers, byref dist, byref theta) -sub GetTouchFinger(finger, byref x, byref y, byref pressure) -function NumFingers() -'Networking -function CheckSockets(timeout_ms) -function TCP_SocketReady(socket) -function UDP_SocketReady(socket) -function TCP_SocketOpen(socket, host$, port) -sub TCP_SocketClose(socket) -function TCP_RemoteHost(socket) -function TCP_RemotePort(socket) -function TCP_GetData(socket, ByRef sData$, numBytes) -sub TCP_SendData(socket, sData$) -function TCP_AcceptSocket(server, client) -function UDP_SocketOpen(socket, port) -function UDP_SocketClose(socket) -function UDP_GetData(socket, byref sData$, byref host$, byref port) -function UDP_Length() -function UDP_MaxLength() -function UDP_RemoteHost$(socket) -function UDP_RemotePort(socket) -sub UDP_SendData(socket, sData$, host$, port) -'Video Playback -sub LoadVideo(vid$) -sub PlayVideo(vLoops) -sub PauseVideo() -sub StopVideo() -sub SetVideoPosition(pos) -sub ResumeVideo() -function VideoPosition() -sub DeleteVideo() -function VideoIsPlaying() -function VideoEnd() -sub GetVideoStats(vFile$, byref vLen, byref vfps, byref frame_w, byref frame_h) -sub SetVideoDrawRect(x, y, w, h) -sub GetVideoDrawRect(byref x, byref y, byref w, byref h) -sub GetVideoSize(byref w, byref h) -function VideoExists() -sub SetVideoAlpha(a) -'Operating System -function System(cmd$) -function OS$() -function Command$(arg) -function NumCommands() -function Env$(v$) -sub SetEnv(var$, value$, overwrite) -function PrefPath$(org_name$, app_name$) -function Android_GetExternalStoragePath$() -function Android_GetExternalStorageState() -function Android_GetInternalStoragePath$() -function Android_JNI_Message$(arg$) -function Runtime_Utility_Message$(arg$) -'Clipboard -function ClipboardText$() -sub SetClipboardText(txt$) -function HasClipboardText() - -'v3.12 -Sub GetDesktopDisplayMode(index, ByRef w, ByRef h, ByRef freq) -Sub DrawImage_Transform(slot, x, y, w, h, src_x, src_y, src_w, src_h, angle, center_x, center_y, flip_h, flip_v) -Sub GetPowerInfo(ByRef status, ByRef secs, ByRef pct) -Function SystemRam() -Function SetRenderScaleQuality(n) -Function EvalJS$(js_code$) 'Only useable in Emscripten -Function GetRenderScaleQuality() - -'v3.14 -sub GetGlobalMouse(ByRef x, ByRef y, ByRef mb1, ByRef mb2, ByRef mb3) -function GlobalMouseX() -function GlobalMouseY() -sub GetAccel(accel_num, ByRef x, ByRef y, ByRef z) -function AccelName$(accel_num) -function NumAccels() -sub GetGyro(gyro_num, ByRef x, ByRef y, ByRef z) -function GyroName$(gyro_num) -function NumGyros() -sub JoyRumblePlay(joy_num, strength, duration) -sub JoyRumbleStop(joy_num) -function JoystickIsHaptic(joy_num) -function WriteByteBuffer(stream, ByRef buf, buf_size) -function ReadByteBuffer(stream, ByRef buf, buf_size) -function WindowEvent_Resize(win) -sub SetWindowAutoClose( win, exit_on_close ) -sub SetWindowResizable(win, flag) 'new -function SystemReturnStdOut$(cmd$) 'new -function WindowMode(visible, fullscreen, resizable, borderless, highDPI) -function WindowFlags(win) -sub RestoreWindow(win) -sub UpdateAllWindows() 'new -function QueryAudioSpec(ByRef freq, ByRef format, ByRef channels) 'new - -'v3.15 -function MusicIsPlaying() - -'v3.19 -function DrawGeometry(slot, num_vertices, ByRef vertices, num_indices, ByRef Indices) - -'v3.20 -function Size(s$) -function BufferFromString(s$, ByRef buffer) -function StringFromBuffer$(ByRef buffer, buffer_size) -sub GrabInput(flag) -function GrabbedWindow() -sub WarpMouse(x, y) -sub WarpMouseGlobal(x, y) -sub SetMouseZone(x, y, w, h) -sub ClearMouseZone() -sub SetWindowAlwaysOnTop(win, flag) -sub SetMouseRelative(flag) -sub SetWindowVSync(win, flag) -function OpenURL(url$) -function APIVersion$() -function FlashWindow(win) -function MessageBox(title$, msg$) -sub NumberArrayCopy(ByRef src, ByRef dst) -sub StringArrayCopy(ByRef src$, ByRef dst$) -sub ArrayCopy(ByRef src, ByRef dst) -sub NumberArrayFill(ByRef src, fdata) -sub StringArrayFill(ByRef src$, fdata$) -sub ArrayFill(ByRef src, fdata) -function Runtime$() - -'More v3.20 (Matrices and Parrallism) -sub DimMatrix(m, m_rows, m_cols, preserve_flag) -function AddMatrix(mA, mB, mC) -function AugmentMatrix (mA, mB, mC) -sub CopyMatrix(mA, mB) -function InsertMatrixColumns(mA, c, num_cols) -function InsertMatrixRows(mA, r, num_rows) -function MultiplyMatrix (mA, mB, mC) -function CubeMatrix(mA, mB) -function DeleteMatrixColumns(mA, c, num_cols) -function DeleteMatrixRows(mA, r, num_rows) -sub ClearMatrix(mA) -function ClearMatrixColumns (mA, c, num_cols) -function ClearMatrixRows(mA, r, num_rows) -sub FillMatrix(mA, v) -function FillMatrixColumns(mA, c, num_cols, v) -function FillMatrixRows(mA, r, num_rows, v) -function CopyMatrixColumns(mA, mB, c, num_cols) -function CopyMatrixRows (mA, mB, r, num_rows) -sub IdentityMatrix(mA, n) -function SolveMatrix(mA, mB, mC) -function IsEqualMatrix(mA, mB, tolerance) -function Determinant(mA) -function AdjointMatrix(mA, mB) -function InvertMatrix(mA, mB) -sub MatrixFromBuffer(mA, r, c, ByRef buffer) -sub GetMatrix(ByRef buffer, mA) -sub RandomizeMatrix(mA, vmin, vmax) -function MatrixValue(mA, r, c) -sub SetMatrixValue(mA, r, c, v) -sub ScalarMatrix (mA, mB, s_value) -function ScalarMatrixColumns(mA, mB, c, num_cols, s_value) -function ScalarMatrixRows(mA, mB, r, num_rows, s_value) -function SquareMatrix(mA, mB) -sub SubMatrix(mA, r, c) -function SubtractMatrix (mA, mB, mC) -sub SwapMatrix(mA, mB) -function SwapMatrixColumn(mA, C1, C2) -function SwapMatrixRow(mA, R1, R2) -function TransposeMatrix(mA, mB) -function UnAugmentMatrix(mA, mB, mC) -sub ZeroMatrix(mA) - -sub GetMatrixSize(mA, ByRef r, ByRef c) -function SetMatrixProcess(p_num) 'Set to -1 for main thread - - -'ERROR_FLAG - MATRIX_ON_ERROR_STOP, MATRIX_ON_ERROR_WAIT, MATRIX_ON_ERROR_CONTINUE -function ProcessOpen(p_num) 'stops and locks mutex, and clears queue before changing mode -sub SetProcessErrorMode(p_num, error_mode) -function ProcessError(p_num) -sub ProcessWait(p_num) 'waits for all calculations to complete and lock matrix mutex -sub ProcessWaitAll() 'waits for all process to finish -sub ProcessContinue(p_num) 'unlock mutex -sub ProcessStop(p_num) 'stops after current calculation its working on and lock mutex -sub ProcessClear(p_num) 'locks mutex and clears matrix queue -function ProcessClose(p_num) -function ProcessErrorMode(p_num) -sub ProcessSleep(p_num, msec) -function ProcessExists(p_num) -sub ProcessStopAll() -sub ProcessContinueAll() -function ProcessQueueSize(p_num) - -function NumCPUs() - -'v3.21 -sub GetProjectionGeometry(cam_dist, mA, f_vertex_count, ByRef columns, ByRef uv, graph_offset_x, graph_offset_y, v_color, ByRef vertex_count, ByRef vertex2D, ByRef index_count, ByRef index, ByRef clip_dist, ByRef min_x, ByRef min_y, ByRef max_x, ByRef max_y) -function CalculateFaceZ(cam_dist, graph_offset_x, graph_offset_y, view_w, view_h, view_depth, mA, f_vertex_count, ByRef columns, ByRef face_min_z, ByRef face_max_z, ByRef z_avg) -function SetChannelSpacePosition(channel, angle, distance) -function SaveBMP(img, file$) -function SavePNG(img, file$) -function SaveJPG(img, file$) -Function GetLineIntersection(p0_x, p0_y, p1_x, p1_y, p2_x, p2_y, p3_x, p3_y, ByRef i_x, ByRef i_y) -Function Interpolate(min_a, max_a, mid_a, min_b, max_b) -Function ATan2(y, x) -function PointInQuad(x, y, x1, y1, x2, y2, x3, y3, x4, y4) -function PointInTri(x, y, x1, y1, x2, y2, x3, y3) -Function Distance2D(x1, y1, x2, y2) -Function Distance3D(x1, y1, z1, x2, y2, z2) -function GetCircleLineIntersection(circle_x, circle_y, radius, x1, y1, x2, y2, ByRef ix1, ByRef iy1, ByRef ix2, ByRef iy2) -function GetLinePlaneIntersection(ByRef line_point, ByRef line_direction, ByRef plane_point_1, ByRef plane_point_2, ByRef plane_point_3, ByRef intersection) -sub IncrementMatrixRows(mA, mB, r, num_rows, value) -sub IncrementMatrixColumns(mA, mB, c, num_cols, value) -sub JoinMatrixRows(mA, mB, mC) -sub JoinMatrixColumns(mA, mB, mC) - -'v4.0 - 'Empty Type is used mainly for built-in functions that need to have a user type specified to be able to compile properly type empty end type -function TypeArrayDim(Byref id as empty) -function TypeArraySize(Byref id as empty, array_dim) -sub TypeArrayCopy(ByRef src as empty, ByRef dst as empty) -sub TypeArrayFill(ByRef src as empty, fdata as empty) +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/conio.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/arrays.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/math.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/strings.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/stacks.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/files.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/directories.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/datetime.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/window.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/canvas.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/prim2d.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/images.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/keyboard.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/audio.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/joystick.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/gfxconsole.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/text.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/touch.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/network.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/video.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/system.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/matrix.bas" +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_physics.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" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/actor_physics.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/constraint3D.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/camera.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/scene.bas" +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/materials.bas" diff --git a/rcbasic_build/env_resolve.h b/rcbasic_build/env_resolve.h old mode 100644 new mode 100755 diff --git a/rcbasic_build/file_directory.h b/rcbasic_build/file_directory.h old mode 100644 new mode 100755 diff --git a/rcbasic_build/identifier.h b/rcbasic_build/identifier.h old mode 100644 new mode 100755 diff --git a/rcbasic_build/intern_inc/exceptions/.h b/rcbasic_build/intern_inc/exceptions/.h new file mode 100644 index 0000000..a10d449 --- /dev/null +++ b/rcbasic_build/intern_inc/exceptions/.h @@ -0,0 +1,4 @@ +if(STACK_S_N >= 0 && STACK_S_N <= (MAX_USER_STACKS-1)) + rc_user_active_s_stack = STACK_S_N; +Else + Cout << "Stack_S Error: Exceeds available stacks" << endl; diff --git a/rcbasic_build/intern_inc/exceptions/rc_arrayCopy.h b/rcbasic_build/intern_inc/exceptions/rc_arrayCopy.h new file mode 100644 index 0000000..f7b7a28 --- /dev/null +++ b/rcbasic_build/intern_inc/exceptions/rc_arrayCopy.h @@ -0,0 +1 @@ +//DUMMY CASE diff --git a/rcbasic_build/intern_inc/exceptions/rc_arrayDim.h b/rcbasic_build/intern_inc/exceptions/rc_arrayDim.h new file mode 100644 index 0000000..f7b7a28 --- /dev/null +++ b/rcbasic_build/intern_inc/exceptions/rc_arrayDim.h @@ -0,0 +1 @@ +//DUMMY CASE diff --git a/rcbasic_build/intern_inc/exceptions/rc_arrayFill.h b/rcbasic_build/intern_inc/exceptions/rc_arrayFill.h new file mode 100644 index 0000000..f7b7a28 --- /dev/null +++ b/rcbasic_build/intern_inc/exceptions/rc_arrayFill.h @@ -0,0 +1 @@ +//DUMMY CASE diff --git a/rcbasic_build/intern_inc/exceptions/rc_arraySize.h b/rcbasic_build/intern_inc/exceptions/rc_arraySize.h new file mode 100644 index 0000000..f7b7a28 --- /dev/null +++ b/rcbasic_build/intern_inc/exceptions/rc_arraySize.h @@ -0,0 +1 @@ +//DUMMY CASE diff --git a/rcbasic_build/intern_inc/exceptions/rc_numberArrayCopy.h b/rcbasic_build/intern_inc/exceptions/rc_numberArrayCopy.h new file mode 100644 index 0000000..c1f36c7 --- /dev/null +++ b/rcbasic_build/intern_inc/exceptions/rc_numberArrayCopy.h @@ -0,0 +1,2 @@ +rc_number_array_copy( &num_var[0], &num_var[1]); +arr_ref_id.clear(); diff --git a/rcbasic_build/intern_inc/exceptions/rc_numberArrayDim.h b/rcbasic_build/intern_inc/exceptions/rc_numberArrayDim.h new file mode 100644 index 0000000..1cdf766 --- /dev/null +++ b/rcbasic_build/intern_inc/exceptions/rc_numberArrayDim.h @@ -0,0 +1,2 @@ +rc_push_num( rc_number_array_dim( (rc_numId*)num_var[0].nid_value.ref_parent ) ); +arr_ref_id.clear(); diff --git a/rcbasic_build/intern_inc/exceptions/rc_numberArrayFill.h b/rcbasic_build/intern_inc/exceptions/rc_numberArrayFill.h new file mode 100644 index 0000000..44d75b5 --- /dev/null +++ b/rcbasic_build/intern_inc/exceptions/rc_numberArrayFill.h @@ -0,0 +1,2 @@ +rc_number_array_fill( &num_var[0], NUMBERARRAYFILL_FDATA); +arr_ref_id.clear(); diff --git a/rcbasic_build/intern_inc/exceptions/rc_numberArraySize.h b/rcbasic_build/intern_inc/exceptions/rc_numberArraySize.h new file mode 100644 index 0000000..9c4469a --- /dev/null +++ b/rcbasic_build/intern_inc/exceptions/rc_numberArraySize.h @@ -0,0 +1,2 @@ +rc_push_num( rc_number_array_size( (rc_numId*)num_var[0].nid_value.ref_parent, NUMBERARRAYSIZE_ARRAY_DIM)); +arr_ref_id.clear(); diff --git a/rcbasic_build/intern_inc/exceptions/rc_runtime.h b/rcbasic_build/intern_inc/exceptions/rc_runtime.h new file mode 100644 index 0000000..9e825d3 --- /dev/null +++ b/rcbasic_build/intern_inc/exceptions/rc_runtime.h @@ -0,0 +1 @@ +rc_push_str( rcbasic_runtime_path ); diff --git a/rcbasic_build/intern_inc/exceptions/rc_stack_N.h b/rcbasic_build/intern_inc/exceptions/rc_stack_N.h new file mode 100644 index 0000000..802b89e --- /dev/null +++ b/rcbasic_build/intern_inc/exceptions/rc_stack_N.h @@ -0,0 +1,4 @@ +if(STACK_N_N >= 0 && STACK_N_N <= (MAX_USER_STACKS-1)) + rc_user_active_n_stack = STACK_N_N; +Else + cout << "Stack_N Error: Exceeds available stacks" << endl; diff --git a/rcbasic_build/intern_inc/exceptions/rc_stack_S.h b/rcbasic_build/intern_inc/exceptions/rc_stack_S.h new file mode 100644 index 0000000..a10d449 --- /dev/null +++ b/rcbasic_build/intern_inc/exceptions/rc_stack_S.h @@ -0,0 +1,4 @@ +if(STACK_S_N >= 0 && STACK_S_N <= (MAX_USER_STACKS-1)) + rc_user_active_s_stack = STACK_S_N; +Else + Cout << "Stack_S Error: Exceeds available stacks" << endl; diff --git a/rcbasic_build/intern_inc/exceptions/rc_stringArrayCopy.h b/rcbasic_build/intern_inc/exceptions/rc_stringArrayCopy.h new file mode 100644 index 0000000..a2a252c --- /dev/null +++ b/rcbasic_build/intern_inc/exceptions/rc_stringArrayCopy.h @@ -0,0 +1,2 @@ +rc_string_array_copy( &str_var[0], &str_var[1]); +arr_ref_id.clear(); diff --git a/rcbasic_build/intern_inc/exceptions/rc_stringArrayDim.h b/rcbasic_build/intern_inc/exceptions/rc_stringArrayDim.h new file mode 100644 index 0000000..1e82f6f --- /dev/null +++ b/rcbasic_build/intern_inc/exceptions/rc_stringArrayDim.h @@ -0,0 +1,2 @@ +rc_push_num( rc_string_array_dim( (rc_strId*) str_var[0].sid_value.ref_parent ) ); +arr_ref_id.clear(); diff --git a/rcbasic_build/intern_inc/exceptions/rc_stringArrayFill.h b/rcbasic_build/intern_inc/exceptions/rc_stringArrayFill.h new file mode 100644 index 0000000..44b4a58 --- /dev/null +++ b/rcbasic_build/intern_inc/exceptions/rc_stringArrayFill.h @@ -0,0 +1,2 @@ +rc_string_array_fill( &str_var[0], STRINGARRAYFILL_FDATA$); +arr_ref_id.clear(); diff --git a/rcbasic_build/intern_inc/exceptions/rc_stringArraySize.h b/rcbasic_build/intern_inc/exceptions/rc_stringArraySize.h new file mode 100644 index 0000000..32c7d64 --- /dev/null +++ b/rcbasic_build/intern_inc/exceptions/rc_stringArraySize.h @@ -0,0 +1,2 @@ +rc_push_num( rc_string_array_size( (rc_strId*) str_var[0].sid_value.ref_parent, STRINGARRAYSIZE_ARRAY_DIM)); +arr_ref_id.clear(); diff --git a/rcbasic_build/intern_inc/exceptions/rc_typeArrayCopy.h b/rcbasic_build/intern_inc/exceptions/rc_typeArrayCopy.h new file mode 100644 index 0000000..b02ad38 --- /dev/null +++ b/rcbasic_build/intern_inc/exceptions/rc_typeArrayCopy.h @@ -0,0 +1,2 @@ +rc_free_type(TYPEARRAYCOPY_DST); +rc_type_array_copy( TYPEARRAYCOPY_SRC, TYPEARRAYCOPY_DST ); diff --git a/rcbasic_build/intern_inc/exceptions/rc_typeArrayDim.h b/rcbasic_build/intern_inc/exceptions/rc_typeArrayDim.h new file mode 100644 index 0000000..40eb4cc --- /dev/null +++ b/rcbasic_build/intern_inc/exceptions/rc_typeArrayDim.h @@ -0,0 +1,2 @@ +rc_push_num( rc_type_array_dim( TYPEARRAYDIM_ID ) ); +arr_ref_id.clear(); diff --git a/rcbasic_build/intern_inc/exceptions/rc_typeArrayFill.h b/rcbasic_build/intern_inc/exceptions/rc_typeArrayFill.h new file mode 100644 index 0000000..c78bb75 --- /dev/null +++ b/rcbasic_build/intern_inc/exceptions/rc_typeArrayFill.h @@ -0,0 +1 @@ +rc_type_array_fill( TYPEARRAYFILL_SRC, &TYPEARRAYFILL_FDATA ); diff --git a/rcbasic_build/intern_inc/exceptions/rc_typeArraySize.h b/rcbasic_build/intern_inc/exceptions/rc_typeArraySize.h new file mode 100644 index 0000000..ef121ee --- /dev/null +++ b/rcbasic_build/intern_inc/exceptions/rc_typeArraySize.h @@ -0,0 +1,2 @@ +rc_push_num( rc_type_array_size( TYPEARRAYSIZE_ID, TYPEARRAYSIZE_ARRAY_DIM ) ); +arr_ref_id.clear(); diff --git a/rcbasic_build/intern_inc/exceptions/rc_update.h b/rcbasic_build/intern_inc/exceptions/rc_update.h new file mode 100644 index 0000000..fc0e15f --- /dev/null +++ b/rcbasic_build/intern_inc/exceptions/rc_update.h @@ -0,0 +1,7 @@ +rc_events(); +rc_media_updateWindow_hw(); +#ifdef RC_WEB + emscripten_sleep(0); +#else + SDL_Delay(0); +#endif // RC_WEB diff --git a/rcbasic_build/intern_inc/rc_builtin_template.h b/rcbasic_build/intern_inc/rc_builtin_template.h new file mode 100755 index 0000000..744d915 --- /dev/null +++ b/rcbasic_build/intern_inc/rc_builtin_template.h @@ -0,0 +1,19 @@ +#ifndef RC_BUILTIN_H_INCLUDED +#define RC_BUILTIN_H_INCLUDED +#include "identifier.h" + +void init_embedded_functions() +{ +} + + +void init_embedded_types() +{ + create_type("empty"); +} + +void init_embedded_variables() +{ +} + +#endif // RC_BUILTIN_H_INCLUDED diff --git a/rcbasic_build/intern_inc/switch_cases.h b/rcbasic_build/intern_inc/switch_cases.h new file mode 100644 index 0000000..26545ae --- /dev/null +++ b/rcbasic_build/intern_inc/switch_cases.h @@ -0,0 +1,823 @@ +rc_fprint( FPRINT_TXT$ ) +rc_input( INPUT$_PROMPT$ ) +rc_tst( &TST_X ) +#/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_inc/exceptions/rc_arrayDim.h +#/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_inc/exceptions/rc_stringArrayDim.h +#/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_inc/exceptions/rc_numberArrayDim.h +#/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_inc/exceptions/rc_arraySize.h +#/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_inc/exceptions/rc_stringArraySize.h +#/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_inc/exceptions/rc_numberArraySize.h +#/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_inc/exceptions/rc_numberArrayCopy.h +#/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_inc/exceptions/rc_stringArrayCopy.h +#/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_inc/exceptions/rc_arrayCopy.h +#/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_inc/exceptions/rc_numberArrayFill.h +#/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_inc/exceptions/rc_stringArrayFill.h +#/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_inc/exceptions/rc_arrayFill.h +#/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_inc/exceptions/rc_typeArrayDim.h +#/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_inc/exceptions/rc_typeArraySize.h +#/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_inc/exceptions/rc_typeArrayCopy.h +#/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_inc/exceptions/rc_typeArrayFill.h +rc_intern_abs( ABS_N ) +rc_intern_aCos( ACOS_N ) +rc_intern_andBit( ANDBIT_A, ANDBIT_B ) +rc_intern_aSin( ASIN_N ) +rc_intern_aTan( ATAN_N ) +rc_intern_bin( BIN$_N ) +rc_intern_cint32( CINT32_I ) +rc_intern_cint64( CINT64_I ) +rc_intern_cos( COS_N ) +rc_intern_degrees( DEGREES_R ) +rc_intern_exp( EXP_N ) +rc_intern_frac( FRAC_N ) +rc_intern_hex( HEX$_N ) +rc_intern_hexInt( HEXVAL_N$ ) +rc_intern_int( INT_N ) +rc_intern_log( LOG_N ) +rc_intern_max( MAX_A, MAX_B ) +rc_intern_min( MIN_A, MIN_B ) +rc_intern_orBit( ORBIT_A, ORBIT_B ) +rc_intern_radians( RADIANS_D ) +rc_intern_randomize( RANDOMIZE_N ) +rc_intern_rand( RAND_N ) +rc_intern_round( ROUND_N ) +rc_intern_sign( SIGN_N ) +rc_intern_sin( SIN_N ) +rc_intern_sqrt( SQRT_N ) +rc_intern_tan( TAN_N ) +rc_intern_xorbit( XORBIT_A, XORBIT_B ) +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 ) +Interpolate( INTERPOLATE_MIN_A, INTERPOLATE_MAX_A, INTERPOLATE_MID_A, INTERPOLATE_MIN_B, INTERPOLATE_MAX_B ) +atan2( ATAN2_Y, ATAN2_X ) +PointInQuad( POINTINQUAD_X, POINTINQUAD_Y, POINTINQUAD_X1, POINTINQUAD_Y1, POINTINQUAD_X2, POINTINQUAD_Y2, POINTINQUAD_X3, POINTINQUAD_Y3, POINTINQUAD_X4, POINTINQUAD_Y4 ) +PointInTri( POINTINTRI_X, POINTINTRI_Y, POINTINTRI_X1, POINTINTRI_Y1, POINTINTRI_X2, POINTINTRI_Y2, POINTINTRI_X3, POINTINTRI_Y3 ) +Distance2D( DISTANCE2D_X1, DISTANCE2D_Y1, DISTANCE2D_X2, DISTANCE2D_Y2 ) +Distance3D( DISTANCE3D_X1, DISTANCE3D_Y1, DISTANCE3D_Z1, DISTANCE3D_X2, DISTANCE3D_Y2, DISTANCE3D_Z2 ) +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 ) +GetLinePlaneIntersection( &GETLINEPLANEINTERSECTION_LINE_POINT, &GETLINEPLANEINTERSECTION_LINE_DIRECTION, &GETLINEPLANEINTERSECTION_PLANE_POINT_1, &GETLINEPLANEINTERSECTION_PLANE_POINT_2, &GETLINEPLANEINTERSECTION_PLANE_POINT_3, &GETLINEPLANEINTERSECTION_INTERSECTION ) +rc_intern_asc( ASC_C$ ) +rc_intern_chr( CHR$_N ) +rc_intern_insert( INSERT$_SRC$, INSERT$_TGT$, INSERT$_POS ) +rc_intern_instr( INSTR_SRC$, INSTR_SUBSTR$ ) +rc_intern_lcase( LCASE$_SRC$ ) +rc_intern_left( LEFT$_SRC$, LEFT$_N ) +rc_intern_length( LENGTH_SRC$ ) +rc_intern_length( LEN_SRC$ ) +rc_intern_ltrim( LTRIM$_SRC$ ) +rc_intern_mid( MID$_SRC$, MID$_START, MID$_N ) +rc_intern_replaceSubstr( REPLACESUBSTR$_SRC$, REPLACESUBSTR$_RPC$, REPLACESUBSTR$_POS ) +rc_intern_replace( REPLACE$_SRC$, REPLACE$_TGT$, REPLACE$_RPC$ ) +rc_intern_reverse( REVERSE$_SRC$ ) +rc_intern_right( RIGHT$_SRC$, RIGHT$_N ) +rc_intern_rtrim( RTRIM$_SRC$ ) +rc_intern_stringfill( STRINGFILL$_SRC$, STRINGFILL$_N ) +rc_intern_str( STR$_N ) +rc_intern_str_f( STR_F$_N ) +rc_intern_str_s( STR_S$_N ) +rc_intern_tally( TALLY_SRC$, TALLY_SUBSTR$ ) +rc_intern_trim( TRIM$_SRC$ ) +rc_intern_ucase( UCASE$_SRC$ ) +rc_intern_val( VAL_N$ ) +rc_intern_size( SIZE_S$ ) +rc_intern_bufferFromString( BUFFERFROMSTRING_S$, &BUFFERFROMSTRING_BUFFER ) +rc_intern_stringFromBuffer( &STRINGFROMBUFFER$_BUFFER, STRINGFROMBUFFER$_BUFFER_SIZE ) +rc_intern_createStack_N( ) +rc_intern_createStack_S( ) +rc_intern_clearStack_N( CLEARSTACK_N_NUM_STACK ) +rc_intern_clearStack_S( CLEARSTACK_S_STR_STACK ) +rc_intern_deleteStack_N( DELETESTACK_N_NUM_STACK ) +rc_intern_deleteStack_S( DELETESTACK_S_STR_STACK ) +rc_intern_push_n( PUSH_N_NUM_STACK, PUSH_N_N ) +rc_intern_pop_n( POP_N_NUM_STACK ) +rc_intern_push_s( PUSH_S_STR_STACK, PUSH_S_S$ ) +rc_intern_pop_s( POP_S$_STR_STACK ) +rc_intern_n_stack_size( STACK_SIZE_N_NUM_STACK ) +rc_intern_s_stack_size( STACK_SIZE_S_STR_STACK ) +rc_intern_fileOpen( OPENFILE_FILENAME$, OPENFILE_MODE ) +rc_intern_fileClose( CLOSEFILE_STREAM ) +rc_intern_fileReadByte( READBYTE_STREAM ) +rc_intern_fileWriteByte( WRITEBYTE_STREAM, WRITEBYTE_BYTE ) +rc_intern_fileReadLine( READLINE$_STREAM ) +rc_intern_fileWrite( WRITE_STREAM, WRITE_TXT$ ) +rc_intern_fileWriteLine( WRITELINE_STREAM, WRITELINE_TXT$ ) +rc_intern_fileCopy( COPYFILE_SRC$, COPYFILE_DST$ ) +rc_intern_fileDelete( REMOVEFILE_FILENAME$ ) +rc_intern_fileExist( FILEEXISTS_FILENAME$ ) +rc_intern_fileMove( MOVEFILE_SRC$, MOVEFILE_DST$ ) +rc_intern_fileRename( RENAMEFILE_SRC$, RENAMEFILE_DST$ ) +rc_intern_fileLength( FILELENGTH_FILENAME$ ) +rc_intern_fileTell( TELL_STREAM ) +rc_intern_fileSeek( SEEK_STREAM, SEEK_POS ) +rc_intern_eof( EOF_STREAM ) +rc_intern_fileWriteByteBuffer( WRITEBYTEBUFFER_STREAM, &WRITEBYTEBUFFER_BUF, WRITEBYTEBUFFER_BUF_SIZE ) +rc_intern_fileReadByteBuffer( READBYTEBUFFER_STREAM, &READBYTEBUFFER_BUF, READBYTEBUFFER_BUF_SIZE ) +rc_intern_dirChange( CHANGEDIR_P$ ) +rc_intern_dirExist( DIREXISTS_P$ ) +rc_intern_dirFirst( ) +rc_intern_dir( ) +rc_intern_dirNext( ) +rc_intern_dirCreate( MAKEDIR_P$ ) +rc_intern_dirDelete( REMOVEDIR_P$ ) +rc_intern_date( ) +rc_intern_easter( EASTER$_YEAR ) +rc_intern_ticks( ) +rc_intern_time( ) +rc_intern_timer( ) +rc_intern_wait( WAIT_M_SEC ) +rc_windowOpen( OPENWINDOW_TITLE$, OPENWINDOW_W, OPENWINDOW_H, OPENWINDOW_FULLSCREEN, OPENWINDOW_VSYNC ) +rc_windowOpenEx( OPENWINDOWEX_TITLE$, OPENWINDOWEX_X, OPENWINDOWEX_Y, OPENWINDOWEX_W, OPENWINDOWEX_H, OPENWINDOWEX_MODE, OPENWINDOWEX_AA, OPENWINDOWEX_STENCIL_BUFFER, OPENWINDOWEX_VSYNC ) +rc_closeWindow_hw( ) +rc_raiseWindow( ) +rc_update( ) +rc_cls( ) +rc_setClearColor( SETCLEARCOLOR_C ) +rc_showWindow( ) +rc_hideWindow( ) +rc_setWindowTitle( SETWINDOWTITLE_TITLE$ ) +rc_getWindowTitle( ) +rc_setWindowPosition( SETWINDOWPOSITION_X, SETWINDOWPOSITION_Y ) +rc_getWindowPosition( &GETWINDOWPOSITION_X, &GETWINDOWPOSITION_Y ) +rc_setWindowSize( SETWINDOWSIZE_W, SETWINDOWSIZE_H ) +rc_getWindowSize( &GETWINDOWSIZE_W, &GETWINDOWSIZE_H ) +rc_setWindowMinSize( SETWINDOWMINSIZE_W, SETWINDOWMINSIZE_H ) +rc_getWindowMinSize( &GETWINDOWMINSIZE_W, &GETWINDOWMINSIZE_H ) +rc_setWindowMaxSize( SETWINDOWMAXSIZE_W, SETWINDOWMAXSIZE_H ) +rc_getWindowMaxSize( &GETWINDOWMAXSIZE_W, &GETWINDOWMAXSIZE_H ) +rc_windowIsFullscreen( ) +rc_windowIsVisible( ) +rc_windowIsBordered( ) +rc_windowIsResizable( ) +rc_windowIsMinimized( ) +rc_windowIsMaximized( ) +rc_windowHasInputFocus( ) +rc_windowHasMouseFocus( ) +rc_setWindowFullscreen( SETWINDOWFULLSCREEN_FLAG ) +rc_maximizeWindow( ) +rc_minimizeWindow( ) +rc_setWindowBordered( SETWINDOWBORDERED_FLAG ) +rc_windowClip( WINDOWCLIP_X, WINDOWCLIP_Y, WINDOWCLIP_W, WINDOWCLIP_H ) +rc_windowExists( ) +rc_windowEvent_Close( ) +rc_windowEvent_Maximize( ) +rc_windowEvent_Minimize( ) +rc_FPS( ) +rc_setWindowIcon( SETWINDOWICON_SLOT ) +rc_windowEvent_Resize( ) +rc_setWindowAutoClose( SETWINDOWAUTOCLOSE_EXIT_ON_CLOSE ) +rc_setWindowResizable( SETWINDOWRESIZABLE_FLAG ) +rc_windowMode( WINDOWMODE_VISIBLE, WINDOWMODE_FULLSCREEN, WINDOWMODE_RESIZABLE, WINDOWMODE_BORDERLESS, WINDOWMODE_HIGHDPI ) +rc_getWindowMode( ) +rc_restoreWindow( ) +rc_grabInput( GRABINPUT_FLAG ) +rc_setWindowAlwaysOnTop( SETWINDOWALWAYSONTOP_FLAG ) +rc_setMouseRelative( SETMOUSERELATIVE_FLAG ) +rc_setWindowVSync( SETWINDOWVSYNC_FLAG ) +rc_flashWindow( FLASHWINDOW_FLAG ) +rc_windowIsGrabbed( ) +rc_canvasOpen( OPENCANVAS_W, OPENCANVAS_H, OPENCANVAS_VIEWPORT_X, OPENCANVAS_VIEWPORT_Y, OPENCANVAS_VIEWPORT_W, OPENCANVAS_VIEWPORT_H, OPENCANVAS_MODE ) +rc_canvasClose( CLOSECANVAS_C_NUM ) +rc_setCanvas3D( SETCANVAS3D_C_NUM, SETCANVAS3D_FLAG ) +rc_setCanvasVisible( SETCANVASVISIBLE_C_NUM, SETCANVASVISIBLE_FLAG ) +rc_canvasIsVisible( CANVASISVISIBLE_C_NUM ) +rc_setCanvasViewport( SETCANVASVIEWPORT_CNUM, SETCANVASVIEWPORT_X, SETCANVASVIEWPORT_Y, SETCANVASVIEWPORT_W, SETCANVASVIEWPORT_H ) +rc_getCanvasViewport( GETCANVASVIEWPORT_C_NUM, &GETCANVASVIEWPORT_X, &GETCANVASVIEWPORT_Y, &GETCANVASVIEWPORT_W, &GETCANVASVIEWPORT_H ) +rc_setActiveCanvas( CANVAS_C_NUM ) +rc_setCanvasOffset( SETCANVASOFFSET_C_NUM, SETCANVASOFFSET_X, SETCANVASOFFSET_Y ) +rc_getCanvasOffset( GETCANVASOFFSET_C_NUM, &GETCANVASOFFSET_X, &GETCANVASOFFSET_Y ) +rc_getCanvasSize( GETCANVASSIZE_C_NUM, &GETCANVASSIZE_W, &GETCANVASSIZE_H ) +rc_clearCanvas( ) +rc_setCanvasAlpha( SETCANVASALPHA_C_NUM, SETCANVASALPHA_A ) +rc_canvasAlpha( GETCANVASALPHA_C_NUM ) +rc_setCanvasColorMod( SETCANVASCOLORMOD_C_NUM, SETCANVASCOLORMOD_C ) +rc_getCanvasColorMod( GETCANVASCOLORMOD_C_NUM ) +rc_cloneCanvas( CLONECANVAS_SRC, CLONECANVAS_DST ) +rc_setCanvasZ( SETCANVASZ_C_NUM, SETCANVASZ_Z ) +rc_getCanvasZ( GETCANVASZ_C_NUM ) +rc_canvasClip( CANVASCLIP_X, CANVASCLIP_Y, CANVASCLIP_W, CANVASCLIP_H ) +rc_activeCanvas( ) +rc_drawCircle( CIRCLE_X, CIRCLE_Y, CIRCLE_RADIUS ) +rc_drawCircleFill( CIRCLEFILL_X, CIRCLEFILL_Y, CIRCLEFILL_RADIUS ) +rc_drawEllipse( ELLIPSE_X, ELLIPSE_Y, ELLIPSE_RX, ELLIPSE_RY ) +rc_drawEllipseFill( ELLIPSEFILL_X, ELLIPSEFILL_Y, ELLIPSEFILL_RX, ELLIPSEFILL_RY ) +rc_floodFill( FLOODFILL_X, FLOODFILL_Y ) +rc_getPixel( GETPIXEL_X, GETPIXEL_Y ) +rc_setColor( SETCOLOR_C ) +rc_drawLine( LINE_X1, LINE_Y1, LINE_X2, LINE_Y2 ) +rc_poly( POLY_N, &POLY_X, &POLY_Y ) +rc_drawRect( RECT_X, RECT_Y, RECT_W, RECT_H ) +rc_drawRectFill( RECTFILL_X, RECTFILL_Y, RECTFILL_W, RECTFILL_H ) +rc_rgb( RGB_R, RGB_G, RGB_B ) +rc_rgba( RGBA_R, RGBA_G, RGBA_B, RGBA_A ) +rc_drawPixel( PSET_X, PSET_Y ) +rc_loadImage( LOADIMAGE_IMG$ ) +rc_loadImageEx( LOADIMAGEEX_IMG$, LOADIMAGEEX_COLKEY ) +rc_createImage( CREATEIMAGE_W, CREATEIMAGE_H, &CREATEIMAGE_BUFFER ) +rc_createImageEx( CREATEIMAGEEX_W, CREATEIMAGEEX_H, &CREATEIMAGEEX_BUFFER, CREATEIMAGEEX_COLOR ) +rc_getImageBuffer( GETIMAGEBUFFER_IMG_ID, &GETIMAGEBUFFER_BUFFER ) +rc_imageExists( IMAGEEXISTS_SLOT ) +rc_setColorKey( COLORKEY_SLOT, COLORKEY_C ) +rc_setBilinearFilter( SETBILINEARFILTER_FLAG ) +rc_getBilinearFilter( ) +rc_copyImage( COPYIMAGE_IMG_ID ) +rc_deleteImage( DELETEIMAGE_SLOT ) +rc_setImageAlpha( SETIMAGEALPHA_SLOT, SETIMAGEALPHA_A ) +rc_getImageAlpha( GETIMAGEALPHA_IMG_ID ) +rc_getImageSize( GETIMAGESIZE_SLOT, &GETIMAGESIZE_W, &GETIMAGESIZE_H ) +rc_setBlendMode( SETBLENDMODE_BLEND_MODE ) +rc_getBlendMode( ) +rc_setImageColorMod( SETIMAGECOLORMOD_SLOT, SETIMAGECOLORMOD_C ) +rc_getImageColorMod( GETIMAGECOLORMOD_SLOT ) +rc_drawImage( DRAWIMAGE_SLOT, DRAWIMAGE_X, DRAWIMAGE_Y ) +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 ) +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 ) +rc_drawImage_Rotate( DRAWIMAGE_ROTATE_SLOT, DRAWIMAGE_ROTATE_X, DRAWIMAGE_ROTATE_Y, DRAWIMAGE_ROTATE_ANGLE ) +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 ) +rc_drawImage_Zoom( DRAWIMAGE_ZOOM_SLOT, DRAWIMAGE_ZOOM_X, DRAWIMAGE_ZOOM_Y, DRAWIMAGE_ZOOM_ZX, DRAWIMAGE_ZOOM_ZY ) +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 ) +rc_drawImage_Rotozoom( DRAWIMAGE_ROTOZOOM_SLOT, DRAWIMAGE_ROTOZOOM_X, DRAWIMAGE_ROTOZOOM_Y, DRAWIMAGE_ROTOZOOM_ANGLE, DRAWIMAGE_ROTOZOOM_ZX, DRAWIMAGE_ROTOZOOM_ZY ) +rc_drawImage_RotozoomEx( DRAWIMAGE_ROTOZOOMEX_SLOT, DRAWIMAGE_ROTOZOOMEX_X, DRAWIMAGE_ROTOZOOMEX_Y, DRAWIMAGE_ROTOZOOMEX_SRC_X, DRAWIMAGE_ROTOZOOMEX_SRC_Y, DRAWIMAGE_ROTOZOOMEX_SRC_W, DRAWIMAGE_ROTOZOOMEX_SRC_H, DRAWIMAGE_ROTOZOOMEX_ANGLE, DRAWIMAGE_ROTOZOOMEX_ZX, DRAWIMAGE_ROTOZOOMEX_ZY ) +rc_drawImage_Flip( DRAWIMAGE_FLIP_SLOT, DRAWIMAGE_FLIP_X, DRAWIMAGE_FLIP_Y, DRAWIMAGE_FLIP_H, DRAWIMAGE_FLIP_V ) +rc_drawImage_FlipEx( DRAWIMAGE_FLIPEX_SLOT, DRAWIMAGE_FLIPEX_X, DRAWIMAGE_FLIPEX_Y, DRAWIMAGE_FLIPEX_SRC_X, DRAWIMAGE_FLIPEX_SRC_Y, DRAWIMAGE_FLIPEX_SRC_W, DRAWIMAGE_FLIPEX_SRC_H, DRAWIMAGE_FLIPEX_H, DRAWIMAGE_FLIPEX_V ) +rc_inKey( ) +rc_key( KEY_KEY_CODE ) +rc_waitKey( ) +rc_hideMouse( ) +rc_showMouse( ) +rc_mouseIsVisible( ) +rc_getMouse( &GETMOUSE_X, &GETMOUSE_Y, &GETMOUSE_MB1, &GETMOUSE_MB2, &GETMOUSE_MB3 ) +rc_mouseX( ) +rc_mouseY( ) +rc_mouseButton( MOUSEBUTTON_MB ) +rc_getMouseWheel( &GETMOUSEWHEEL_X_AXIS, &GETMOUSEWHEEL_Y_AXIS ) +rc_mouseWheelX( ) +rc_mouseWheelY( ) +rc_getGlobalMouse( &GETGLOBALMOUSE_X, &GETGLOBALMOUSE_Y, &GETGLOBALMOUSE_MB1, &GETGLOBALMOUSE_MB2, &GETGLOBALMOUSE_MB3 ) +rc_globalMouseX( ) +rc_globalMouseY( ) +rc_warpMouse( WARPMOUSE_X, WARPMOUSE_Y ) +rc_warpMouseGlobal( WARPMOUSEGLOBAL_X, WARPMOUSEGLOBAL_Y ) +rc_setMouseZone( SETMOUSEZONE_X, SETMOUSEZONE_Y, SETMOUSEZONE_W, SETMOUSEZONE_H ) +rc_clearMouseZone( ) +rc_createSound( &CREATESOUND_BUFFER, CREATESOUND_BUFFER_SIZE, CREATESOUND_VOL ) +rc_loadSound( LOADSOUND_SND_FILE$ ) +rc_loadMusic( LOADMUSIC_MUSIC_FILE$ ) +rc_playSound( PLAYSOUND_SLOT, PLAYSOUND_CHANNEL, PLAYSOUND_LOOPS ) +rc_playSoundTimed( PLAYSOUNDTIMED_SLOT, PLAYSOUNDTIMED_CHANNEL, PLAYSOUNDTIMED_LOOPS, PLAYSOUNDTIMED_MS ) +rc_playMusic( PLAYMUSIC_MLOOPS ) +rc_pauseSound( PAUSESOUND_CHANNEL ) +rc_resumeSound( RESUMESOUND_CHANNEL ) +rc_pauseMusic( ) +rc_resumeMusic( ) +rc_deleteSound( DELETESOUND_SLOT ) +rc_deleteMusic( ) +rc_fadeMusicIn( FADEMUSICIN_FADE_TIME, FADEMUSICIN_LOOPS ) +rc_fadeMusicOut( FADEMUSICOUT_FADE_TIME ) +rc_musicExists( ) +rc_setMusicVolume( SETMUSICVOLUME_VOL ) +rc_getMusicVolume( ) +rc_setMusicPosition( SETMUSICPOSITION_POS ) +rc_getMusicPosition( ) +rc_rewindMusic( ) +rc_setSoundChannels( SETSOUNDCHANNELS_MAX_CHANNELS ) +rc_getSoundChannels( ) +rc_soundIsEnabled( ) +rc_soundExists( SOUNDEXISTS_SLOT ) +rc_setChannelVolume( SETCHANNELVOLUME_CHANNEL, SETCHANNELVOLUME_VOL ) +rc_getChannelVolume( GETCHANNELVOLUME_CHANNEL ) +rc_setSoundVolume( SETSOUNDVOLUME_SLOT, SETSOUNDVOLUME_VOL ) +rc_getSoundVolume( GETSOUNDVOLUME_SLOT ) +rc_stopMusic( ) +rc_stopSound( STOPSOUND_CHANNEL ) +rc_setChannelPanning( SETCHANNELPANNING_CHANNEL, SETCHANNELPANNING_LEFT_VALUE, SETCHANNELPANNING_RIGHT_VALUE ) +rc_setChannelDistance( SETCHANNELDISTANCE_CHANNEL, SETCHANNELDISTANCE_DIST_VALUE ) +rc_channelIsPlaying( CHANNELISPLAYING_CHANNEL ) +rc_channelIsPaused( CHANNELISPAUSED_CHANNEL ) +rc_queryAudioSpec( &QUERYAUDIOSPEC_FREQ, &QUERYAUDIOSPEC_FORMAT, &QUERYAUDIOSPEC_CHANNELS ) +rc_musicIsPlaying( ) +rc_setChannelSpacePosition( SETCHANNELSPACEPOSITION_CHANNEL, SETCHANNELSPACEPOSITION_ANGLE, SETCHANNELSPACEPOSITION_DISTANCE ) +rc_getNumJoysticks( ) +rc_numJoyAxes( NUMJOYAXES_JOY_NUM ) +rc_numJoyButtons( NUMJOYBUTTONS_JOY_NUM ) +rc_numJoyHats( NUMJOYHATS_JOY_NUM ) +rc_numJoyTrackBalls( NUMJOYTRACKBALLS_JOY_NUM ) +rc_joyAxis( JOYAXIS_JOY_NUM, JOYAXIS_JOY_AXIS ) +rc_joyButton( JOYBUTTON_JOY_NUM, JOYBUTTON_JOY_BUTTON ) +rc_joyHat( JOYHAT_JOY_NUM, JOYHAT_JOY_HAT ) +rc_getJoyTrackBall( GETJOYTRACKBALL_JOY_NUM, GETJOYTRACKBALL_BALL, &GETJOYTRACKBALL_DX, &GETJOYTRACKBALL_DY ) +rc_joyName( JOYNAME$_JOY_NUM ) +rc_joystickIsConnected( JOYSTICKISCONNECTED_JOY_NUM ) +rc_joyRumblePlay( JOYRUMBLEPLAY_JOY_NUM, JOYRUMBLEPLAY_STRENGTH, JOYRUMBLEPLAY_DURATION ) +rc_joyRumbleStop( JOYRUMBLESTOP_JOY_NUM ) +rc_joystickIsHaptic( JOYSTICKISHAPTIC_JOY_NUM ) +rc_loadFont( LOADFONT_FNT_FILE$, LOADFONT_FONT_SIZE ) +rc_deleteFont( DELETEFONT_SLOT ) +rc_fontExists( FONTEXISTS_SLOT ) +rc_setFont( SETFONT_SLOT ) +rc_drawText( DRAWTEXT_TXT$, DRAWTEXT_X, DRAWTEXT_Y ) +rc_getTextSize( GETTEXTSIZE_TXT$, &GETTEXTSIZE_W, &GETTEXTSIZE_H ) +rc_getTextWidth( GETTEXTWIDTH_TXT$ ) +rc_getTextHeight( GETTEXTHEIGHT_TXT$ ) +rc_touchPressure( ) +rc_getTouch( &GETTOUCH_STATUS, &GETTOUCH_X, &GETTOUCH_Y, &GETTOUCH_DX, &GETTOUCH_DY ) +rc_getMultiTouch( &GETMULTITOUCH_STATUS, &GETMULTITOUCH_X, &GETMULTITOUCH_Y, &GETMULTITOUCH_FINGERS, &GETMULTITOUCH_DIST, &GETMULTITOUCH_THETA ) +rc_getTouchFinger( GETTOUCHFINGER_FINGER, &GETTOUCHFINGER_X, &GETTOUCHFINGER_Y, &GETTOUCHFINGER_PRESSURE ) +rc_numFingers( ) +rc_getAccel( GETACCEL_ACCEL_NUM, &GETACCEL_X, &GETACCEL_Y, &GETACCEL_Z ) +rc_accelName( ACCELNAME$_ACCEL_NUM ) +rc_numAccels( ) +rc_getGyro( GETGYRO_GYRO_NUM, &GETGYRO_X, &GETGYRO_Y, &GETGYRO_Z ) +rc_gyroName( GYRONAME$_GYRO_NUM ) +rc_numGyros( ) +rc_net_checkSockets( CHECKSOCKETS_TIMEOUT_MS ) +rc_net_tcp_socketReady( TCP_SOCKETREADY_SOCKET ) +rc_net_udp_socketReady( UDP_SOCKETREADY_SOCKET ) +rc_net_tcp_openSocket( TCP_OPENSOCKET_HOST$, TCP_OPENSOCKET_PORT ) +rc_net_tcp_closeSocket( TCP_CLOSESOCKET_SOCKET ) +rc_net_tcp_remoteHost( TCP_REMOTEHOST_SOCKET ) +rc_net_tcp_remotePort( TCP_REMOTEPORT_SOCKET ) +rc_net_tcp_getData_str( TCP_GETDATA_SOCKET, TCP_GETDATA_NUMBYTES, &TCP_GETDATA_SDATA$ ) +rc_net_tcp_sendData( TCP_SENDDATA_SOCKET, TCP_SENDDATA_SDATA$ ) +rc_net_tcp_acceptSocket( TCP_ACCEPTSOCKET_SERVER, TCP_ACCEPTSOCKET_CLIENT ) +rc_net_udp_openSocket( UDP_OPENSOCKET_PORT ) +rc_net_udp_closeSocket( UDP_CLOSESOCKET_SOCKET ) +rc_net_udp_readStream( UDP_GETDATA_SOCKET, &UDP_GETDATA_HOST$, &UDP_GETDATA_PORT, &UDP_GETDATA_SDATA$ ) +rc_net_udp_len( ) +rc_net_udp_maxlen( ) +rc_net_udp_getRemoteHost( UDP_REMOTEHOST$_SOCKET ) +rc_net_udp_getRemotePort( UDP_REMOTEPORT_SOCKET ) +rc_net_udp_sendData( UDP_SENDDATA_SOCKET, UDP_SENDDATA_HOST$, UDP_SENDDATA_PORT, UDP_SENDDATA_SDATA$ ) +rc_loadVideo( LOADVIDEO_VID$ ) +rc_playVideo( PLAYVIDEO_VLOOPS ) +rc_pauseVideo( ) +rc_stopVideo( ) +rc_setVideoPosition( SETVIDEOPOSITION_POS ) +rc_resumeVideo( ) +rc_getVideoPosition( ) +rc_deleteVideo( ) +rc_videoIsPlaying( ) +rc_videoEnd( ) +rc_getVideoStats( GETVIDEOSTATS_VFILE$, &GETVIDEOSTATS_VLEN, &GETVIDEOSTATS_VFPS, &GETVIDEOSTATS_FRAME_W, &GETVIDEOSTATS_FRAME_H ) +rc_setVideoDrawRect( SETVIDEODRAWRECT_X, SETVIDEODRAWRECT_Y, SETVIDEODRAWRECT_W, SETVIDEODRAWRECT_H ) +rc_getVideoDrawRect( &GETVIDEODRAWRECT_X, &GETVIDEODRAWRECT_Y, &GETVIDEODRAWRECT_W, &GETVIDEODRAWRECT_H ) +rc_getVideoSize( &GETVIDEOSIZE_W, &GETVIDEOSIZE_H ) +rc_videoExists( ) +rc_setVideoVolume( SETVIDEOVOLUME_VOL ) +rc_getVideoVolume( ) +rc_intern_system( SYSTEM_CMD$ ) +rc_intern_OS( ) +rc_intern_command( COMMAND$_ARG ) +rc_intern_numCommands( ) +rc_intern_env( ENV$_V$ ) +rc_intern_setEnv( SETENV_VAR$, SETENV_VALUE$ ) +rc_intern_prefPath( PREFPATH$_ORG_NAME$, PREFPATH$_APP_NAME$ ) +rc_intern_android_getExternalStoragePath( ) +rc_intern_android_getExternalStorageState( ) +rc_intern_android_getInternalStoragePath( ) +rc_intern_android_jni_message( ANDROID_JNI_MESSAGE$_ARG$ ) +rc_intern_runtime_utility( RUNTIME_UTILITY_MESSAGE$_ARG$ ) +rc_getDesktopDisplayMode( GETDESKTOPDISPLAYMODE_INDEX, &GETDESKTOPDISPLAYMODE_W, &GETDESKTOPDISPLAYMODE_H, &GETDESKTOPDISPLAYMODE_FREQ ) +rc_intern_getPowerInfo( &GETPOWERINFO_STATUS, &GETPOWERINFO_SECS, &GETPOWERINFO_PCT ) +rc_intern_evalJS( EVALJS$_JS_CODE$ ) +rc_intern_sysReturnOutput( SYSTEMRETURNSTDOUT$_CMD$ ) +rc_openURL( OPENURL_URL$ ) +rc_messageBox( MESSAGEBOX_TITLE$, MESSAGEBOX_MSG$ ) +#/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_inc/exceptions/rc_runtime.h +rc_numCPUs( ) +rc_intern_systemRam( ) +rc_dimMatrix( DIMMATRIX_M_ROWS, DIMMATRIX_M_COLS ) +rc_deleteMatrix( DELETEMATRIX_MA ) +rc_addMatrix( ADDMATRIX_MA, ADDMATRIX_MB, ADDMATRIX_MC ) +rc_augmentMatrix( AUGMENTMATRIX_MA, AUGMENTMATRIX_MB, AUGMENTMATRIX_MC ) +rc_copyMatrix( COPYMATRIX_MA, COPYMATRIX_MB ) +rc_insertMatrixColumns( INSERTMATRIXCOLUMNS_MA, INSERTMATRIXCOLUMNS_C, INSERTMATRIXCOLUMNS_NUM_COLS ) +rc_insertMatrixRows( INSERTMATRIXROWS_MA, INSERTMATRIXROWS_R, INSERTMATRIXROWS_NUM_ROWS ) +rc_multiplyMatrix( MULTIPLYMATRIX_MA, MULTIPLYMATRIX_MB, MULTIPLYMATRIX_MC ) +rc_cubeMatrix( CUBEMATRIX_MA, CUBEMATRIX_MB ) +rc_deleteMatrixColumns( DELETEMATRIXCOLUMNS_MA, DELETEMATRIXCOLUMNS_C, DELETEMATRIXCOLUMNS_NUM_COLS ) +rc_deleteMatrixRows( DELETEMATRIXROWS_MA, DELETEMATRIXROWS_R, DELETEMATRIXROWS_NUM_ROWS ) +rc_clearMatrix( CLEARMATRIX_MA ) +rc_clearMatrixColumns( CLEARMATRIXCOLUMNS_MA, CLEARMATRIXCOLUMNS_C, CLEARMATRIXCOLUMNS_NUM_COLS ) +rc_clearMatrixRows( CLEARMATRIXROWS_MA, CLEARMATRIXROWS_R, CLEARMATRIXROWS_NUM_ROWS ) +rc_fillMatrix( FILLMATRIX_MA, FILLMATRIX_V ) +rc_fillMatrixColumns( FILLMATRIXCOLUMNS_MA, FILLMATRIXCOLUMNS_C, FILLMATRIXCOLUMNS_NUM_COLS, FILLMATRIXCOLUMNS_V ) +rc_fillMatrixRows( FILLMATRIXROWS_MA, FILLMATRIXROWS_R, FILLMATRIXROWS_NUM_ROWS, FILLMATRIXROWS_V ) +rc_copyMatrixColumns( COPYMATRIXCOLUMNS_MA, COPYMATRIXCOLUMNS_MB, COPYMATRIXCOLUMNS_C, COPYMATRIXCOLUMNS_NUM_COLS ) +rc_copyMatrixRows( COPYMATRIXROWS_MA, COPYMATRIXROWS_MB, COPYMATRIXROWS_R, COPYMATRIXROWS_NUM_ROWS ) +rc_setIdentityMatrix( SETIDENTITYMATRIX_MA, SETIDENTITYMATRIX_N ) +rc_solveMatrix( SOLVEMATRIX_MA, SOLVEMATRIX_MB, SOLVEMATRIX_MC ) +rc_isEqualMatrix( ISEQUALMATRIX_MA, ISEQUALMATRIX_MB, ISEQUALMATRIX_TOLERANCE ) +rc_determinant( DETERMINANT_MA ) +rc_adjointMatrix( ADJOINTMATRIX_MA, ADJOINTMATRIX_MB ) +rc_invertMatrix( INVERTMATRIX_MA, INVERTMATRIX_MB ) +rc_matrixFromBuffer( MATRIXFROMBUFFER_MA, MATRIXFROMBUFFER_R, MATRIXFROMBUFFER_C, &MATRIXFROMBUFFER_BUFFER ) +rc_bufferFromMatrix( &BUFFERFROMMATRIX_BUFFER, BUFFERFROMMATRIX_MA ) +rc_randomizeMatrix( RANDOMIZEMATRIX_MA, RANDOMIZEMATRIX_VMIN, RANDOMIZEMATRIX_VMAX ) +rc_matrixValue( MATRIXVALUE_MA, MATRIXVALUE_R, MATRIXVALUE_C ) +rc_setMatrixValue( SETMATRIXVALUE_MA, SETMATRIXVALUE_R, SETMATRIXVALUE_C, SETMATRIXVALUE_V ) +rc_scalarMatrix( SCALARMATRIX_MA, SCALARMATRIX_MB, SCALARMATRIX_S_VALUE ) +rc_scalarMatrixColumns( SCALARMATRIXCOLUMNS_MA, SCALARMATRIXCOLUMNS_MB, SCALARMATRIXCOLUMNS_C, SCALARMATRIXCOLUMNS_NUM_COLS, SCALARMATRIXCOLUMNS_S_VALUE ) +rc_scalarMatrixRows( SCALARMATRIXROWS_MA, SCALARMATRIXROWS_MB, SCALARMATRIXROWS_R, SCALARMATRIXROWS_NUM_ROWS, SCALARMATRIXROWS_S_VALUE ) +rc_squareMatrix( SQUAREMATRIX_MA, SQUAREMATRIX_MB ) +rc_subMatrix( COFACTORMATRIX_MA, COFACTORMATRIX_R, COFACTORMATRIX_C ) +rc_subtractMatrix( SUBTRACTMATRIX_MA, SUBTRACTMATRIX_MB, SUBTRACTMATRIX_MC ) +rc_swapMatrix( SWAPMATRIX_MA, SWAPMATRIX_MB ) +rc_swapMatrixColumn( SWAPMATRIXCOLUMN_MA, SWAPMATRIXCOLUMN_C1, SWAPMATRIXCOLUMN_C2 ) +rc_swapMatrixRow( SWAPMATRIXROW_MA, SWAPMATRIXROW_R1, SWAPMATRIXROW_R2 ) +rc_transposeMatrix( TRANSPOSEMATRIX_MA, TRANSPOSEMATRIX_MB ) +rc_unAugmentMatrix( UNAUGMENTMATRIX_MA, UNAUGMENTMATRIX_MB, UNAUGMENTMATRIX_MC ) +rc_zeroMatrix( ZEROMATRIX_MA ) +rc_getMatrixSize( GETMATRIXSIZE_MA, &GETMATRIXSIZE_R, &GETMATRIXSIZE_C ) +rc_incrementMatrixRows( INCREMENTMATRIXROWS_MA, INCREMENTMATRIXROWS_MB, INCREMENTMATRIXROWS_R, INCREMENTMATRIXROWS_NUM_ROWS, INCREMENTMATRIXROWS_VALUE ) +rc_incrementMatrixColumns( INCREMENTMATRIXCOLUMNS_MA, INCREMENTMATRIXCOLUMNS_MB, INCREMENTMATRIXCOLUMNS_C, INCREMENTMATRIXCOLUMNS_NUM_COLS, INCREMENTMATRIXCOLUMNS_VALUE ) +rc_joinMatrixRows( JOINMATRIXROWS_MA, JOINMATRIXROWS_MB, JOINMATRIXROWS_MC ) +rc_joinMatrixColumns( JOINMATRIXCOLUMNS_MA, JOINMATRIXCOLUMNS_MB, JOINMATRIXCOLUMNS_MC ) +rc_clipMatrix( CLIPMATRIX_MA, CLIPMATRIX_R, CLIPMATRIX_C, CLIPMATRIX_NUM_ROWS, CLIPMATRIX_NUM_COLS, CLIPMATRIX_MB ) +rc_setMatrixTranslation( SETMATRIXTRANSLATION_MA, SETMATRIXTRANSLATION_X, SETMATRIXTRANSLATION_Y, SETMATRIXTRANSLATION_Z ) +rc_setMatrixRotation( SETMATRIXROTATION_MA, SETMATRIXROTATION_X, SETMATRIXROTATION_Y, SETMATRIXROTATION_Z ) +rc_setMatrixScale( SETMATRIXSCALE_MA, SETMATRIXSCALE_X, SETMATRIXSCALE_Y, SETMATRIXSCALE_Z ) +rc_getMatrixTranslation( GETMATRIXTRANSLATION_MA, &GETMATRIXTRANSLATION_X, &GETMATRIXTRANSLATION_Y, &GETMATRIXTRANSLATION_Z ) +rc_getMatrixRotation( GETMATRIXROTATION_MA, &GETMATRIXROTATION_X, &GETMATRIXROTATION_Y, &GETMATRIXROTATION_Z ) +rc_getMatrixScale( GETMATRIXSCALE_MA, &GETMATRIXSCALE_X, &GETMATRIXSCALE_Y, &GETMATRIXSCALE_Z ) +rc_getClipboardText( ) +rc_setClipboardText( SETCLIPBOARDTEXT_TXT$ ) +rc_hasClipboardText( ) +rc_readInput_Start( ) +rc_readInput_Stop( ) +rc_readInput_Text( ) +rc_readInput_SetText( READINPUT_SETTEXT_TXT$ ) +rc_readInput_ToggleBackspace( READINPUT_TOGGLEBACKSPACE_FLAG ) +rc_createSprite( CREATESPRITE_IMG ) +rc_deleteSprite( DELETESPRITE_SPRITE ) +rc_setSpritePosition( SETSPRITEPOSITION_SPRITE, SETSPRITEPOSITION_X, SETSPRITEPOSITION_Y ) +rc_loadMesh( LOADMESH_MESH_FILE$ ) +rc_deleteMesh( DELETEMESH_MESH ) +rc_createMesh( ) +rc_addMeshBuffer( ADDMESHBUFFER_MESH, ADDMESHBUFFER_VERTEX_COUNT, &ADDMESHBUFFER_VERTEX_DATA, &ADDMESHBUFFER_NORMAL_DATA, &ADDMESHBUFFER_UV_DATA, ADDMESHBUFFER_INDEX_COUNT, &ADDMESHBUFFER_INDEX_DATA ) +rc_loadMeshFromArchive( LOADMESHFROMARCHIVE_ARCHIVE$, LOADMESHFROMARCHIVE_MESH_FILE$ ) +rc_createMeshActor( CREATEMESHACTOR_MESH ) +rc_createMeshOctreeActor( CREATEMESHOCTREEACTOR_MESH ) +rc_createCubeActor( CREATECUBEACTOR_CUBE_SIZE ) +rc_createSphereActor( CREATESPHEREACTOR_RADIUS ) +rc_createWaterPlaneActor( CREATEWATERPLANEACTOR_W, CREATEWATERPLANEACTOR_H ) +rc_createLightActor( ) +rc_createBillboardActor( ) +rc_createTerrainActor( CREATETERRAINACTOR_HMAP_FILE$ ) +rc_deleteActor( DELETEACTOR_ACTOR ) +rc_getActorTransform( GETACTORTRANSFORM_ACTOR, GETACTORTRANSFORM_MATRIX ) +rc_setActorPosition( SETACTORPOSITION_ACTOR, SETACTORPOSITION_X, SETACTORPOSITION_Y, SETACTORPOSITION_Z ) +rc_translateActor( TRANSLATEACTOR_ACTOR, TRANSLATEACTOR_X, TRANSLATEACTOR_Y, TRANSLATEACTOR_Z ) +rc_translateActorWorld( TRANSLATEACTORWORLD_ACTOR, TRANSLATEACTORWORLD_X, TRANSLATEACTORWORLD_Y, TRANSLATEACTORWORLD_Z ) +rc_getActorPosition( GETACTORPOSITION_ACTOR, &GETACTORPOSITION_X, &GETACTORPOSITION_Y, &GETACTORPOSITION_Z ) +rc_setActorScale( SETACTORSCALE_ACTOR, SETACTORSCALE_X, SETACTORSCALE_Y, SETACTORSCALE_Z ) +rc_scaleActor( SCALEACTOR_ACTOR, SCALEACTOR_X, SCALEACTOR_Y, SCALEACTOR_Z ) +rc_getActorScale( GETACTORSCALE_ACTOR, &GETACTORSCALE_X, &GETACTORSCALE_Y, &GETACTORSCALE_Z ) +rc_setActorRotation( SETACTORROTATION_ACTOR, SETACTORROTATION_X, SETACTORROTATION_Y, SETACTORROTATION_Z ) +rc_rotateActor( ROTATEACTOR_ACTOR, ROTATEACTOR_X, ROTATEACTOR_Y, ROTATEACTOR_Z ) +rc_getActorRotation( GETACTORROTATION_ACTOR, &GETACTORROTATION_X, &GETACTORROTATION_Y, &GETACTORROTATION_Z ) +rc_setActorVisible( SETACTORVISIBLE_ACTOR, SETACTORVISIBLE_FLAG ) +rc_actorIsVisible( ACTORISVISIBLE_ACTOR ) +rc_setActorAutoCulling( SETACTORAUTOCULLING_ACTOR, SETACTORAUTOCULLING_CULL_TYPE ) +rc_getActorAutoCulling( GETACTORAUTOCULLING_ACTOR ) +rc_addActorShadow( ADDACTORSHADOW_ACTOR ) +rc_removeActorShadow( REMOVEACTORSHADOW_ACTOR ) +rc_setGravity3D( SETGRAVITY3D_X, SETGRAVITY3D_Y, SETGRAVITY3D_Z ) +rc_getGravity3D( &GETGRAVITY3D_X, &GETGRAVITY3D_Y, &GETGRAVITY3D_Z ) +rc_setActorCollisionShape( SETACTORCOLLISIONSHAPE_ACTOR, SETACTORCOLLISIONSHAPE_SHAPE_TYPE, SETACTORCOLLISIONSHAPE_MASS ) +rc_getActorCollisionShape( GETACTORCOLLISIONSHAPE_ACTOR ) +rc_setActorSolid( SETACTORSOLID_ACTOR, SETACTORSOLID_FLAG ) +rc_actorIsSolid( ACTORISSOLID_ACTOR ) +rc_getActorCollision( GETACTORCOLLISION_ACTOR1, GETACTORCOLLISION_ACTOR2 ) +rc_setActorGravity( SETACTORGRAVITY_ACTOR, SETACTORGRAVITY_X, SETACTORGRAVITY_Y, SETACTORGRAVITY_Z ) +rc_getActorGravity( GETACTORGRAVITY_ACTOR, &GETACTORGRAVITY_X, &GETACTORGRAVITY_Y, &GETACTORGRAVITY_Z ) +rc_setActorDamping( SETACTORDAMPING_ACTOR, SETACTORDAMPING_LIN_DAMPING, SETACTORDAMPING_ANG_DAMPING ) +rc_getActorLinearDamping( GETACTORLINEARDAMPING_ACTOR ) +rc_getActorAngularDamping( GETACTORANGULARDAMPING_ACTOR ) +rc_getActorLinearSleepThreshold( GETACTORLINEARSLEEPTHRESHOLD_ACTOR ) +rc_getActorAngularSleepThreshold( GETACTORANGULARSLEEPTHRESHOLD_ACTOR ) +rc_applyActorDamping( APPLYACTORDAMPING_ACTOR, APPLYACTORDAMPING_TIMESTEP ) +rc_setActorMassProperties( SETACTORMASSPROPERTIES_ACTOR, SETACTORMASSPROPERTIES_MASS, SETACTORMASSPROPERTIES_INERTIA_X, SETACTORMASSPROPERTIES_INERTIA_Y, SETACTORMASSPROPERTIES_INERTIA_Z ) +rc_getActorLinearFactor( GETACTORLINEARFACTOR_ACTOR, &GETACTORLINEARFACTOR_X, &GETACTORLINEARFACTOR_Y, &GETACTORLINEARFACTOR_Z ) +rc_setActorLinearFactor( SETACTORLINEARFACTOR_ACTOR, SETACTORLINEARFACTOR_X, SETACTORLINEARFACTOR_Y, SETACTORLINEARFACTOR_Z ) +rc_getActorInverseMass( GETACTORINVERSEMASS_ACTOR ) +rc_integrateActorVelocities( INTEGRATEACTORVELOCITIES_ACTOR, INTEGRATEACTORVELOCITIES_V_STEP ) +rc_applyActorCentralForceLocal( APPLYACTORCENTRALFORCELOCAL_ACTOR, APPLYACTORCENTRALFORCELOCAL_X, APPLYACTORCENTRALFORCELOCAL_Y, APPLYACTORCENTRALFORCELOCAL_Z ) +rc_applyActorCentralForceWorld( APPLYACTORCENTRALFORCEWORLD_ACTOR, APPLYACTORCENTRALFORCEWORLD_X, APPLYACTORCENTRALFORCEWORLD_Y, APPLYACTORCENTRALFORCEWORLD_Z ) +rc_getActorTotalForce( GETACTORTOTALFORCE_ACTOR, &GETACTORTOTALFORCE_X, &GETACTORTOTALFORCE_Y, &GETACTORTOTALFORCE_Z ) +rc_getActorTotalTorque( GETACTORTOTALTORQUE_ACTOR, &GETACTORTOTALTORQUE_X, &GETACTORTOTALTORQUE_Y, &GETACTORTOTALTORQUE_Z ) +rc_getActorInverseInertiaDiagLocal( GETACTORINVERSEINERTIADIAGLOCAL_ACTOR, &GETACTORINVERSEINERTIADIAGLOCAL_X, &GETACTORINVERSEINERTIADIAGLOCAL_Y, &GETACTORINVERSEINERTIADIAGLOCAL_Z ) +rc_setActorInverseInertiaDiagLocal( SETACTORINVERSEINERTIADIAGLOCAL_ACTOR, SETACTORINVERSEINERTIADIAGLOCAL_X, SETACTORINVERSEINERTIADIAGLOCAL_Y, SETACTORINVERSEINERTIADIAGLOCAL_Z ) +rc_setActorSleepThresholds( SETACTORSLEEPTHRESHOLDS_ACTOR, SETACTORSLEEPTHRESHOLDS_LINEAR, SETACTORSLEEPTHRESHOLDS_ANGULAR ) +rc_applyActorTorqueLocal( APPLYACTORTORQUELOCAL_ACTOR, APPLYACTORTORQUELOCAL_X, APPLYACTORTORQUELOCAL_Y, APPLYACTORTORQUELOCAL_Z ) +rc_applyActorTorqueWorld( APPLYACTORTORQUEWORLD_ACTOR, APPLYACTORTORQUEWORLD_X, APPLYACTORTORQUEWORLD_Y, APPLYACTORTORQUEWORLD_Z ) +rc_applyActorForceLocal( APPLYACTORFORCELOCAL_ACTOR, APPLYACTORFORCELOCAL_X, APPLYACTORFORCELOCAL_Y, APPLYACTORFORCELOCAL_Z, APPLYACTORFORCELOCAL_REL_X, APPLYACTORFORCELOCAL_REL_Y, APPLYACTORFORCELOCAL_REL_Z ) +rc_applyActorForceWorld( APPLYACTORFORCEWORLD_ACTOR, APPLYACTORFORCEWORLD_X, APPLYACTORFORCEWORLD_Y, APPLYACTORFORCEWORLD_Z, APPLYACTORFORCEWORLD_REL_X, APPLYACTORFORCEWORLD_REL_Y, APPLYACTORFORCEWORLD_REL_Z ) +rc_applyActorCentralImpulseLocal( APPLYACTORCENTRALIMPULSELOCAL_ACTOR, APPLYACTORCENTRALIMPULSELOCAL_X, APPLYACTORCENTRALIMPULSELOCAL_Y, APPLYACTORCENTRALIMPULSELOCAL_Z ) +rc_applyActorCentralImpulseWorld( APPLYACTORCENTRALIMPULSEWORLD_ACTOR, APPLYACTORCENTRALIMPULSEWORLD_X, APPLYACTORCENTRALIMPULSEWORLD_Y, APPLYACTORCENTRALIMPULSEWORLD_Z ) +rc_applyActorTorqueImpulseLocal( APPLYACTORTORQUEIMPULSELOCAL_ACTOR, APPLYACTORTORQUEIMPULSELOCAL_X, APPLYACTORTORQUEIMPULSELOCAL_Y, APPLYACTORTORQUEIMPULSELOCAL_Z ) +rc_applyActorTorqueImpulseWorld( APPLYACTORTORQUEIMPULSEWORLD_ACTOR, APPLYACTORTORQUEIMPULSEWORLD_X, APPLYACTORTORQUEIMPULSEWORLD_Y, APPLYACTORTORQUEIMPULSEWORLD_Z ) +rc_applyActorImpulseLocal( APPLYACTORIMPULSELOCAL_ACTOR, APPLYACTORIMPULSELOCAL_X, APPLYACTORIMPULSELOCAL_Y, APPLYACTORIMPULSELOCAL_Z, APPLYACTORIMPULSELOCAL_REL_X, APPLYACTORIMPULSELOCAL_REL_Y, APPLYACTORIMPULSELOCAL_REL_Z ) +rc_applyActorImpulseWorld( APPLYACTORIMPULSEWORLD_ACTOR, APPLYACTORIMPULSEWORLD_X, APPLYACTORIMPULSEWORLD_Y, APPLYACTORIMPULSEWORLD_Z, APPLYACTORIMPULSEWORLD_REL_X, APPLYACTORIMPULSEWORLD_REL_Y, APPLYACTORIMPULSEWORLD_REL_Z ) +rc_clearActorForces( CLEARACTORFORCES_ACTOR ) +rc_updateActorInertiaTensor( UPDATEACTORINERTIATENSOR_ACTOR ) +rc_getActorCOMPosition( GETACTORCOMPOSITION_ACTOR, &GETACTORCOMPOSITION_X, &GETACTORCOMPOSITION_Y, &GETACTORCOMPOSITION_Z ) +rc_getActorRotationQ( GETACTORROTATIONQ_ACTOR, &GETACTORROTATIONQ_X, &GETACTORROTATIONQ_Y, &GETACTORROTATIONQ_Z, &GETACTORROTATIONQ_W ) +rc_getActorLinearVelocity( GETACTORLINEARVELOCITY_ACTOR, &GETACTORLINEARVELOCITY_X, &GETACTORLINEARVELOCITY_Y, &GETACTORLINEARVELOCITY_Z ) +rc_getActorAngularVelocity( GETACTORANGULARVELOCITY_ACTOR, &GETACTORANGULARVELOCITY_X, &GETACTORANGULARVELOCITY_Y, &GETACTORANGULARVELOCITY_Z ) +rc_setActorLinearVelocityLocal( SETACTORLINEARVELOCITYLOCAL_ACTOR, SETACTORLINEARVELOCITYLOCAL_X, SETACTORLINEARVELOCITYLOCAL_Y, SETACTORLINEARVELOCITYLOCAL_Z ) +rc_setActorLinearVelocityWorld( SETACTORLINEARVELOCITYWORLD_ACTOR, SETACTORLINEARVELOCITYWORLD_X, SETACTORLINEARVELOCITYWORLD_Y, SETACTORLINEARVELOCITYWORLD_Z ) +rc_setActorAngularVelocityLocal( SETACTORANGULARVELOCITYLOCAL_ACTOR, SETACTORANGULARVELOCITYLOCAL_X, SETACTORANGULARVELOCITYLOCAL_Y, SETACTORANGULARVELOCITYLOCAL_Z ) +rc_setActorAngularVelocityWorld( SETACTORANGULARVELOCITYWORLD_ACTOR, SETACTORANGULARVELOCITYWORLD_X, SETACTORANGULARVELOCITYWORLD_Y, SETACTORANGULARVELOCITYWORLD_Z ) +rc_getActorLocalPointVelocity( GETACTORLOCALPOINTVELOCITY_ACTOR, GETACTORLOCALPOINTVELOCITY_REL_X, GETACTORLOCALPOINTVELOCITY_REL_Y, GETACTORLOCALPOINTVELOCITY_REL_Z, &GETACTORLOCALPOINTVELOCITY_X, &GETACTORLOCALPOINTVELOCITY_Y, &GETACTORLOCALPOINTVELOCITY_Z ) +rc_getActorLinearVelocityLocal( GETACTORLINEARVELOCITYLOCAL_ACTOR, &GETACTORLINEARVELOCITYLOCAL_X, &GETACTORLINEARVELOCITYLOCAL_Y, &GETACTORLINEARVELOCITYLOCAL_Z ) +rc_getActorAngularVelocityLocal( GETACTORANGULARVELOCITYLOCAL_ACTOR, &GETACTORANGULARVELOCITYLOCAL_X, &GETACTORANGULARVELOCITYLOCAL_Y, &GETACTORANGULARVELOCITYLOCAL_Z ) +rc_getActorAABB( GETACTORAABB_ACTOR, &GETACTORAABB_MIN_X, &GETACTORAABB_MIN_Y, &GETACTORAABB_MIN_Z, &GETACTORAABB_MAX_X, &GETACTORAABB_MAX_Y, &GETACTORAABB_MAX_Z ) +rc_computeActorImpulseDenominator( COMPUTEACTORIMPULSEDENOMINATOR_ACTOR, COMPUTEACTORIMPULSEDENOMINATOR_POS_X, COMPUTEACTORIMPULSEDENOMINATOR_POS_Y, COMPUTEACTORIMPULSEDENOMINATOR_POS_Z, COMPUTEACTORIMPULSEDENOMINATOR_NORMAL_X, COMPUTEACTORIMPULSEDENOMINATOR_NORMAL_Y, COMPUTEACTORIMPULSEDENOMINATOR_NORMAL_Z ) +rc_computeActorAngularImpulseDenominator( COMPUTEACTORANGULARIMPULSEDENOMINATOR_ACTOR, COMPUTEACTORANGULARIMPULSEDENOMINATOR_X, COMPUTEACTORANGULARIMPULSEDENOMINATOR_Y, COMPUTEACTORANGULARIMPULSEDENOMINATOR_Z ) +rc_setActorAngularFactor( SETACTORANGULARFACTOR_ACTOR, SETACTORANGULARFACTOR_X, SETACTORANGULARFACTOR_Y, SETACTORANGULARFACTOR_Z ) +rc_getActorAngularFactor( GETACTORANGULARFACTOR_ACTOR, &GETACTORANGULARFACTOR_X, &GETACTORANGULARFACTOR_Y, &GETACTORANGULARFACTOR_Z ) +rc_computeActorGyroImpulseLocal( COMPUTEACTORGYROIMPULSELOCAL_ACTOR, COMPUTEACTORGYROIMPULSELOCAL_DT, &COMPUTEACTORGYROIMPULSELOCAL_X, &COMPUTEACTORGYROIMPULSELOCAL_Y, &COMPUTEACTORGYROIMPULSELOCAL_Z ) +rc_computeActorGyroImpulseWorld( COMPUTEACTORGYROIMPULSEWORLD_ACTOR, COMPUTEACTORGYROIMPULSEWORLD_DT, &COMPUTEACTORGYROIMPULSEWORLD_X, &COMPUTEACTORGYROIMPULSEWORLD_Y, &COMPUTEACTORGYROIMPULSEWORLD_Z ) +rc_getActorLocalInertia( GETACTORLOCALINERTIA_ACTOR, &GETACTORLOCALINERTIA_X, &GETACTORLOCALINERTIA_Y, &GETACTORLOCALINERTIA_Z ) +rc_createPointConstraint( CREATEPOINTCONSTRAINT_ACTORA, CREATEPOINTCONSTRAINT_PXA, CREATEPOINTCONSTRAINT_PYA, CREATEPOINTCONSTRAINT_PZA ) +rc_createPointConstraintEx( CREATEPOINTCONSTRAINTEX_ACTORA, CREATEPOINTCONSTRAINTEX_ACTORB, CREATEPOINTCONSTRAINTEX_PXA, CREATEPOINTCONSTRAINTEX_PYA, CREATEPOINTCONSTRAINTEX_PZA, CREATEPOINTCONSTRAINTEX_PXB, CREATEPOINTCONSTRAINTEX_PYB, CREATEPOINTCONSTRAINTEX_PZB ) +rc_setConstraintPivotA( SETCONSTRAINTPIVOTA_CONSTRAINT_ID, SETCONSTRAINTPIVOTA_X, SETCONSTRAINTPIVOTA_Y, SETCONSTRAINTPIVOTA_Z ) +rc_setConstraintPivotB( SETCONSTRAINTPIVOTB_CONSTRAINT_ID, SETCONSTRAINTPIVOTB_X, SETCONSTRAINTPIVOTB_Y, SETCONSTRAINTPIVOTB_Z ) +rc_createHingeConstraint( CREATEHINGECONSTRAINT_ACTORA, CREATEHINGECONSTRAINT_PXA, CREATEHINGECONSTRAINT_PYA, CREATEHINGECONSTRAINT_PZA, CREATEHINGECONSTRAINT_AXA, CREATEHINGECONSTRAINT_AYA, CREATEHINGECONSTRAINT_AZA ) +rc_createHingeConstraintEx( CREATEHINGECONSTRAINTEX_ACTORA, CREATEHINGECONSTRAINTEX_ACTORB, CREATEHINGECONSTRAINTEX_PXA, CREATEHINGECONSTRAINTEX_PYA, CREATEHINGECONSTRAINTEX_PZA, CREATEHINGECONSTRAINTEX_PXB, CREATEHINGECONSTRAINTEX_PYB, CREATEHINGECONSTRAINTEX_PZB, CREATEHINGECONSTRAINTEX_AXA, CREATEHINGECONSTRAINTEX_AYA, CREATEHINGECONSTRAINTEX_AZA, CREATEHINGECONSTRAINTEX_AXB, CREATEHINGECONSTRAINTEX_AYB, CREATEHINGECONSTRAINTEX_AZB ) +rc_createSlideConstraint( CREATESLIDECONSTRAINT_ACTORA, CREATESLIDECONSTRAINT_FRAMEINB_MATRIX, CREATESLIDECONSTRAINT_USELINEARREFERENCEFRAMEA ) +rc_createSlideConstraintEx( CREATESLIDECONSTRAINTEX_ACTORA, CREATESLIDECONSTRAINTEX_ACTORB, CREATESLIDECONSTRAINTEX_FRAMEINA_MATRIX, CREATESLIDECONSTRAINTEX_FRAMEINB_MATRIX, CREATESLIDECONSTRAINTEX_USELINEARREFERENCEFRAMEA ) +rc_createConeConstraint( CREATECONECONSTRAINT_ACTORA, CREATECONECONSTRAINT_RBAFRAME_MATRIX ) +rc_createConeConstraintEx( CREATECONECONSTRAINTEX_ACTORA, CREATECONECONSTRAINTEX_ACTORB, CREATECONECONSTRAINTEX_RBAFRAME_MATRIX, CREATECONECONSTRAINTEX_RBBFRAME_MATRIX ) +rc_deleteConstraint( DELETECONSTRAINT_CONSTRAINT_ID ) +rc_getConstraintFrameOffsetA( GETCONSTRAINTFRAMEOFFSETA_CONSTRAINT_ID, & GETCONSTRAINTFRAMEOFFSETA_X, & GETCONSTRAINTFRAMEOFFSETA_Y, & GETCONSTRAINTFRAMEOFFSETA_Z, & GETCONSTRAINTFRAMEOFFSETA_RX, & GETCONSTRAINTFRAMEOFFSETA_RY, & GETCONSTRAINTFRAMEOFFSETA_RZ ) +rc_getConstraintFrameOffsetB( GETCONSTRAINTFRAMEOFFSETB_CONSTRAINT_ID, & GETCONSTRAINTFRAMEOFFSETB_X, & GETCONSTRAINTFRAMEOFFSETB_Y, & GETCONSTRAINTFRAMEOFFSETB_Z, & GETCONSTRAINTFRAMEOFFSETB_RX, & GETCONSTRAINTFRAMEOFFSETB_RY, & GETCONSTRAINTFRAMEOFFSETB_RZ ) +rc_useConstraintFrameOffset( USECONSTRAINTFRAMEOFFSET_CONSTRAINT_ID, USECONSTRAINTFRAMEOFFSET_FLAG ) +rc_getHingeAngle( GETHINGEANGLE_CONSTRAINT_ID ) +rc_getHingeAngleEx( GETHINGEANGLEEX_CONSTRAINT_ID, GETHINGEANGLEEX_T_MATRIXA, GETHINGEANGLEEX_T_MATRIXB ) +rc_getConstraintBreakingImpulseThreshold( GETCONSTRAINTBREAKINGIMPULSETHRESHOLD_CONSTRAINT_ID ) +rc_getConstraintAFrame( GETCONSTRAINTAFRAME_CONSTRAINT_ID, GETCONSTRAINTAFRAME_MA ) +rc_getConstraintBFrame( GETCONSTRAINTBFRAME_CONSTRAINT_ID, GETCONSTRAINTBFRAME_MA ) +rc_setConstraintAxis( SETCONSTRAINTAXIS_CONSTRAINT_ID, SETCONSTRAINTAXIS_X, SETCONSTRAINTAXIS_Y, SETCONSTRAINTAXIS_Z ) +rc_setConstraintBreakingImpulseThreshold( SETCONSTRAINTBREAKINGIMPULSETHRESHOLD_CONSTRAINT_ID, SETCONSTRAINTBREAKINGIMPULSETHRESHOLD_THRESHOLD ) +rc_setConstraintFrames( SETCONSTRAINTFRAMES_CONSTRAINT_ID, SETCONSTRAINTFRAMES_FRAMEA_MATRIX, SETCONSTRAINTFRAMES_FRAMEB_MATRIX ) +rc_setHingeLimit( SETHINGELIMIT_CONSTRAINT_ID, SETHINGELIMIT_LOW, SETHINGELIMIT_HIGH, SETHINGELIMIT_SOFTNESS, SETHINGELIMIT_BIAS_FACTOR, SETHINGELIMIT_RELAXATION_FACTOR ) +rc_setConeLimit( SETCONELIMIT_CONSTRAINT_ID, SETCONELIMIT_SWINGSPAN1, SETCONELIMIT_SWINGSPAN2, SETCONELIMIT_TWISTSPAN, SETCONELIMIT_SOFTNESS, SETCONELIMIT_BIAS_FACTOR, SETCONELIMIT_RELAXATION_FACTOR ) +rc_getConstraintLimitBiasFactor( GETCONSTRAINTLIMITBIASFACTOR_CONSTRAINT_ID ) +rc_getLimitRelaxationFactor( GETLIMITRELAXATIONFACTOR_CONSTRAINT_ID ) +rc_getConstraintLimitSign( GETCONSTRAINTLIMITSIGN_CONSTRAINT_ID ) +rc_getHingeSolveLimit( GETHINGESOLVELIMIT_CONSTRAINT_ID ) +rc_useHingeReferenceFrameA( USEHINGEREFERENCEFRAMEA_CONSTRAINT_ID, USEHINGEREFERENCEFRAMEA_FLAG ) +rc_getConstraintAppliedImpulse( GETCONSTRAINTAPPLIEDIMPULSE_CONSTRAINT_ID ) +rc_getConstraintFixedActor( GETCONSTRAINTFIXEDACTOR_CONSTRAINT_ID ) +rc_getConstraintPivotA( GETCONSTRAINTPIVOTA_CONSTRAINT_ID, & GETCONSTRAINTPIVOTA_X, & GETCONSTRAINTPIVOTA_Y, & GETCONSTRAINTPIVOTA_Z ) +rc_getConstraintPivotB( GETCONSTRAINTPIVOTB_CONSTRAINT_ID, & GETCONSTRAINTPIVOTB_X, & GETCONSTRAINTPIVOTB_Y, & GETCONSTRAINTPIVOTB_Z ) +rc_getConstraintActorA( GETCONSTRAINTACTORA_CONSTRAINT_ID ) +rc_getConstraintActorB( GETCONSTRAINTACTORB_CONSTRAINT_ID ) +rc_setConstraintSolverIterations( SETCONSTRAINTSOLVERITERATIONS_CONSTRAINT_ID, SETCONSTRAINTSOLVERITERATIONS_NUM ) +rc_getConstraintBiasFactor( GETCONSTRAINTBIASFACTOR_CONSTRAINT_ID ) +rc_getConstraintDamping( GETCONSTRAINTDAMPING_CONSTRAINT_ID ) +rc_getConstraintFixThresh( GETCONSTRAINTFIXTHRESH_CONSTRAINT_ID ) +rc_getConstraintLimit( GETCONSTRAINTLIMIT_CONSTRAINT_ID, GETCONSTRAINTLIMIT_LIMIT_INDEX ) +rc_getConstraintLimitSoftness( GETCONSTRAINTLIMITSOFTNESS_CONSTRAINT_ID ) +rc_getConstraintSolverIterations( GETCONSTRAINTSOLVERITERATIONS_CONSTRAINT_ID ) +rc_getConstraintAnglePoint( GETCONSTRAINTANGLEPOINT_CONSTRAINT_ID, GETCONSTRAINTANGLEPOINT_ANGLE, GETCONSTRAINTANGLEPOINT_C_LEN, & GETCONSTRAINTANGLEPOINT_X, & GETCONSTRAINTANGLEPOINT_Y, & GETCONSTRAINTANGLEPOINT_Z ) +rc_getConstraintAngularOnly( GETCONSTRAINTANGULARONLY_CONSTRAINT_ID ) +rc_getConstraintSolveSwingLimit( GETCONSTRAINTSOLVESWINGLIMIT_CONSTRAINT_ID ) +rc_getConstraintSolveTwistLimit( GETCONSTRAINTSOLVETWISTLIMIT_CONSTRAINT_ID ) +rc_getConstraintSolveLimit( GETCONSTRAINTSOLVELIMIT_CONSTRAINT_ID ) +rc_getConstraintSwingSpan1( GETCONSTRAINTSWINGSPAN1_CONSTRAINT_ID ) +rc_getConstraintSwingSpan2( GETCONSTRAINTSWINGSPAN2_CONSTRAINT_ID ) +rc_getConstraintTwistAngle( GETCONSTRAINTTWISTANGLE_CONSTRAINT_ID ) +rc_getConstraintTwistLimitSign( GETCONSTRAINTTWISTLIMITSIGN_CONSTRAINT_ID ) +rc_getConstraintTwistSpan( GETCONSTRAINTTWISTSPAN_CONSTRAINT_ID ) +rc_setConstraintAngularOnly( SETCONSTRAINTANGULARONLY_CONSTRAINT_ID, SETCONSTRAINTANGULARONLY_FLAG ) +rc_setConstraintDamping( SETCONSTRAINTDAMPING_CONSTRAINT_ID, SETCONSTRAINTDAMPING_DAMPING ) +rc_setConstraintFixThresh( SETCONSTRAINTFIXTHRESH_CONSTRAINT_ID, SETCONSTRAINTFIXTHRESH_FIXTHRESH ) +rc_getConstraintAnchorA( GETCONSTRAINTANCHORA_CONSTRAINT_ID, & GETCONSTRAINTANCHORA_X, & GETCONSTRAINTANCHORA_Y, & GETCONSTRAINTANCHORA_Z ) +rc_getConstraintAnchorB( GETCONSTRAINTANCHORB_CONSTRAINT_ID, & GETCONSTRAINTANCHORB_X, & GETCONSTRAINTANCHORB_Y, & GETCONSTRAINTANCHORB_Z ) +rc_getConstraintAngDepth( GETCONSTRAINTANGDEPTH_CONSTRAINT_ID ) +rc_getConstraintAngularPos( GETCONSTRAINTANGULARPOS_CONSTRAINT_ID ) +rc_getConstraintDampingDirAng( GETCONSTRAINTDAMPINGDIRANG_CONSTRAINT_ID ) +rc_getConstraintDampingDirLin( GETCONSTRAINTDAMPINGDIRLIN_CONSTRAINT_ID ) +rc_getConstraintDampingLimAng( GETCONSTRAINTDAMPINGLIMANG_CONSTRAINT_ID ) +rc_getConstraintDampingLimLin( GETCONSTRAINTDAMPINGLIMLIN_CONSTRAINT_ID ) +rc_getConstraintDampingOrthoAng( GETCONSTRAINTDAMPINGORTHOANG_CONSTRAINT_ID ) +rc_getConstraintDampingOrthoLin( GETCONSTRAINTDAMPINGORTHOLIN_CONSTRAINT_ID ) +rc_getConstraintLinearPos( GETCONSTRAINTLINEARPOS_CONSTRAINT_ID ) +rc_getConstraintLinDepth( GETCONSTRAINTLINDEPTH_CONSTRAINT_ID ) +rc_getConstraintLowerAngLimit( GETCONSTRAINTLOWERANGLIMIT_CONSTRAINT_ID ) +rc_getConstraintLowerLinLimit( GETCONSTRAINTLOWERLINLIMIT_CONSTRAINT_ID ) +rc_getConstraintRestitutionDirAng( GETCONSTRAINTRESTITUTIONDIRANG_CONSTRAINT_ID ) +rc_getConstraintRestitutionDirLin( GETCONSTRAINTRESTITUTIONDIRLIN_CONSTRAINT_ID ) +rc_getConstraintRestitutionLimAng( GETCONSTRAINTRESTITUTIONLIMANG_CONSTRAINT_ID ) +rc_getConstraintRestitutionLimLin( GETCONSTRAINTRESTITUTIONLIMLIN_CONSTRAINT_ID ) +rc_getConstraintRestitutionOrthoAng( GETCONSTRAINTRESTITUTIONORTHOANG_CONSTRAINT_ID ) +rc_getConstraintRestitutionOrthoLin( GETCONSTRAINTRESTITUTIONORTHOLIN_CONSTRAINT_ID ) +rc_getConstraintSoftnessDirAng( GETCONSTRAINTSOFTNESSDIRANG_CONSTRAINT_ID ) +rc_getConstraintSoftnessDirLin( GETCONSTRAINTSOFTNESSDIRLIN_CONSTRAINT_ID ) +rc_getConstraintSoftnessLimAng( GETCONSTRAINTSOFTNESSLIMANG_CONSTRAINT_ID ) +rc_getConstraintSoftnessLimLin( GETCONSTRAINTSOFTNESSLIMLIN_CONSTRAINT_ID ) +rc_getConstraintSoftnessOrthoAng( GETCONSTRAINTSOFTNESSORTHOANG_CONSTRAINT_ID ) +rc_getConstraintSoftnessOrthoLin( GETCONSTRAINTSOFTNESSORTHOLIN_CONSTRAINT_ID ) +rc_getConstraintSolveAngLimit( GETCONSTRAINTSOLVEANGLIMIT_CONSTRAINT_ID ) +rc_getConstraintSolveLinLimit( GETCONSTRAINTSOLVELINLIMIT_CONSTRAINT_ID ) +rc_getConstraintUpperAngLimit( GETCONSTRAINTUPPERANGLIMIT_CONSTRAINT_ID ) +rc_getConstraintUpperLinLimit( GETCONSTRAINTUPPERLINLIMIT_CONSTRAINT_ID ) +rc_getConstraintUseFrameOffset( GETCONSTRAINTUSEFRAMEOFFSET_CONSTRAINT_ID ) +rc_setConstraintDampingDirAng( SETCONSTRAINTDAMPINGDIRANG_CONSTRAINT_ID, SETCONSTRAINTDAMPINGDIRANG_N ) +rc_setConstraintDampingDirLin( SETCONSTRAINTDAMPINGDIRLIN_CONSTRAINT_ID, SETCONSTRAINTDAMPINGDIRLIN_N ) +rc_setConstraintDampingLimAng( SETCONSTRAINTDAMPINGLIMANG_CONSTRAINT_ID, SETCONSTRAINTDAMPINGLIMANG_N ) +rc_setConstraintDampingLimLin( SETCONSTRAINTDAMPINGLIMLIN_CONSTRAINT_ID, SETCONSTRAINTDAMPINGLIMLIN_N ) +rc_setConstraintDampingOrthoAng( SETCONSTRAINTDAMPINGORTHOANG_CONSTRAINT_ID, SETCONSTRAINTDAMPINGORTHOANG_N ) +rc_setConstraintDampingOrthoLin( SETCONSTRAINTDAMPINGORTHOLIN_CONSTRAINT_ID, SETCONSTRAINTDAMPINGORTHOLIN_N ) +rc_setConstraintLowerAngLimit( SETCONSTRAINTLOWERANGLIMIT_CONSTRAINT_ID, SETCONSTRAINTLOWERANGLIMIT_N ) +rc_setConstraintLowerLinLimit( SETCONSTRAINTLOWERLINLIMIT_CONSTRAINT_ID, SETCONSTRAINTLOWERLINLIMIT_N ) +rc_setConstraintRestitutionDirAng( SETCONSTRAINTRESTITUTIONDIRANG_CONSTRAINT_ID, SETCONSTRAINTRESTITUTIONDIRANG_N ) +rc_setConstraintRestitutionDirLin( SETCONSTRAINTRESTITUTIONDIRLIN_CONSTRAINT_ID, SETCONSTRAINTRESTITUTIONDIRLIN_N ) +rc_setConstraintRestitutionLimAng( SETCONSTRAINTRESTITUTIONLIMANG_CONSTRAINT_ID, SETCONSTRAINTRESTITUTIONLIMANG_N ) +rc_setConstraintRestitutionLimLin( SETCONSTRAINTRESTITUTIONLIMLIN_CONSTRAINT_ID, SETCONSTRAINTRESTITUTIONLIMLIN_N ) +rc_setConstraintRestitutionOrthoAng( SETCONSTRAINTRESTITUTIONORTHOANG_CONSTRAINT_ID, SETCONSTRAINTRESTITUTIONORTHOANG_N ) +rc_setConstraintRestitutionOrthoLin( SETCONSTRAINTRESTITUTIONORTHOLIN_CONSTRAINT_ID, SETCONSTRAINTRESTITUTIONORTHOLIN_N ) +rc_setConstraintSoftnessDirAng( SETCONSTRAINTSOFTNESSDIRANG_CONSTRAINT_ID, SETCONSTRAINTSOFTNESSDIRANG_N ) +rc_setConstraintSoftnessDirLin( SETCONSTRAINTSOFTNESSDIRLIN_CONSTRAINT_ID, SETCONSTRAINTSOFTNESSDIRLIN_N ) +rc_setConstraintSoftnessLimAng( SETCONSTRAINTSOFTNESSLIMANG_CONSTRAINT_ID, SETCONSTRAINTSOFTNESSLIMANG_N ) +rc_setConstraintSoftnessLimLin( SETCONSTRAINTSOFTNESSLIMLIN_CONSTRAINT_ID, SETCONSTRAINTSOFTNESSLIMLIN_N ) +rc_setConstraintSoftnessOrthoAng( SETCONSTRAINTSOFTNESSORTHOANG_CONSTRAINT_ID, SETCONSTRAINTSOFTNESSORTHOANG_N ) +rc_setConstraintSoftnessOrthoLin( SETCONSTRAINTSOFTNESSORTHOLIN_CONSTRAINT_ID, SETCONSTRAINTSOFTNESSORTHOLIN_N ) +rc_setConstraintUpperAngLimit( SETCONSTRAINTUPPERANGLIMIT_CONSTRAINT_ID, SETCONSTRAINTUPPERANGLIMIT_N ) +rc_setConstraintUpperLinLimit( SETCONSTRAINTUPPERLINLIMIT_CONSTRAINT_ID, SETCONSTRAINTUPPERLINLIMIT_N ) +rc_setCameraPosition( SETCAMERAPOSITION_X, SETCAMERAPOSITION_Y, SETCAMERAPOSITION_Z ) +rc_getCameraPosition( &GETCAMERAPOSITION_X, &GETCAMERAPOSITION_Y, &GETCAMERAPOSITION_Z ) +rc_translateCamera( TRANSLATECAMERA_X, TRANSLATECAMERA_Y, TRANSLATECAMERA_Z ) +rc_setCameraRotation( SETCAMERAROTATION_X, SETCAMERAROTATION_Y, SETCAMERAROTATION_Z ) +rc_getCameraRotation( &GETCAMERAROTATION_X, &GETCAMERAROTATION_Y, &GETCAMERAROTATION_Z ) +rc_rotateCamera( ROTATECAMERA_X, ROTATECAMERA_Y, ROTATECAMERA_Z ) +rc_setCameraFOV( SETCAMERAFOV_FOV ) +rc_getCameraFOV( ) +rc_setCameraAspectRatio( SETCAMERAASPECTRATIO_ASPECT ) +rc_getCameraAspectRatio( ) +rc_setCameraFarValue( SETCAMERAFARVALUE_ZF ) +rc_getCameraFarValue( ) +rc_setCameraNearValue( SETCAMERANEARVALUE_ZN ) +rc_getCameraNearValue( ) +rc_addSceneSkyBox( ADDSCENESKYBOX_IMG_TOP, ADDSCENESKYBOX_IMG_BOTTOM, ADDSCENESKYBOX_IMG_LEFT, ADDSCENESKYBOX_IMG_RIGHT, ADDSCENESKYBOX_IMG_FRONT, ADDSCENESKYBOX_IMG_BACK ) +rc_addSceneSkyDome( ADDSCENESKYDOME_IMG ) +rc_addSceneSkyDomeEx( ADDSCENESKYDOMEEX_IMG, ADDSCENESKYDOMEEX_HORIRES, ADDSCENESKYDOMEEX_VERTRES, ADDSCENESKYDOMEEX_TXPERCENTAGE, ADDSCENESKYDOMEEX_SPHEREPERCENTAGE, ADDSCENESKYDOMEEX_RADIUS ) +rc_removeSceneSky( ) +rc_setWorld3DDeltaTime( SETWORLD3DDELTATIME_DT ) +rc_setWorld3DMaxSubSteps( SETWORLD3DMAXSUBSTEPS_STEPS ) +rc_setWorld3DTimeStep( SETWORLD3DTIMESTEP_TS ) +rc_startParticleEmitter( STARTPARTICLEEMITTER_ACTOR ) +rc_stopParticleEmitter( STOPPARTICLEEMITTER_ACTOR ) +rc_setParticleDirection( SETPARTICLEDIRECTION_ACTOR, SETPARTICLEDIRECTION_X, SETPARTICLEDIRECTION_Y, SETPARTICLEDIRECTION_Z ) +rc_getParticleDirection( GETPARTICLEDIRECTION_ACTOR, & GETPARTICLEDIRECTION_X, & GETPARTICLEDIRECTION_Y, & GETPARTICLEDIRECTION_Z ) +rc_useParticleEveryMeshVertex( USEPARTICLEEVERYMESHVERTEX_ACTOR, USEPARTICLEEVERYMESHVERTEX_FLAG ) +rc_particleIsUsingEveryMeshVertex( PARTICLEISUSINGEVERYMESHVERTEX_ACTOR ) +rc_setParticleNormalDirectionMod( SETPARTICLENORMALDIRECTIONMOD_ACTOR, SETPARTICLENORMALDIRECTIONMOD_ND_MOD ) +rc_getParticleNormalDirectionMod( GETPARTICLENORMALDIRECTIONMOD_ACTOR ) +rc_useParticleNormalDirection( USEPARTICLENORMALDIRECTION_ACTOR, USEPARTICLENORMALDIRECTION_FLAG ) +rc_particleIsUsingNormalDirection( PARTICLEISUSINGNORMALDIRECTION_ACTOR ) +rc_setParticleMesh( SETPARTICLEMESH_ACTOR, SETPARTICLEMESH_MESH ) +rc_setParticleMinParticlesPerSecond( SETPARTICLEMINPARTICLESPERSECOND_ACTOR, SETPARTICLEMINPARTICLESPERSECOND_MINPARTICLESPERSECOND ) +rc_getParticleMinParticlesPerSecond( GETPARTICLEMINPARTICLESPERSECOND_ACTOR ) +rc_setParticleMaxParticlesPerSecond( SETPARTICLEMAXPARTICLESPERSECOND_ACTOR, SETPARTICLEMAXPARTICLESPERSECOND_MAXPARTICLESPERSECOND ) +rc_getParticleMaxParticlesPerSecond( GETPARTICLEMAXPARTICLESPERSECOND_ACTOR ) +rc_setParticleMinStartColor( SETPARTICLEMINSTARTCOLOR_ACTOR, SETPARTICLEMINSTARTCOLOR_COLOR ) +rc_getParticleMinStartColor( GETPARTICLEMINSTARTCOLOR_ACTOR ) +rc_setParticleMaxStartColor( SETPARTICLEMAXSTARTCOLOR_ACTOR, SETPARTICLEMAXSTARTCOLOR_COLOR ) +rc_getParticleMaxStartColor( GETPARTICLEMAXSTARTCOLOR_ACTOR ) +rc_setParticleMinLife( SETPARTICLEMINLIFE_ACTOR, SETPARTICLEMINLIFE_MINLIFE ) +rc_getParticleMinLife( GETPARTICLEMINLIFE_ACTOR ) +rc_setParticleMaxLife( SETPARTICLEMAXLIFE_ACTOR, SETPARTICLEMAXLIFE_MAXLIFE ) +rc_getParticleMaxLife( GETPARTICLEMAXLIFE_ACTOR ) +rc_setParticleMaxAngle( SETPARTICLEMAXANGLE_ACTOR, SETPARTICLEMAXANGLE_MAXANGLE ) +rc_getParticleMaxAngle( GETPARTICLEMAXANGLE_ACTOR ) +rc_setParticleMinStartSize( SETPARTICLEMINSTARTSIZE_ACTOR, SETPARTICLEMINSTARTSIZE_W, SETPARTICLEMINSTARTSIZE_H ) +rc_getParticleMinStartSize( GETPARTICLEMINSTARTSIZE_ACTOR, & GETPARTICLEMINSTARTSIZE_W, & GETPARTICLEMINSTARTSIZE_H ) +rc_setParticleMaxStartSize( SETPARTICLEMAXSTARTSIZE_ACTOR, SETPARTICLEMAXSTARTSIZE_W, SETPARTICLEMAXSTARTSIZE_H ) +rc_getParticleMaxStartSize( GETPARTICLEMAXSTARTSIZE_ACTOR, & GETPARTICLEMAXSTARTSIZE_W, & GETPARTICLEMAXSTARTSIZE_H ) +rc_setParticleCenter( SETPARTICLECENTER_ACTOR, SETPARTICLECENTER_X, SETPARTICLECENTER_Y, SETPARTICLECENTER_Z ) +rc_getParticleCenter( GETPARTICLECENTER_ACTOR, & GETPARTICLECENTER_X, & GETPARTICLECENTER_Y, & GETPARTICLECENTER_Z ) +rc_setParticleRadius( SETPARTICLERADIUS_ACTOR, SETPARTICLERADIUS_RADIUS ) +rc_getParticleRadius( GETPARTICLERADIUS_ACTOR ) +rc_setParticleRingThickness( SETPARTICLERINGTHICKNESS_ACTOR, SETPARTICLERINGTHICKNESS_RINGTHICKNESS ) +rc_getParticleRingThickness( GETPARTICLERINGTHICKNESS_ACTOR ) +rc_setParticleBox( SETPARTICLEBOX_ACTOR, SETPARTICLEBOX_MIN_X, SETPARTICLEBOX_MIN_Y, SETPARTICLEBOX_MIN_Z, SETPARTICLEBOX_MAX_X, SETPARTICLEBOX_MAX_Y, SETPARTICLEBOX_MAX_Z ) +rc_getParticleBox( GETPARTICLEBOX_ACTOR, & GETPARTICLEBOX_MIN_X, & GETPARTICLEBOX_MIN_Y, & GETPARTICLEBOX_MIN_Z, & GETPARTICLEBOX_MAX_X, & GETPARTICLEBOX_MAX_Y, & GETPARTICLEBOX_MAX_Z ) +rc_setParticleNormal( SETPARTICLENORMAL_ACTOR, SETPARTICLENORMAL_X, SETPARTICLENORMAL_Y, SETPARTICLENORMAL_Z ) +rc_getParticleNormal( GETPARTICLENORMAL_ACTOR, & GETPARTICLENORMAL_X, & GETPARTICLENORMAL_Y, & GETPARTICLENORMAL_Z ) +rc_setParticleLength( SETPARTICLELENGTH_ACTOR, SETPARTICLELENGTH_P_LEN ) +rc_getParticleLength( GETPARTICLELENGTH_ACTOR ) +rc_useParticleOutlineOnly( USEPARTICLEOUTLINEONLY_ACTOR, USEPARTICLEOUTLINEONLY_FLAG ) +rc_particleIsUsingOutlineOnly( PARTICLEISUSINGOUTLINEONLY_ACTOR ) +rc_lightIsCastingShadow( LIGHTISCASTINGSHADOW_ACTOR ) +rc_getLightType( GETLIGHTTYPE_ACTOR ) +rc_getLightRadius( GETLIGHTRADIUS_ACTOR ) +rc_setLightType( SETLIGHTTYPE_ACTOR, SETLIGHTTYPE_LIGHT_TYPE ) +rc_setLightRadius( SETLIGHTRADIUS_ACTOR, SETLIGHTRADIUS_RADIUS ) +rc_setLightShadowCast( SETLIGHTSHADOWCAST_ACTOR, SETLIGHTSHADOWCAST_FLAG ) +rc_setLightAmbientColor( SETLIGHTAMBIENTCOLOR_ACTOR, SETLIGHTAMBIENTCOLOR_COLOR ) +rc_getLightAmbientColor( GETLIGHTAMBIENTCOLOR_ACTOR ) +rc_setLightAttenuation( SETLIGHTATTENUATION_ACTOR, SETLIGHTATTENUATION_L_CONSTANT, SETLIGHTATTENUATION_L_LINEAR, SETLIGHTATTENUATION_L_QUADRATIC ) +rc_getLightAttenuation( GETLIGHTATTENUATION_ACTOR, &GETLIGHTATTENUATION_CONSTANT, &GETLIGHTATTENUATION_LINEAR, &GETLIGHTATTENUATION_QUADRATIC ) +rc_setLightDiffuseColor( SETLIGHTDIFFUSECOLOR_ACTOR, SETLIGHTDIFFUSECOLOR_COLOR ) +rc_getLightDiffuseColor( GETLIGHTDIFFUSECOLOR_ACTOR ) +rc_setLightFalloff( SETLIGHTFALLOFF_ACTOR, SETLIGHTFALLOFF_FALLOFF ) +rc_getLightFalloff( GETLIGHTFALLOFF_ACTOR ) +rc_setLightInnerCone( SETLIGHTINNERCONE_ACTOR, SETLIGHTINNERCONE_ANGLE ) +rc_getLightInnerCone( GETLIGHTINNERCONE_ACTOR ) +rc_setLightOuterCone( SETLIGHTOUTERCONE_ACTOR, SETLIGHTOUTERCONE_ANGLE ) +rc_getLightOuterCone( GETLIGHTOUTERCONE_ACTOR ) +rc_setLightSpecularColor( SETLIGHTSPECULARCOLOR_ACTOR, SETLIGHTSPECULARCOLOR_COLOR ) +rc_getLightSpecularColor( GETLIGHTSPECULARCOLOR_ACTOR ) +rc_getTerrainPatchAABB( GETTERRAINPATCHAABB_ACTOR, GETTERRAINPATCHAABB_PATCHX, GETTERRAINPATCHAABB_PATCHZ, &GETTERRAINPATCHAABB_MINX, &GETTERRAINPATCHAABB_MINY, &GETTERRAINPATCHAABB_MINZ, &GETTERRAINPATCHAABB_MAXX, &GETTERRAINPATCHAABB_MAXY, &GETTERRAINPATCHAABB_MAXZ ) +rc_getTerrainPatchLOD( GETTERRAINPATCHLOD_ACTOR, GETTERRAINPATCHLOD_PATCHX, GETTERRAINPATCHLOD_PATCHZ ) +rc_getTerrainHeight( GETTERRAINHEIGHT_ACTOR, GETTERRAINHEIGHT_PATCHX, GETTERRAINHEIGHT_PATCHZ ) +rc_getTerrainCenter( GETTERRAINCENTER_ACTOR, &GETTERRAINCENTER_X, &GETTERRAINCENTER_Y, &GETTERRAINCENTER_Z ) +rc_setTerrainLODDistance( SETTERRAINLODDISTANCE_ACTOR, SETTERRAINLODDISTANCE_LOD, SETTERRAINLODDISTANCE_DISTANCE ) +rc_scaleTerrainTexture( SCALETERRAINTEXTURE_ACTOR, SCALETERRAINTEXTURE_SCALE, SCALETERRAINTEXTURE_SCALE2 ) +rc_setTerrainCameraMovementDelta( SETTERRAINCAMERAMOVEMENTDELTA_ACTOR, SETTERRAINCAMERAMOVEMENTDELTA_DELTA ) +rc_setTerrainCameraRotationDelta( SETTERRAINCAMERAROTATIONDELTA_ACTOR, SETTERRAINCAMERAROTATIONDELTA_DELTA ) +rc_setTerrainPatchLOD( SETTERRAINPATCHLOD_ACTOR, SETTERRAINPATCHLOD_PATCHX, SETTERRAINPATCHLOD_PATCHZ, SETTERRAINPATCHLOD_LOD ) +rc_setWaterWindForce( SETWATERWINDFORCE_ACTOR, SETWATERWINDFORCE_F ) +rc_getWaterWindForce( GETWATERWINDFORCE_ACTOR ) +rc_setWaterWaveHeight( SETWATERWAVEHEIGHT_ACTOR, SETWATERWAVEHEIGHT_H ) +rc_getWaterWaveHeight( GETWATERWAVEHEIGHT_ACTOR ) +rc_setWaterWindDirection( SETWATERWINDDIRECTION_ACTOR, SETWATERWINDDIRECTION_X, SETWATERWINDDIRECTION_Z ) +rc_getWaterWindDirection( GETWATERWINDDIRECTION_ACTOR, &GETWATERWINDDIRECTION_X, &GETWATERWINDDIRECTION_Z ) +rc_setWaterColor( SETWATERCOLOR_ACTOR, SETWATERCOLOR_C ) +rc_getWaterColor( GETWATERCOLOR_ACTOR ) +rc_setWaterColorBlendFactor( SETWATERCOLORBLENDFACTOR_ACTOR, SETWATERCOLORBLENDFACTOR_CBFACTOR ) +rc_getWaterColorBlendFactor( GETWATERCOLORBLENDFACTOR_ACTOR ) +rc_setActorAnimation( SETACTORANIMATION_ACTOR, SETACTORANIMATION_START_FRAME, SETACTORANIMATION_END_FRAME ) +rc_setActorAnimationSpeed( SETACTORANIMATIONSPEED_ACTOR, SETACTORANIMATIONSPEED_SPEED ) +rc_setActorFrame( SETACTORFRAME_ACTOR, SETACTORFRAME_FRAME ) +rc_setActorMD2Animation( SETACTORMD2ANIMATION_ACTOR, SETACTORMD2ANIMATION_ANIM ) +rc_setActorMD2AnimationByName( SETACTORMD2ANIMATIONBYNAME_ACTOR, SETACTORMD2ANIMATIONBYNAME_ANIM_NAME$ ) +rc_getActorAnimationSpeed( GETACTORANIMATIONSPEED_ACTOR ) +rc_getActorEndFrame( GETACTORENDFRAME_ACTOR ) +rc_getActorCurrentFrame( GETACTORCURRENTFRAME_ACTOR ) +rc_getActorStartFrame( GETACTORSTARTFRAME_ACTOR ) +rc_startActorTransition( STARTACTORTRANSITION_ACTOR, STARTACTORTRANSITION_FRAME, STARTACTORTRANSITION_TRANSITION_TIME ) +rc_stopActorTransition( STOPACTORTRANSITION_ACTOR ) +rc_actorIsInTransition( ACTORISINTRANSITION_ACTOR ) +rc_getActorTransitionTime( GETACTORTRANSITIONTIME_ACTOR ) +rc_actorAnimationIsLooped( ACTORANIMATIONISLOOPED_ACTOR ) +rc_loopActorAnimation( LOOPACTORANIMATION_ACTOR, LOOPACTORANIMATION_FLAG ) +rc_createMaterial( ) +rc_deleteMaterial( DELETEMATERIAL_MATERIAL_ID ) +rc_setActorMaterial( SETACTORMATERIAL_ACTOR, SETACTORMATERIAL_MATERIAL_NUM, SETACTORMATERIAL_MATERIAL_ID ) +rc_getActorMaterial( GETACTORMATERIAL_ACTOR, GETACTORMATERIAL_MATERIAL_NUM ) +rc_copyActorMaterial( COPYACTORMATERIAL_ACTOR, COPYACTORMATERIAL_MATERIAL_NUM ) +rc_copyMaterial( COPYMATERIAL_SMATERIAL_ID ) +rc_setMaterialTextureCanvas( SETMATERIALTEXTURECANVAS_MATERIAL_ID, SETMATERIALTEXTURECANVAS_LEVEL, SETMATERIALTEXTURECANVAS_CANVAS_ID ) +rc_setMaterialAmbientColor( SETMATERIALAMBIENTCOLOR_MATERIAL_ID, SETMATERIALAMBIENTCOLOR_COLOR ) +rc_getMaterialAmbientColor( GETMATERIALAMBIENTCOLOR_MATERIAL_ID ) +rc_setMaterialAntiAliasing( SETMATERIALANTIALIASING_MATERIAL_ID, SETMATERIALANTIALIASING_AA ) +rc_getMaterialAntiAliasing( GETMATERIALANTIALIASING_MATERIAL_ID ) +rc_setMaterialBackfaceCulling( SETMATERIALBACKFACECULLING_MATERIAL_ID, SETMATERIALBACKFACECULLING_FLAG ) +rc_getMaterialBackfaceCulling( GETMATERIALBACKFACECULLING_MATERIAL_ID ) +rc_setMaterialBlendFactor( SETMATERIALBLENDFACTOR_MATERIAL_ID, SETMATERIALBLENDFACTOR_BF ) +rc_getMaterialBlendFactor( GETMATERIALBLENDFACTOR_MATERIAL_ID ) +rc_setMaterialBlendMode( SETMATERIALBLENDMODE_MATERIAL_ID, SETMATERIALBLENDMODE_BLEND_MODE ) +rc_getMaterialBlendMode( GETMATERIALBLENDMODE_MATERIAL_ID ) +rc_setMaterialColorMask( SETMATERIALCOLORMASK_MATERIAL_ID, SETMATERIALCOLORMASK_COLOR_MASK ) +rc_getMaterialColorMask( GETMATERIALCOLORMASK_MATERIAL_ID ) +rc_setMaterialColorMode( SETMATERIALCOLORMODE_MATERIAL_ID, SETMATERIALCOLORMODE_COLOR_MODE ) +rc_getMaterialColorMode( GETMATERIALCOLORMODE_MATERIAL_ID ) +rc_setMaterialDiffuseColor( SETMATERIALDIFFUSECOLOR_MATERIAL_ID, SETMATERIALDIFFUSECOLOR_COLOR ) +rc_getMaterialDiffuseColor( GETMATERIALDIFFUSECOLOR_MATERIAL_ID ) +rc_setMaterialEmissiveColor( SETMATERIALEMISSIVECOLOR_MATERIAL_ID, SETMATERIALEMISSIVECOLOR_COLOR ) +rc_getMaterialEmissiveColor( GETMATERIALEMISSIVECOLOR_MATERIAL_ID ) +rc_setMaterialFog( SETMATERIALFOG_MATERIAL_ID, SETMATERIALFOG_FLAG ) +rc_getMaterialFog( GETMATERIALFOG_MATERIAL_ID ) +rc_setMaterialFrontfaceCulling( SETMATERIALFRONTFACECULLING_MATERIAL_ID, SETMATERIALFRONTFACECULLING_FLAG ) +rc_getMaterialFrontfaceCulling( GETMATERIALFRONTFACECULLING_MATERIAL_ID ) +rc_setMaterialGouraudShading( SETMATERIALGOURAUDSHADING_MATERIAL_ID, SETMATERIALGOURAUDSHADING_FLAG ) +rc_materialIsGouraudShaded( MATERIALISGOURAUDSHADED_MATERIAL_ID ) +rc_materialIsAplhaBlend( MATERIALISAPLHABLEND_MATERIAL_ID ) +rc_materialIsTransparent( MATERIALISTRANSPARENT_MATERIAL_ID ) +rc_setMaterialLighting( SETMATERIALLIGHTING_MATERIAL_ID, SETMATERIALLIGHTING_FLAG ) +rc_materialIsLit( MATERIALISLIT_MATERIAL_ID ) +rc_setMaterialType( SETMATERIALTYPE_MATERIAL_ID, SETMATERIALTYPE_MAT_TYPE ) +rc_getMaterialType( GETMATERIALTYPE_MATERIAL_ID ) +rc_setMaterialNormalize( SETMATERIALNORMALIZE_MATERIAL_ID, SETMATERIALNORMALIZE_FLAG ) +rc_materialIsNormalized( MATERIALISNORMALIZED_MATERIAL_ID ) +rc_setMaterialPointCloud( SETMATERIALPOINTCLOUD_MATERIAL_ID, SETMATERIALPOINTCLOUD_FLAG ) +rc_materialIsPointCloud( MATERIALISPOINTCLOUD_MATERIAL_ID ) +rc_setMaterialFlag( SETMATERIALFLAG_MATERIAL_ID, SETMATERIALFLAG_MATERIAL_FLAG, SETMATERIALFLAG_F_VALUE ) +rc_getMaterialFlag( GETMATERIALFLAG_MATERIAL_ID, GETMATERIALFLAG_MATERIAL_FLAG ) +rc_setMaterialTexture( SETMATERIALTEXTURE_MATERIAL_ID, SETMATERIALTEXTURE_LEVEL, SETMATERIALTEXTURE_IMG_ID ) +rc_setMaterialShininess( SETMATERIALSHININESS_MATERIAL_ID, SETMATERIALSHININESS_SHININESS ) +rc_getMaterialShininess( GETMATERIALSHININESS_MATERIAL_ID ) +rc_setMaterialSpecularColor( SETMATERIALSPECULARCOLOR_MATERIAL_ID, SETMATERIALSPECULARCOLOR_COLOR ) +rc_getMaterialSpecularColor( GETMATERIALSPECULARCOLOR_MATERIAL_ID ) +rc_setMaterialThickness( SETMATERIALTHICKNESS_MATERIAL_ID, SETMATERIALTHICKNESS_THICKNESS ) +rc_getMaterialThickness( GETMATERIALTHICKNESS_MATERIAL_ID ) +rc_setMaterialWireframe( SETMATERIALWIREFRAME_MATERIAL_ID, SETMATERIALWIREFRAME_FLAG ) +rc_materialIsWireframe( MATERIALISWIREFRAME_MATERIAL_ID ) +rc_setActorTexture( SETACTORTEXTURE_ACTOR, SETACTORTEXTURE_LAYER, SETACTORTEXTURE_IMAGE_ID ) +rc_getActorMaterialCount( GETACTORMATERIALCOUNT_ACTOR ) +rc_setActorMaterialFlag( SETACTORMATERIALFLAG_ACTOR, SETACTORMATERIALFLAG_FLAG, SETACTORMATERIALFLAG_FLAG_VALUE ) +rc_getActorMaterialFlag( GETACTORMATERIALFLAG_ACTOR, GETACTORMATERIALFLAG_MATERIAL, GETACTORMATERIALFLAG_FLAG ) +rc_setActorMaterialType( SETACTORMATERIALTYPE_ACTOR, SETACTORMATERIALTYPE_MATERIAL_TYPE ) +rc_getActorMaterialType( GETACTORMATERIALTYPE_ACTOR, GETACTORMATERIALTYPE_MATERIAL ) diff --git a/rcbasic_build/intern_lib/actor.bas b/rcbasic_build/intern_lib/actor.bas new file mode 100644 index 0000000..8ab39f7 --- /dev/null +++ b/rcbasic_build/intern_lib/actor.bas @@ -0,0 +1,26 @@ +function CreateMeshActor( mesh ) +function CreateMeshOctreeActor( mesh ) +function CreateCubeActor( cube_size ) +function CreateSphereActor( radius ) +function CreateWaterPlaneActor( w, h ) +function CreateLightActor( ) +function CreateBillboardActor( ) +function CreateTerrainActor( hmap_file$ ) +sub DeleteActor( actor ) +sub GetActorTransform( actor, matrix ) +sub SetActorPosition( actor, x, y, z ) +sub TranslateActor( actor, x, y, z ) +sub TranslateActorWorld( actor, x, y, z ) +sub GetActorPosition( actor, ByRef x, ByRef y, ByRef z ) +sub SetActorScale( actor, x, y, z ) +sub ScaleActor( actor, x, y, z ) +sub GetActorScale( actor, ByRef x, ByRef y, ByRef z ) +sub SetActorRotation( actor, x, y, z ) +sub RotateActor( actor, x, y, z ) +sub GetActorRotation( actor, ByRef x, ByRef y, ByRef z ) +sub SetActorVisible( actor, flag ) +function ActorIsVisible( actor ) +sub SetActorAutoCulling( actor, cull_type ) +function GetActorAutoCulling( actor ) +sub AddActorShadow( actor ) +sub RemoveActorShadow( actor ) diff --git a/rcbasic_build/intern_lib/actor_physics.bas b/rcbasic_build/intern_lib/actor_physics.bas new file mode 100644 index 0000000..2d1116f --- /dev/null +++ b/rcbasic_build/intern_lib/actor_physics.bas @@ -0,0 +1,58 @@ +sub SetGravity3D(x, y, z) +sub GetGravity3D(ByRef x, ByRef y, ByRef z) +sub SetActorCollisionShape( actor, shape_type, mass) +function GetActorCollisionShape(actor) +sub SetActorSolid(actor, flag) +function ActorIsSolid(actor) +function GetActorCollision(actor1, actor2) +sub SetActorGravity( actor, x, y, z ) +sub GetActorGravity( actor, ByRef x, ByRef y, ByRef z ) +sub setActorDamping( actor, lin_damping, ang_damping) +function getActorLinearDamping( actor) +function getActorAngularDamping( actor) +function getActorLinearSleepThreshold( actor) +function getActorAngularSleepThreshold( actor) +sub applyActorDamping( actor, timeStep) +sub setActorMassProperties( actor, mass, inertia_x, inertia_y, inertia_z) +sub getActorLinearFactor( actor, ByRef x, ByRef y, ByRef z) +sub setActorLinearFactor( actor, x, y, z) +function getActorInverseMass( actor) +sub integrateActorVelocities( actor, v_step) +sub applyActorCentralForceLocal( actor, x, y, z) +sub applyActorCentralForceWorld( actor, x, y, z) +sub getActorTotalForce( actor, ByRef x, ByRef y, ByRef z) +sub getActorTotalTorque( actor, ByRef x, ByRef y, ByRef z) +sub getActorInverseInertiaDiagLocal( actor, ByRef x, ByRef y, ByRef z) +sub setActorInverseInertiaDiagLocal( actor, x, y, z) +sub setActorSleepThresholds( actor, linear, angular) +sub applyActorTorqueLocal( actor, x, y, z) +sub applyActorTorqueWorld( actor, x, y, z) +sub applyActorForceLocal( actor, x, y, z, rel_x, rel_y, rel_z) +sub applyActorForceWorld( actor, x, y, z, rel_x, rel_y, rel_z) +sub applyActorCentralImpulseLocal( actor, x, y, z) +sub applyActorCentralImpulseWorld( actor, x, y, z) +sub applyActorTorqueImpulseLocal( actor, x, y, z) +sub applyActorTorqueImpulseWorld( actor, x, y, z) +sub applyActorImpulseLocal( actor, x, y, z, rel_x, rel_y, rel_z) +sub applyActorImpulseWorld( actor, x, y, z, rel_x, rel_y, rel_z) +sub clearActorForces( actor) +sub updateActorInertiaTensor( actor) +sub getActorCOMPosition( actor, ByRef x, ByRef y, ByRef z) +sub getActorRotationQ( actor, ByRef x, ByRef y, ByRef z, ByRef w) +sub getActorLinearVelocity( actor, ByRef x, ByRef y, ByRef z) +sub getActorAngularVelocity( actor, ByRef x, ByRef y, ByRef z) +sub setActorLinearVelocityLocal( actor, x, y, z) +sub setActorLinearVelocityWorld( actor, x, y, z) +sub setActorAngularVelocityLocal( actor, x, y, z) +sub setActorAngularVelocityWorld( actor, x, y, z) +sub getActorLocalPointVelocity( actor, rel_x, rel_y, rel_z, ByRef x, ByRef y, ByRef z) +sub getActorLinearVelocityLocal( actor, ByRef x, ByRef y, ByRef z) +sub getActorAngularVelocityLocal( actor, ByRef x, ByRef y, ByRef z) +sub getActorAABB( actor, ByRef min_x, ByRef min_y, ByRef min_z, ByRef max_x, ByRef max_y, ByRef max_z) +function computeActorImpulseDenominator( actor, pos_x, pos_y, pos_z, normal_x, normal_y, normal_z) +function computeActorAngularImpulseDenominator( actor, x, y, z) +sub setActorAngularFactor( actor, x, y, z) +sub getActorAngularFactor( actor, ByRef x, ByRef y, ByRef z) +sub computeActorGyroImpulseLocal( actor, dt, ByRef x, ByRef y, ByRef z) +sub computeActorGyroImpulseWorld( actor, dt, ByRef x, ByRef y, ByRef z) +sub getActorLocalInertia( actor, ByRef x, ByRef y, ByRef z) diff --git a/rcbasic_build/intern_lib/animation.bas b/rcbasic_build/intern_lib/animation.bas new file mode 100644 index 0000000..c704927 --- /dev/null +++ b/rcbasic_build/intern_lib/animation.bas @@ -0,0 +1,15 @@ +sub SetActorAnimation( actor, start_frame, end_frame) +sub SetActorAnimationSpeed( actor, speed ) +sub SetActorFrame( actor, frame ) +sub SetActorMD2Animation( actor, anim ) +sub SetActorMD2AnimationByName( actor, anim_name$ ) +function GetActorAnimationSpeed( actor ) +function GetActorEndFrame( actor ) +function GetActorCurrentFrame( actor ) +function GetActorStartFrame( actor ) +sub StartActorTransition( actor, frame, transition_time ) +sub StopActorTransition( actor ) +function ActorIsInTransition( actor ) +function GetActorTransitionTime( actor ) +function actorAnimationIsLooped( actor ) +sub loopActorAnimation( actor, flag ) diff --git a/rcbasic_build/intern_lib/arrays.bas b/rcbasic_build/intern_lib/arrays.bas new file mode 100644 index 0000000..876d7aa --- /dev/null +++ b/rcbasic_build/intern_lib/arrays.bas @@ -0,0 +1,16 @@ +function ArrayDim(Byref id) +function StringArrayDim(Byref id$) +function NumberArrayDim(Byref id) +function ArraySize(Byref id, array_dim) +function StringArraySize(Byref id$, array_dim) +function NumberArraySize(Byref id, array_dim) +sub NumberArrayCopy(ByRef src, ByRef dst) +sub StringArrayCopy(ByRef src$, ByRef dst$) +sub ArrayCopy(ByRef src, ByRef dst) +sub NumberArrayFill(ByRef src, fdata) +sub StringArrayFill(ByRef src$, fdata$) +sub ArrayFill(ByRef src, fdata) +function TypeArrayDim(Byref id as empty) +function TypeArraySize(Byref id as empty, array_dim) +sub TypeArrayCopy(ByRef src as empty, ByRef dst as empty) +sub TypeArrayFill(ByRef src as empty, fdata as empty) diff --git a/rcbasic_build/intern_lib/audio.bas b/rcbasic_build/intern_lib/audio.bas new file mode 100644 index 0000000..073b665 --- /dev/null +++ b/rcbasic_build/intern_lib/audio.bas @@ -0,0 +1,37 @@ +function CreateSound(byref buffer, buffer_size, vol) +function LoadSound(snd_file$) +sub LoadMusic(music_file$) +sub PlaySound(slot, channel, loops) +sub PlaySoundTimed(slot, channel, loops, ms) +sub PlayMusic(mLoops) +sub PauseSound(channel) +sub ResumeSound(channel) +sub PauseMusic() +sub ResumeMusic() +sub DeleteSound(slot) +sub DeleteMusic() +sub FadeMusicIn(fade_time, loops) +sub FadeMusicOut(fade_time) +function MusicExists() +sub SetMusicVolume(vol) +function GetMusicVolume() +sub SetMusicPosition(pos) +function GetMusicPosition() +sub RewindMusic() +sub SetSoundChannels(max_channels) +function NumSoundChannels() +function SoundIsEnabled() +function SoundExists(slot) +sub SetChannelVolume(channel, vol) +function GetChannelVolume(channel) +sub SetSoundVolume(slot, vol) +function GetSoundVolume(slot) +sub StopMusic() +sub StopSound(channel) +function SetChannelPanning(channel, left_value, right_value) +function SetChannelDistance(channel, dist_value) +function ChannelIsPlaying(channel) +function ChannelIsPaused(channel) +function QueryAudioSpec(ByRef freq, ByRef format, ByRef channels) +function MusicIsPlaying() +function SetChannelSpacePosition(channel, angle, distance) diff --git a/rcbasic_build/intern_lib/camera.bas b/rcbasic_build/intern_lib/camera.bas new file mode 100644 index 0000000..f2604cc --- /dev/null +++ b/rcbasic_build/intern_lib/camera.bas @@ -0,0 +1,14 @@ +sub SetCameraPosition( x, y, z) +sub GetCameraPosition(ByRef x, ByRef y, ByRef z) +sub TranslateCamera( x, y, z) +sub SetCameraRotation( x, y, z) +sub GetCameraRotation(ByRef x, ByRef y, ByRef z) +sub RotateCamera( x, y, z) +sub SetCameraFOV( fov ) +function GetCameraFOV( ) +sub SetCameraAspectRatio( aspect ) +function GetCameraAspectRatio( ) +sub SetCameraFarValue( zf ) +function GetCameraFarValue( ) +sub SetCameraNearValue( zn ) +function GetCameraNearValue( ) diff --git a/rcbasic_build/intern_lib/canvas.bas b/rcbasic_build/intern_lib/canvas.bas new file mode 100644 index 0000000..1ec921b --- /dev/null +++ b/rcbasic_build/intern_lib/canvas.bas @@ -0,0 +1,21 @@ +function OpenCanvas( w, h, viewport_x, viewport_y, viewport_w, viewport_h, mode) +Sub CloseCanvas(c_num) +Sub SetCanvas3D(c_num, flag) +sub SetCanvasVisible(c_num, flag) +function CanvasIsVisible(c_num) +sub SetCanvasViewport(cnum, x, y, w, h) +sub GetCanvasViewport(c_num, byref x, byref y, byref w, byref h) +sub Canvas(c_num) +sub SetCanvasOffset(c_num, x, y) +sub GetCanvasOffset(c_num, byref x, byref y) +sub GetCanvasSize(c_num, byref w, byref h) +sub ClearCanvas() +sub SetCanvasAlpha(c_num, a) +function GetCanvasAlpha(c_num) +sub SetCanvasColorMod(c_num, c) +function GetCanvasColorMod(c_num) +sub CloneCanvas(src, dst) +sub SetCanvasZ(c_num, z) +function GetCanvasZ(c_num) +function CanvasClip(x, y, w, h) +function ActiveCanvas() diff --git a/rcbasic_build/intern_lib/clipboard.bas b/rcbasic_build/intern_lib/clipboard.bas new file mode 100644 index 0000000..03cc20a --- /dev/null +++ b/rcbasic_build/intern_lib/clipboard.bas @@ -0,0 +1,3 @@ +function GetClipboardText$( ) +sub SetClipboardText(txt$) +function HasClipboardText() diff --git a/rcbasic_build/intern_lib/conio.bas b/rcbasic_build/intern_lib/conio.bas new file mode 100644 index 0000000..37bb891 --- /dev/null +++ b/rcbasic_build/intern_lib/conio.bas @@ -0,0 +1,3 @@ +sub Fprint(txt$) +function Input$(prompt$) +sub tst(byref x) diff --git a/rcbasic_build/intern_lib/constraint3D.bas b/rcbasic_build/intern_lib/constraint3D.bas new file mode 100644 index 0000000..4bc05c5 --- /dev/null +++ b/rcbasic_build/intern_lib/constraint3D.bas @@ -0,0 +1,108 @@ +function createPointConstraint( actorA, pxA, pyA, pzA) +function createPointConstraintEx( actorA, actorB, pxA, pyA, pzA, pxB, pyB, pzB) +sub setConstraintPivotA( constraint_id, x, y, z) +sub setConstraintPivotB( constraint_id, x, y, z) +function createHingeConstraint( actorA, pxA, pyA, pzA, axA, ayA, azA) +function createHingeConstraintEx( actorA, actorB, pxA, pyA, pzA, pxB, pyB, pzB, axA, ayA, azA, axB, ayB, azB) +function createSlideConstraint( actorA, frameInB_matrix, useLinearReferenceFrameA) +function createSlideConstraintEx( actorA, actorB, frameInA_matrix, frameInB_matrix, useLinearReferenceFrameA) +function createConeConstraint( actorA, rbAFrame_matrix) +function createConeConstraintEx( actorA, actorB, rbAFrame_matrix, rbBFrame_matrix) +sub deleteConstraint( constraint_id) +sub getConstraintFrameOffsetA( constraint_id, ByRef x, ByRef y, ByRef z, ByRef rx, ByRef ry, ByRef rz) +sub getConstraintFrameOffsetB( constraint_id, ByRef x, ByRef y, ByRef z, ByRef rx, ByRef ry, ByRef rz) +sub useConstraintFrameOffset( constraint_id, flag) +function getHingeAngle( constraint_id) +function getHingeAngleEx( constraint_id, t_matrixA, t_matrixB) +function getConstraintBreakingImpulseThreshold( constraint_id) +function getConstraintAFrame( constraint_id, mA) +function getConstraintBFrame( constraint_id, mA) +sub setConstraintAxis( constraint_id, x, y, z) +sub setConstraintBreakingImpulseThreshold( constraint_id, threshold) +sub setConstraintFrames( constraint_id, frameA_matrix, frameB_matrix) +sub setHingeLimit( constraint_id, low, high, softness, bias_factor, relaxation_factor) +sub setConeLimit( constraint_id, swingSpan1, swingSpan2, twistSpan, softness, bias_factor, relaxation_factor) +function getConstraintLimitBiasFactor( constraint_id) +function getLimitRelaxationFactor( constraint_id) +function getConstraintLimitSign( constraint_id) +function getHingeSolveLimit( constraint_id) +sub useHingeReferenceFrameA( constraint_id, flag) +function getConstraintAppliedImpulse( constraint_id) +function getConstraintFixedActor( constraint_id) +sub getConstraintPivotA( constraint_id, ByRef x, ByRef y, ByRef z) +sub getConstraintPivotB( constraint_id, ByRef x, ByRef y, ByRef z) +function getConstraintActorA( constraint_id) +function getConstraintActorB( constraint_id) +sub setConstraintSolverIterations( constraint_id, num) +function getConstraintBiasFactor( constraint_id) +function getConstraintDamping( constraint_id) +function getConstraintFixThresh( constraint_id) +function getConstraintLimit( constraint_id, limit_index) +function getConstraintLimitSoftness( constraint_id) +function getConstraintSolverIterations( constraint_id) +sub getConstraintAnglePoint( constraint_id, angle, c_len, ByRef x, ByRef y, ByRef z) +function getConstraintAngularOnly( constraint_id) +function getConstraintSolveSwingLimit( constraint_id) +function getConstraintSolveTwistLimit( constraint_id) +function getConstraintSolveLimit( constraint_id) +function getConstraintSwingSpan1( constraint_id) +function getConstraintSwingSpan2( constraint_id) +function getConstraintTwistAngle( constraint_id) +function getConstraintTwistLimitSign( constraint_id) +function getConstraintTwistSpan( constraint_id) +sub setConstraintAngularOnly( constraint_id, flag) +sub setConstraintDamping( constraint_id, damping) +sub setConstraintFixThresh( constraint_id, fixThresh) +sub getConstraintAnchorA( constraint_id, ByRef x, ByRef y, ByRef z) +sub getConstraintAnchorB( constraint_id, ByRef x, ByRef y, ByRef z) +function getConstraintAngDepth( constraint_id) +function getConstraintAngularPos( constraint_id) +function getConstraintDampingDirAng( constraint_id) +function getConstraintDampingDirLin( constraint_id) +function getConstraintDampingLimAng( constraint_id) +function getConstraintDampingLimLin( constraint_id) +function getConstraintDampingOrthoAng( constraint_id) +function getConstraintDampingOrthoLin( constraint_id) +function getConstraintLinearPos( constraint_id) +function getConstraintLinDepth( constraint_id) +function getConstraintLowerAngLimit( constraint_id) +function getConstraintLowerLinLimit( constraint_id) +function getConstraintRestitutionDirAng( constraint_id) +function getConstraintRestitutionDirLin( constraint_id) +function getConstraintRestitutionLimAng( constraint_id) +function getConstraintRestitutionLimLin( constraint_id) +function getConstraintRestitutionOrthoAng( constraint_id) +function getConstraintRestitutionOrthoLin( constraint_id) +function getConstraintSoftnessDirAng( constraint_id) +function getConstraintSoftnessDirLin( constraint_id) +function getConstraintSoftnessLimAng( constraint_id) +function getConstraintSoftnessLimLin( constraint_id) +function getConstraintSoftnessOrthoAng( constraint_id) +function getConstraintSoftnessOrthoLin( constraint_id) +function getConstraintSolveAngLimit( constraint_id) +function getConstraintSolveLinLimit( constraint_id) +function getConstraintUpperAngLimit( constraint_id) +function getConstraintUpperLinLimit( constraint_id) +function getConstraintUseFrameOffset( constraint_id) +sub setConstraintDampingDirAng( constraint_id, n) +sub setConstraintDampingDirLin( constraint_id, n) +sub setConstraintDampingLimAng( constraint_id, n) +sub setConstraintDampingLimLin( constraint_id, n) +sub setConstraintDampingOrthoAng( constraint_id, n) +sub setConstraintDampingOrthoLin( constraint_id, n) +sub setConstraintLowerAngLimit( constraint_id, n) +sub setConstraintLowerLinLimit( constraint_id, n) +sub setConstraintRestitutionDirAng( constraint_id, n) +sub setConstraintRestitutionDirLin( constraint_id, n) +sub setConstraintRestitutionLimAng( constraint_id, n) +sub setConstraintRestitutionLimLin( constraint_id, n) +sub setConstraintRestitutionOrthoAng( constraint_id, n) +sub setConstraintRestitutionOrthoLin( constraint_id, n) +sub setConstraintSoftnessDirAng( constraint_id, n) +sub setConstraintSoftnessDirLin( constraint_id, n) +sub setConstraintSoftnessLimAng( constraint_id, n) +sub setConstraintSoftnessLimLin( constraint_id, n) +sub setConstraintSoftnessOrthoAng( constraint_id, n) +sub setConstraintSoftnessOrthoLin( constraint_id, n) +sub setConstraintUpperAngLimit( constraint_id, n) +sub setConstraintUpperLinLimit( constraint_id, n) diff --git a/rcbasic_build/intern_lib/datetime.bas b/rcbasic_build/intern_lib/datetime.bas new file mode 100644 index 0000000..e514694 --- /dev/null +++ b/rcbasic_build/intern_lib/datetime.bas @@ -0,0 +1,6 @@ +function Date$() +function Easter$(year) +function Ticks() +function Time$() +function Timer() +sub Wait(m_sec) diff --git a/rcbasic_build/intern_lib/directories.bas b/rcbasic_build/intern_lib/directories.bas new file mode 100644 index 0000000..c76d504 --- /dev/null +++ b/rcbasic_build/intern_lib/directories.bas @@ -0,0 +1,7 @@ +sub ChangeDir(p$) +function DirExists(p$) +function DirFirst$() +function Dir$() +function DirNext$() +function MakeDir(p$) +function RemoveDir(p$) diff --git a/rcbasic_build/intern_lib/files.bas b/rcbasic_build/intern_lib/files.bas new file mode 100644 index 0000000..3187e02 --- /dev/null +++ b/rcbasic_build/intern_lib/files.bas @@ -0,0 +1,18 @@ +function OpenFile(fileName$, mode) +sub CloseFile( stream ) +function ReadByte(stream) +sub WriteByte(stream, byte) +function ReadLine$(stream) +sub Write(stream, txt$) +sub WriteLine(stream, txt$) +sub CopyFile(src$, dst$) +function RemoveFile(fileName$) +function FileExists(fileName$) +function MoveFile(src$, dst$) +function RenameFile(src$, dst$) +function FileLength(fileName$) +function Tell(stream) +function Seek(stream, pos) +function EOF(stream) +function WriteByteBuffer(stream, ByRef buf, buf_size) +function ReadByteBuffer(stream, ByRef buf, buf_size) diff --git a/rcbasic_build/intern_lib/gfxconsole.bas b/rcbasic_build/intern_lib/gfxconsole.bas new file mode 100644 index 0000000..e69de29 diff --git a/rcbasic_build/intern_lib/images.bas b/rcbasic_build/intern_lib/images.bas new file mode 100644 index 0000000..c030f44 --- /dev/null +++ b/rcbasic_build/intern_lib/images.bas @@ -0,0 +1,29 @@ +function LoadImage( img$ ) +function LoadImageEx(img$, colkey) +function createImage(w, h, byref buffer) +function createImageEx(w, h, byref buffer, color) +sub getImageBuffer(img_id, byref buffer) +function ImageExists(slot) +sub ColorKey(slot, c) +sub setBilinearFilter( flag ) +function getBilinearFilter() +function CopyImage( img_id ) +sub DeleteImage(slot) +sub SetImageAlpha(slot, a) +function GetImageAlpha( img_id ) +sub GetImageSize(slot, byref w, byref h) +sub SetBlendMode( blend_mode ) +function GetBlendMode( ) +sub SetImageColorMod(slot, c) +function GetImageColorMod(slot) +sub DrawImage(slot, x, y) +sub DrawImage_Blit(slot, x, y, src_x, src_y, src_w, src_h) +sub DrawImage_BlitEx(slot, x, y, w, h, src_x, src_y, src_w, src_h) +sub DrawImage_Rotate(slot, x, y, angle) +sub DrawImage_RotateEx(slot, x, y, src_x, src_y, src_w, src_h, angle) +sub DrawImage_Zoom(slot, x, y, zx, zy) +sub DrawImage_ZoomEx(slot, x, y, src_x, src_y, src_w, src_h, zx, zy) +sub DrawImage_Rotozoom(slot, x, y, angle, zx, zy) +sub DrawImage_RotozoomEx(slot, x, y, src_x, src_y, src_w, src_h, angle, zx, zy) +sub DrawImage_Flip(slot, x, y, h, v) +sub DrawImage_FlipEx(slot, x, y, src_x, src_y, src_w, src_h, h, v) diff --git a/rcbasic_build/intern_lib/joystick.bas b/rcbasic_build/intern_lib/joystick.bas new file mode 100644 index 0000000..a9fb00b --- /dev/null +++ b/rcbasic_build/intern_lib/joystick.bas @@ -0,0 +1,14 @@ +function NumJoysticks() +function NumJoyAxes(joy_num) +function NumJoyButtons(joy_num) +function NumJoyHats(joy_num) +function NumJoyTrackBalls(joy_num) +function JoyAxis(joy_num, joy_axis) +function JoyButton(joy_num, joy_button) +function JoyHat(joy_num, joy_hat) +sub GetJoyTrackBall(joy_num, ball, byref dx, byref dy) +function JoyName$(joy_num) +function JoystickIsConnected(joy_num) +sub JoyRumblePlay(joy_num, strength, duration) +sub JoyRumbleStop(joy_num) +function JoystickIsHaptic(joy_num) diff --git a/rcbasic_build/intern_lib/keyboard.bas b/rcbasic_build/intern_lib/keyboard.bas new file mode 100644 index 0000000..4257ecc --- /dev/null +++ b/rcbasic_build/intern_lib/keyboard.bas @@ -0,0 +1,20 @@ +function InKey() +function Key(key_code) +function WaitKey() +sub HideMouse() +sub ShowMouse() +function MouseIsVisible() +sub GetMouse(byref x, byref y, byref mb1, byref mb2, byref mb3) +function MouseX() +function MouseY() +function MouseButton(mb) +sub GetMouseWheel(byref x_axis, byref y_axis) +function MouseWheelX() +function MouseWheelY() +sub GetGlobalMouse(ByRef x, ByRef y, ByRef mb1, ByRef mb2, ByRef mb3) +function GlobalMouseX() +function GlobalMouseY() +sub WarpMouse(x, y) +sub WarpMouseGlobal(x, y) +sub SetMouseZone(x, y, w, h) +sub ClearMouseZone() diff --git a/rcbasic_build/intern_lib/lights.bas b/rcbasic_build/intern_lib/lights.bas new file mode 100644 index 0000000..ceb652c --- /dev/null +++ b/rcbasic_build/intern_lib/lights.bas @@ -0,0 +1,20 @@ +function lightIsCastingShadow( actor ) +function getLightType( actor ) +function getLightRadius( actor ) +sub setLightType( actor, light_type ) +sub setLightRadius( actor, radius ) +sub setLightShadowCast( actor, flag ) +sub SetLightAmbientColor( actor, color ) +function GetLightAmbientColor( actor ) +sub SetLightAttenuation( actor, l_constant, l_linear, l_quadratic ) +sub GetLightAttenuation( actor, ByRef constant, ByRef linear, ByRef quadratic) +sub SetLightDiffuseColor( actor, color ) +function GetLightDiffuseColor( actor ) +sub SetLightFalloff( actor, falloff ) +function GetLightFalloff( actor ) +sub SetLightInnerCone( actor, angle ) +function GetLightInnerCone( actor ) +sub SetLightOuterCone( actor, angle) +function GetLightOuterCone( actor ) +sub SetLightSpecularColor( actor, color ) +function GetLightSpecularColor( actor ) diff --git a/rcbasic_build/intern_lib/materials.bas b/rcbasic_build/intern_lib/materials.bas new file mode 100644 index 0000000..904ca90 --- /dev/null +++ b/rcbasic_build/intern_lib/materials.bas @@ -0,0 +1,58 @@ +function createMaterial() +sub deleteMaterial( material_id) +sub setActorMaterial( actor, material_num, material_id) +function getActorMaterial( actor, material_num) +function copyActorMaterial( actor, material_num) +function copyMaterial( smaterial_id) +sub setMaterialTextureCanvas( material_id, level, canvas_id) +sub setMaterialAmbientColor( material_id, color) +function getMaterialAmbientColor( material_id) +sub setMaterialAntiAliasing( material_id, aa) +function getMaterialAntiAliasing( material_id) +sub setMaterialBackfaceCulling( material_id, flag) +function getMaterialBackfaceCulling( material_id) +sub setMaterialBlendFactor( material_id, bf) +function getMaterialBlendFactor( material_id) +sub setMaterialBlendMode( material_id, blend_mode) +function getMaterialBlendMode( material_id) +sub setMaterialColorMask( material_id, color_mask) +function getMaterialColorMask( material_id) +sub setMaterialColorMode( material_id, color_mode) +function getMaterialColorMode( material_id) +sub setMaterialDiffuseColor( material_id, color) +function getMaterialDiffuseColor( material_id) +sub setMaterialEmissiveColor( material_id, color) +function getMaterialEmissiveColor( material_id) +sub setMaterialFog( material_id, flag) +function getMaterialFog( material_id) +sub setMaterialFrontfaceCulling( material_id, flag) +function getMaterialFrontfaceCulling( material_id) +sub setMaterialGouraudShading( material_id, flag) +function materialIsGouraudShaded( material_id) +function materialIsAplhaBlend( material_id) +function materialIsTransparent( material_id) +sub setMaterialLighting( material_id, flag) +function materialIsLit( material_id) +sub setMaterialType( material_id, mat_type) +function getMaterialType( material_id) +sub setMaterialNormalize( material_id, flag) +function materialIsNormalized( material_id) +sub setMaterialPointCloud( material_id, flag) +function materialIsPointCloud( material_id) +sub setMaterialFlag( material_id, material_flag, f_value) +function getMaterialFlag( material_id, material_flag) +sub setMaterialTexture( material_id, level, img_id) +sub setMaterialShininess( material_id, shininess) +function getMaterialShininess( material_id) +sub setMaterialSpecularColor( material_id, color) +function getMaterialSpecularColor( material_id) +sub setMaterialThickness( material_id, thickness) +function getMaterialThickness( material_id) +sub setMaterialWireframe( material_id, flag) +function materialIsWireframe( material_id) +sub setActorTexture( actor, layer, image_id) +function getActorMaterialCount( actor) +sub setActorMaterialFlag( actor, flag, flag_value) +function getActorMaterialFlag( actor, material, flag) +sub setActorMaterialType( actor, material_type) +function getActorMaterialType( actor, material) diff --git a/rcbasic_build/intern_lib/math.bas b/rcbasic_build/intern_lib/math.bas new file mode 100644 index 0000000..b8f7a02 --- /dev/null +++ b/rcbasic_build/intern_lib/math.bas @@ -0,0 +1,37 @@ +function Abs(n) +function Acos(n) +function AndBit(a,b) +function Asin(n) +function Atan(n) +function Bin$(n) +function CInt32(i) +function CInt64(i) +function Cos(n) +function Degrees(r) +function Exp(n) +function Frac(n) +function Hex$(n) +function HexVal(n$) +function Int(n) +function Log(n) +function Max(a, b) +function Min(a, b) +function OrBit(a, b) +function Radians(d) +function Randomize(n) +function Rand(n) +function Round(n) +function Sign(n) +function Sin(n) +function Sqrt(n) +function Tan(n) +function XOrBit(a, b) +Function GetLineIntersection(p0_x, p0_y, p1_x, p1_y, p2_x, p2_y, p3_x, p3_y, ByRef i_x, ByRef i_y) +Function Interpolate(min_a, max_a, mid_a, min_b, max_b) +Function ATan2(y, x) +function PointInQuad(x, y, x1, y1, x2, y2, x3, y3, x4, y4) +function PointInTri(x, y, x1, y1, x2, y2, x3, y3) +Function Distance2D(x1, y1, x2, y2) +Function Distance3D(x1, y1, z1, x2, y2, z2) +function GetCircleLineIntersection(circle_x, circle_y, radius, x1, y1, x2, y2, ByRef ix1, ByRef iy1, ByRef ix2, ByRef iy2) +function GetLinePlaneIntersection(ByRef line_point, ByRef line_direction, ByRef plane_point_1, ByRef plane_point_2, ByRef plane_point_3, ByRef intersection) diff --git a/rcbasic_build/intern_lib/matrix.bas b/rcbasic_build/intern_lib/matrix.bas new file mode 100644 index 0000000..073efda --- /dev/null +++ b/rcbasic_build/intern_lib/matrix.bas @@ -0,0 +1,54 @@ +function DimMatrix(m_rows, m_cols) +Sub DeleteMatrix(mA) +function AddMatrix(mA, mB, mC) +function AugmentMatrix(mA, mB, mC) +sub CopyMatrix(mA, mB) +function InsertMatrixColumns(mA, c, num_cols) +function InsertMatrixRows(mA, r, num_rows) +function MultiplyMatrix(mA, mB, mC) +function CubeMatrix(mA, mB) +function DeleteMatrixColumns(mA, c, num_cols) +function DeleteMatrixRows(mA, r, num_rows) +sub ClearMatrix(mA) +function ClearMatrixColumns(mA, c, num_cols) +function ClearMatrixRows(mA, r, num_rows) +sub FillMatrix(mA, v) +function FillMatrixColumns(mA, c, num_cols, v) +function FillMatrixRows(mA, r, num_rows, v) +function CopyMatrixColumns(mA, mB, c, num_cols) +function CopyMatrixRows(mA, mB, r, num_rows) +sub SetIdentityMatrix(mA, n) +function SolveMatrix(mA, mB, mC) +function IsEqualMatrix(mA, mB, tolerance) +function Determinant(mA) +function AdjointMatrix(mA, mB) +function InvertMatrix(mA, mB) +sub MatrixFromBuffer(mA, r, c, ByRef buffer) +sub BufferFromMatrix(ByRef buffer, mA) +sub RandomizeMatrix(mA, vmin, vmax) +function MatrixValue(mA, r, c) +sub SetMatrixValue(mA, r, c, v) +sub ScalarMatrix(mA, mB, s_value) +function ScalarMatrixColumns(mA, mB, c, num_cols, s_value) +function ScalarMatrixRows(mA, mB, r, num_rows, s_value) +function SquareMatrix(mA, mB) +sub CofactorMatrix(mA, r, c) +function SubtractMatrix(mA, mB, mC) +sub SwapMatrix(mA, mB) +function SwapMatrixColumn(mA, C1, C2) +function SwapMatrixRow(mA, R1, R2) +function TransposeMatrix(mA, mB) +function UnAugmentMatrix(mA, mB, mC) +sub ZeroMatrix(mA) +sub GetMatrixSize(mA, ByRef r, ByRef c) +sub IncrementMatrixRows(mA, mB, r, num_rows, value) +sub IncrementMatrixColumns(mA, mB, c, num_cols, value) +sub JoinMatrixRows(mA, mB, mC) +sub JoinMatrixColumns(mA, mB, mC) +sub ClipMatrix(mA, r, c, num_rows, num_cols, mB) +sub SetMatrixTranslation( mA, x, y, z ) +sub SetMatrixRotation( mA, x, y, z ) +sub SetMatrixScale( mA, x, y, z ) +sub GetMatrixTranslation( mA, ByRef x, ByRef y, ByRef z) +sub GetMatrixRotation( mA, ByRef x, ByRef y, ByRef z) +sub GetMatrixScale( mA, ByRef x, ByRef y, ByRef z) diff --git a/rcbasic_build/intern_lib/mesh.bas b/rcbasic_build/intern_lib/mesh.bas new file mode 100644 index 0000000..93e7840 --- /dev/null +++ b/rcbasic_build/intern_lib/mesh.bas @@ -0,0 +1,5 @@ +function LoadMesh( mesh_file$ ) +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$ ) diff --git a/rcbasic_build/intern_lib/network.bas b/rcbasic_build/intern_lib/network.bas new file mode 100644 index 0000000..44e8627 --- /dev/null +++ b/rcbasic_build/intern_lib/network.bas @@ -0,0 +1,18 @@ +function CheckSockets(timeout_ms) +function TCP_SocketReady(socket) +function UDP_SocketReady(socket) +function TCP_OpenSocket(host$, port) +sub TCP_CloseSocket(socket) +function TCP_RemoteHost(socket) +function TCP_RemotePort(socket) +function TCP_GetData(socket, numBytes, ByRef sData$) +sub TCP_SendData(socket, sData$) +function TCP_AcceptSocket(server, client) +function UDP_OpenSocket(port) +sub UDP_CloseSocket(socket) +function UDP_GetData(socket, byref host$, byref port, byref sData$) +function UDP_Length() +function UDP_MaxLength() +function UDP_RemoteHost$(socket) +function UDP_RemotePort(socket) +sub UDP_SendData(socket, host$, port, sData$) diff --git a/rcbasic_build/intern_lib/particles.bas b/rcbasic_build/intern_lib/particles.bas new file mode 100644 index 0000000..68adf58 --- /dev/null +++ b/rcbasic_build/intern_lib/particles.bas @@ -0,0 +1,43 @@ +sub startParticleEmitter( actor) +sub stopParticleEmitter( actor) +sub setParticleDirection( actor, x, y, z) +sub getParticleDirection( actor, ByRef x, ByRef y, ByRef z) +sub useParticleEveryMeshVertex( actor, flag) +function particleIsUsingEveryMeshVertex( actor) +sub setParticleNormalDirectionMod( actor, nd_mod) +function getParticleNormalDirectionMod( actor) +sub useParticleNormalDirection( actor, flag) +function particleIsUsingNormalDirection( actor) +sub setParticleMesh( actor, mesh) +sub setParticleMinParticlesPerSecond( actor, minParticlesPerSecond) +function getParticleMinParticlesPerSecond( actor) +sub setParticleMaxParticlesPerSecond( actor, maxParticlesPerSecond) +function getParticleMaxParticlesPerSecond( actor) +sub setParticleMinStartColor( actor, color) +function getParticleMinStartColor( actor) +sub setParticleMaxStartColor( actor, color) +function getParticleMaxStartColor( actor) +sub setParticleMinLife( actor, minLife) +function getParticleMinLife( actor) +sub setParticleMaxLife( actor, maxLife) +function getParticleMaxLife( actor) +sub setParticleMaxAngle( actor, maxAngle) +function getParticleMaxAngle( actor) +sub setParticleMinStartSize( actor, w, h) +sub getParticleMinStartSize( actor, ByRef w, ByRef h) +sub setParticleMaxStartSize( actor, w, h) +sub getParticleMaxStartSize( actor, ByRef w, ByRef h) +sub setParticleCenter( actor, x, y, z) +sub getParticleCenter( actor, ByRef x, ByRef y, ByRef z) +sub setParticleRadius( actor, radius) +function getParticleRadius( actor) +sub setParticleRingThickness( actor, ringThickness) +function getParticleRingThickness( actor) +sub setParticleBox( actor, min_x, min_y, min_z, max_x, max_y, max_z) +sub getParticleBox( actor, ByRef min_x, ByRef min_y, ByRef min_z, ByRef max_x, ByRef max_y, ByRef max_z) +sub setParticleNormal( actor, x, y, z) +sub getParticleNormal( actor, ByRef x, ByRef y, ByRef z) +sub setParticleLength( actor, p_len) +function getParticleLength( actor) +sub useParticleOutlineOnly( actor, flag) +function particleIsUsingOutlineOnly( actor) diff --git a/rcbasic_build/intern_lib/prim2d.bas b/rcbasic_build/intern_lib/prim2d.bas new file mode 100644 index 0000000..fa23cbb --- /dev/null +++ b/rcbasic_build/intern_lib/prim2d.bas @@ -0,0 +1,14 @@ +sub Circle(x,y,radius) +sub CircleFill(x,y,radius) +sub Ellipse(x,y,rx,ry) +sub EllipseFill(x,y,rx,ry) +sub FloodFill(x,y) +function GetPixel(x,y) +sub SetColor(c) +sub Line(x1, y1, x2, y2) +sub Poly(n, byref x, byref y) +sub Rect(x, y, w, h) +sub RectFill(x, y, w, h) +function RGB(r,g,b) +function RGBA(r,g,b,a) +sub Pset(x,y) diff --git a/rcbasic_build/intern_lib/process.bas b/rcbasic_build/intern_lib/process.bas new file mode 100644 index 0000000..e69de29 diff --git a/rcbasic_build/intern_lib/scene.bas b/rcbasic_build/intern_lib/scene.bas new file mode 100644 index 0000000..48a6986 --- /dev/null +++ b/rcbasic_build/intern_lib/scene.bas @@ -0,0 +1,7 @@ +sub AddSceneSkyBox( img_top, img_bottom, img_left, img_right, img_front, img_back) +sub AddSceneSkyDome( img ) +sub AddSceneSkyDomeEx( img, horiRes, vertRes, txPercentage, spherePercentage, radius) +sub RemoveSceneSky( ) +sub SetWorld3DDeltaTime( dt ) +sub SetWorld3DMaxSubSteps( steps ) +sub SetWorld3DTimeStep( ts ) diff --git a/rcbasic_build/intern_lib/sprite_physics.bas b/rcbasic_build/intern_lib/sprite_physics.bas new file mode 100644 index 0000000..e69de29 diff --git a/rcbasic_build/intern_lib/sprites.bas b/rcbasic_build/intern_lib/sprites.bas new file mode 100644 index 0000000..513f10c --- /dev/null +++ b/rcbasic_build/intern_lib/sprites.bas @@ -0,0 +1,3 @@ +function CreateSprite( img ) +Sub DeleteSprite( sprite ) +Sub SetSpritePosition( sprite, x, y ) diff --git a/rcbasic_build/intern_lib/stacks.bas b/rcbasic_build/intern_lib/stacks.bas new file mode 100644 index 0000000..43fee8b --- /dev/null +++ b/rcbasic_build/intern_lib/stacks.bas @@ -0,0 +1,12 @@ +function CreateStack_N( ) +function CreateStack_S() +sub ClearStack_N( num_stack ) +sub ClearStack_S( str_stack ) +sub DeleteStack_N( num_stack ) +sub DeleteStack_S( str_stack ) +sub Push_N( num_stack, n ) +function Pop_N( num_stack ) +sub Push_S( str_stack, s$ ) +function Pop_S$( str_stack ) +function Stack_Size_N( num_stack ) +function Stack_Size_S( str_stack ) diff --git a/rcbasic_build/intern_lib/strings.bas b/rcbasic_build/intern_lib/strings.bas new file mode 100644 index 0000000..e4c448c --- /dev/null +++ b/rcbasic_build/intern_lib/strings.bas @@ -0,0 +1,26 @@ +function Asc(c$) +function Chr$(n) +function Insert$(src$, tgt$, pos) +function InStr(src$, substr$) +function Lcase$(src$) +function Left$(src$, n) +function Length(src$) +function Len(src$) +function Ltrim$(src$) +function Mid$(src$, start, n) +function ReplaceSubstr$(src$, rpc$, pos) +function Replace$(src$, tgt$, rpc$) +function Reverse$(src$) +function Right$(src$, n) +function Rtrim$(src$) +function StringFill$(src$, n) +function Str$(n) +function Str_F$(n) +function Str_S$(n) +function Tally(src$, substr$) +function Trim$(src$) +function Ucase$(src$) +function Val(n$) +function Size(s$) +function BufferFromString(s$, ByRef buffer) +function StringFromBuffer$(ByRef buffer, buffer_size) diff --git a/rcbasic_build/intern_lib/system.bas b/rcbasic_build/intern_lib/system.bas new file mode 100644 index 0000000..c3ad89d --- /dev/null +++ b/rcbasic_build/intern_lib/system.bas @@ -0,0 +1,21 @@ +function System(cmd$) +function OS$() +function Command$(arg) +function NumCommands() +function Env$(v$) +sub SetEnv(var$, value$) +function PrefPath$(org_name$, app_name$) +function Android_GetExternalStoragePath$() +function Android_GetExternalStorageState() +function Android_GetInternalStoragePath$() +function Android_JNI_Message$(arg$) +function Runtime_Utility_Message$(arg$) +Sub GetDesktopDisplayMode(index, ByRef w, ByRef h, ByRef freq) +Sub GetPowerInfo(ByRef status, ByRef secs, ByRef pct) +Function EvalJS$(js_code$) 'Only useable in Emscripten +function SystemReturnStdOut$(cmd$) +function OpenURL(url$) +function MessageBox(title$, msg$) +function Runtime$() +function NumCPUs() +function SystemRam() diff --git a/rcbasic_build/intern_lib/terrain.bas b/rcbasic_build/intern_lib/terrain.bas new file mode 100644 index 0000000..8cce10f --- /dev/null +++ b/rcbasic_build/intern_lib/terrain.bas @@ -0,0 +1,9 @@ +sub GetTerrainPatchAABB( actor, patchX, patchZ, ByRef minX, ByRef minY, ByRef minZ, ByRef maxX, ByRef maxY, ByRef maxZ ) +function GetTerrainPatchLOD( actor, patchX, patchZ ) +function GetTerrainHeight( actor, patchX, patchZ ) +sub GetTerrainCenter( actor, ByRef x, ByRef y, ByRef z ) +sub SetTerrainLODDistance( actor, LOD, distance ) +sub ScaleTerrainTexture( actor, scale, scale2 ) +sub SetTerrainCameraMovementDelta( actor, delta ) +sub SetTerrainCameraRotationDelta( actor, delta ) +sub SetTerrainPatchLOD( actor, patchX, patchZ, LOD ) diff --git a/rcbasic_build/intern_lib/text.bas b/rcbasic_build/intern_lib/text.bas new file mode 100644 index 0000000..e19086f --- /dev/null +++ b/rcbasic_build/intern_lib/text.bas @@ -0,0 +1,8 @@ +function LoadFont(fnt_file$, font_size) +sub DeleteFont(slot) +Function FontExists(slot) +sub SetFont(slot) +sub DrawText(txt$, x, y) +sub GetTextSize(txt$, byref w, byref h) +function GetTextWidth(txt$) +function GetTextHeight(txt$) diff --git a/rcbasic_build/intern_lib/textedit.bas b/rcbasic_build/intern_lib/textedit.bas new file mode 100644 index 0000000..df16344 --- /dev/null +++ b/rcbasic_build/intern_lib/textedit.bas @@ -0,0 +1,5 @@ +sub ReadInput_Start() +sub ReadInput_Stop() +function ReadInput_Text$() +sub ReadInput_SetText(txt$) +sub ReadInput_ToggleBackspace(flag) diff --git a/rcbasic_build/intern_lib/tilemaps.bas b/rcbasic_build/intern_lib/tilemaps.bas new file mode 100644 index 0000000..e69de29 diff --git a/rcbasic_build/intern_lib/touch.bas b/rcbasic_build/intern_lib/touch.bas new file mode 100644 index 0000000..5fe93d0 --- /dev/null +++ b/rcbasic_build/intern_lib/touch.bas @@ -0,0 +1,11 @@ +function TouchPressure() +sub GetTouch(byref status, byref x, byref y, byref dx, byref dy) +sub GetMultiTouch(byref status, byref x, byref y, byref fingers, byref dist, byref theta) +sub GetTouchFinger(finger, byref x, byref y, byref pressure) +function NumFingers() +sub GetAccel(accel_num, ByRef x, ByRef y, ByRef z) +function AccelName$(accel_num) +function NumAccels() +sub GetGyro(gyro_num, ByRef x, ByRef y, ByRef z) +function GyroName$(gyro_num) +function NumGyros() diff --git a/rcbasic_build/intern_lib/video.bas b/rcbasic_build/intern_lib/video.bas new file mode 100644 index 0000000..1fac1ee --- /dev/null +++ b/rcbasic_build/intern_lib/video.bas @@ -0,0 +1,17 @@ +sub LoadVideo(vid$) +sub PlayVideo(vLoops) +sub PauseVideo() +sub StopVideo() +sub SetVideoPosition(pos) +sub ResumeVideo() +function GetVideoPosition() +sub DeleteVideo() +function VideoIsPlaying() +function VideoEnd() +sub GetVideoStats(vFile$, byref vLen, byref vfps, byref frame_w, byref frame_h) +sub SetVideoDrawRect(x, y, w, h) +sub GetVideoDrawRect(byref x, byref y, byref w, byref h) +sub GetVideoSize(byref w, byref h) +function VideoExists() +sub SetVideoVolume( vol ) +function GetVideoVolume( ) diff --git a/rcbasic_build/intern_lib/water.bas b/rcbasic_build/intern_lib/water.bas new file mode 100644 index 0000000..f7f95f9 --- /dev/null +++ b/rcbasic_build/intern_lib/water.bas @@ -0,0 +1,10 @@ +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 new file mode 100644 index 0000000..0972cd0 --- /dev/null +++ b/rcbasic_build/intern_lib/window.bas @@ -0,0 +1,50 @@ +Function OpenWindow( title$, w, h, fullscreen, vsync ) +function OpenWindowEx(title$, x, y, w, h, mode, aa, stencil_buffer, vsync) +sub CloseWindow( ) +sub RaiseWindow( ) +sub Update() +sub Cls() +sub SetClearColor(c) +sub ShowWindow( ) +sub HideWindow( ) +sub SetWindowTitle( title$ ) +function WindowTitle$( ) +sub SetWindowPosition( x, y ) +sub GetWindowPosition( byref x, byref y ) +sub SetWindowSize( w, h ) +sub GetWindowSize( byref w, byref h ) +sub SetWindowMinSize( w, h) +sub GetWindowMinSize( byref w, byref h) +sub SetWindowMaxSize( w, h) +sub GetWindowMaxSize( byref w, byref h) +function WindowIsFullscreen() +function WindowIsVisible() +function WindowIsBordered() +function WindowIsResizable() +function WindowIsMinimized() +function WindowIsMaximized() +function WindowHasInputFocus() +function WindowHasMouseFocus() +sub SetWindowFullscreen( flag) +sub MaximizeWindow() +sub MinimizeWindow() +sub SetWindowBordered( flag) +function WindowClip(x, y, w, h) +function WindowExists() +function WindowEvent_Close() +function WindowEvent_Maximize() +function WindowEvent_Minimize() +function FPS() +sub SetWindowIcon( slot) +function WindowEvent_Resize() +sub SetWindowAutoClose( exit_on_close ) +sub SetWindowResizable( flag ) +function WindowMode(visible, fullscreen, resizable, borderless, highDPI) +function getWindowMode( ) +sub RestoreWindow( ) +sub GrabInput(flag) +sub SetWindowAlwaysOnTop( flag ) +sub SetMouseRelative(flag) +sub SetWindowVSync( flag ) +function FlashWindow( flag ) +function WindowIsGrabbed( ) diff --git a/rcbasic_build/keywords.h b/rcbasic_build/keywords.h old mode 100644 new mode 100755 diff --git a/rcbasic_build/main.cpp b/rcbasic_build/main.cpp old mode 100644 new mode 100755 index 7d2024c..1567007 --- a/rcbasic_build/main.cpp +++ b/rcbasic_build/main.cpp @@ -322,6 +322,11 @@ bool rc_eval_embedded(string line) return false; } + if(!rc_preprocessor()) + { + return false; + } + if(tmp_token.size()==0) return true; //cout << "-------START TOKENS--------" << endl; @@ -493,8 +498,73 @@ bool rcbasic_compile() //debug_output_VMASM(); } +struct rc_dev_case_functions +{ + std::string code; + bool case_exception = false; +}; + void rcbasic_export_dev() { + std::vector rt_case_functions; + std::string input_line = ""; + + std::vector builtin_fn; + std::vector builtin_types; + std::vector builtin_var; + + + std::string builtin_temp = ""; + fstream rt_builtin_temp_file("intern_inc/rc_builtin_template.h", fstream::in); + while(!rt_builtin_temp_file.eof()) + { + getline(rt_builtin_temp_file, input_line); + builtin_temp += input_line + "\n"; + } + rt_builtin_temp_file.close(); + + fstream rt_case_file("intern_inc/switch_cases.h", fstream::in); + + if(!rt_case_file.is_open()) + return; + + while(!rt_case_file.eof()) + { + getline(rt_case_file, input_line); + if(input_line.substr(0,1).compare("#")==0) + { + std::string case_exception_file = input_line.substr(1); + fstream cf(case_exception_file, fstream::in); + input_line = ""; + std::string cf_contents = ""; + while(!cf.eof()) + { + getline(cf, input_line); + if(input_line.compare("") != 0) + cf_contents += "\t" + input_line + "\n"; + } + cf.close(); + + rc_dev_case_functions obj; + obj.case_exception = true; + obj.code = cf_contents; + rt_case_functions.push_back(obj); + } + else if(input_line.compare("") != 0) + { + rc_dev_case_functions obj; + obj.case_exception = false; + obj.code = input_line; + rt_case_functions.push_back(obj); + } + } + + rt_case_file.close(); + + //std::cout << "id_size ( " << rt_case_functions.size() << " ~ " << id[i].vmFunctionIndex << " ) " << std::endl << std::endl; + //return; + + string fn_line = ""; fstream f("rcbasic_dev.txt", fstream::out | fstream::trunc); fstream f2("rcbasic_dev2.txt", fstream::out | fstream::trunc); @@ -514,29 +584,52 @@ void rcbasic_export_dev() case ID_TYPE_FN_NUM: output_line += "ID_TYPE_FN_NUM);"; f2 << fn_line << endl; - f3 << "case FN_" << id[i].name << ": //Number Function" << endl << "break;" << endl; + f3 << "case FN_" << id[i].name << ": //Number Function" << endl; + if(rt_case_functions[id[i].vmFunctionIndex].case_exception) + f3 << rt_case_functions[id[i].vmFunctionIndex].code << endl; + else + f3 << "\t" << " rc_push_num(" << rt_case_functions[id[i].vmFunctionIndex].code << ");" << endl; + f3 << "\tbreak;" << endl; break; case ID_TYPE_FN_STR: output_line += "ID_TYPE_FN_STR);"; f2 << fn_line << endl; - f3 << "case FN_" << id[i].name << ": //String Function" << endl << "break;" << endl; + f3 << "case FN_" << id[i].name << ": //String Function" << endl; + if(rt_case_functions[id[i].vmFunctionIndex].case_exception) + f3 << rt_case_functions[id[i].vmFunctionIndex].code << endl; + else + f3 << "\t" << " rc_push_str(" << rt_case_functions[id[i].vmFunctionIndex].code << ");" << endl; + f3 << "\tbreak;" << endl; break; case ID_TYPE_FN_USER: - output_line += "ID_TYPE_FN_STR);"; + output_line += "ID_TYPE_FN_USER);"; f2 << fn_line << endl; - f3 << "case FN_" << id[i].name << ": //UDT Function" << endl << "break;" << endl; + f3 << "case FN_" << id[i].name << ": //UDT Function" << endl; + if(rt_case_functions[id[i].vmFunctionIndex].case_exception) + f3 << rt_case_functions[id[i].vmFunctionIndex].code << endl; + else + f3 << "\t" << " rc_push_usr(" << rt_case_functions[id[i].vmFunctionIndex].code << ");" << endl; + f3 << "\tbreak;" << endl; break; case ID_TYPE_SUB: output_line += "ID_TYPE_SUB);"; f2 << fn_line << endl; - f3 << "case FN_" << id[i].name << ": //Sub Procedure" << endl << "break;" << endl; + f3 << "case FN_" << id[i].name << ": //Sub Procedure" << endl; + if(rt_case_functions[id[i].vmFunctionIndex].case_exception) + f3 << rt_case_functions[id[i].vmFunctionIndex].code << endl; + else + f3 << "\t" << rt_case_functions[id[i].vmFunctionIndex].code << ";" << endl; + f3 << "\tbreak;" << endl; break; default: continue; } f << output_line << endl; + builtin_fn.push_back(output_line); + output_line = ""; string fn_arg_utype = ""; + for(int n = 0; n < id[i].num_args; n++) { fn_line = "#define " + StringToUpper(id[i].name + "_" + id[i].fn_arg[n]) + " "; @@ -547,19 +640,19 @@ void rcbasic_export_dev() case ID_TYPE_NUM: output_line += "ID_TYPE_NUM);"; //fn_line += "num_var[" + rc_intToString(id[i].fn_arg_vec[n]) + "].nid_value[0].value[0]"; - fn_line += "num_var[" + rc_intToString(id[i].fn_arg_vec[n]) + "].nid_value.value[ num_var[" + rc_intToString(id[i].fn_arg_vec[n]) + "].byref_offset ]"; + fn_line += "num_var[" + rc_intToString(id[i].fn_arg_vec[n]) + "].nref[0].value[ num_var[" + rc_intToString(id[i].fn_arg_vec[n]) + "].byref_offset ]"; break; case ID_TYPE_BYREF_NUM: output_line += "ID_TYPE_BYREF_NUM);"; - fn_line += "num_var[" + rc_intToString(id[i].fn_arg_vec[n]) + "].nid_value.value[ num_var[" + rc_intToString(id[i].fn_arg_vec[n]) + "].byref_offset ]"; + fn_line += "num_var[" + rc_intToString(id[i].fn_arg_vec[n]) + "].nref[0].value[ num_var[" + rc_intToString(id[i].fn_arg_vec[n]) + "].byref_offset ]"; break; case ID_TYPE_STR: output_line += "ID_TYPE_STR);"; - fn_line += "str_var[" + rc_intToString(id[i].fn_arg_vec[n]) + "].sid_value.value[ str_var[" + rc_intToString(id[i].fn_arg_vec[n]) + "].byref_offset ]"; + fn_line += "str_var[" + rc_intToString(id[i].fn_arg_vec[n]) + "].sref[0].value[ str_var[" + rc_intToString(id[i].fn_arg_vec[n]) + "].byref_offset ]"; break; case ID_TYPE_BYREF_STR: output_line += "ID_TYPE_BYREF_STR);"; - fn_line += "str_var[" + rc_intToString(id[i].fn_arg_vec[n]) + "].sid_value.value[ str_var[" + rc_intToString(id[i].fn_arg_vec[n]) + "].byref_offset ]"; + fn_line += "str_var[" + rc_intToString(id[i].fn_arg_vec[n]) + "].sref[0].value[ str_var[" + rc_intToString(id[i].fn_arg_vec[n]) + "].byref_offset ]"; break; case ID_TYPE_USER: //fn_arg_utype = ""; @@ -577,7 +670,8 @@ void rcbasic_export_dev() break; } f2 << fn_line << endl; - f << output_line << endl; + f << output_line << endl; //I am generating the dev file for debug purposes only + builtin_fn.push_back(output_line); } } @@ -587,17 +681,21 @@ void rcbasic_export_dev() output_line = "create_type(\"" + utype[i].name + "\");"; f4 << output_line << endl; + builtin_types.push_back(output_line); for(int n = 0; n < utype[i].num_members; n++) { output_line = "vm_asm.push_back(\"mov n0 " + rc_intToString(utype[i].member_dim[n].dim_size[0]) + "\");"; f4 << output_line << endl; + builtin_types.push_back(output_line); output_line = "vm_asm.push_back(\"mov n1 " + rc_intToString(utype[i].member_dim[n].dim_size[1]) + "\");"; f4 << output_line << endl; + builtin_types.push_back(output_line); output_line = "vm_asm.push_back(\"mov n2 " + rc_intToString(utype[i].member_dim[n].dim_size[2]) + "\");"; f4 << output_line << endl; + builtin_types.push_back(output_line); int ut_index = utype[i].member_utype_index[n]; string member_utype_name = ""; @@ -618,6 +716,7 @@ void rcbasic_export_dev() output_line = "add_type_member(\"" + utype[i].member_name[n] + "\", " + rc_intToString(utype[i].member_type[n]) + ", \"" + member_utype_name + "\", " + rc_intToString(utype[i].member_dim_count[n]) + ", \"n0\", \"n1\", \"n2\");"; f4 << output_line << endl; + builtin_types.push_back(output_line); } } @@ -625,6 +724,79 @@ void rcbasic_export_dev() f2.close(); f3.close(); f4.close(); + + //Generate rc_builtin.h + fstream rt_builtin_gen_file("rc_builtin.h", fstream::out | fstream::trunc); + rt_builtin_gen_file << "#ifndef RC_BUILTIN_H_INCLUDED" << endl; + rt_builtin_gen_file << "#define RC_BUILTIN_H_INCLUDED" << endl; + rt_builtin_gen_file << "#include \"identifier.h\"" << endl; + rt_builtin_gen_file << endl; + + rt_builtin_gen_file << "void init_embedded_functions()" << endl; + rt_builtin_gen_file << "{" << endl; + for(int i = 0; i < builtin_fn.size(); i++) + rt_builtin_gen_file << "\t" << builtin_fn[i] << endl; + rt_builtin_gen_file << "}" << endl; + rt_builtin_gen_file << endl; + + rt_builtin_gen_file << "void init_embedded_types()" << endl; + rt_builtin_gen_file << "{" << endl; + for(int i = 0; i < builtin_types.size(); i++) + rt_builtin_gen_file << "\t" << builtin_types[i] << endl; + rt_builtin_gen_file << "}" << endl; + rt_builtin_gen_file << endl; + + + rt_builtin_gen_file << "void init_embedded_variables()" << endl; + rt_builtin_gen_file << "{" << endl; + for(int i = 0; i < builtin_var.size(); i++) + rt_builtin_gen_file << "\t" << builtin_var[i] << endl; + rt_builtin_gen_file << "}" << endl; + rt_builtin_gen_file << endl; + + rt_builtin_gen_file << "#endif // RC_BUILTIN_H_INCLUDED" << endl; + rt_builtin_gen_file.close(); + + + //Generate rc_defines.h + fstream rt_defines_gen_file("../rcbasic_runtime/rc_defines.h", fstream::out | fstream::trunc); + fstream dev_defines_file("rcbasic_dev2.txt", fstream::in); + input_line = ""; + + rt_defines_gen_file << "#ifndef RC_DEFINES_H_INCLUDED" << endl; + rt_defines_gen_file << "#define RC_DEFINES_H_INCLUDED" << endl; + rt_defines_gen_file << endl; + + while(!dev_defines_file.eof()) + { + getline(dev_defines_file, input_line); + rt_defines_gen_file << input_line << endl; + } + + rt_defines_gen_file << endl; + rt_defines_gen_file << "#endif // RC_DEFINES_H_INCLUDED" << endl; + + dev_defines_file.close(); + rt_defines_gen_file.close(); + + + //Generate RCBasic to C++ function map cases + fstream dev_case_file("rcbasic_dev3.txt", fstream::in); + fstream rt_switch_case_file("../rcbasic_runtime/rc_func130_cases.h", fstream::out | fstream::trunc); + + input_line = ""; + + while(!dev_case_file.eof()) + { + getline(dev_case_file, input_line); + rt_switch_case_file << input_line << endl; + } + + dev_case_file.close(); + rt_switch_case_file.close(); + + + cout << "rcbasic_dev file was created" << endl; } @@ -633,10 +805,13 @@ bool rcbasic_embedded() int current_file = 0; string line = ""; - while( getline(rcbasic_file, line) ) + while( rc_getline(line) ) { cout << "line " << rcbasic_program.top().line_number << ": " << rcbasic_file.tellg() << " -> " << line << endl; //rcbasic_program.top().line_position = rcbasic_file.tellg(); + if(!rcbasic_program.top().eof_reached) + rcbasic_program.top().line_position = rcbasic_file.tellg(); + if(!rc_eval_embedded(line)) { cout << "Error on Line " << rcbasic_program.top().line_number << ": " << rc_getError() << endl; @@ -664,7 +839,11 @@ void rcbasic_dev(string dev_input_file) if(rcbasic_loadProgram(dev_input_file)) { - rcbasic_embedded(); + if(!rcbasic_embedded()) + { + std::cout << "ERROR: Failed to compose embedded args" << std::endl; + return; + } rcbasic_export_dev(); rcbasic_clean(); } @@ -731,7 +910,7 @@ void rcbasic_output_debug_info() int main(int argc, char * argv[]) { - string line = ""; + string line = ""; //rcbasic_dev("embedded_functions.bas"); rcbasic_output_debug_info(); return 0; @@ -740,7 +919,7 @@ int main(int argc, char * argv[]) bool clean_after_build = false; //DEBUG START - rc_filename = "/home/n00b/Projects/tst/test_types.bas"; + rc_filename = "/home/n00b/Projects/RCBASIC4/rcbasic_runtime/bin/Release/unittest.bas"; //DEBUG END if(argc > 1) diff --git a/rcbasic_build/main.rc_asm b/rcbasic_build/main.rc_asm new file mode 100644 index 0000000..657fde6 --- /dev/null +++ b/rcbasic_build/main.rc_asm @@ -0,0 +1,65 @@ +.code +preset$ !0 +preset !1 +preset_t !0 !0 +preset_t !1 !0 +preset !2 +preset !3 +preset !4 +preset !5 +preset !6 +preset !7 +preset$ !2 +preset !11 +preset !12 +preset !13 +.code +dim_tfield !1 !0 !0 !0 n0 n0 n0 +mov n0 8 +dim_tfield !2 !2 !0 !1 n0 n0 n0 +dim_tfield !2 !0 !1 !0 n0 n0 n0 +mov n0 6 +dim_type1 !2 !2 n0 +mov n0 4 +dim_type1 !3 !2 n0 +mov n0 4 +dim_type1 !4 !2 n0 +mov n0 3 +mov n1 6 +obj_usr_init1 !2 n0 +obj_usr1 !0 n1 +obj_usr_n !0 +obj_usr_get n2 +mov n3 13 +mov_r n2 n3 +mov$ s0 @0 +print$ s0 +mov n0 3 +mov n1 6 +obj_usr_init1 !3 n0 +obj_usr1 !0 n1 +obj_usr_n !0 +obj_usr_get n2 +print n2 +println +mov n0 0 +obj_usr_init1 !2 n0 +obj_usr_get u0 +mov n0 0 +obj_usr_init1 !3 n0 +obj_usr_get u1 +uref_ptr !0 u0 +uref_ptr !1 u1 +func !17 +pop_ptr !2 +mov$ s0 @10 +print$ s0 +mov n0 3 +mov n1 6 +obj_usr_init1 !3 n0 +obj_usr1 !0 n1 +obj_usr_n !0 +obj_usr_get n2 +print n2 +println +end diff --git a/rcbasic_build/main.rc_data b/rcbasic_build/main.rc_data new file mode 100644 index 0000000..8738bdd --- /dev/null +++ b/rcbasic_build/main.rc_data @@ -0,0 +1,11 @@ +5 +2 +3 +0 +0 +0 +0 +14 +3 +5 +0 diff --git a/rcbasic_build/main_str_data.sdata b/rcbasic_build/main_str_data.sdata new file mode 100644 index 0000000..d1796a8 Binary files /dev/null and b/rcbasic_build/main_str_data.sdata differ diff --git a/rcbasic_build/parser.h b/rcbasic_build/parser.h old mode 100644 new mode 100755 index 0142b1f..1892ef3 --- a/rcbasic_build/parser.h +++ b/rcbasic_build/parser.h @@ -2362,12 +2362,39 @@ bool pre_parse(int start_token = 0, int end_token = -1, int pp_flags, bool eval_ int ut_info = -1; int ut_index = -1; getRegInfo(args[n], ut_info, ut_index); + + if(n==1 && StringToLower(id[expr_id].name).compare("typearraycopy")==0) + { + int uti_1 = -1; + int utx_1 = -1; + getRegInfo(args[0], uti_1, utx_1); + + if(byref_type_exception.size()>=2) + { + byref_type_exception[0].exception_used = true; + byref_type_exception[1].exception_used = true; + } + + if(utx_1 < 0 || (uti_1 != ID_TYPE_USER && uti_1 != ID_TYPE_BYREF_USER) || (ut_info != ID_TYPE_USER && ut_info != ID_TYPE_BYREF_USER) ) + { + rc_setError("Invalid identifier for ByRef argument"); + return false; + } + + //cout << id[expr_id].name << " ARGS = " << ut_index << ", " << utx_1 << endl; + if(ut_index != utx_1) + { + rc_setError("Expected \"" + utype[utx_1].name + "\" identifier for ByRef argument"); + return false; + } + } + if(ut_index != id[expr_id].fn_arg_utype[n] && (!byref_type_generic(utype[id[expr_id].fn_arg_utype[n]].name))) { rc_setError("Expected \"" + utype[id[expr_id].fn_arg_utype[n]].name + "\" identifier for ByRef argument"); return false; } - //cout << "BYREF USER MATCH ID: " << id[expr_id].fn_arg[n] << endl; + //cout << "BYREF USER MATCH ID: " << id[expr_id].fn_arg[n] << " ==> " << args[n] << endl; vm_asm.push_back("uref_ptr !" + rc_intToString(id[expr_id].fn_arg_vec[n]) + " " + args[n]); } else if(id[expr_id].fn_arg_type[n] == ID_TYPE_NUM) diff --git a/rcbasic_build/rc_builtin.h b/rcbasic_build/rc_builtin.h old mode 100644 new mode 100755 index 1c6b5b1..20b96a6 --- a/rcbasic_build/rc_builtin.h +++ b/rcbasic_build/rc_builtin.h @@ -1,1448 +1,2524 @@ -#ifndef RC_BUILTIN_H_INCLUDED -#define RC_BUILTIN_H_INCLUDED -#include "identifier.h" - -void init_embedded_functions() -{ - embed_function("FPrint", ID_TYPE_SUB); - add_embedded_arg("txt$", ID_TYPE_STR); - embed_function("Input$", ID_TYPE_FN_STR); - add_embedded_arg("prompt$", ID_TYPE_STR); - embed_function("ArrayDim", ID_TYPE_FN_NUM); - add_embedded_arg("id", ID_TYPE_BYREF_NUM); - embed_function("StringArrayDim", ID_TYPE_FN_NUM); - add_embedded_arg("id$", ID_TYPE_BYREF_STR); - embed_function("NumberArrayDim", ID_TYPE_FN_NUM); - add_embedded_arg("id", ID_TYPE_BYREF_NUM); - embed_function("ArraySize", ID_TYPE_FN_NUM); - add_embedded_arg("id", ID_TYPE_BYREF_NUM); - add_embedded_arg("array_dim", ID_TYPE_NUM); - embed_function("StringArraySize", ID_TYPE_FN_NUM); - add_embedded_arg("id$", ID_TYPE_BYREF_STR); - add_embedded_arg("array_dim", ID_TYPE_NUM); - embed_function("NumberArraySize", ID_TYPE_FN_NUM); - add_embedded_arg("id", ID_TYPE_BYREF_NUM); - add_embedded_arg("array_dim", ID_TYPE_NUM); - embed_function("Abs", ID_TYPE_FN_NUM); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("ACos", ID_TYPE_FN_NUM); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("AndBit", ID_TYPE_FN_NUM); - add_embedded_arg("a", ID_TYPE_NUM); - add_embedded_arg("b", ID_TYPE_NUM); - embed_function("ASin", ID_TYPE_FN_NUM); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("ATan", ID_TYPE_FN_NUM); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("Bin$", ID_TYPE_FN_STR); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("CInt32", ID_TYPE_FN_NUM); - add_embedded_arg("i", ID_TYPE_NUM); - embed_function("CInt64", ID_TYPE_FN_NUM); - add_embedded_arg("i", ID_TYPE_NUM); - embed_function("Cos", ID_TYPE_FN_NUM); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("Degrees", ID_TYPE_FN_NUM); - add_embedded_arg("r", ID_TYPE_NUM); - embed_function("Exp", ID_TYPE_FN_NUM); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("Frac", ID_TYPE_FN_NUM); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("Hex$", ID_TYPE_FN_STR); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("HexVal", ID_TYPE_FN_NUM); - add_embedded_arg("n$", ID_TYPE_STR); - embed_function("Int", ID_TYPE_FN_NUM); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("Log", ID_TYPE_FN_NUM); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("Max", ID_TYPE_FN_NUM); - add_embedded_arg("a", ID_TYPE_NUM); - add_embedded_arg("b", ID_TYPE_NUM); - embed_function("Min", ID_TYPE_FN_NUM); - add_embedded_arg("a", ID_TYPE_NUM); - add_embedded_arg("b", ID_TYPE_NUM); - embed_function("OrBit", ID_TYPE_FN_NUM); - add_embedded_arg("a", ID_TYPE_NUM); - add_embedded_arg("b", ID_TYPE_NUM); - embed_function("Radians", ID_TYPE_FN_NUM); - add_embedded_arg("d", ID_TYPE_NUM); - embed_function("Randomize", ID_TYPE_FN_NUM); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("Rand", ID_TYPE_FN_NUM); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("Round", ID_TYPE_FN_NUM); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("Sign", ID_TYPE_FN_NUM); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("Sin", ID_TYPE_FN_NUM); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("Sqrt", ID_TYPE_FN_NUM); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("Tan", ID_TYPE_FN_NUM); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("XOrBit", ID_TYPE_FN_NUM); - add_embedded_arg("a", ID_TYPE_NUM); - add_embedded_arg("b", ID_TYPE_NUM); - embed_function("Asc", ID_TYPE_FN_NUM); - add_embedded_arg("c$", ID_TYPE_STR); - embed_function("Chr$", ID_TYPE_FN_STR); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("Insert$", ID_TYPE_FN_STR); - add_embedded_arg("src$", ID_TYPE_STR); - add_embedded_arg("tgt$", ID_TYPE_STR); - add_embedded_arg("pos", ID_TYPE_NUM); - embed_function("InStr", ID_TYPE_FN_NUM); - add_embedded_arg("src$", ID_TYPE_STR); - add_embedded_arg("substr$", ID_TYPE_STR); - embed_function("LCase$", ID_TYPE_FN_STR); - add_embedded_arg("src$", ID_TYPE_STR); - embed_function("Left$", ID_TYPE_FN_STR); - add_embedded_arg("src$", ID_TYPE_STR); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("Length", ID_TYPE_FN_NUM); - add_embedded_arg("src$", ID_TYPE_STR); - embed_function("Len", ID_TYPE_FN_NUM); - add_embedded_arg("src$", ID_TYPE_STR); - embed_function("LTrim$", ID_TYPE_FN_STR); - add_embedded_arg("src$", ID_TYPE_STR); - embed_function("Mid$", ID_TYPE_FN_STR); - add_embedded_arg("src$", ID_TYPE_STR); - add_embedded_arg("start", ID_TYPE_NUM); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("ReplaceSubstr$", ID_TYPE_FN_STR); - add_embedded_arg("src$", ID_TYPE_STR); - add_embedded_arg("rpc$", ID_TYPE_STR); - add_embedded_arg("pos", ID_TYPE_NUM); - embed_function("Replace$", ID_TYPE_FN_STR); - add_embedded_arg("src$", ID_TYPE_STR); - add_embedded_arg("tgt$", ID_TYPE_STR); - add_embedded_arg("rpc$", ID_TYPE_STR); - embed_function("Reverse$", ID_TYPE_FN_STR); - add_embedded_arg("src$", ID_TYPE_STR); - embed_function("Right$", ID_TYPE_FN_STR); - add_embedded_arg("src$", ID_TYPE_STR); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("RTrim$", ID_TYPE_FN_STR); - add_embedded_arg("src$", ID_TYPE_STR); - embed_function("StringFill$", ID_TYPE_FN_STR); - add_embedded_arg("src$", ID_TYPE_STR); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("Str$", ID_TYPE_FN_STR); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("Str_F$", ID_TYPE_FN_STR); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("Str_S$", ID_TYPE_FN_STR); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("Tally", ID_TYPE_FN_NUM); - add_embedded_arg("src$", ID_TYPE_STR); - add_embedded_arg("substr$", ID_TYPE_STR); - embed_function("Trim$", ID_TYPE_FN_STR); - add_embedded_arg("src$", ID_TYPE_STR); - embed_function("UCase$", ID_TYPE_FN_STR); - add_embedded_arg("src$", ID_TYPE_STR); - embed_function("Val", ID_TYPE_FN_NUM); - add_embedded_arg("n$", ID_TYPE_STR); - embed_function("Stack_N", ID_TYPE_SUB); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("Stack_S", ID_TYPE_SUB); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("Push_N", ID_TYPE_SUB); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("Pop_N", ID_TYPE_FN_NUM); - embed_function("Push_S", ID_TYPE_SUB); - add_embedded_arg("s$", ID_TYPE_STR); - embed_function("Pop_S$", ID_TYPE_FN_STR); - embed_function("Stack_Size_N", ID_TYPE_FN_NUM); - embed_function("Stack_Size_S", ID_TYPE_FN_NUM); - embed_function("FileOpen", ID_TYPE_FN_NUM); - add_embedded_arg("stream", ID_TYPE_NUM); - add_embedded_arg("fileName$", ID_TYPE_STR); - add_embedded_arg("mode", ID_TYPE_NUM); - embed_function("FileClose", ID_TYPE_SUB); - add_embedded_arg("stream", ID_TYPE_NUM); - embed_function("ReadByte", ID_TYPE_FN_NUM); - add_embedded_arg("stream", ID_TYPE_NUM); - embed_function("WriteByte", ID_TYPE_SUB); - add_embedded_arg("stream", ID_TYPE_NUM); - add_embedded_arg("byte", ID_TYPE_NUM); - embed_function("ReadLine$", ID_TYPE_FN_STR); - add_embedded_arg("stream", ID_TYPE_NUM); - embed_function("Write", ID_TYPE_SUB); - add_embedded_arg("stream", ID_TYPE_NUM); - add_embedded_arg("txt$", ID_TYPE_STR); - embed_function("WriteLine", ID_TYPE_SUB); - add_embedded_arg("stream", ID_TYPE_NUM); - add_embedded_arg("txt$", ID_TYPE_STR); - embed_function("CopyFile", ID_TYPE_SUB); - add_embedded_arg("src$", ID_TYPE_STR); - add_embedded_arg("dst$", ID_TYPE_STR); - embed_function("RemoveFile", ID_TYPE_FN_NUM); - add_embedded_arg("fileName$", ID_TYPE_STR); - embed_function("FileExists", ID_TYPE_FN_NUM); - add_embedded_arg("fileName$", ID_TYPE_STR); - embed_function("MoveFile", ID_TYPE_FN_NUM); - add_embedded_arg("src$", ID_TYPE_STR); - add_embedded_arg("dst$", ID_TYPE_STR); - embed_function("RenameFile", ID_TYPE_FN_NUM); - add_embedded_arg("src$", ID_TYPE_STR); - add_embedded_arg("dst$", ID_TYPE_STR); - embed_function("FileLength", ID_TYPE_FN_NUM); - add_embedded_arg("fileName$", ID_TYPE_STR); - embed_function("Tell", ID_TYPE_FN_NUM); - add_embedded_arg("stream", ID_TYPE_NUM); - embed_function("Seek", ID_TYPE_FN_NUM); - add_embedded_arg("stream", ID_TYPE_NUM); - add_embedded_arg("pos", ID_TYPE_NUM); - embed_function("EOF", ID_TYPE_FN_NUM); - add_embedded_arg("stream", ID_TYPE_NUM); - embed_function("FreeFile", ID_TYPE_FN_NUM); - embed_function("ChangeDir", ID_TYPE_SUB); - add_embedded_arg("p$", ID_TYPE_STR); - embed_function("DirExists", ID_TYPE_FN_NUM); - add_embedded_arg("p$", ID_TYPE_STR); - embed_function("DirFirst$", ID_TYPE_FN_STR); - embed_function("Dir$", ID_TYPE_FN_STR); - embed_function("DirNext$", ID_TYPE_FN_STR); - embed_function("MakeDir", ID_TYPE_FN_NUM); - add_embedded_arg("p$", ID_TYPE_STR); - embed_function("RemoveDir", ID_TYPE_FN_NUM); - add_embedded_arg("p$", ID_TYPE_STR); - embed_function("Date$", ID_TYPE_FN_STR); - embed_function("Easter$", ID_TYPE_FN_STR); - add_embedded_arg("year", ID_TYPE_NUM); - embed_function("Ticks", ID_TYPE_FN_NUM); - embed_function("Time$", ID_TYPE_FN_STR); - embed_function("Timer", ID_TYPE_FN_NUM); - embed_function("Wait", ID_TYPE_SUB); - add_embedded_arg("m_sec", ID_TYPE_NUM); - embed_function("WindowOpen", ID_TYPE_SUB); - add_embedded_arg("win", ID_TYPE_NUM); - add_embedded_arg("title$", ID_TYPE_STR); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("w", ID_TYPE_NUM); - add_embedded_arg("h", ID_TYPE_NUM); - add_embedded_arg("flag", ID_TYPE_NUM); - add_embedded_arg("vsync", ID_TYPE_NUM); - embed_function("WindowClose", ID_TYPE_SUB); - add_embedded_arg("win", ID_TYPE_NUM); - embed_function("RaiseWindow", ID_TYPE_SUB); - add_embedded_arg("win", ID_TYPE_NUM); - embed_function("Window", ID_TYPE_SUB); - add_embedded_arg("win", ID_TYPE_NUM); - embed_function("Update", ID_TYPE_SUB); - embed_function("Cls", ID_TYPE_SUB); - embed_function("SetClearColor", ID_TYPE_SUB); - add_embedded_arg("c", ID_TYPE_NUM); - embed_function("ShowWindow", ID_TYPE_SUB); - add_embedded_arg("win", ID_TYPE_NUM); - embed_function("HideWindow", ID_TYPE_SUB); - add_embedded_arg("win", ID_TYPE_NUM); - embed_function("SetWindowTitle", ID_TYPE_SUB); - add_embedded_arg("win", ID_TYPE_NUM); - add_embedded_arg("title$", ID_TYPE_STR); - embed_function("WindowTitle$", ID_TYPE_FN_STR); - add_embedded_arg("win", ID_TYPE_NUM); - embed_function("SetWindowPosition", ID_TYPE_SUB); - add_embedded_arg("win", ID_TYPE_NUM); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - embed_function("GetWindowPosition", ID_TYPE_SUB); - add_embedded_arg("win", ID_TYPE_NUM); - add_embedded_arg("x", ID_TYPE_BYREF_NUM); - add_embedded_arg("y", ID_TYPE_BYREF_NUM); - embed_function("SetWindowSize", ID_TYPE_SUB); - add_embedded_arg("win", ID_TYPE_NUM); - add_embedded_arg("w", ID_TYPE_NUM); - add_embedded_arg("h", ID_TYPE_NUM); - embed_function("GetWindowSize", ID_TYPE_SUB); - add_embedded_arg("win", ID_TYPE_NUM); - add_embedded_arg("w", ID_TYPE_BYREF_NUM); - add_embedded_arg("h", ID_TYPE_BYREF_NUM); - embed_function("SetWindowMinSize", ID_TYPE_SUB); - add_embedded_arg("win", ID_TYPE_NUM); - add_embedded_arg("w", ID_TYPE_NUM); - add_embedded_arg("h", ID_TYPE_NUM); - embed_function("GetWindowMinSize", ID_TYPE_SUB); - add_embedded_arg("win", ID_TYPE_NUM); - add_embedded_arg("w", ID_TYPE_BYREF_NUM); - add_embedded_arg("h", ID_TYPE_BYREF_NUM); - embed_function("SetWindowMaxSize", ID_TYPE_SUB); - add_embedded_arg("win", ID_TYPE_NUM); - add_embedded_arg("w", ID_TYPE_NUM); - add_embedded_arg("h", ID_TYPE_NUM); - embed_function("GetWindowMaxSize", ID_TYPE_SUB); - add_embedded_arg("win", ID_TYPE_NUM); - add_embedded_arg("w", ID_TYPE_BYREF_NUM); - add_embedded_arg("h", ID_TYPE_BYREF_NUM); - embed_function("WindowIsFullscreen", ID_TYPE_FN_NUM); - add_embedded_arg("win", ID_TYPE_NUM); - embed_function("WindowIsVisible", ID_TYPE_FN_NUM); - add_embedded_arg("win", ID_TYPE_NUM); - embed_function("WindowIsBordered", ID_TYPE_FN_NUM); - add_embedded_arg("win", ID_TYPE_NUM); - embed_function("WindowIsResizable", ID_TYPE_FN_NUM); - add_embedded_arg("win", ID_TYPE_NUM); - embed_function("WindowIsMinimized", ID_TYPE_FN_NUM); - add_embedded_arg("win", ID_TYPE_NUM); - embed_function("WindowIsMaximized", ID_TYPE_FN_NUM); - add_embedded_arg("win", ID_TYPE_NUM); - embed_function("WindowHasInputFocus", ID_TYPE_FN_NUM); - add_embedded_arg("win", ID_TYPE_NUM); - embed_function("WindowHasMouseFocus", ID_TYPE_FN_NUM); - add_embedded_arg("win", ID_TYPE_NUM); - embed_function("SetWindowFullscreen", ID_TYPE_SUB); - add_embedded_arg("win", ID_TYPE_NUM); - add_embedded_arg("flag", ID_TYPE_NUM); - embed_function("MaximizeWindow", ID_TYPE_SUB); - add_embedded_arg("win", ID_TYPE_NUM); - embed_function("MinimizeWindow", ID_TYPE_SUB); - add_embedded_arg("win", ID_TYPE_NUM); - embed_function("SetWindowBorder", ID_TYPE_SUB); - add_embedded_arg("win", ID_TYPE_NUM); - add_embedded_arg("flag", ID_TYPE_NUM); - embed_function("WindowClip", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("w", ID_TYPE_NUM); - add_embedded_arg("h", ID_TYPE_NUM); - embed_function("WindowExists", ID_TYPE_FN_NUM); - add_embedded_arg("win", ID_TYPE_NUM); - embed_function("NumWindows", ID_TYPE_FN_NUM); - embed_function("WindowEvent_Close", ID_TYPE_FN_NUM); - add_embedded_arg("win", ID_TYPE_NUM); - embed_function("WindowEvent_Maximize", ID_TYPE_FN_NUM); - add_embedded_arg("win", ID_TYPE_NUM); - embed_function("WindowEvent_Minimize", ID_TYPE_FN_NUM); - add_embedded_arg("win", ID_TYPE_NUM); - embed_function("ActiveWindow", ID_TYPE_FN_NUM); - embed_function("FPS", ID_TYPE_FN_NUM); - embed_function("SetWindowIcon", ID_TYPE_SUB); - add_embedded_arg("win", ID_TYPE_NUM); - add_embedded_arg("slot", ID_TYPE_NUM); - embed_function("CanvasOpen", ID_TYPE_SUB); - add_embedded_arg("c_num", ID_TYPE_NUM); - add_embedded_arg("w", ID_TYPE_NUM); - add_embedded_arg("h", ID_TYPE_NUM); - add_embedded_arg("viewport_x", ID_TYPE_NUM); - add_embedded_arg("viewport_y", ID_TYPE_NUM); - add_embedded_arg("viewport_w", ID_TYPE_NUM); - add_embedded_arg("viewport_h", ID_TYPE_NUM); - add_embedded_arg("mode", ID_TYPE_NUM); - embed_function("CanvasClose", ID_TYPE_SUB); - add_embedded_arg("c_num", ID_TYPE_NUM); - embed_function("SetCanvasVisible", ID_TYPE_SUB); - add_embedded_arg("c_num", ID_TYPE_NUM); - add_embedded_arg("flag", ID_TYPE_NUM); - embed_function("CanvasIsVisible", ID_TYPE_FN_NUM); - add_embedded_arg("c_num", ID_TYPE_NUM); - embed_function("SetCanvasViewport", ID_TYPE_SUB); - add_embedded_arg("cnum", ID_TYPE_NUM); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("w", ID_TYPE_NUM); - add_embedded_arg("h", ID_TYPE_NUM); - embed_function("GetCanvasViewport", ID_TYPE_SUB); - add_embedded_arg("c_num", ID_TYPE_NUM); - add_embedded_arg("x", ID_TYPE_BYREF_NUM); - add_embedded_arg("y", ID_TYPE_BYREF_NUM); - add_embedded_arg("w", ID_TYPE_BYREF_NUM); - add_embedded_arg("h", ID_TYPE_BYREF_NUM); - embed_function("Canvas", ID_TYPE_SUB); - add_embedded_arg("c_num", ID_TYPE_NUM); - embed_function("SetCanvasOffset", ID_TYPE_SUB); - add_embedded_arg("c_num", ID_TYPE_NUM); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - embed_function("GetCanvasOffset", ID_TYPE_SUB); - add_embedded_arg("c_num", ID_TYPE_NUM); - add_embedded_arg("x", ID_TYPE_BYREF_NUM); - add_embedded_arg("y", ID_TYPE_BYREF_NUM); - embed_function("GetCanvasSize", ID_TYPE_SUB); - add_embedded_arg("c_num", ID_TYPE_NUM); - add_embedded_arg("w", ID_TYPE_BYREF_NUM); - add_embedded_arg("h", ID_TYPE_BYREF_NUM); - embed_function("ClearCanvas", ID_TYPE_SUB); - embed_function("SetCanvasAlpha", ID_TYPE_SUB); - add_embedded_arg("c_num", ID_TYPE_NUM); - add_embedded_arg("a", ID_TYPE_NUM); - embed_function("CanvasAlpha", ID_TYPE_FN_NUM); - add_embedded_arg("c_num", ID_TYPE_NUM); - embed_function("SetCanvasBlendMode", ID_TYPE_FN_NUM); - add_embedded_arg("c_num", ID_TYPE_NUM); - add_embedded_arg("blend_mode", ID_TYPE_NUM); - embed_function("CanvasBlendMode", ID_TYPE_FN_NUM); - add_embedded_arg("c_num", ID_TYPE_NUM); - embed_function("SetCanvasColorMod", ID_TYPE_FN_NUM); - add_embedded_arg("c_num", ID_TYPE_NUM); - add_embedded_arg("c", ID_TYPE_NUM); - embed_function("CanvasColorMod", ID_TYPE_FN_NUM); - add_embedded_arg("c_num", ID_TYPE_NUM); - embed_function("CopyCanvas", ID_TYPE_SUB); - add_embedded_arg("src", ID_TYPE_NUM); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("w", ID_TYPE_NUM); - add_embedded_arg("h", ID_TYPE_NUM); - add_embedded_arg("dst", ID_TYPE_NUM); - add_embedded_arg("dx", ID_TYPE_NUM); - add_embedded_arg("dy", ID_TYPE_NUM); - embed_function("CloneCanvas", ID_TYPE_SUB); - add_embedded_arg("src", ID_TYPE_NUM); - add_embedded_arg("dst", ID_TYPE_NUM); - embed_function("SetCanvasZ", ID_TYPE_SUB); - add_embedded_arg("c_num", ID_TYPE_NUM); - add_embedded_arg("z", ID_TYPE_NUM); - embed_function("CanvasZ", ID_TYPE_FN_NUM); - add_embedded_arg("c_num", ID_TYPE_NUM); - embed_function("CanvasClip", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("w", ID_TYPE_NUM); - add_embedded_arg("h", ID_TYPE_NUM); - add_embedded_arg("flag", ID_TYPE_NUM); - embed_function("ActiveCanvas", ID_TYPE_FN_NUM); - embed_function("Box", ID_TYPE_SUB); - add_embedded_arg("x1", ID_TYPE_NUM); - add_embedded_arg("y1", ID_TYPE_NUM); - add_embedded_arg("x2", ID_TYPE_NUM); - add_embedded_arg("y2", ID_TYPE_NUM); - embed_function("BoxFill", ID_TYPE_SUB); - add_embedded_arg("x1", ID_TYPE_NUM); - add_embedded_arg("y1", ID_TYPE_NUM); - add_embedded_arg("x2", ID_TYPE_NUM); - add_embedded_arg("y2", ID_TYPE_NUM); - embed_function("Circle", ID_TYPE_SUB); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("radius", ID_TYPE_NUM); - embed_function("CircleFill", ID_TYPE_SUB); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("radius", ID_TYPE_NUM); - embed_function("Ellipse", ID_TYPE_SUB); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("rx", ID_TYPE_NUM); - add_embedded_arg("ry", ID_TYPE_NUM); - embed_function("EllipseFill", ID_TYPE_SUB); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("rx", ID_TYPE_NUM); - add_embedded_arg("ry", ID_TYPE_NUM); - embed_function("FloodFill", ID_TYPE_SUB); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - embed_function("GetPixel", ID_TYPE_FN_NUM); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - embed_function("SetColor", ID_TYPE_SUB); - add_embedded_arg("c", ID_TYPE_NUM); - embed_function("Line", ID_TYPE_SUB); - add_embedded_arg("x1", ID_TYPE_NUM); - add_embedded_arg("y1", ID_TYPE_NUM); - add_embedded_arg("x2", ID_TYPE_NUM); - add_embedded_arg("y2", ID_TYPE_NUM); - embed_function("Poly", ID_TYPE_SUB); - add_embedded_arg("n", ID_TYPE_NUM); - add_embedded_arg("x", ID_TYPE_BYREF_NUM); - add_embedded_arg("y", ID_TYPE_BYREF_NUM); - embed_function("PolyFill", ID_TYPE_SUB); - add_embedded_arg("n", ID_TYPE_NUM); - add_embedded_arg("x", ID_TYPE_BYREF_NUM); - add_embedded_arg("y", ID_TYPE_BYREF_NUM); - embed_function("Rect", ID_TYPE_SUB); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("w", ID_TYPE_NUM); - add_embedded_arg("h", ID_TYPE_NUM); - embed_function("RectFill", ID_TYPE_SUB); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("w", ID_TYPE_NUM); - add_embedded_arg("h", ID_TYPE_NUM); - embed_function("RoundRect", ID_TYPE_SUB); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("w", ID_TYPE_NUM); - add_embedded_arg("h", ID_TYPE_NUM); - add_embedded_arg("r", ID_TYPE_NUM); - embed_function("RoundRectFill", ID_TYPE_SUB); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("w", ID_TYPE_NUM); - add_embedded_arg("h", ID_TYPE_NUM); - add_embedded_arg("r", ID_TYPE_NUM); - embed_function("RGB", ID_TYPE_FN_NUM); - add_embedded_arg("r", ID_TYPE_NUM); - add_embedded_arg("g", ID_TYPE_NUM); - add_embedded_arg("b", ID_TYPE_NUM); - embed_function("RGBA", ID_TYPE_FN_NUM); - add_embedded_arg("r", ID_TYPE_NUM); - add_embedded_arg("g", ID_TYPE_NUM); - add_embedded_arg("b", ID_TYPE_NUM); - add_embedded_arg("a", ID_TYPE_NUM); - embed_function("PSet", ID_TYPE_SUB); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - embed_function("LoadImage", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("img$", ID_TYPE_STR); - embed_function("LoadImage_Ex", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("img$", ID_TYPE_STR); - add_embedded_arg("colkey", ID_TYPE_NUM); - embed_function("ImageFromBuffer", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("w", ID_TYPE_NUM); - add_embedded_arg("h", ID_TYPE_NUM); - add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); - embed_function("ImageFromBuffer_Ex", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("w", ID_TYPE_NUM); - add_embedded_arg("h", ID_TYPE_NUM); - add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); - add_embedded_arg("colkey", ID_TYPE_NUM); - embed_function("BufferFromImage", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); - embed_function("ImageExists", ID_TYPE_FN_NUM); - add_embedded_arg("slot", ID_TYPE_NUM); - embed_function("ColorKey", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("c", ID_TYPE_NUM); - embed_function("CopyImage", ID_TYPE_SUB); - add_embedded_arg("src", ID_TYPE_NUM); - add_embedded_arg("dst", ID_TYPE_NUM); - embed_function("DeleteImage", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - embed_function("SetImageAlpha", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("a", ID_TYPE_NUM); - embed_function("ImageAlpha", ID_TYPE_FN_NUM); - add_embedded_arg("slot", ID_TYPE_NUM); - embed_function("GetImageSize", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("w", ID_TYPE_BYREF_NUM); - add_embedded_arg("h", ID_TYPE_BYREF_NUM); - embed_function("SetImageBlendMode", ID_TYPE_FN_NUM); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("blend_mode", ID_TYPE_NUM); - embed_function("ImageBlendMode", ID_TYPE_FN_NUM); - add_embedded_arg("slot", ID_TYPE_NUM); - embed_function("SetImageColorMod", ID_TYPE_FN_NUM); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("c", ID_TYPE_NUM); - embed_function("ImageColorMod", ID_TYPE_FN_NUM); - add_embedded_arg("slot", ID_TYPE_NUM); - embed_function("DrawImage", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - embed_function("DrawImage_Blit", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("src_x", ID_TYPE_NUM); - add_embedded_arg("src_y", ID_TYPE_NUM); - add_embedded_arg("src_w", ID_TYPE_NUM); - add_embedded_arg("src_h", ID_TYPE_NUM); - embed_function("DrawImage_Blit_Ex", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("w", ID_TYPE_NUM); - add_embedded_arg("h", ID_TYPE_NUM); - add_embedded_arg("src_x", ID_TYPE_NUM); - add_embedded_arg("src_y", ID_TYPE_NUM); - add_embedded_arg("src_w", ID_TYPE_NUM); - add_embedded_arg("src_h", ID_TYPE_NUM); - embed_function("DrawImage_Rotate", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("angle", ID_TYPE_NUM); - embed_function("DrawImage_Rotate_Ex", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("src_x", ID_TYPE_NUM); - add_embedded_arg("src_y", ID_TYPE_NUM); - add_embedded_arg("src_w", ID_TYPE_NUM); - add_embedded_arg("src_h", ID_TYPE_NUM); - add_embedded_arg("angle", ID_TYPE_NUM); - embed_function("DrawImage_Zoom", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("zx", ID_TYPE_NUM); - add_embedded_arg("zy", ID_TYPE_NUM); - embed_function("DrawImage_Zoom_Ex", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("src_x", ID_TYPE_NUM); - add_embedded_arg("src_y", ID_TYPE_NUM); - add_embedded_arg("src_w", ID_TYPE_NUM); - add_embedded_arg("src_h", ID_TYPE_NUM); - add_embedded_arg("zx", ID_TYPE_NUM); - add_embedded_arg("zy", ID_TYPE_NUM); - embed_function("DrawImage_Rotozoom", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("angle", ID_TYPE_NUM); - add_embedded_arg("zx", ID_TYPE_NUM); - add_embedded_arg("zy", ID_TYPE_NUM); - embed_function("DrawImage_Rotozoom_Ex", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("src_x", ID_TYPE_NUM); - add_embedded_arg("src_y", ID_TYPE_NUM); - add_embedded_arg("src_w", ID_TYPE_NUM); - add_embedded_arg("src_h", ID_TYPE_NUM); - add_embedded_arg("angle", ID_TYPE_NUM); - add_embedded_arg("zx", ID_TYPE_NUM); - add_embedded_arg("zy", ID_TYPE_NUM); - embed_function("DrawImage_Flip", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("h", ID_TYPE_NUM); - add_embedded_arg("v", ID_TYPE_NUM); - embed_function("DrawImage_Flip_Ex", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("src_x", ID_TYPE_NUM); - add_embedded_arg("src_y", ID_TYPE_NUM); - add_embedded_arg("src_w", ID_TYPE_NUM); - add_embedded_arg("src_h", ID_TYPE_NUM); - add_embedded_arg("h", ID_TYPE_NUM); - add_embedded_arg("v", ID_TYPE_NUM); - embed_function("InKey", ID_TYPE_FN_NUM); - embed_function("Key", ID_TYPE_FN_NUM); - add_embedded_arg("key_code", ID_TYPE_NUM); - embed_function("WaitKey", ID_TYPE_FN_NUM); - embed_function("HideMouse", ID_TYPE_SUB); - embed_function("ShowMouse", ID_TYPE_SUB); - embed_function("MouseIsVisible", ID_TYPE_FN_NUM); - embed_function("GetMouse", ID_TYPE_SUB); - add_embedded_arg("x", ID_TYPE_BYREF_NUM); - add_embedded_arg("y", ID_TYPE_BYREF_NUM); - add_embedded_arg("mb1", ID_TYPE_BYREF_NUM); - add_embedded_arg("mb2", ID_TYPE_BYREF_NUM); - add_embedded_arg("mb3", ID_TYPE_BYREF_NUM); - embed_function("MouseX", ID_TYPE_FN_NUM); - embed_function("MouseY", ID_TYPE_FN_NUM); - embed_function("MouseButton", ID_TYPE_FN_NUM); - add_embedded_arg("mb", ID_TYPE_NUM); - embed_function("GetMouseWheel", ID_TYPE_SUB); - add_embedded_arg("x_axis", ID_TYPE_BYREF_NUM); - add_embedded_arg("y_axis", ID_TYPE_BYREF_NUM); - embed_function("MouseWheelX", ID_TYPE_FN_NUM); - embed_function("MouseWheelY", ID_TYPE_FN_NUM); - embed_function("SoundFromBuffer", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); - add_embedded_arg("buffer_size", ID_TYPE_NUM); - add_embedded_arg("vol", ID_TYPE_NUM); - embed_function("LoadSound", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("snd_file$", ID_TYPE_STR); - embed_function("LoadMusic", ID_TYPE_SUB); - add_embedded_arg("music_file$", ID_TYPE_STR); - embed_function("PlaySound", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("channel", ID_TYPE_NUM); - add_embedded_arg("loops", ID_TYPE_NUM); - embed_function("PlaySoundTimed", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("channel", ID_TYPE_NUM); - add_embedded_arg("loops", ID_TYPE_NUM); - add_embedded_arg("ms", ID_TYPE_NUM); - embed_function("PlayMusic", ID_TYPE_SUB); - add_embedded_arg("mLoops", ID_TYPE_NUM); - embed_function("PauseSound", ID_TYPE_SUB); - add_embedded_arg("channel", ID_TYPE_NUM); - embed_function("ResumeSound", ID_TYPE_SUB); - add_embedded_arg("channel", ID_TYPE_NUM); - embed_function("PauseMusic", ID_TYPE_SUB); - embed_function("ResumeMusic", ID_TYPE_SUB); - embed_function("DeleteSound", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - embed_function("DeleteMusic", ID_TYPE_SUB); - embed_function("FadeMusicIn", ID_TYPE_SUB); - add_embedded_arg("fade_time", ID_TYPE_NUM); - add_embedded_arg("loops", ID_TYPE_NUM); - embed_function("FadeMusicOut", ID_TYPE_SUB); - add_embedded_arg("fade_time", ID_TYPE_NUM); - embed_function("MusicExists", ID_TYPE_FN_NUM); - embed_function("SetMusicVolume", ID_TYPE_SUB); - add_embedded_arg("vol", ID_TYPE_NUM); - embed_function("MusicVolume", ID_TYPE_FN_NUM); - embed_function("SetMusicPosition", ID_TYPE_SUB); - add_embedded_arg("pos", ID_TYPE_NUM); - embed_function("MusicPosition", ID_TYPE_FN_NUM); - embed_function("RewindMusic", ID_TYPE_SUB); - embed_function("SetSoundChannels", ID_TYPE_SUB); - add_embedded_arg("max_channels", ID_TYPE_NUM); - embed_function("NumSoundChannels", ID_TYPE_FN_NUM); - embed_function("SoundIsEnabled", ID_TYPE_FN_NUM); - embed_function("SoundExists", ID_TYPE_FN_NUM); - add_embedded_arg("slot", ID_TYPE_NUM); - embed_function("SetChannelVolume", ID_TYPE_SUB); - add_embedded_arg("channel", ID_TYPE_NUM); - add_embedded_arg("vol", ID_TYPE_NUM); - embed_function("ChannelVolume", ID_TYPE_FN_NUM); - add_embedded_arg("channel", ID_TYPE_NUM); - embed_function("SetSoundVolume", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("vol", ID_TYPE_NUM); - embed_function("SoundVolume", ID_TYPE_FN_NUM); - add_embedded_arg("slot", ID_TYPE_NUM); - embed_function("StopMusic", ID_TYPE_SUB); - embed_function("StopSound", ID_TYPE_SUB); - add_embedded_arg("channel", ID_TYPE_NUM); - embed_function("SetChannelPanning", ID_TYPE_FN_NUM); - add_embedded_arg("channel", ID_TYPE_NUM); - add_embedded_arg("left_value", ID_TYPE_NUM); - add_embedded_arg("right_value", ID_TYPE_NUM); - embed_function("SetChannelDistance", ID_TYPE_FN_NUM); - add_embedded_arg("channel", ID_TYPE_NUM); - add_embedded_arg("dist_value", ID_TYPE_NUM); - embed_function("ChannelIsPlaying", ID_TYPE_FN_NUM); - add_embedded_arg("channel", ID_TYPE_NUM); - embed_function("ChannelIsPaused", ID_TYPE_FN_NUM); - add_embedded_arg("channel", ID_TYPE_NUM); - embed_function("NumJoysticks", ID_TYPE_FN_NUM); - embed_function("NumJoyAxes", ID_TYPE_FN_NUM); - add_embedded_arg("joy_num", ID_TYPE_NUM); - embed_function("NumJoyButtons", ID_TYPE_FN_NUM); - add_embedded_arg("joy_num", ID_TYPE_NUM); - embed_function("NumJoyHats", ID_TYPE_FN_NUM); - add_embedded_arg("joy_num", ID_TYPE_NUM); - embed_function("NumJoyTrackBalls", ID_TYPE_FN_NUM); - add_embedded_arg("joy_num", ID_TYPE_NUM); - embed_function("JoyAxis", ID_TYPE_FN_NUM); - add_embedded_arg("joy_num", ID_TYPE_NUM); - add_embedded_arg("joy_axis", ID_TYPE_NUM); - embed_function("JoyButton", ID_TYPE_FN_NUM); - add_embedded_arg("joy_num", ID_TYPE_NUM); - add_embedded_arg("joy_button", ID_TYPE_NUM); - embed_function("JoyHat", ID_TYPE_FN_NUM); - add_embedded_arg("joy_num", ID_TYPE_NUM); - add_embedded_arg("joy_hat", ID_TYPE_NUM); - embed_function("GetJoyTrackBall", ID_TYPE_SUB); - add_embedded_arg("joy_num", ID_TYPE_NUM); - add_embedded_arg("ball", ID_TYPE_NUM); - add_embedded_arg("dx", ID_TYPE_BYREF_NUM); - add_embedded_arg("dy", ID_TYPE_BYREF_NUM); - embed_function("JoyName$", ID_TYPE_FN_STR); - add_embedded_arg("joy_num", ID_TYPE_NUM); - embed_function("JoystickIsConnected", ID_TYPE_FN_NUM); - add_embedded_arg("joy_num", ID_TYPE_NUM); - embed_function("GetCursor", ID_TYPE_SUB); - add_embedded_arg("x", ID_TYPE_BYREF_NUM); - add_embedded_arg("y", ID_TYPE_BYREF_NUM); - embed_function("PrintS", ID_TYPE_SUB); - add_embedded_arg("txt$", ID_TYPE_STR); - embed_function("InputS$", ID_TYPE_FN_STR); - add_embedded_arg("prompt$", ID_TYPE_STR); - embed_function("ZoneInputS$", ID_TYPE_FN_STR); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("w", ID_TYPE_NUM); - add_embedded_arg("h", ID_TYPE_NUM); - embed_function("Locate", ID_TYPE_SUB); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - embed_function("ReadInput_Start", ID_TYPE_SUB); - embed_function("ReadInput_Stop", ID_TYPE_SUB); - embed_function("ReadInput_Text$", ID_TYPE_FN_STR); - embed_function("ReadInput_SetText", ID_TYPE_SUB); - add_embedded_arg("txt$", ID_TYPE_STR); - embed_function("ReadInput_ToggleBackspace", ID_TYPE_SUB); - add_embedded_arg("flag", ID_TYPE_NUM); - embed_function("LoadFont", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("fnt_file$", ID_TYPE_STR); - add_embedded_arg("size", ID_TYPE_NUM); - embed_function("DeleteFont", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - embed_function("FontIsLoaded", ID_TYPE_FN_NUM); - add_embedded_arg("slot", ID_TYPE_NUM); - embed_function("Font", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - embed_function("SetFontStyle", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("style", ID_TYPE_NUM); - embed_function("DrawText", ID_TYPE_SUB); - add_embedded_arg("txt$", ID_TYPE_STR); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - embed_function("DrawText_Shaded", ID_TYPE_SUB); - add_embedded_arg("txt$", ID_TYPE_STR); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("fg_color", ID_TYPE_NUM); - add_embedded_arg("bg_color", ID_TYPE_NUM); - embed_function("DrawText_Blended", ID_TYPE_SUB); - add_embedded_arg("txt$", ID_TYPE_STR); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - embed_function("RenderText", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("txt$", ID_TYPE_STR); - embed_function("GetTextSize", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("txt$", ID_TYPE_STR); - add_embedded_arg("w", ID_TYPE_BYREF_NUM); - add_embedded_arg("h", ID_TYPE_BYREF_NUM); - embed_function("TouchPressure", ID_TYPE_FN_NUM); - embed_function("GetTouch", ID_TYPE_SUB); - add_embedded_arg("status", ID_TYPE_BYREF_NUM); - add_embedded_arg("x", ID_TYPE_BYREF_NUM); - add_embedded_arg("y", ID_TYPE_BYREF_NUM); - add_embedded_arg("dx", ID_TYPE_BYREF_NUM); - add_embedded_arg("dy", ID_TYPE_BYREF_NUM); - embed_function("GetMultiTouch", ID_TYPE_SUB); - add_embedded_arg("status", ID_TYPE_BYREF_NUM); - add_embedded_arg("x", ID_TYPE_BYREF_NUM); - add_embedded_arg("y", ID_TYPE_BYREF_NUM); - add_embedded_arg("fingers", ID_TYPE_BYREF_NUM); - add_embedded_arg("dist", ID_TYPE_BYREF_NUM); - add_embedded_arg("theta", ID_TYPE_BYREF_NUM); - embed_function("GetTouchFinger", ID_TYPE_SUB); - add_embedded_arg("finger", ID_TYPE_NUM); - add_embedded_arg("x", ID_TYPE_BYREF_NUM); - add_embedded_arg("y", ID_TYPE_BYREF_NUM); - add_embedded_arg("pressure", ID_TYPE_BYREF_NUM); - embed_function("NumFingers", ID_TYPE_FN_NUM); - embed_function("CheckSockets", ID_TYPE_FN_NUM); - add_embedded_arg("timeout_ms", ID_TYPE_NUM); - embed_function("TCP_SocketReady", ID_TYPE_FN_NUM); - add_embedded_arg("socket", ID_TYPE_NUM); - embed_function("UDP_SocketReady", ID_TYPE_FN_NUM); - add_embedded_arg("socket", ID_TYPE_NUM); - embed_function("TCP_SocketOpen", ID_TYPE_FN_NUM); - add_embedded_arg("socket", ID_TYPE_NUM); - add_embedded_arg("host$", ID_TYPE_STR); - add_embedded_arg("port", ID_TYPE_NUM); - embed_function("TCP_SocketClose", ID_TYPE_SUB); - add_embedded_arg("socket", ID_TYPE_NUM); - embed_function("TCP_RemoteHost", ID_TYPE_FN_NUM); - add_embedded_arg("socket", ID_TYPE_NUM); - embed_function("TCP_RemotePort", ID_TYPE_FN_NUM); - add_embedded_arg("socket", ID_TYPE_NUM); - embed_function("TCP_GetData", ID_TYPE_FN_NUM); - add_embedded_arg("socket", ID_TYPE_NUM); - add_embedded_arg("sData$", ID_TYPE_BYREF_STR); - add_embedded_arg("numBytes", ID_TYPE_NUM); - embed_function("TCP_SendData", ID_TYPE_SUB); - add_embedded_arg("socket", ID_TYPE_NUM); - add_embedded_arg("sData$", ID_TYPE_STR); - embed_function("TCP_AcceptSocket", ID_TYPE_FN_NUM); - add_embedded_arg("server", ID_TYPE_NUM); - add_embedded_arg("client", ID_TYPE_NUM); - embed_function("UDP_SocketOpen", ID_TYPE_FN_NUM); - add_embedded_arg("socket", ID_TYPE_NUM); - add_embedded_arg("port", ID_TYPE_NUM); - embed_function("UDP_SocketClose", ID_TYPE_FN_NUM); - add_embedded_arg("socket", ID_TYPE_NUM); - embed_function("UDP_GetData", ID_TYPE_FN_NUM); - add_embedded_arg("socket", ID_TYPE_NUM); - add_embedded_arg("sData$", ID_TYPE_BYREF_STR); - add_embedded_arg("host$", ID_TYPE_BYREF_STR); - add_embedded_arg("port", ID_TYPE_BYREF_NUM); - embed_function("UDP_Length", ID_TYPE_FN_NUM); - embed_function("UDP_MaxLength", ID_TYPE_FN_NUM); - embed_function("UDP_RemoteHost$", ID_TYPE_FN_STR); - add_embedded_arg("socket", ID_TYPE_NUM); - embed_function("UDP_RemotePort", ID_TYPE_FN_NUM); - add_embedded_arg("socket", ID_TYPE_NUM); - embed_function("UDP_SendData", ID_TYPE_SUB); - add_embedded_arg("socket", ID_TYPE_NUM); - add_embedded_arg("sData$", ID_TYPE_STR); - add_embedded_arg("host$", ID_TYPE_STR); - add_embedded_arg("port", ID_TYPE_NUM); - embed_function("LoadVideo", ID_TYPE_SUB); - add_embedded_arg("vid$", ID_TYPE_STR); - embed_function("PlayVideo", ID_TYPE_SUB); - add_embedded_arg("vLoops", ID_TYPE_NUM); - embed_function("PauseVideo", ID_TYPE_SUB); - embed_function("StopVideo", ID_TYPE_SUB); - embed_function("SetVideoPosition", ID_TYPE_SUB); - add_embedded_arg("pos", ID_TYPE_NUM); - embed_function("ResumeVideo", ID_TYPE_SUB); - embed_function("VideoPosition", ID_TYPE_FN_NUM); - embed_function("DeleteVideo", ID_TYPE_SUB); - embed_function("VideoIsPlaying", ID_TYPE_FN_NUM); - embed_function("VideoEnd", ID_TYPE_FN_NUM); - embed_function("GetVideoStats", ID_TYPE_SUB); - add_embedded_arg("vFile$", ID_TYPE_STR); - add_embedded_arg("vLen", ID_TYPE_BYREF_NUM); - add_embedded_arg("vfps", ID_TYPE_BYREF_NUM); - add_embedded_arg("frame_w", ID_TYPE_BYREF_NUM); - add_embedded_arg("frame_h", ID_TYPE_BYREF_NUM); - embed_function("SetVideoDrawRect", ID_TYPE_SUB); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("w", ID_TYPE_NUM); - add_embedded_arg("h", ID_TYPE_NUM); - embed_function("GetVideoDrawRect", ID_TYPE_SUB); - add_embedded_arg("x", ID_TYPE_BYREF_NUM); - add_embedded_arg("y", ID_TYPE_BYREF_NUM); - add_embedded_arg("w", ID_TYPE_BYREF_NUM); - add_embedded_arg("h", ID_TYPE_BYREF_NUM); - embed_function("GetVideoSize", ID_TYPE_SUB); - add_embedded_arg("w", ID_TYPE_BYREF_NUM); - add_embedded_arg("h", ID_TYPE_BYREF_NUM); - embed_function("VideoExists", ID_TYPE_FN_NUM); - embed_function("SetVideoAlpha", ID_TYPE_SUB); - add_embedded_arg("a", ID_TYPE_NUM); - embed_function("System", ID_TYPE_FN_NUM); - add_embedded_arg("cmd$", ID_TYPE_STR); - embed_function("OS$", ID_TYPE_FN_STR); - embed_function("Command$", ID_TYPE_FN_STR); - add_embedded_arg("arg", ID_TYPE_NUM); - embed_function("NumCommands", ID_TYPE_FN_NUM); - embed_function("Env$", ID_TYPE_FN_STR); - add_embedded_arg("v$", ID_TYPE_STR); - embed_function("SetEnv", ID_TYPE_SUB); - add_embedded_arg("var$", ID_TYPE_STR); - add_embedded_arg("value$", ID_TYPE_STR); - add_embedded_arg("overwrite", ID_TYPE_NUM); - embed_function("PrefPath$", ID_TYPE_FN_STR); - add_embedded_arg("org_name$", ID_TYPE_STR); - add_embedded_arg("app_name$", ID_TYPE_STR); - embed_function("Android_GetExternalStoragePath$", ID_TYPE_FN_STR); - embed_function("Android_GetExternalStorageState", ID_TYPE_FN_NUM); - embed_function("Android_GetInternalStoragePath$", ID_TYPE_FN_STR); - embed_function("Android_JNI_Message$", ID_TYPE_FN_STR); - add_embedded_arg("arg$", ID_TYPE_STR); - embed_function("Runtime_Utility_Message$", ID_TYPE_FN_STR); - add_embedded_arg("arg$", ID_TYPE_STR); - embed_function("ClipboardText$", ID_TYPE_FN_STR); - embed_function("SetClipboardText", ID_TYPE_SUB); - add_embedded_arg("txt$", ID_TYPE_STR); - embed_function("HasClipboardText", ID_TYPE_FN_NUM); - embed_function("GetDesktopDisplayMode", ID_TYPE_SUB); - add_embedded_arg("index", ID_TYPE_NUM); - add_embedded_arg("w", ID_TYPE_BYREF_NUM); - add_embedded_arg("h", ID_TYPE_BYREF_NUM); - add_embedded_arg("freq", ID_TYPE_BYREF_NUM); - embed_function("DrawImage_Transform", ID_TYPE_SUB); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("w", ID_TYPE_NUM); - add_embedded_arg("h", ID_TYPE_NUM); - add_embedded_arg("src_x", ID_TYPE_NUM); - add_embedded_arg("src_y", ID_TYPE_NUM); - add_embedded_arg("src_w", ID_TYPE_NUM); - add_embedded_arg("src_h", ID_TYPE_NUM); - add_embedded_arg("angle", ID_TYPE_NUM); - add_embedded_arg("center_x", ID_TYPE_NUM); - add_embedded_arg("center_y", ID_TYPE_NUM); - add_embedded_arg("flip_h", ID_TYPE_NUM); - add_embedded_arg("flip_v", ID_TYPE_NUM); - embed_function("GetPowerInfo", ID_TYPE_SUB); - add_embedded_arg("status", ID_TYPE_BYREF_NUM); - add_embedded_arg("secs", ID_TYPE_BYREF_NUM); - add_embedded_arg("pct", ID_TYPE_BYREF_NUM); - embed_function("SystemRam", ID_TYPE_FN_NUM); - embed_function("SetRenderScaleQuality", ID_TYPE_FN_NUM); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("EvalJS$", ID_TYPE_FN_STR); - add_embedded_arg("js_code$", ID_TYPE_STR); - embed_function("GetRenderScaleQuality", ID_TYPE_FN_NUM); - embed_function("GetGlobalMouse", ID_TYPE_SUB); - add_embedded_arg("x", ID_TYPE_BYREF_NUM); - add_embedded_arg("y", ID_TYPE_BYREF_NUM); - add_embedded_arg("mb1", ID_TYPE_BYREF_NUM); - add_embedded_arg("mb2", ID_TYPE_BYREF_NUM); - add_embedded_arg("mb3", ID_TYPE_BYREF_NUM); - embed_function("GlobalMouseX", ID_TYPE_FN_NUM); - embed_function("GlobalMouseY", ID_TYPE_FN_NUM); - embed_function("GetAccel", ID_TYPE_SUB); - add_embedded_arg("accel_num", ID_TYPE_NUM); - add_embedded_arg("x", ID_TYPE_BYREF_NUM); - add_embedded_arg("y", ID_TYPE_BYREF_NUM); - add_embedded_arg("z", ID_TYPE_BYREF_NUM); - embed_function("AccelName$", ID_TYPE_FN_STR); - add_embedded_arg("accel_num", ID_TYPE_NUM); - embed_function("NumAccels", ID_TYPE_FN_NUM); - embed_function("GetGyro", ID_TYPE_SUB); - add_embedded_arg("gyro_num", ID_TYPE_NUM); - add_embedded_arg("x", ID_TYPE_BYREF_NUM); - add_embedded_arg("y", ID_TYPE_BYREF_NUM); - add_embedded_arg("z", ID_TYPE_BYREF_NUM); - embed_function("GyroName$", ID_TYPE_FN_STR); - add_embedded_arg("gyro_num", ID_TYPE_NUM); - embed_function("NumGyros", ID_TYPE_FN_NUM); - embed_function("JoyRumblePlay", ID_TYPE_SUB); - add_embedded_arg("joy_num", ID_TYPE_NUM); - add_embedded_arg("strength", ID_TYPE_NUM); - add_embedded_arg("duration", ID_TYPE_NUM); - embed_function("JoyRumbleStop", ID_TYPE_SUB); - add_embedded_arg("joy_num", ID_TYPE_NUM); - embed_function("JoystickIsHaptic", ID_TYPE_FN_NUM); - add_embedded_arg("joy_num", ID_TYPE_NUM); - embed_function("WriteByteBuffer", ID_TYPE_FN_NUM); - add_embedded_arg("stream", ID_TYPE_NUM); - add_embedded_arg("buf", ID_TYPE_BYREF_NUM); - add_embedded_arg("buf_size", ID_TYPE_NUM); - embed_function("ReadByteBuffer", ID_TYPE_FN_NUM); - add_embedded_arg("stream", ID_TYPE_NUM); - add_embedded_arg("buf", ID_TYPE_BYREF_NUM); - add_embedded_arg("buf_size", ID_TYPE_NUM); - embed_function("WindowEvent_Resize", ID_TYPE_FN_NUM); - add_embedded_arg("win", ID_TYPE_NUM); - embed_function("SetWindowAutoClose", ID_TYPE_SUB); - add_embedded_arg("win", ID_TYPE_NUM); - add_embedded_arg("exit_on_close", ID_TYPE_NUM); - embed_function("SetWindowResizable", ID_TYPE_SUB); - add_embedded_arg("win", ID_TYPE_NUM); - add_embedded_arg("flag", ID_TYPE_NUM); - embed_function("SystemReturnStdOut$", ID_TYPE_FN_STR); - add_embedded_arg("cmd$", ID_TYPE_STR); - embed_function("WindowMode", ID_TYPE_FN_NUM); - add_embedded_arg("visible", ID_TYPE_NUM); - add_embedded_arg("fullscreen", ID_TYPE_NUM); - add_embedded_arg("resizable", ID_TYPE_NUM); - add_embedded_arg("borderless", ID_TYPE_NUM); - add_embedded_arg("highDPI", ID_TYPE_NUM); - embed_function("WindowFlags", ID_TYPE_FN_NUM); - add_embedded_arg("win", ID_TYPE_NUM); - embed_function("RestoreWindow", ID_TYPE_SUB); - add_embedded_arg("win", ID_TYPE_NUM); - embed_function("UpdateAllWindows", ID_TYPE_SUB); - embed_function("QueryAudioSpec", ID_TYPE_FN_NUM); - add_embedded_arg("freq", ID_TYPE_BYREF_NUM); - add_embedded_arg("format", ID_TYPE_BYREF_NUM); - add_embedded_arg("channels", ID_TYPE_BYREF_NUM); - embed_function("MusicIsPlaying", ID_TYPE_FN_NUM); - embed_function("DrawGeometry", ID_TYPE_FN_NUM); - add_embedded_arg("slot", ID_TYPE_NUM); - add_embedded_arg("num_vertices", ID_TYPE_NUM); - add_embedded_arg("vertices", ID_TYPE_BYREF_NUM); - add_embedded_arg("num_indices", ID_TYPE_NUM); - add_embedded_arg("Indices", ID_TYPE_BYREF_NUM); - embed_function("Size", ID_TYPE_FN_NUM); - add_embedded_arg("s$", ID_TYPE_STR); - embed_function("BufferFromString", ID_TYPE_FN_NUM); - add_embedded_arg("s$", ID_TYPE_STR); - add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); - embed_function("StringFromBuffer$", ID_TYPE_FN_STR); - add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); - add_embedded_arg("buffer_size", ID_TYPE_NUM); - embed_function("GrabInput", ID_TYPE_SUB); - add_embedded_arg("flag", ID_TYPE_NUM); - embed_function("GrabbedWindow", ID_TYPE_FN_NUM); - embed_function("WarpMouse", ID_TYPE_SUB); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - embed_function("WarpMouseGlobal", ID_TYPE_SUB); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - embed_function("SetMouseZone", ID_TYPE_SUB); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("w", ID_TYPE_NUM); - add_embedded_arg("h", ID_TYPE_NUM); - embed_function("ClearMouseZone", ID_TYPE_SUB); - embed_function("SetWindowAlwaysOnTop", ID_TYPE_SUB); - add_embedded_arg("win", ID_TYPE_NUM); - add_embedded_arg("flag", ID_TYPE_NUM); - embed_function("SetMouseRelative", ID_TYPE_SUB); - add_embedded_arg("flag", ID_TYPE_NUM); - embed_function("SetWindowVSync", ID_TYPE_SUB); - add_embedded_arg("win", ID_TYPE_NUM); - add_embedded_arg("flag", ID_TYPE_NUM); - embed_function("OpenURL", ID_TYPE_FN_NUM); - add_embedded_arg("url$", ID_TYPE_STR); - embed_function("APIVersion$", ID_TYPE_FN_STR); - embed_function("FlashWindow", ID_TYPE_FN_NUM); - add_embedded_arg("win", ID_TYPE_NUM); - embed_function("MessageBox", ID_TYPE_FN_NUM); - add_embedded_arg("title$", ID_TYPE_STR); - add_embedded_arg("msg$", ID_TYPE_STR); - embed_function("NumberArrayCopy", ID_TYPE_SUB); - add_embedded_arg("src", ID_TYPE_BYREF_NUM); - add_embedded_arg("dst", ID_TYPE_BYREF_NUM); - embed_function("StringArrayCopy", ID_TYPE_SUB); - add_embedded_arg("src$", ID_TYPE_BYREF_STR); - add_embedded_arg("dst$", ID_TYPE_BYREF_STR); - embed_function("ArrayCopy", ID_TYPE_SUB); - add_embedded_arg("src", ID_TYPE_BYREF_NUM); - add_embedded_arg("dst", ID_TYPE_BYREF_NUM); - embed_function("NumberArrayFill", ID_TYPE_SUB); - add_embedded_arg("src", ID_TYPE_BYREF_NUM); - add_embedded_arg("fdata", ID_TYPE_NUM); - embed_function("StringArrayFill", ID_TYPE_SUB); - add_embedded_arg("src$", ID_TYPE_BYREF_STR); - add_embedded_arg("fdata$", ID_TYPE_STR); - embed_function("ArrayFill", ID_TYPE_SUB); - add_embedded_arg("src", ID_TYPE_BYREF_NUM); - add_embedded_arg("fdata", ID_TYPE_NUM); - embed_function("Runtime$", ID_TYPE_FN_STR); - embed_function("DimMatrix", ID_TYPE_SUB); - add_embedded_arg("m", ID_TYPE_NUM); - add_embedded_arg("m_rows", ID_TYPE_NUM); - add_embedded_arg("m_cols", ID_TYPE_NUM); - add_embedded_arg("preserve_flag", ID_TYPE_NUM); - embed_function("AddMatrix", ID_TYPE_FN_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("mB", ID_TYPE_NUM); - add_embedded_arg("mC", ID_TYPE_NUM); - embed_function("AugmentMatrix", ID_TYPE_FN_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("mB", ID_TYPE_NUM); - add_embedded_arg("mC", ID_TYPE_NUM); - embed_function("CopyMatrix", ID_TYPE_SUB); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("mB", ID_TYPE_NUM); - embed_function("InsertMatrixColumns", ID_TYPE_FN_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("c", ID_TYPE_NUM); - add_embedded_arg("num_cols", ID_TYPE_NUM); - embed_function("InsertMatrixRows", ID_TYPE_FN_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("r", ID_TYPE_NUM); - add_embedded_arg("num_rows", ID_TYPE_NUM); - embed_function("MultiplyMatrix", ID_TYPE_FN_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("mB", ID_TYPE_NUM); - add_embedded_arg("mC", ID_TYPE_NUM); - embed_function("CubeMatrix", ID_TYPE_FN_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("mB", ID_TYPE_NUM); - embed_function("DeleteMatrixColumns", ID_TYPE_FN_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("c", ID_TYPE_NUM); - add_embedded_arg("num_cols", ID_TYPE_NUM); - embed_function("DeleteMatrixRows", ID_TYPE_FN_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("r", ID_TYPE_NUM); - add_embedded_arg("num_rows", ID_TYPE_NUM); - embed_function("ClearMatrix", ID_TYPE_SUB); - add_embedded_arg("mA", ID_TYPE_NUM); - embed_function("ClearMatrixColumns", ID_TYPE_FN_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("c", ID_TYPE_NUM); - add_embedded_arg("num_cols", ID_TYPE_NUM); - embed_function("ClearMatrixRows", ID_TYPE_FN_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("r", ID_TYPE_NUM); - add_embedded_arg("num_rows", ID_TYPE_NUM); - embed_function("FillMatrix", ID_TYPE_SUB); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("v", ID_TYPE_NUM); - embed_function("FillMatrixColumns", ID_TYPE_FN_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("c", ID_TYPE_NUM); - add_embedded_arg("num_cols", ID_TYPE_NUM); - add_embedded_arg("v", ID_TYPE_NUM); - embed_function("FillMatrixRows", ID_TYPE_FN_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("r", ID_TYPE_NUM); - add_embedded_arg("num_rows", ID_TYPE_NUM); - add_embedded_arg("v", ID_TYPE_NUM); - embed_function("CopyMatrixColumns", ID_TYPE_FN_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("mB", ID_TYPE_NUM); - add_embedded_arg("c", ID_TYPE_NUM); - add_embedded_arg("num_cols", ID_TYPE_NUM); - embed_function("CopyMatrixRows", ID_TYPE_FN_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("mB", ID_TYPE_NUM); - add_embedded_arg("r", ID_TYPE_NUM); - add_embedded_arg("num_rows", ID_TYPE_NUM); - embed_function("IdentityMatrix", ID_TYPE_SUB); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("n", ID_TYPE_NUM); - embed_function("SolveMatrix", ID_TYPE_FN_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("mB", ID_TYPE_NUM); - add_embedded_arg("mC", ID_TYPE_NUM); - embed_function("IsEqualMatrix", ID_TYPE_FN_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("mB", ID_TYPE_NUM); - add_embedded_arg("tolerance", ID_TYPE_NUM); - embed_function("Determinant", ID_TYPE_FN_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - embed_function("AdjointMatrix", ID_TYPE_FN_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("mB", ID_TYPE_NUM); - embed_function("InvertMatrix", ID_TYPE_FN_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("mB", ID_TYPE_NUM); - embed_function("MatrixFromBuffer", ID_TYPE_SUB); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("r", ID_TYPE_NUM); - add_embedded_arg("c", ID_TYPE_NUM); - add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); - embed_function("GetMatrix", ID_TYPE_SUB); - add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - embed_function("RandomizeMatrix", ID_TYPE_SUB); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("vmin", ID_TYPE_NUM); - add_embedded_arg("vmax", ID_TYPE_NUM); - embed_function("MatrixValue", ID_TYPE_FN_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("r", ID_TYPE_NUM); - add_embedded_arg("c", ID_TYPE_NUM); - embed_function("SetMatrixValue", ID_TYPE_SUB); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("r", ID_TYPE_NUM); - add_embedded_arg("c", ID_TYPE_NUM); - add_embedded_arg("v", ID_TYPE_NUM); - embed_function("ScalarMatrix", ID_TYPE_SUB); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("mB", ID_TYPE_NUM); - add_embedded_arg("s_value", ID_TYPE_NUM); - embed_function("ScalarMatrixColumns", ID_TYPE_FN_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("mB", ID_TYPE_NUM); - add_embedded_arg("c", ID_TYPE_NUM); - add_embedded_arg("num_cols", ID_TYPE_NUM); - add_embedded_arg("s_value", ID_TYPE_NUM); - embed_function("ScalarMatrixRows", ID_TYPE_FN_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("mB", ID_TYPE_NUM); - add_embedded_arg("r", ID_TYPE_NUM); - add_embedded_arg("num_rows", ID_TYPE_NUM); - add_embedded_arg("s_value", ID_TYPE_NUM); - embed_function("SquareMatrix", ID_TYPE_FN_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("mB", ID_TYPE_NUM); - embed_function("SubMatrix", ID_TYPE_SUB); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("r", ID_TYPE_NUM); - add_embedded_arg("c", ID_TYPE_NUM); - embed_function("SubtractMatrix", ID_TYPE_FN_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("mB", ID_TYPE_NUM); - add_embedded_arg("mC", ID_TYPE_NUM); - embed_function("SwapMatrix", ID_TYPE_SUB); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("mB", ID_TYPE_NUM); - embed_function("SwapMatrixColumn", ID_TYPE_FN_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("C1", ID_TYPE_NUM); - add_embedded_arg("C2", ID_TYPE_NUM); - embed_function("SwapMatrixRow", ID_TYPE_FN_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("R1", ID_TYPE_NUM); - add_embedded_arg("R2", ID_TYPE_NUM); - embed_function("TransposeMatrix", ID_TYPE_FN_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("mB", ID_TYPE_NUM); - embed_function("UnAugmentMatrix", ID_TYPE_FN_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("mB", ID_TYPE_NUM); - add_embedded_arg("mC", ID_TYPE_NUM); - embed_function("ZeroMatrix", ID_TYPE_SUB); - add_embedded_arg("mA", ID_TYPE_NUM); - embed_function("GetMatrixSize", ID_TYPE_SUB); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("r", ID_TYPE_BYREF_NUM); - add_embedded_arg("c", ID_TYPE_BYREF_NUM); - embed_function("SetMatrixProcess", ID_TYPE_FN_NUM); - add_embedded_arg("p_num", ID_TYPE_NUM); - embed_function("ProcessOpen", ID_TYPE_FN_NUM); - add_embedded_arg("p_num", ID_TYPE_NUM); - embed_function("SetProcessErrorMode", ID_TYPE_SUB); - add_embedded_arg("p_num", ID_TYPE_NUM); - add_embedded_arg("error_mode", ID_TYPE_NUM); - embed_function("ProcessError", ID_TYPE_FN_NUM); - add_embedded_arg("p_num", ID_TYPE_NUM); - embed_function("ProcessWait", ID_TYPE_SUB); - add_embedded_arg("p_num", ID_TYPE_NUM); - embed_function("ProcessWaitAll", ID_TYPE_SUB); - embed_function("ProcessContinue", ID_TYPE_SUB); - add_embedded_arg("p_num", ID_TYPE_NUM); - embed_function("ProcessStop", ID_TYPE_SUB); - add_embedded_arg("p_num", ID_TYPE_NUM); - embed_function("ProcessClear", ID_TYPE_SUB); - add_embedded_arg("p_num", ID_TYPE_NUM); - embed_function("ProcessClose", ID_TYPE_FN_NUM); - add_embedded_arg("p_num", ID_TYPE_NUM); - embed_function("ProcessErrorMode", ID_TYPE_FN_NUM); - add_embedded_arg("p_num", ID_TYPE_NUM); - embed_function("ProcessSleep", ID_TYPE_SUB); - add_embedded_arg("p_num", ID_TYPE_NUM); - add_embedded_arg("msec", ID_TYPE_NUM); - embed_function("ProcessExists", ID_TYPE_FN_NUM); - add_embedded_arg("p_num", ID_TYPE_NUM); - embed_function("ProcessStopAll", ID_TYPE_SUB); - embed_function("ProcessContinueAll", ID_TYPE_SUB); - embed_function("ProcessQueueSize", ID_TYPE_FN_NUM); - add_embedded_arg("p_num", ID_TYPE_NUM); - embed_function("NumCPUs", ID_TYPE_FN_NUM); - embed_function("GetProjectionGeometry", ID_TYPE_SUB); - add_embedded_arg("cam_dist", ID_TYPE_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("f_vertex_count", ID_TYPE_NUM); - add_embedded_arg("columns", ID_TYPE_BYREF_NUM); - add_embedded_arg("uv", ID_TYPE_BYREF_NUM); - add_embedded_arg("graph_offset_x", ID_TYPE_NUM); - add_embedded_arg("graph_offset_y", ID_TYPE_NUM); - add_embedded_arg("v_color", ID_TYPE_NUM); - add_embedded_arg("vertex_count", ID_TYPE_BYREF_NUM); - add_embedded_arg("vertex2D", ID_TYPE_BYREF_NUM); - add_embedded_arg("index_count", ID_TYPE_BYREF_NUM); - add_embedded_arg("index", ID_TYPE_BYREF_NUM); - add_embedded_arg("clip_dist", ID_TYPE_BYREF_NUM); - add_embedded_arg("min_x", ID_TYPE_BYREF_NUM); - add_embedded_arg("min_y", ID_TYPE_BYREF_NUM); - add_embedded_arg("max_x", ID_TYPE_BYREF_NUM); - add_embedded_arg("max_y", ID_TYPE_BYREF_NUM); - embed_function("CalculateFaceZ", ID_TYPE_FN_NUM); - add_embedded_arg("cam_dist", ID_TYPE_NUM); - add_embedded_arg("graph_offset_x", ID_TYPE_NUM); - add_embedded_arg("graph_offset_y", ID_TYPE_NUM); - add_embedded_arg("view_w", ID_TYPE_NUM); - add_embedded_arg("view_h", ID_TYPE_NUM); - add_embedded_arg("view_depth", ID_TYPE_NUM); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("f_vertex_count", ID_TYPE_NUM); - add_embedded_arg("columns", ID_TYPE_BYREF_NUM); - add_embedded_arg("face_min_z", ID_TYPE_BYREF_NUM); - add_embedded_arg("face_max_z", ID_TYPE_BYREF_NUM); - add_embedded_arg("z_avg", ID_TYPE_BYREF_NUM); - embed_function("SetChannelSpacePosition", ID_TYPE_FN_NUM); - add_embedded_arg("channel", ID_TYPE_NUM); - add_embedded_arg("angle", ID_TYPE_NUM); - add_embedded_arg("distance", ID_TYPE_NUM); - embed_function("SaveBMP", ID_TYPE_FN_NUM); - add_embedded_arg("img", ID_TYPE_NUM); - add_embedded_arg("file$", ID_TYPE_STR); - embed_function("SavePNG", ID_TYPE_FN_NUM); - add_embedded_arg("img", ID_TYPE_NUM); - add_embedded_arg("file$", ID_TYPE_STR); - embed_function("SaveJPG", ID_TYPE_FN_NUM); - add_embedded_arg("img", ID_TYPE_NUM); - add_embedded_arg("file$", ID_TYPE_STR); - embed_function("GetLineIntersection", ID_TYPE_FN_NUM); - add_embedded_arg("p0_x", ID_TYPE_NUM); - add_embedded_arg("p0_y", ID_TYPE_NUM); - add_embedded_arg("p1_x", ID_TYPE_NUM); - add_embedded_arg("p1_y", ID_TYPE_NUM); - add_embedded_arg("p2_x", ID_TYPE_NUM); - add_embedded_arg("p2_y", ID_TYPE_NUM); - add_embedded_arg("p3_x", ID_TYPE_NUM); - add_embedded_arg("p3_y", ID_TYPE_NUM); - add_embedded_arg("i_x", ID_TYPE_BYREF_NUM); - add_embedded_arg("i_y", ID_TYPE_BYREF_NUM); - embed_function("Interpolate", ID_TYPE_FN_NUM); - add_embedded_arg("min_a", ID_TYPE_NUM); - add_embedded_arg("max_a", ID_TYPE_NUM); - add_embedded_arg("mid_a", ID_TYPE_NUM); - add_embedded_arg("min_b", ID_TYPE_NUM); - add_embedded_arg("max_b", ID_TYPE_NUM); - embed_function("ATan2", ID_TYPE_FN_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("x", ID_TYPE_NUM); - embed_function("PointInQuad", ID_TYPE_FN_NUM); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("x1", ID_TYPE_NUM); - add_embedded_arg("y1", ID_TYPE_NUM); - add_embedded_arg("x2", ID_TYPE_NUM); - add_embedded_arg("y2", ID_TYPE_NUM); - add_embedded_arg("x3", ID_TYPE_NUM); - add_embedded_arg("y3", ID_TYPE_NUM); - add_embedded_arg("x4", ID_TYPE_NUM); - add_embedded_arg("y4", ID_TYPE_NUM); - embed_function("PointInTri", ID_TYPE_FN_NUM); - add_embedded_arg("x", ID_TYPE_NUM); - add_embedded_arg("y", ID_TYPE_NUM); - add_embedded_arg("x1", ID_TYPE_NUM); - add_embedded_arg("y1", ID_TYPE_NUM); - add_embedded_arg("x2", ID_TYPE_NUM); - add_embedded_arg("y2", ID_TYPE_NUM); - add_embedded_arg("x3", ID_TYPE_NUM); - add_embedded_arg("y3", ID_TYPE_NUM); - embed_function("Distance2D", ID_TYPE_FN_NUM); - add_embedded_arg("x1", ID_TYPE_NUM); - add_embedded_arg("y1", ID_TYPE_NUM); - add_embedded_arg("x2", ID_TYPE_NUM); - add_embedded_arg("y2", ID_TYPE_NUM); - embed_function("Distance3D", ID_TYPE_FN_NUM); - add_embedded_arg("x1", ID_TYPE_NUM); - add_embedded_arg("y1", ID_TYPE_NUM); - add_embedded_arg("z1", ID_TYPE_NUM); - add_embedded_arg("x2", ID_TYPE_NUM); - add_embedded_arg("y2", ID_TYPE_NUM); - add_embedded_arg("z2", ID_TYPE_NUM); - embed_function("GetCircleLineIntersection", ID_TYPE_FN_NUM); - add_embedded_arg("circle_x", ID_TYPE_NUM); - add_embedded_arg("circle_y", ID_TYPE_NUM); - add_embedded_arg("radius", ID_TYPE_NUM); - add_embedded_arg("x1", ID_TYPE_NUM); - add_embedded_arg("y1", ID_TYPE_NUM); - add_embedded_arg("x2", ID_TYPE_NUM); - add_embedded_arg("y2", ID_TYPE_NUM); - add_embedded_arg("ix1", ID_TYPE_BYREF_NUM); - add_embedded_arg("iy1", ID_TYPE_BYREF_NUM); - add_embedded_arg("ix2", ID_TYPE_BYREF_NUM); - add_embedded_arg("iy2", ID_TYPE_BYREF_NUM); - embed_function("GetLinePlaneIntersection", ID_TYPE_FN_NUM); - add_embedded_arg("line_point", ID_TYPE_BYREF_NUM); - add_embedded_arg("line_direction", ID_TYPE_BYREF_NUM); - add_embedded_arg("plane_point_1", ID_TYPE_BYREF_NUM); - add_embedded_arg("plane_point_2", ID_TYPE_BYREF_NUM); - add_embedded_arg("plane_point_3", ID_TYPE_BYREF_NUM); - add_embedded_arg("intersection", ID_TYPE_BYREF_NUM); - embed_function("IncrementMatrixRows", ID_TYPE_SUB); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("mB", ID_TYPE_NUM); - add_embedded_arg("r", ID_TYPE_NUM); - add_embedded_arg("num_rows", ID_TYPE_NUM); - add_embedded_arg("value", ID_TYPE_NUM); - embed_function("IncrementMatrixColumns", ID_TYPE_SUB); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("mB", ID_TYPE_NUM); - add_embedded_arg("c", ID_TYPE_NUM); - add_embedded_arg("num_cols", ID_TYPE_NUM); - add_embedded_arg("value", ID_TYPE_NUM); - embed_function("JoinMatrixRows", ID_TYPE_SUB); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("mB", ID_TYPE_NUM); - add_embedded_arg("mC", ID_TYPE_NUM); - embed_function("JoinMatrixColumns", ID_TYPE_SUB); - add_embedded_arg("mA", ID_TYPE_NUM); - add_embedded_arg("mB", ID_TYPE_NUM); - add_embedded_arg("mC", ID_TYPE_NUM); - embed_function("TypeArrayDim", ID_TYPE_FN_NUM); - add_embedded_arg("id", ID_TYPE_BYREF_USER, 0); - embed_function("TypeArraySize", ID_TYPE_FN_NUM); - add_embedded_arg("id", ID_TYPE_BYREF_USER, 0); - add_embedded_arg("array_dim", ID_TYPE_NUM); - embed_function("TypeArrayCopy", ID_TYPE_SUB); - add_embedded_arg("src", ID_TYPE_BYREF_USER, 0); - add_embedded_arg("dst", ID_TYPE_BYREF_USER, 0); - embed_function("TypeArrayFill", ID_TYPE_SUB); - add_embedded_arg("src", ID_TYPE_BYREF_USER, 0); - add_embedded_arg("fdata", ID_TYPE_USER, 0); - -} +#ifndef RC_BUILTIN_H_INCLUDED +#define RC_BUILTIN_H_INCLUDED +#include "identifier.h" +void init_embedded_functions() +{ + embed_function("Fprint", ID_TYPE_SUB); + add_embedded_arg("txt$", ID_TYPE_STR); + embed_function("Input$", ID_TYPE_FN_STR); + add_embedded_arg("prompt$", ID_TYPE_STR); + embed_function("tst", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + embed_function("ArrayDim", ID_TYPE_FN_NUM); + add_embedded_arg("id", ID_TYPE_BYREF_NUM); + embed_function("StringArrayDim", ID_TYPE_FN_NUM); + add_embedded_arg("id$", ID_TYPE_BYREF_STR); + embed_function("NumberArrayDim", ID_TYPE_FN_NUM); + add_embedded_arg("id", ID_TYPE_BYREF_NUM); + embed_function("ArraySize", ID_TYPE_FN_NUM); + add_embedded_arg("id", ID_TYPE_BYREF_NUM); + add_embedded_arg("array_dim", ID_TYPE_NUM); + embed_function("StringArraySize", ID_TYPE_FN_NUM); + add_embedded_arg("id$", ID_TYPE_BYREF_STR); + add_embedded_arg("array_dim", ID_TYPE_NUM); + embed_function("NumberArraySize", ID_TYPE_FN_NUM); + add_embedded_arg("id", ID_TYPE_BYREF_NUM); + add_embedded_arg("array_dim", ID_TYPE_NUM); + embed_function("NumberArrayCopy", ID_TYPE_SUB); + add_embedded_arg("src", ID_TYPE_BYREF_NUM); + add_embedded_arg("dst", ID_TYPE_BYREF_NUM); + embed_function("StringArrayCopy", ID_TYPE_SUB); + add_embedded_arg("src$", ID_TYPE_BYREF_STR); + add_embedded_arg("dst$", ID_TYPE_BYREF_STR); + embed_function("ArrayCopy", ID_TYPE_SUB); + add_embedded_arg("src", ID_TYPE_BYREF_NUM); + add_embedded_arg("dst", ID_TYPE_BYREF_NUM); + embed_function("NumberArrayFill", ID_TYPE_SUB); + add_embedded_arg("src", ID_TYPE_BYREF_NUM); + add_embedded_arg("fdata", ID_TYPE_NUM); + embed_function("StringArrayFill", ID_TYPE_SUB); + add_embedded_arg("src$", ID_TYPE_BYREF_STR); + add_embedded_arg("fdata$", ID_TYPE_STR); + embed_function("ArrayFill", ID_TYPE_SUB); + add_embedded_arg("src", ID_TYPE_BYREF_NUM); + add_embedded_arg("fdata", ID_TYPE_NUM); + embed_function("TypeArrayDim", ID_TYPE_FN_NUM); + add_embedded_arg("id", ID_TYPE_BYREF_USER, 0); + embed_function("TypeArraySize", ID_TYPE_FN_NUM); + add_embedded_arg("id", ID_TYPE_BYREF_USER, 0); + add_embedded_arg("array_dim", ID_TYPE_NUM); + embed_function("TypeArrayCopy", ID_TYPE_SUB); + add_embedded_arg("src", ID_TYPE_BYREF_USER, 0); + add_embedded_arg("dst", ID_TYPE_BYREF_USER, 0); + embed_function("TypeArrayFill", ID_TYPE_SUB); + add_embedded_arg("src", ID_TYPE_BYREF_USER, 0); + add_embedded_arg("fdata", ID_TYPE_USER, 0); + embed_function("Abs", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Acos", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("AndBit", ID_TYPE_FN_NUM); + add_embedded_arg("a", ID_TYPE_NUM); + add_embedded_arg("b", ID_TYPE_NUM); + embed_function("Asin", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Atan", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Bin$", ID_TYPE_FN_STR); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("CInt32", ID_TYPE_FN_NUM); + add_embedded_arg("i", ID_TYPE_NUM); + embed_function("CInt64", ID_TYPE_FN_NUM); + add_embedded_arg("i", ID_TYPE_NUM); + embed_function("Cos", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Degrees", ID_TYPE_FN_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + embed_function("Exp", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Frac", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Hex$", ID_TYPE_FN_STR); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("HexVal", ID_TYPE_FN_NUM); + add_embedded_arg("n$", ID_TYPE_STR); + embed_function("Int", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Log", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Max", ID_TYPE_FN_NUM); + add_embedded_arg("a", ID_TYPE_NUM); + add_embedded_arg("b", ID_TYPE_NUM); + embed_function("Min", ID_TYPE_FN_NUM); + add_embedded_arg("a", ID_TYPE_NUM); + add_embedded_arg("b", ID_TYPE_NUM); + embed_function("OrBit", ID_TYPE_FN_NUM); + add_embedded_arg("a", ID_TYPE_NUM); + add_embedded_arg("b", ID_TYPE_NUM); + embed_function("Radians", ID_TYPE_FN_NUM); + add_embedded_arg("d", ID_TYPE_NUM); + embed_function("Randomize", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Rand", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Round", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Sign", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Sin", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Sqrt", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Tan", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("XOrBit", ID_TYPE_FN_NUM); + add_embedded_arg("a", ID_TYPE_NUM); + add_embedded_arg("b", ID_TYPE_NUM); + embed_function("GetLineIntersection", ID_TYPE_FN_NUM); + add_embedded_arg("p0_x", ID_TYPE_NUM); + add_embedded_arg("p0_y", ID_TYPE_NUM); + add_embedded_arg("p1_x", ID_TYPE_NUM); + add_embedded_arg("p1_y", ID_TYPE_NUM); + add_embedded_arg("p2_x", ID_TYPE_NUM); + add_embedded_arg("p2_y", ID_TYPE_NUM); + add_embedded_arg("p3_x", ID_TYPE_NUM); + add_embedded_arg("p3_y", ID_TYPE_NUM); + add_embedded_arg("i_x", ID_TYPE_BYREF_NUM); + add_embedded_arg("i_y", ID_TYPE_BYREF_NUM); + embed_function("Interpolate", ID_TYPE_FN_NUM); + add_embedded_arg("min_a", ID_TYPE_NUM); + add_embedded_arg("max_a", ID_TYPE_NUM); + add_embedded_arg("mid_a", ID_TYPE_NUM); + add_embedded_arg("min_b", ID_TYPE_NUM); + add_embedded_arg("max_b", ID_TYPE_NUM); + embed_function("ATan2", ID_TYPE_FN_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + embed_function("PointInQuad", ID_TYPE_FN_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("x1", ID_TYPE_NUM); + add_embedded_arg("y1", ID_TYPE_NUM); + add_embedded_arg("x2", ID_TYPE_NUM); + add_embedded_arg("y2", ID_TYPE_NUM); + add_embedded_arg("x3", ID_TYPE_NUM); + add_embedded_arg("y3", ID_TYPE_NUM); + add_embedded_arg("x4", ID_TYPE_NUM); + add_embedded_arg("y4", ID_TYPE_NUM); + embed_function("PointInTri", ID_TYPE_FN_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("x1", ID_TYPE_NUM); + add_embedded_arg("y1", ID_TYPE_NUM); + add_embedded_arg("x2", ID_TYPE_NUM); + add_embedded_arg("y2", ID_TYPE_NUM); + add_embedded_arg("x3", ID_TYPE_NUM); + add_embedded_arg("y3", ID_TYPE_NUM); + embed_function("Distance2D", ID_TYPE_FN_NUM); + add_embedded_arg("x1", ID_TYPE_NUM); + add_embedded_arg("y1", ID_TYPE_NUM); + add_embedded_arg("x2", ID_TYPE_NUM); + add_embedded_arg("y2", ID_TYPE_NUM); + embed_function("Distance3D", ID_TYPE_FN_NUM); + add_embedded_arg("x1", ID_TYPE_NUM); + add_embedded_arg("y1", ID_TYPE_NUM); + add_embedded_arg("z1", ID_TYPE_NUM); + add_embedded_arg("x2", ID_TYPE_NUM); + add_embedded_arg("y2", ID_TYPE_NUM); + add_embedded_arg("z2", ID_TYPE_NUM); + embed_function("GetCircleLineIntersection", ID_TYPE_FN_NUM); + add_embedded_arg("circle_x", ID_TYPE_NUM); + add_embedded_arg("circle_y", ID_TYPE_NUM); + add_embedded_arg("radius", ID_TYPE_NUM); + add_embedded_arg("x1", ID_TYPE_NUM); + add_embedded_arg("y1", ID_TYPE_NUM); + add_embedded_arg("x2", ID_TYPE_NUM); + add_embedded_arg("y2", ID_TYPE_NUM); + add_embedded_arg("ix1", ID_TYPE_BYREF_NUM); + add_embedded_arg("iy1", ID_TYPE_BYREF_NUM); + add_embedded_arg("ix2", ID_TYPE_BYREF_NUM); + add_embedded_arg("iy2", ID_TYPE_BYREF_NUM); + embed_function("GetLinePlaneIntersection", ID_TYPE_FN_NUM); + add_embedded_arg("line_point", ID_TYPE_BYREF_NUM); + add_embedded_arg("line_direction", ID_TYPE_BYREF_NUM); + add_embedded_arg("plane_point_1", ID_TYPE_BYREF_NUM); + add_embedded_arg("plane_point_2", ID_TYPE_BYREF_NUM); + add_embedded_arg("plane_point_3", ID_TYPE_BYREF_NUM); + add_embedded_arg("intersection", ID_TYPE_BYREF_NUM); + embed_function("Asc", ID_TYPE_FN_NUM); + add_embedded_arg("c$", ID_TYPE_STR); + embed_function("Chr$", ID_TYPE_FN_STR); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Insert$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("tgt$", ID_TYPE_STR); + add_embedded_arg("pos", ID_TYPE_NUM); + embed_function("InStr", ID_TYPE_FN_NUM); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("substr$", ID_TYPE_STR); + embed_function("Lcase$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + embed_function("Left$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Length", ID_TYPE_FN_NUM); + add_embedded_arg("src$", ID_TYPE_STR); + embed_function("Len", ID_TYPE_FN_NUM); + add_embedded_arg("src$", ID_TYPE_STR); + embed_function("Ltrim$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + embed_function("Mid$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("start", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("ReplaceSubstr$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("rpc$", ID_TYPE_STR); + add_embedded_arg("pos", ID_TYPE_NUM); + embed_function("Replace$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("tgt$", ID_TYPE_STR); + add_embedded_arg("rpc$", ID_TYPE_STR); + embed_function("Reverse$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + embed_function("Right$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Rtrim$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + embed_function("StringFill$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Str$", ID_TYPE_FN_STR); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Str_F$", ID_TYPE_FN_STR); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Str_S$", ID_TYPE_FN_STR); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Tally", ID_TYPE_FN_NUM); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("substr$", ID_TYPE_STR); + embed_function("Trim$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + embed_function("Ucase$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + embed_function("Val", ID_TYPE_FN_NUM); + add_embedded_arg("n$", ID_TYPE_STR); + embed_function("Size", ID_TYPE_FN_NUM); + add_embedded_arg("s$", ID_TYPE_STR); + embed_function("BufferFromString", ID_TYPE_FN_NUM); + add_embedded_arg("s$", ID_TYPE_STR); + add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); + embed_function("StringFromBuffer$", ID_TYPE_FN_STR); + add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); + add_embedded_arg("buffer_size", ID_TYPE_NUM); + embed_function("CreateStack_N", ID_TYPE_FN_NUM); + embed_function("CreateStack_S", ID_TYPE_FN_NUM); + embed_function("ClearStack_N", ID_TYPE_SUB); + add_embedded_arg("num_stack", ID_TYPE_NUM); + embed_function("ClearStack_S", ID_TYPE_SUB); + add_embedded_arg("str_stack", ID_TYPE_NUM); + embed_function("DeleteStack_N", ID_TYPE_SUB); + add_embedded_arg("num_stack", ID_TYPE_NUM); + embed_function("DeleteStack_S", ID_TYPE_SUB); + add_embedded_arg("str_stack", ID_TYPE_NUM); + embed_function("Push_N", ID_TYPE_SUB); + add_embedded_arg("num_stack", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Pop_N", ID_TYPE_FN_NUM); + add_embedded_arg("num_stack", ID_TYPE_NUM); + embed_function("Push_S", ID_TYPE_SUB); + add_embedded_arg("str_stack", ID_TYPE_NUM); + add_embedded_arg("s$", ID_TYPE_STR); + embed_function("Pop_S$", ID_TYPE_FN_STR); + add_embedded_arg("str_stack", ID_TYPE_NUM); + embed_function("Stack_Size_N", ID_TYPE_FN_NUM); + add_embedded_arg("num_stack", ID_TYPE_NUM); + embed_function("Stack_Size_S", ID_TYPE_FN_NUM); + add_embedded_arg("str_stack", ID_TYPE_NUM); + embed_function("OpenFile", ID_TYPE_FN_NUM); + add_embedded_arg("fileName$", ID_TYPE_STR); + add_embedded_arg("mode", ID_TYPE_NUM); + embed_function("CloseFile", ID_TYPE_SUB); + add_embedded_arg("stream", ID_TYPE_NUM); + embed_function("ReadByte", ID_TYPE_FN_NUM); + add_embedded_arg("stream", ID_TYPE_NUM); + embed_function("WriteByte", ID_TYPE_SUB); + add_embedded_arg("stream", ID_TYPE_NUM); + add_embedded_arg("byte", ID_TYPE_NUM); + embed_function("ReadLine$", ID_TYPE_FN_STR); + add_embedded_arg("stream", ID_TYPE_NUM); + embed_function("Write", ID_TYPE_SUB); + add_embedded_arg("stream", ID_TYPE_NUM); + add_embedded_arg("txt$", ID_TYPE_STR); + embed_function("WriteLine", ID_TYPE_SUB); + add_embedded_arg("stream", ID_TYPE_NUM); + add_embedded_arg("txt$", ID_TYPE_STR); + embed_function("CopyFile", ID_TYPE_SUB); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("dst$", ID_TYPE_STR); + embed_function("RemoveFile", ID_TYPE_FN_NUM); + add_embedded_arg("fileName$", ID_TYPE_STR); + embed_function("FileExists", ID_TYPE_FN_NUM); + add_embedded_arg("fileName$", ID_TYPE_STR); + embed_function("MoveFile", ID_TYPE_FN_NUM); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("dst$", ID_TYPE_STR); + embed_function("RenameFile", ID_TYPE_FN_NUM); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("dst$", ID_TYPE_STR); + embed_function("FileLength", ID_TYPE_FN_NUM); + add_embedded_arg("fileName$", ID_TYPE_STR); + embed_function("Tell", ID_TYPE_FN_NUM); + add_embedded_arg("stream", ID_TYPE_NUM); + embed_function("Seek", ID_TYPE_FN_NUM); + add_embedded_arg("stream", ID_TYPE_NUM); + add_embedded_arg("pos", ID_TYPE_NUM); + embed_function("EOF", ID_TYPE_FN_NUM); + add_embedded_arg("stream", ID_TYPE_NUM); + embed_function("WriteByteBuffer", ID_TYPE_FN_NUM); + add_embedded_arg("stream", ID_TYPE_NUM); + add_embedded_arg("buf", ID_TYPE_BYREF_NUM); + add_embedded_arg("buf_size", ID_TYPE_NUM); + embed_function("ReadByteBuffer", ID_TYPE_FN_NUM); + add_embedded_arg("stream", ID_TYPE_NUM); + add_embedded_arg("buf", ID_TYPE_BYREF_NUM); + add_embedded_arg("buf_size", ID_TYPE_NUM); + embed_function("ChangeDir", ID_TYPE_SUB); + add_embedded_arg("p$", ID_TYPE_STR); + embed_function("DirExists", ID_TYPE_FN_NUM); + add_embedded_arg("p$", ID_TYPE_STR); + embed_function("DirFirst$", ID_TYPE_FN_STR); + embed_function("Dir$", ID_TYPE_FN_STR); + embed_function("DirNext$", ID_TYPE_FN_STR); + embed_function("MakeDir", ID_TYPE_FN_NUM); + add_embedded_arg("p$", ID_TYPE_STR); + embed_function("RemoveDir", ID_TYPE_FN_NUM); + add_embedded_arg("p$", ID_TYPE_STR); + embed_function("Date$", ID_TYPE_FN_STR); + embed_function("Easter$", ID_TYPE_FN_STR); + add_embedded_arg("year", ID_TYPE_NUM); + embed_function("Ticks", ID_TYPE_FN_NUM); + embed_function("Time$", ID_TYPE_FN_STR); + embed_function("Timer", ID_TYPE_FN_NUM); + embed_function("Wait", ID_TYPE_SUB); + add_embedded_arg("m_sec", ID_TYPE_NUM); + embed_function("OpenWindow", ID_TYPE_FN_NUM); + add_embedded_arg("title$", ID_TYPE_STR); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + add_embedded_arg("fullscreen", ID_TYPE_NUM); + add_embedded_arg("vsync", ID_TYPE_NUM); + embed_function("OpenWindowEx", ID_TYPE_FN_NUM); + add_embedded_arg("title$", ID_TYPE_STR); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + add_embedded_arg("mode", ID_TYPE_NUM); + add_embedded_arg("aa", ID_TYPE_NUM); + add_embedded_arg("stencil_buffer", ID_TYPE_NUM); + add_embedded_arg("vsync", ID_TYPE_NUM); + embed_function("CloseWindow", ID_TYPE_SUB); + embed_function("RaiseWindow", ID_TYPE_SUB); + embed_function("Update", ID_TYPE_SUB); + embed_function("Cls", ID_TYPE_SUB); + embed_function("SetClearColor", ID_TYPE_SUB); + add_embedded_arg("c", ID_TYPE_NUM); + embed_function("ShowWindow", ID_TYPE_SUB); + embed_function("HideWindow", ID_TYPE_SUB); + embed_function("SetWindowTitle", ID_TYPE_SUB); + add_embedded_arg("title$", ID_TYPE_STR); + embed_function("WindowTitle$", ID_TYPE_FN_STR); + embed_function("SetWindowPosition", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("GetWindowPosition", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + embed_function("SetWindowSize", ID_TYPE_SUB); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("GetWindowSize", ID_TYPE_SUB); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("SetWindowMinSize", ID_TYPE_SUB); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("GetWindowMinSize", ID_TYPE_SUB); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("SetWindowMaxSize", ID_TYPE_SUB); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("GetWindowMaxSize", ID_TYPE_SUB); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("WindowIsFullscreen", ID_TYPE_FN_NUM); + embed_function("WindowIsVisible", ID_TYPE_FN_NUM); + embed_function("WindowIsBordered", ID_TYPE_FN_NUM); + embed_function("WindowIsResizable", ID_TYPE_FN_NUM); + embed_function("WindowIsMinimized", ID_TYPE_FN_NUM); + embed_function("WindowIsMaximized", ID_TYPE_FN_NUM); + embed_function("WindowHasInputFocus", ID_TYPE_FN_NUM); + embed_function("WindowHasMouseFocus", ID_TYPE_FN_NUM); + embed_function("SetWindowFullscreen", ID_TYPE_SUB); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("MaximizeWindow", ID_TYPE_SUB); + embed_function("MinimizeWindow", ID_TYPE_SUB); + embed_function("SetWindowBordered", ID_TYPE_SUB); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("WindowClip", ID_TYPE_FN_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("WindowExists", ID_TYPE_FN_NUM); + embed_function("WindowEvent_Close", ID_TYPE_FN_NUM); + embed_function("WindowEvent_Maximize", ID_TYPE_FN_NUM); + embed_function("WindowEvent_Minimize", ID_TYPE_FN_NUM); + embed_function("FPS", ID_TYPE_FN_NUM); + embed_function("SetWindowIcon", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("WindowEvent_Resize", ID_TYPE_FN_NUM); + embed_function("SetWindowAutoClose", ID_TYPE_SUB); + add_embedded_arg("exit_on_close", ID_TYPE_NUM); + embed_function("SetWindowResizable", ID_TYPE_SUB); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("WindowMode", ID_TYPE_FN_NUM); + add_embedded_arg("visible", ID_TYPE_NUM); + add_embedded_arg("fullscreen", ID_TYPE_NUM); + add_embedded_arg("resizable", ID_TYPE_NUM); + add_embedded_arg("borderless", ID_TYPE_NUM); + add_embedded_arg("highDPI", ID_TYPE_NUM); + embed_function("getWindowMode", ID_TYPE_FN_NUM); + embed_function("RestoreWindow", ID_TYPE_SUB); + embed_function("GrabInput", ID_TYPE_SUB); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("SetWindowAlwaysOnTop", ID_TYPE_SUB); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("SetMouseRelative", ID_TYPE_SUB); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("SetWindowVSync", ID_TYPE_SUB); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("FlashWindow", ID_TYPE_FN_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("WindowIsGrabbed", ID_TYPE_FN_NUM); + embed_function("OpenCanvas", ID_TYPE_FN_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + add_embedded_arg("viewport_x", ID_TYPE_NUM); + add_embedded_arg("viewport_y", ID_TYPE_NUM); + add_embedded_arg("viewport_w", ID_TYPE_NUM); + add_embedded_arg("viewport_h", ID_TYPE_NUM); + add_embedded_arg("mode", ID_TYPE_NUM); + embed_function("CloseCanvas", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + embed_function("SetCanvas3D", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("SetCanvasVisible", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("CanvasIsVisible", ID_TYPE_FN_NUM); + add_embedded_arg("c_num", ID_TYPE_NUM); + embed_function("SetCanvasViewport", ID_TYPE_SUB); + add_embedded_arg("cnum", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("GetCanvasViewport", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("Canvas", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + embed_function("SetCanvasOffset", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("GetCanvasOffset", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + embed_function("GetCanvasSize", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("ClearCanvas", ID_TYPE_SUB); + embed_function("SetCanvasAlpha", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + add_embedded_arg("a", ID_TYPE_NUM); + embed_function("GetCanvasAlpha", ID_TYPE_FN_NUM); + add_embedded_arg("c_num", ID_TYPE_NUM); + embed_function("SetCanvasColorMod", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + embed_function("GetCanvasColorMod", ID_TYPE_FN_NUM); + add_embedded_arg("c_num", ID_TYPE_NUM); + embed_function("CloneCanvas", ID_TYPE_SUB); + add_embedded_arg("src", ID_TYPE_NUM); + add_embedded_arg("dst", ID_TYPE_NUM); + embed_function("SetCanvasZ", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("GetCanvasZ", ID_TYPE_FN_NUM); + add_embedded_arg("c_num", ID_TYPE_NUM); + embed_function("CanvasClip", ID_TYPE_FN_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("ActiveCanvas", ID_TYPE_FN_NUM); + embed_function("Circle", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("radius", ID_TYPE_NUM); + embed_function("CircleFill", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("radius", ID_TYPE_NUM); + embed_function("Ellipse", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("rx", ID_TYPE_NUM); + add_embedded_arg("ry", ID_TYPE_NUM); + embed_function("EllipseFill", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("rx", ID_TYPE_NUM); + add_embedded_arg("ry", ID_TYPE_NUM); + embed_function("FloodFill", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("GetPixel", ID_TYPE_FN_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("SetColor", ID_TYPE_SUB); + add_embedded_arg("c", ID_TYPE_NUM); + embed_function("Line", ID_TYPE_SUB); + add_embedded_arg("x1", ID_TYPE_NUM); + add_embedded_arg("y1", ID_TYPE_NUM); + add_embedded_arg("x2", ID_TYPE_NUM); + add_embedded_arg("y2", ID_TYPE_NUM); + embed_function("Poly", ID_TYPE_SUB); + add_embedded_arg("n", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + embed_function("Rect", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("RectFill", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("RGB", ID_TYPE_FN_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("g", ID_TYPE_NUM); + add_embedded_arg("b", ID_TYPE_NUM); + embed_function("RGBA", ID_TYPE_FN_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("g", ID_TYPE_NUM); + add_embedded_arg("b", ID_TYPE_NUM); + add_embedded_arg("a", ID_TYPE_NUM); + embed_function("Pset", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("LoadImage", ID_TYPE_FN_NUM); + add_embedded_arg("img$", ID_TYPE_STR); + embed_function("LoadImageEx", ID_TYPE_FN_NUM); + add_embedded_arg("img$", ID_TYPE_STR); + add_embedded_arg("colkey", ID_TYPE_NUM); + embed_function("createImage", ID_TYPE_FN_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); + embed_function("createImageEx", ID_TYPE_FN_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); + add_embedded_arg("color", ID_TYPE_NUM); + embed_function("getImageBuffer", ID_TYPE_SUB); + add_embedded_arg("img_id", ID_TYPE_NUM); + add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); + embed_function("ImageExists", ID_TYPE_FN_NUM); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("ColorKey", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + embed_function("setBilinearFilter", ID_TYPE_SUB); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("getBilinearFilter", ID_TYPE_FN_NUM); + embed_function("CopyImage", ID_TYPE_FN_NUM); + add_embedded_arg("img_id", ID_TYPE_NUM); + embed_function("DeleteImage", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("SetImageAlpha", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("a", ID_TYPE_NUM); + embed_function("GetImageAlpha", ID_TYPE_FN_NUM); + add_embedded_arg("img_id", ID_TYPE_NUM); + embed_function("GetImageSize", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("SetBlendMode", ID_TYPE_SUB); + add_embedded_arg("blend_mode", ID_TYPE_NUM); + embed_function("GetBlendMode", ID_TYPE_FN_NUM); + embed_function("SetImageColorMod", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + embed_function("GetImageColorMod", ID_TYPE_FN_NUM); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("DrawImage", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("DrawImage_Blit", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("src_x", ID_TYPE_NUM); + add_embedded_arg("src_y", ID_TYPE_NUM); + add_embedded_arg("src_w", ID_TYPE_NUM); + add_embedded_arg("src_h", ID_TYPE_NUM); + embed_function("DrawImage_BlitEx", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + add_embedded_arg("src_x", ID_TYPE_NUM); + add_embedded_arg("src_y", ID_TYPE_NUM); + add_embedded_arg("src_w", ID_TYPE_NUM); + add_embedded_arg("src_h", ID_TYPE_NUM); + embed_function("DrawImage_Rotate", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("angle", ID_TYPE_NUM); + embed_function("DrawImage_RotateEx", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("src_x", ID_TYPE_NUM); + add_embedded_arg("src_y", ID_TYPE_NUM); + add_embedded_arg("src_w", ID_TYPE_NUM); + add_embedded_arg("src_h", ID_TYPE_NUM); + add_embedded_arg("angle", ID_TYPE_NUM); + embed_function("DrawImage_Zoom", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("zx", ID_TYPE_NUM); + add_embedded_arg("zy", ID_TYPE_NUM); + embed_function("DrawImage_ZoomEx", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("src_x", ID_TYPE_NUM); + add_embedded_arg("src_y", ID_TYPE_NUM); + add_embedded_arg("src_w", ID_TYPE_NUM); + add_embedded_arg("src_h", ID_TYPE_NUM); + add_embedded_arg("zx", ID_TYPE_NUM); + add_embedded_arg("zy", ID_TYPE_NUM); + embed_function("DrawImage_Rotozoom", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("angle", ID_TYPE_NUM); + add_embedded_arg("zx", ID_TYPE_NUM); + add_embedded_arg("zy", ID_TYPE_NUM); + embed_function("DrawImage_RotozoomEx", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("src_x", ID_TYPE_NUM); + add_embedded_arg("src_y", ID_TYPE_NUM); + add_embedded_arg("src_w", ID_TYPE_NUM); + add_embedded_arg("src_h", ID_TYPE_NUM); + add_embedded_arg("angle", ID_TYPE_NUM); + add_embedded_arg("zx", ID_TYPE_NUM); + add_embedded_arg("zy", ID_TYPE_NUM); + embed_function("DrawImage_Flip", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + add_embedded_arg("v", ID_TYPE_NUM); + embed_function("DrawImage_FlipEx", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("src_x", ID_TYPE_NUM); + add_embedded_arg("src_y", ID_TYPE_NUM); + add_embedded_arg("src_w", ID_TYPE_NUM); + add_embedded_arg("src_h", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + add_embedded_arg("v", ID_TYPE_NUM); + embed_function("InKey", ID_TYPE_FN_NUM); + embed_function("Key", ID_TYPE_FN_NUM); + add_embedded_arg("key_code", ID_TYPE_NUM); + embed_function("WaitKey", ID_TYPE_FN_NUM); + embed_function("HideMouse", ID_TYPE_SUB); + embed_function("ShowMouse", ID_TYPE_SUB); + embed_function("MouseIsVisible", ID_TYPE_FN_NUM); + embed_function("GetMouse", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("mb1", ID_TYPE_BYREF_NUM); + add_embedded_arg("mb2", ID_TYPE_BYREF_NUM); + add_embedded_arg("mb3", ID_TYPE_BYREF_NUM); + embed_function("MouseX", ID_TYPE_FN_NUM); + embed_function("MouseY", ID_TYPE_FN_NUM); + embed_function("MouseButton", ID_TYPE_FN_NUM); + add_embedded_arg("mb", ID_TYPE_NUM); + embed_function("GetMouseWheel", ID_TYPE_SUB); + add_embedded_arg("x_axis", ID_TYPE_BYREF_NUM); + add_embedded_arg("y_axis", ID_TYPE_BYREF_NUM); + embed_function("MouseWheelX", ID_TYPE_FN_NUM); + embed_function("MouseWheelY", ID_TYPE_FN_NUM); + embed_function("GetGlobalMouse", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("mb1", ID_TYPE_BYREF_NUM); + add_embedded_arg("mb2", ID_TYPE_BYREF_NUM); + add_embedded_arg("mb3", ID_TYPE_BYREF_NUM); + embed_function("GlobalMouseX", ID_TYPE_FN_NUM); + embed_function("GlobalMouseY", ID_TYPE_FN_NUM); + embed_function("WarpMouse", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("WarpMouseGlobal", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("SetMouseZone", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("ClearMouseZone", ID_TYPE_SUB); + embed_function("CreateSound", ID_TYPE_FN_NUM); + add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); + add_embedded_arg("buffer_size", ID_TYPE_NUM); + add_embedded_arg("vol", ID_TYPE_NUM); + embed_function("LoadSound", ID_TYPE_FN_NUM); + add_embedded_arg("snd_file$", ID_TYPE_STR); + embed_function("LoadMusic", ID_TYPE_SUB); + add_embedded_arg("music_file$", ID_TYPE_STR); + embed_function("PlaySound", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("channel", ID_TYPE_NUM); + add_embedded_arg("loops", ID_TYPE_NUM); + embed_function("PlaySoundTimed", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("channel", ID_TYPE_NUM); + add_embedded_arg("loops", ID_TYPE_NUM); + add_embedded_arg("ms", ID_TYPE_NUM); + embed_function("PlayMusic", ID_TYPE_SUB); + add_embedded_arg("mLoops", ID_TYPE_NUM); + embed_function("PauseSound", ID_TYPE_SUB); + add_embedded_arg("channel", ID_TYPE_NUM); + embed_function("ResumeSound", ID_TYPE_SUB); + add_embedded_arg("channel", ID_TYPE_NUM); + embed_function("PauseMusic", ID_TYPE_SUB); + embed_function("ResumeMusic", ID_TYPE_SUB); + embed_function("DeleteSound", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("DeleteMusic", ID_TYPE_SUB); + embed_function("FadeMusicIn", ID_TYPE_SUB); + add_embedded_arg("fade_time", ID_TYPE_NUM); + add_embedded_arg("loops", ID_TYPE_NUM); + embed_function("FadeMusicOut", ID_TYPE_SUB); + add_embedded_arg("fade_time", ID_TYPE_NUM); + embed_function("MusicExists", ID_TYPE_FN_NUM); + embed_function("SetMusicVolume", ID_TYPE_SUB); + add_embedded_arg("vol", ID_TYPE_NUM); + embed_function("GetMusicVolume", ID_TYPE_FN_NUM); + embed_function("SetMusicPosition", ID_TYPE_SUB); + add_embedded_arg("pos", ID_TYPE_NUM); + embed_function("GetMusicPosition", ID_TYPE_FN_NUM); + embed_function("RewindMusic", ID_TYPE_SUB); + embed_function("SetSoundChannels", ID_TYPE_SUB); + add_embedded_arg("max_channels", ID_TYPE_NUM); + embed_function("NumSoundChannels", ID_TYPE_FN_NUM); + embed_function("SoundIsEnabled", ID_TYPE_FN_NUM); + embed_function("SoundExists", ID_TYPE_FN_NUM); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("SetChannelVolume", ID_TYPE_SUB); + add_embedded_arg("channel", ID_TYPE_NUM); + add_embedded_arg("vol", ID_TYPE_NUM); + embed_function("GetChannelVolume", ID_TYPE_FN_NUM); + add_embedded_arg("channel", ID_TYPE_NUM); + embed_function("SetSoundVolume", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("vol", ID_TYPE_NUM); + embed_function("GetSoundVolume", ID_TYPE_FN_NUM); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("StopMusic", ID_TYPE_SUB); + embed_function("StopSound", ID_TYPE_SUB); + add_embedded_arg("channel", ID_TYPE_NUM); + embed_function("SetChannelPanning", ID_TYPE_FN_NUM); + add_embedded_arg("channel", ID_TYPE_NUM); + add_embedded_arg("left_value", ID_TYPE_NUM); + add_embedded_arg("right_value", ID_TYPE_NUM); + embed_function("SetChannelDistance", ID_TYPE_FN_NUM); + add_embedded_arg("channel", ID_TYPE_NUM); + add_embedded_arg("dist_value", ID_TYPE_NUM); + embed_function("ChannelIsPlaying", ID_TYPE_FN_NUM); + add_embedded_arg("channel", ID_TYPE_NUM); + embed_function("ChannelIsPaused", ID_TYPE_FN_NUM); + add_embedded_arg("channel", ID_TYPE_NUM); + embed_function("QueryAudioSpec", ID_TYPE_FN_NUM); + add_embedded_arg("freq", ID_TYPE_BYREF_NUM); + add_embedded_arg("format", ID_TYPE_BYREF_NUM); + add_embedded_arg("channels", ID_TYPE_BYREF_NUM); + embed_function("MusicIsPlaying", ID_TYPE_FN_NUM); + embed_function("SetChannelSpacePosition", ID_TYPE_FN_NUM); + add_embedded_arg("channel", ID_TYPE_NUM); + add_embedded_arg("angle", ID_TYPE_NUM); + add_embedded_arg("distance", ID_TYPE_NUM); + embed_function("NumJoysticks", ID_TYPE_FN_NUM); + embed_function("NumJoyAxes", ID_TYPE_FN_NUM); + add_embedded_arg("joy_num", ID_TYPE_NUM); + embed_function("NumJoyButtons", ID_TYPE_FN_NUM); + add_embedded_arg("joy_num", ID_TYPE_NUM); + embed_function("NumJoyHats", ID_TYPE_FN_NUM); + add_embedded_arg("joy_num", ID_TYPE_NUM); + embed_function("NumJoyTrackBalls", ID_TYPE_FN_NUM); + add_embedded_arg("joy_num", ID_TYPE_NUM); + embed_function("JoyAxis", ID_TYPE_FN_NUM); + add_embedded_arg("joy_num", ID_TYPE_NUM); + add_embedded_arg("joy_axis", ID_TYPE_NUM); + embed_function("JoyButton", ID_TYPE_FN_NUM); + add_embedded_arg("joy_num", ID_TYPE_NUM); + add_embedded_arg("joy_button", ID_TYPE_NUM); + embed_function("JoyHat", ID_TYPE_FN_NUM); + add_embedded_arg("joy_num", ID_TYPE_NUM); + add_embedded_arg("joy_hat", ID_TYPE_NUM); + embed_function("GetJoyTrackBall", ID_TYPE_SUB); + add_embedded_arg("joy_num", ID_TYPE_NUM); + add_embedded_arg("ball", ID_TYPE_NUM); + add_embedded_arg("dx", ID_TYPE_BYREF_NUM); + add_embedded_arg("dy", ID_TYPE_BYREF_NUM); + embed_function("JoyName$", ID_TYPE_FN_STR); + add_embedded_arg("joy_num", ID_TYPE_NUM); + embed_function("JoystickIsConnected", ID_TYPE_FN_NUM); + add_embedded_arg("joy_num", ID_TYPE_NUM); + embed_function("JoyRumblePlay", ID_TYPE_SUB); + add_embedded_arg("joy_num", ID_TYPE_NUM); + add_embedded_arg("strength", ID_TYPE_NUM); + add_embedded_arg("duration", ID_TYPE_NUM); + embed_function("JoyRumbleStop", ID_TYPE_SUB); + add_embedded_arg("joy_num", ID_TYPE_NUM); + embed_function("JoystickIsHaptic", ID_TYPE_FN_NUM); + add_embedded_arg("joy_num", ID_TYPE_NUM); + embed_function("LoadFont", ID_TYPE_FN_NUM); + add_embedded_arg("fnt_file$", ID_TYPE_STR); + add_embedded_arg("font_size", ID_TYPE_NUM); + embed_function("DeleteFont", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("FontExists", ID_TYPE_FN_NUM); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("SetFont", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("DrawText", ID_TYPE_SUB); + add_embedded_arg("txt$", ID_TYPE_STR); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("GetTextSize", ID_TYPE_SUB); + add_embedded_arg("txt$", ID_TYPE_STR); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("GetTextWidth", ID_TYPE_FN_NUM); + add_embedded_arg("txt$", ID_TYPE_STR); + embed_function("GetTextHeight", ID_TYPE_FN_NUM); + add_embedded_arg("txt$", ID_TYPE_STR); + embed_function("TouchPressure", ID_TYPE_FN_NUM); + embed_function("GetTouch", ID_TYPE_SUB); + add_embedded_arg("status", ID_TYPE_BYREF_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("dx", ID_TYPE_BYREF_NUM); + add_embedded_arg("dy", ID_TYPE_BYREF_NUM); + embed_function("GetMultiTouch", ID_TYPE_SUB); + add_embedded_arg("status", ID_TYPE_BYREF_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("fingers", ID_TYPE_BYREF_NUM); + add_embedded_arg("dist", ID_TYPE_BYREF_NUM); + add_embedded_arg("theta", ID_TYPE_BYREF_NUM); + embed_function("GetTouchFinger", ID_TYPE_SUB); + add_embedded_arg("finger", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("pressure", ID_TYPE_BYREF_NUM); + embed_function("NumFingers", ID_TYPE_FN_NUM); + embed_function("GetAccel", ID_TYPE_SUB); + add_embedded_arg("accel_num", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("AccelName$", ID_TYPE_FN_STR); + add_embedded_arg("accel_num", ID_TYPE_NUM); + embed_function("NumAccels", ID_TYPE_FN_NUM); + embed_function("GetGyro", ID_TYPE_SUB); + add_embedded_arg("gyro_num", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("GyroName$", ID_TYPE_FN_STR); + add_embedded_arg("gyro_num", ID_TYPE_NUM); + embed_function("NumGyros", ID_TYPE_FN_NUM); + embed_function("CheckSockets", ID_TYPE_FN_NUM); + add_embedded_arg("timeout_ms", ID_TYPE_NUM); + embed_function("TCP_SocketReady", ID_TYPE_FN_NUM); + add_embedded_arg("socket", ID_TYPE_NUM); + embed_function("UDP_SocketReady", ID_TYPE_FN_NUM); + add_embedded_arg("socket", ID_TYPE_NUM); + embed_function("TCP_OpenSocket", ID_TYPE_FN_NUM); + add_embedded_arg("host$", ID_TYPE_STR); + add_embedded_arg("port", ID_TYPE_NUM); + embed_function("TCP_CloseSocket", ID_TYPE_SUB); + add_embedded_arg("socket", ID_TYPE_NUM); + embed_function("TCP_RemoteHost", ID_TYPE_FN_NUM); + add_embedded_arg("socket", ID_TYPE_NUM); + embed_function("TCP_RemotePort", ID_TYPE_FN_NUM); + add_embedded_arg("socket", ID_TYPE_NUM); + embed_function("TCP_GetData", ID_TYPE_FN_NUM); + add_embedded_arg("socket", ID_TYPE_NUM); + add_embedded_arg("numBytes", ID_TYPE_NUM); + add_embedded_arg("sData$", ID_TYPE_BYREF_STR); + embed_function("TCP_SendData", ID_TYPE_SUB); + add_embedded_arg("socket", ID_TYPE_NUM); + add_embedded_arg("sData$", ID_TYPE_STR); + embed_function("TCP_AcceptSocket", ID_TYPE_FN_NUM); + add_embedded_arg("server", ID_TYPE_NUM); + add_embedded_arg("client", ID_TYPE_NUM); + embed_function("UDP_OpenSocket", ID_TYPE_FN_NUM); + add_embedded_arg("port", ID_TYPE_NUM); + embed_function("UDP_CloseSocket", ID_TYPE_SUB); + add_embedded_arg("socket", ID_TYPE_NUM); + embed_function("UDP_GetData", ID_TYPE_FN_NUM); + add_embedded_arg("socket", ID_TYPE_NUM); + add_embedded_arg("host$", ID_TYPE_BYREF_STR); + add_embedded_arg("port", ID_TYPE_BYREF_NUM); + add_embedded_arg("sData$", ID_TYPE_BYREF_STR); + embed_function("UDP_Length", ID_TYPE_FN_NUM); + embed_function("UDP_MaxLength", ID_TYPE_FN_NUM); + embed_function("UDP_RemoteHost$", ID_TYPE_FN_STR); + add_embedded_arg("socket", ID_TYPE_NUM); + embed_function("UDP_RemotePort", ID_TYPE_FN_NUM); + add_embedded_arg("socket", ID_TYPE_NUM); + embed_function("UDP_SendData", ID_TYPE_SUB); + add_embedded_arg("socket", ID_TYPE_NUM); + add_embedded_arg("host$", ID_TYPE_STR); + add_embedded_arg("port", ID_TYPE_NUM); + add_embedded_arg("sData$", ID_TYPE_STR); + embed_function("LoadVideo", ID_TYPE_SUB); + add_embedded_arg("vid$", ID_TYPE_STR); + embed_function("PlayVideo", ID_TYPE_SUB); + add_embedded_arg("vLoops", ID_TYPE_NUM); + embed_function("PauseVideo", ID_TYPE_SUB); + embed_function("StopVideo", ID_TYPE_SUB); + embed_function("SetVideoPosition", ID_TYPE_SUB); + add_embedded_arg("pos", ID_TYPE_NUM); + embed_function("ResumeVideo", ID_TYPE_SUB); + embed_function("GetVideoPosition", ID_TYPE_FN_NUM); + embed_function("DeleteVideo", ID_TYPE_SUB); + embed_function("VideoIsPlaying", ID_TYPE_FN_NUM); + embed_function("VideoEnd", ID_TYPE_FN_NUM); + embed_function("GetVideoStats", ID_TYPE_SUB); + add_embedded_arg("vFile$", ID_TYPE_STR); + add_embedded_arg("vLen", ID_TYPE_BYREF_NUM); + add_embedded_arg("vfps", ID_TYPE_BYREF_NUM); + add_embedded_arg("frame_w", ID_TYPE_BYREF_NUM); + add_embedded_arg("frame_h", ID_TYPE_BYREF_NUM); + embed_function("SetVideoDrawRect", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("GetVideoDrawRect", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("GetVideoSize", ID_TYPE_SUB); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("VideoExists", ID_TYPE_FN_NUM); + embed_function("SetVideoVolume", ID_TYPE_SUB); + add_embedded_arg("vol", ID_TYPE_NUM); + embed_function("GetVideoVolume", ID_TYPE_FN_NUM); + embed_function("System", ID_TYPE_FN_NUM); + add_embedded_arg("cmd$", ID_TYPE_STR); + embed_function("OS$", ID_TYPE_FN_STR); + embed_function("Command$", ID_TYPE_FN_STR); + add_embedded_arg("arg", ID_TYPE_NUM); + embed_function("NumCommands", ID_TYPE_FN_NUM); + embed_function("Env$", ID_TYPE_FN_STR); + add_embedded_arg("v$", ID_TYPE_STR); + embed_function("SetEnv", ID_TYPE_SUB); + add_embedded_arg("var$", ID_TYPE_STR); + add_embedded_arg("value$", ID_TYPE_STR); + embed_function("PrefPath$", ID_TYPE_FN_STR); + add_embedded_arg("org_name$", ID_TYPE_STR); + add_embedded_arg("app_name$", ID_TYPE_STR); + embed_function("Android_GetExternalStoragePath$", ID_TYPE_FN_STR); + embed_function("Android_GetExternalStorageState", ID_TYPE_FN_NUM); + embed_function("Android_GetInternalStoragePath$", ID_TYPE_FN_STR); + embed_function("Android_JNI_Message$", ID_TYPE_FN_STR); + add_embedded_arg("arg$", ID_TYPE_STR); + embed_function("Runtime_Utility_Message$", ID_TYPE_FN_STR); + add_embedded_arg("arg$", ID_TYPE_STR); + embed_function("GetDesktopDisplayMode", ID_TYPE_SUB); + add_embedded_arg("index", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + add_embedded_arg("freq", ID_TYPE_BYREF_NUM); + embed_function("GetPowerInfo", ID_TYPE_SUB); + add_embedded_arg("status", ID_TYPE_BYREF_NUM); + add_embedded_arg("secs", ID_TYPE_BYREF_NUM); + add_embedded_arg("pct", ID_TYPE_BYREF_NUM); + embed_function("EvalJS$", ID_TYPE_FN_STR); + add_embedded_arg("js_code$", ID_TYPE_STR); + embed_function("SystemReturnStdOut$", ID_TYPE_FN_STR); + add_embedded_arg("cmd$", ID_TYPE_STR); + embed_function("OpenURL", ID_TYPE_FN_NUM); + add_embedded_arg("url$", ID_TYPE_STR); + embed_function("MessageBox", ID_TYPE_FN_NUM); + add_embedded_arg("title$", ID_TYPE_STR); + add_embedded_arg("msg$", ID_TYPE_STR); + embed_function("Runtime$", ID_TYPE_FN_STR); + embed_function("NumCPUs", ID_TYPE_FN_NUM); + embed_function("SystemRam", ID_TYPE_FN_NUM); + embed_function("DimMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("m_rows", ID_TYPE_NUM); + add_embedded_arg("m_cols", ID_TYPE_NUM); + embed_function("DeleteMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + embed_function("AddMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("mC", ID_TYPE_NUM); + embed_function("AugmentMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("mC", ID_TYPE_NUM); + embed_function("CopyMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + embed_function("InsertMatrixColumns", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("num_cols", ID_TYPE_NUM); + embed_function("InsertMatrixRows", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("num_rows", ID_TYPE_NUM); + embed_function("MultiplyMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("mC", ID_TYPE_NUM); + embed_function("CubeMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + embed_function("DeleteMatrixColumns", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("num_cols", ID_TYPE_NUM); + embed_function("DeleteMatrixRows", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("num_rows", ID_TYPE_NUM); + embed_function("ClearMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + embed_function("ClearMatrixColumns", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("num_cols", ID_TYPE_NUM); + embed_function("ClearMatrixRows", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("num_rows", ID_TYPE_NUM); + embed_function("FillMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("v", ID_TYPE_NUM); + embed_function("FillMatrixColumns", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("num_cols", ID_TYPE_NUM); + add_embedded_arg("v", ID_TYPE_NUM); + embed_function("FillMatrixRows", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("num_rows", ID_TYPE_NUM); + add_embedded_arg("v", ID_TYPE_NUM); + embed_function("CopyMatrixColumns", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("num_cols", ID_TYPE_NUM); + embed_function("CopyMatrixRows", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("num_rows", ID_TYPE_NUM); + embed_function("SetIdentityMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("SolveMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("mC", ID_TYPE_NUM); + embed_function("IsEqualMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("tolerance", ID_TYPE_NUM); + embed_function("Determinant", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + embed_function("AdjointMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + embed_function("InvertMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + embed_function("MatrixFromBuffer", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); + embed_function("BufferFromMatrix", ID_TYPE_SUB); + add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + embed_function("RandomizeMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("vmin", ID_TYPE_NUM); + add_embedded_arg("vmax", ID_TYPE_NUM); + embed_function("MatrixValue", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + embed_function("SetMatrixValue", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("v", ID_TYPE_NUM); + embed_function("ScalarMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("s_value", ID_TYPE_NUM); + embed_function("ScalarMatrixColumns", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("num_cols", ID_TYPE_NUM); + add_embedded_arg("s_value", ID_TYPE_NUM); + embed_function("ScalarMatrixRows", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("num_rows", ID_TYPE_NUM); + add_embedded_arg("s_value", ID_TYPE_NUM); + embed_function("SquareMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + embed_function("CofactorMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + embed_function("SubtractMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("mC", ID_TYPE_NUM); + embed_function("SwapMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + embed_function("SwapMatrixColumn", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("C1", ID_TYPE_NUM); + add_embedded_arg("C2", ID_TYPE_NUM); + embed_function("SwapMatrixRow", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("R1", ID_TYPE_NUM); + add_embedded_arg("R2", ID_TYPE_NUM); + embed_function("TransposeMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + embed_function("UnAugmentMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("mC", ID_TYPE_NUM); + embed_function("ZeroMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + embed_function("GetMatrixSize", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_BYREF_NUM); + add_embedded_arg("c", ID_TYPE_BYREF_NUM); + embed_function("IncrementMatrixRows", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("num_rows", ID_TYPE_NUM); + add_embedded_arg("value", ID_TYPE_NUM); + embed_function("IncrementMatrixColumns", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("num_cols", ID_TYPE_NUM); + add_embedded_arg("value", ID_TYPE_NUM); + embed_function("JoinMatrixRows", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("mC", ID_TYPE_NUM); + embed_function("JoinMatrixColumns", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("mC", ID_TYPE_NUM); + embed_function("ClipMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("num_rows", ID_TYPE_NUM); + add_embedded_arg("num_cols", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + embed_function("SetMatrixTranslation", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("SetMatrixRotation", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("SetMatrixScale", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("GetMatrixTranslation", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("GetMatrixRotation", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("GetMatrixScale", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("GetClipboardText$", ID_TYPE_FN_STR); + embed_function("SetClipboardText", ID_TYPE_SUB); + add_embedded_arg("txt$", ID_TYPE_STR); + embed_function("HasClipboardText", ID_TYPE_FN_NUM); + embed_function("ReadInput_Start", ID_TYPE_SUB); + embed_function("ReadInput_Stop", ID_TYPE_SUB); + embed_function("ReadInput_Text$", ID_TYPE_FN_STR); + embed_function("ReadInput_SetText", ID_TYPE_SUB); + add_embedded_arg("txt$", ID_TYPE_STR); + embed_function("ReadInput_ToggleBackspace", ID_TYPE_SUB); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("CreateSprite", ID_TYPE_FN_NUM); + add_embedded_arg("img", ID_TYPE_NUM); + embed_function("DeleteSprite", ID_TYPE_SUB); + add_embedded_arg("sprite", ID_TYPE_NUM); + embed_function("SetSpritePosition", ID_TYPE_SUB); + add_embedded_arg("sprite", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("LoadMesh", ID_TYPE_FN_NUM); + add_embedded_arg("mesh_file$", ID_TYPE_STR); + embed_function("DeleteMesh", ID_TYPE_SUB); + add_embedded_arg("mesh", ID_TYPE_NUM); + embed_function("CreateMesh", ID_TYPE_FN_NUM); + embed_function("AddMeshBuffer", ID_TYPE_SUB); + add_embedded_arg("mesh", ID_TYPE_NUM); + add_embedded_arg("vertex_count", ID_TYPE_NUM); + add_embedded_arg("vertex_data", ID_TYPE_BYREF_NUM); + add_embedded_arg("normal_data", ID_TYPE_BYREF_NUM); + add_embedded_arg("uv_data", ID_TYPE_BYREF_NUM); + add_embedded_arg("index_count", ID_TYPE_NUM); + add_embedded_arg("index_data", ID_TYPE_BYREF_NUM); + embed_function("LoadMeshFromArchive", ID_TYPE_FN_NUM); + add_embedded_arg("archive$", ID_TYPE_STR); + add_embedded_arg("mesh_file$", ID_TYPE_STR); + embed_function("CreateMeshActor", ID_TYPE_FN_NUM); + add_embedded_arg("mesh", ID_TYPE_NUM); + embed_function("CreateMeshOctreeActor", ID_TYPE_FN_NUM); + add_embedded_arg("mesh", ID_TYPE_NUM); + embed_function("CreateCubeActor", ID_TYPE_FN_NUM); + add_embedded_arg("cube_size", ID_TYPE_NUM); + embed_function("CreateSphereActor", ID_TYPE_FN_NUM); + add_embedded_arg("radius", ID_TYPE_NUM); + embed_function("CreateWaterPlaneActor", ID_TYPE_FN_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("CreateLightActor", ID_TYPE_FN_NUM); + embed_function("CreateBillboardActor", ID_TYPE_FN_NUM); + embed_function("CreateTerrainActor", ID_TYPE_FN_NUM); + add_embedded_arg("hmap_file$", ID_TYPE_STR); + embed_function("DeleteActor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("GetActorTransform", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("matrix", ID_TYPE_NUM); + embed_function("SetActorPosition", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("TranslateActor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("TranslateActorWorld", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("GetActorPosition", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("SetActorScale", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("ScaleActor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("GetActorScale", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("SetActorRotation", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("RotateActor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("GetActorRotation", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("SetActorVisible", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("ActorIsVisible", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("SetActorAutoCulling", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("cull_type", ID_TYPE_NUM); + embed_function("GetActorAutoCulling", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("AddActorShadow", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("RemoveActorShadow", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("SetGravity3D", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("GetGravity3D", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("SetActorCollisionShape", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("shape_type", ID_TYPE_NUM); + add_embedded_arg("mass", ID_TYPE_NUM); + embed_function("GetActorCollisionShape", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("SetActorSolid", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("ActorIsSolid", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("GetActorCollision", ID_TYPE_FN_NUM); + add_embedded_arg("actor1", ID_TYPE_NUM); + add_embedded_arg("actor2", ID_TYPE_NUM); + embed_function("SetActorGravity", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("GetActorGravity", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("setActorDamping", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("lin_damping", ID_TYPE_NUM); + add_embedded_arg("ang_damping", ID_TYPE_NUM); + embed_function("getActorLinearDamping", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("getActorAngularDamping", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("getActorLinearSleepThreshold", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("getActorAngularSleepThreshold", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("applyActorDamping", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("timeStep", ID_TYPE_NUM); + embed_function("setActorMassProperties", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("mass", ID_TYPE_NUM); + add_embedded_arg("inertia_x", ID_TYPE_NUM); + add_embedded_arg("inertia_y", ID_TYPE_NUM); + add_embedded_arg("inertia_z", ID_TYPE_NUM); + embed_function("getActorLinearFactor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("setActorLinearFactor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("getActorInverseMass", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("integrateActorVelocities", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("v_step", ID_TYPE_NUM); + embed_function("applyActorCentralForceLocal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("applyActorCentralForceWorld", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("getActorTotalForce", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("getActorTotalTorque", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("getActorInverseInertiaDiagLocal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("setActorInverseInertiaDiagLocal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("setActorSleepThresholds", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("linear", ID_TYPE_NUM); + add_embedded_arg("angular", ID_TYPE_NUM); + embed_function("applyActorTorqueLocal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("applyActorTorqueWorld", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("applyActorForceLocal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + add_embedded_arg("rel_x", ID_TYPE_NUM); + add_embedded_arg("rel_y", ID_TYPE_NUM); + add_embedded_arg("rel_z", ID_TYPE_NUM); + embed_function("applyActorForceWorld", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + add_embedded_arg("rel_x", ID_TYPE_NUM); + add_embedded_arg("rel_y", ID_TYPE_NUM); + add_embedded_arg("rel_z", ID_TYPE_NUM); + embed_function("applyActorCentralImpulseLocal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("applyActorCentralImpulseWorld", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("applyActorTorqueImpulseLocal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("applyActorTorqueImpulseWorld", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("applyActorImpulseLocal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + add_embedded_arg("rel_x", ID_TYPE_NUM); + add_embedded_arg("rel_y", ID_TYPE_NUM); + add_embedded_arg("rel_z", ID_TYPE_NUM); + embed_function("applyActorImpulseWorld", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + add_embedded_arg("rel_x", ID_TYPE_NUM); + add_embedded_arg("rel_y", ID_TYPE_NUM); + add_embedded_arg("rel_z", ID_TYPE_NUM); + embed_function("clearActorForces", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("updateActorInertiaTensor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("getActorCOMPosition", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("getActorRotationQ", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + embed_function("getActorLinearVelocity", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("getActorAngularVelocity", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("setActorLinearVelocityLocal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("setActorLinearVelocityWorld", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("setActorAngularVelocityLocal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("setActorAngularVelocityWorld", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("getActorLocalPointVelocity", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("rel_x", ID_TYPE_NUM); + add_embedded_arg("rel_y", ID_TYPE_NUM); + add_embedded_arg("rel_z", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("getActorLinearVelocityLocal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("getActorAngularVelocityLocal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("getActorAABB", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("min_x", ID_TYPE_BYREF_NUM); + add_embedded_arg("min_y", ID_TYPE_BYREF_NUM); + add_embedded_arg("min_z", ID_TYPE_BYREF_NUM); + add_embedded_arg("max_x", ID_TYPE_BYREF_NUM); + add_embedded_arg("max_y", ID_TYPE_BYREF_NUM); + add_embedded_arg("max_z", ID_TYPE_BYREF_NUM); + embed_function("computeActorImpulseDenominator", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("pos_x", ID_TYPE_NUM); + add_embedded_arg("pos_y", ID_TYPE_NUM); + add_embedded_arg("pos_z", ID_TYPE_NUM); + add_embedded_arg("normal_x", ID_TYPE_NUM); + add_embedded_arg("normal_y", ID_TYPE_NUM); + add_embedded_arg("normal_z", ID_TYPE_NUM); + embed_function("computeActorAngularImpulseDenominator", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("setActorAngularFactor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("getActorAngularFactor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("computeActorGyroImpulseLocal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("dt", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("computeActorGyroImpulseWorld", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("dt", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("getActorLocalInertia", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("createPointConstraint", ID_TYPE_FN_NUM); + add_embedded_arg("actorA", ID_TYPE_NUM); + add_embedded_arg("pxA", ID_TYPE_NUM); + add_embedded_arg("pyA", ID_TYPE_NUM); + add_embedded_arg("pzA", ID_TYPE_NUM); + embed_function("createPointConstraintEx", ID_TYPE_FN_NUM); + add_embedded_arg("actorA", ID_TYPE_NUM); + add_embedded_arg("actorB", ID_TYPE_NUM); + add_embedded_arg("pxA", ID_TYPE_NUM); + add_embedded_arg("pyA", ID_TYPE_NUM); + add_embedded_arg("pzA", ID_TYPE_NUM); + add_embedded_arg("pxB", ID_TYPE_NUM); + add_embedded_arg("pyB", ID_TYPE_NUM); + add_embedded_arg("pzB", ID_TYPE_NUM); + embed_function("setConstraintPivotA", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("setConstraintPivotB", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("createHingeConstraint", ID_TYPE_FN_NUM); + add_embedded_arg("actorA", ID_TYPE_NUM); + add_embedded_arg("pxA", ID_TYPE_NUM); + add_embedded_arg("pyA", ID_TYPE_NUM); + add_embedded_arg("pzA", ID_TYPE_NUM); + add_embedded_arg("axA", ID_TYPE_NUM); + add_embedded_arg("ayA", ID_TYPE_NUM); + add_embedded_arg("azA", ID_TYPE_NUM); + embed_function("createHingeConstraintEx", ID_TYPE_FN_NUM); + add_embedded_arg("actorA", ID_TYPE_NUM); + add_embedded_arg("actorB", ID_TYPE_NUM); + add_embedded_arg("pxA", ID_TYPE_NUM); + add_embedded_arg("pyA", ID_TYPE_NUM); + add_embedded_arg("pzA", ID_TYPE_NUM); + add_embedded_arg("pxB", ID_TYPE_NUM); + add_embedded_arg("pyB", ID_TYPE_NUM); + add_embedded_arg("pzB", ID_TYPE_NUM); + add_embedded_arg("axA", ID_TYPE_NUM); + add_embedded_arg("ayA", ID_TYPE_NUM); + add_embedded_arg("azA", ID_TYPE_NUM); + add_embedded_arg("axB", ID_TYPE_NUM); + add_embedded_arg("ayB", ID_TYPE_NUM); + add_embedded_arg("azB", ID_TYPE_NUM); + embed_function("createSlideConstraint", ID_TYPE_FN_NUM); + add_embedded_arg("actorA", ID_TYPE_NUM); + add_embedded_arg("frameInB_matrix", ID_TYPE_NUM); + add_embedded_arg("useLinearReferenceFrameA", ID_TYPE_NUM); + embed_function("createSlideConstraintEx", ID_TYPE_FN_NUM); + add_embedded_arg("actorA", ID_TYPE_NUM); + add_embedded_arg("actorB", ID_TYPE_NUM); + add_embedded_arg("frameInA_matrix", ID_TYPE_NUM); + add_embedded_arg("frameInB_matrix", ID_TYPE_NUM); + add_embedded_arg("useLinearReferenceFrameA", ID_TYPE_NUM); + embed_function("createConeConstraint", ID_TYPE_FN_NUM); + add_embedded_arg("actorA", ID_TYPE_NUM); + add_embedded_arg("rbAFrame_matrix", ID_TYPE_NUM); + embed_function("createConeConstraintEx", ID_TYPE_FN_NUM); + add_embedded_arg("actorA", ID_TYPE_NUM); + add_embedded_arg("actorB", ID_TYPE_NUM); + add_embedded_arg("rbAFrame_matrix", ID_TYPE_NUM); + add_embedded_arg("rbBFrame_matrix", ID_TYPE_NUM); + embed_function("deleteConstraint", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintFrameOffsetA", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + add_embedded_arg("rx", ID_TYPE_BYREF_NUM); + add_embedded_arg("ry", ID_TYPE_BYREF_NUM); + add_embedded_arg("rz", ID_TYPE_BYREF_NUM); + embed_function("getConstraintFrameOffsetB", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + add_embedded_arg("rx", ID_TYPE_BYREF_NUM); + add_embedded_arg("ry", ID_TYPE_BYREF_NUM); + add_embedded_arg("rz", ID_TYPE_BYREF_NUM); + embed_function("useConstraintFrameOffset", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("getHingeAngle", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getHingeAngleEx", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("t_matrixA", ID_TYPE_NUM); + add_embedded_arg("t_matrixB", ID_TYPE_NUM); + embed_function("getConstraintBreakingImpulseThreshold", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintAFrame", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + embed_function("getConstraintBFrame", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + embed_function("setConstraintAxis", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("setConstraintBreakingImpulseThreshold", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("threshold", ID_TYPE_NUM); + embed_function("setConstraintFrames", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("frameA_matrix", ID_TYPE_NUM); + add_embedded_arg("frameB_matrix", ID_TYPE_NUM); + embed_function("setHingeLimit", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("low", ID_TYPE_NUM); + add_embedded_arg("high", ID_TYPE_NUM); + add_embedded_arg("softness", ID_TYPE_NUM); + add_embedded_arg("bias_factor", ID_TYPE_NUM); + add_embedded_arg("relaxation_factor", ID_TYPE_NUM); + embed_function("setConeLimit", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("swingSpan1", ID_TYPE_NUM); + add_embedded_arg("swingSpan2", ID_TYPE_NUM); + add_embedded_arg("twistSpan", ID_TYPE_NUM); + add_embedded_arg("softness", ID_TYPE_NUM); + add_embedded_arg("bias_factor", ID_TYPE_NUM); + add_embedded_arg("relaxation_factor", ID_TYPE_NUM); + embed_function("getConstraintLimitBiasFactor", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getLimitRelaxationFactor", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintLimitSign", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getHingeSolveLimit", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("useHingeReferenceFrameA", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("getConstraintAppliedImpulse", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintFixedActor", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintPivotA", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("getConstraintPivotB", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("getConstraintActorA", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintActorB", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("setConstraintSolverIterations", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("num", ID_TYPE_NUM); + embed_function("getConstraintBiasFactor", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintDamping", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintFixThresh", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintLimit", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("limit_index", ID_TYPE_NUM); + embed_function("getConstraintLimitSoftness", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintSolverIterations", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintAnglePoint", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("angle", ID_TYPE_NUM); + add_embedded_arg("c_len", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("getConstraintAngularOnly", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintSolveSwingLimit", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintSolveTwistLimit", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintSolveLimit", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintSwingSpan1", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintSwingSpan2", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintTwistAngle", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintTwistLimitSign", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintTwistSpan", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("setConstraintAngularOnly", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("setConstraintDamping", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("damping", ID_TYPE_NUM); + embed_function("setConstraintFixThresh", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("fixThresh", ID_TYPE_NUM); + embed_function("getConstraintAnchorA", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("getConstraintAnchorB", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("getConstraintAngDepth", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintAngularPos", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintDampingDirAng", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintDampingDirLin", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintDampingLimAng", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintDampingLimLin", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintDampingOrthoAng", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintDampingOrthoLin", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintLinearPos", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintLinDepth", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintLowerAngLimit", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintLowerLinLimit", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintRestitutionDirAng", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintRestitutionDirLin", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintRestitutionLimAng", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintRestitutionLimLin", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintRestitutionOrthoAng", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintRestitutionOrthoLin", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintSoftnessDirAng", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintSoftnessDirLin", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintSoftnessLimAng", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintSoftnessLimLin", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintSoftnessOrthoAng", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintSoftnessOrthoLin", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintSolveAngLimit", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintSolveLinLimit", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintUpperAngLimit", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintUpperLinLimit", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintUseFrameOffset", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("setConstraintDampingDirAng", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintDampingDirLin", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintDampingLimAng", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintDampingLimLin", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintDampingOrthoAng", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintDampingOrthoLin", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintLowerAngLimit", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintLowerLinLimit", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintRestitutionDirAng", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintRestitutionDirLin", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintRestitutionLimAng", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintRestitutionLimLin", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintRestitutionOrthoAng", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintRestitutionOrthoLin", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintSoftnessDirAng", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintSoftnessDirLin", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintSoftnessLimAng", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintSoftnessLimLin", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintSoftnessOrthoAng", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintSoftnessOrthoLin", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintUpperAngLimit", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintUpperLinLimit", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("SetCameraPosition", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("GetCameraPosition", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("TranslateCamera", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("SetCameraRotation", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("GetCameraRotation", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("RotateCamera", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("SetCameraFOV", ID_TYPE_SUB); + add_embedded_arg("fov", ID_TYPE_NUM); + embed_function("GetCameraFOV", ID_TYPE_FN_NUM); + embed_function("SetCameraAspectRatio", ID_TYPE_SUB); + add_embedded_arg("aspect", ID_TYPE_NUM); + embed_function("GetCameraAspectRatio", ID_TYPE_FN_NUM); + embed_function("SetCameraFarValue", ID_TYPE_SUB); + add_embedded_arg("zf", ID_TYPE_NUM); + embed_function("GetCameraFarValue", ID_TYPE_FN_NUM); + embed_function("SetCameraNearValue", ID_TYPE_SUB); + add_embedded_arg("zn", ID_TYPE_NUM); + embed_function("GetCameraNearValue", ID_TYPE_FN_NUM); + embed_function("AddSceneSkyBox", ID_TYPE_SUB); + add_embedded_arg("img_top", ID_TYPE_NUM); + add_embedded_arg("img_bottom", ID_TYPE_NUM); + add_embedded_arg("img_left", ID_TYPE_NUM); + add_embedded_arg("img_right", ID_TYPE_NUM); + add_embedded_arg("img_front", ID_TYPE_NUM); + add_embedded_arg("img_back", ID_TYPE_NUM); + embed_function("AddSceneSkyDome", ID_TYPE_SUB); + add_embedded_arg("img", ID_TYPE_NUM); + embed_function("AddSceneSkyDomeEx", ID_TYPE_SUB); + add_embedded_arg("img", ID_TYPE_NUM); + add_embedded_arg("horiRes", ID_TYPE_NUM); + add_embedded_arg("vertRes", ID_TYPE_NUM); + add_embedded_arg("txPercentage", ID_TYPE_NUM); + add_embedded_arg("spherePercentage", ID_TYPE_NUM); + add_embedded_arg("radius", ID_TYPE_NUM); + embed_function("RemoveSceneSky", ID_TYPE_SUB); + embed_function("SetWorld3DDeltaTime", ID_TYPE_SUB); + add_embedded_arg("dt", ID_TYPE_NUM); + embed_function("SetWorld3DMaxSubSteps", ID_TYPE_SUB); + add_embedded_arg("steps", ID_TYPE_NUM); + embed_function("SetWorld3DTimeStep", ID_TYPE_SUB); + add_embedded_arg("ts", ID_TYPE_NUM); + embed_function("startParticleEmitter", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("stopParticleEmitter", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setParticleDirection", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("getParticleDirection", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("useParticleEveryMeshVertex", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("particleIsUsingEveryMeshVertex", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setParticleNormalDirectionMod", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("nd_mod", ID_TYPE_NUM); + embed_function("getParticleNormalDirectionMod", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("useParticleNormalDirection", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("particleIsUsingNormalDirection", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setParticleMesh", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("mesh", ID_TYPE_NUM); + embed_function("setParticleMinParticlesPerSecond", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("minParticlesPerSecond", ID_TYPE_NUM); + embed_function("getParticleMinParticlesPerSecond", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setParticleMaxParticlesPerSecond", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("maxParticlesPerSecond", ID_TYPE_NUM); + embed_function("getParticleMaxParticlesPerSecond", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setParticleMinStartColor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("color", ID_TYPE_NUM); + embed_function("getParticleMinStartColor", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setParticleMaxStartColor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("color", ID_TYPE_NUM); + embed_function("getParticleMaxStartColor", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setParticleMinLife", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("minLife", ID_TYPE_NUM); + embed_function("getParticleMinLife", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setParticleMaxLife", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("maxLife", ID_TYPE_NUM); + embed_function("getParticleMaxLife", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setParticleMaxAngle", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("maxAngle", ID_TYPE_NUM); + embed_function("getParticleMaxAngle", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setParticleMinStartSize", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("getParticleMinStartSize", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("setParticleMaxStartSize", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("getParticleMaxStartSize", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("setParticleCenter", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("getParticleCenter", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("setParticleRadius", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("radius", ID_TYPE_NUM); + embed_function("getParticleRadius", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setParticleRingThickness", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("ringThickness", ID_TYPE_NUM); + embed_function("getParticleRingThickness", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setParticleBox", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("min_x", ID_TYPE_NUM); + add_embedded_arg("min_y", ID_TYPE_NUM); + add_embedded_arg("min_z", ID_TYPE_NUM); + add_embedded_arg("max_x", ID_TYPE_NUM); + add_embedded_arg("max_y", ID_TYPE_NUM); + add_embedded_arg("max_z", ID_TYPE_NUM); + embed_function("getParticleBox", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("min_x", ID_TYPE_BYREF_NUM); + add_embedded_arg("min_y", ID_TYPE_BYREF_NUM); + add_embedded_arg("min_z", ID_TYPE_BYREF_NUM); + add_embedded_arg("max_x", ID_TYPE_BYREF_NUM); + add_embedded_arg("max_y", ID_TYPE_BYREF_NUM); + add_embedded_arg("max_z", ID_TYPE_BYREF_NUM); + embed_function("setParticleNormal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("getParticleNormal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("setParticleLength", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("p_len", ID_TYPE_NUM); + embed_function("getParticleLength", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("useParticleOutlineOnly", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("particleIsUsingOutlineOnly", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("lightIsCastingShadow", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("getLightType", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("getLightRadius", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setLightType", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("light_type", ID_TYPE_NUM); + embed_function("setLightRadius", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("radius", ID_TYPE_NUM); + embed_function("setLightShadowCast", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("SetLightAmbientColor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("color", ID_TYPE_NUM); + embed_function("GetLightAmbientColor", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("SetLightAttenuation", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("l_constant", ID_TYPE_NUM); + add_embedded_arg("l_linear", ID_TYPE_NUM); + add_embedded_arg("l_quadratic", ID_TYPE_NUM); + embed_function("GetLightAttenuation", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("constant", ID_TYPE_BYREF_NUM); + add_embedded_arg("linear", ID_TYPE_BYREF_NUM); + add_embedded_arg("quadratic", ID_TYPE_BYREF_NUM); + embed_function("SetLightDiffuseColor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("color", ID_TYPE_NUM); + embed_function("GetLightDiffuseColor", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("SetLightFalloff", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("falloff", ID_TYPE_NUM); + embed_function("GetLightFalloff", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("SetLightInnerCone", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("angle", ID_TYPE_NUM); + embed_function("GetLightInnerCone", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("SetLightOuterCone", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("angle", ID_TYPE_NUM); + embed_function("GetLightOuterCone", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("SetLightSpecularColor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("color", ID_TYPE_NUM); + embed_function("GetLightSpecularColor", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("GetTerrainPatchAABB", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("patchX", ID_TYPE_NUM); + add_embedded_arg("patchZ", ID_TYPE_NUM); + add_embedded_arg("minX", ID_TYPE_BYREF_NUM); + add_embedded_arg("minY", ID_TYPE_BYREF_NUM); + add_embedded_arg("minZ", ID_TYPE_BYREF_NUM); + add_embedded_arg("maxX", ID_TYPE_BYREF_NUM); + add_embedded_arg("maxY", ID_TYPE_BYREF_NUM); + add_embedded_arg("maxZ", ID_TYPE_BYREF_NUM); + embed_function("GetTerrainPatchLOD", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("patchX", ID_TYPE_NUM); + add_embedded_arg("patchZ", ID_TYPE_NUM); + embed_function("GetTerrainHeight", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("patchX", ID_TYPE_NUM); + add_embedded_arg("patchZ", ID_TYPE_NUM); + embed_function("GetTerrainCenter", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("SetTerrainLODDistance", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("LOD", ID_TYPE_NUM); + add_embedded_arg("distance", ID_TYPE_NUM); + embed_function("ScaleTerrainTexture", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("scale", ID_TYPE_NUM); + add_embedded_arg("scale2", ID_TYPE_NUM); + embed_function("SetTerrainCameraMovementDelta", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("delta", ID_TYPE_NUM); + embed_function("SetTerrainCameraRotationDelta", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("delta", ID_TYPE_NUM); + embed_function("SetTerrainPatchLOD", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("patchX", ID_TYPE_NUM); + add_embedded_arg("patchZ", ID_TYPE_NUM); + add_embedded_arg("LOD", ID_TYPE_NUM); + embed_function("setWaterWindForce", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("f", ID_TYPE_NUM); + embed_function("getWaterWindForce", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setWaterWaveHeight", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("getWaterWaveHeight", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setWaterWindDirection", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("getWaterWindDirection", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("setWaterColor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + embed_function("getWaterColor", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setWaterColorBlendFactor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("cbfactor", ID_TYPE_NUM); + embed_function("getWaterColorBlendFactor", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("SetActorAnimation", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("start_frame", ID_TYPE_NUM); + add_embedded_arg("end_frame", ID_TYPE_NUM); + embed_function("SetActorAnimationSpeed", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("speed", ID_TYPE_NUM); + embed_function("SetActorFrame", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("frame", ID_TYPE_NUM); + embed_function("SetActorMD2Animation", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("anim", ID_TYPE_NUM); + embed_function("SetActorMD2AnimationByName", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("anim_name$", ID_TYPE_STR); + embed_function("GetActorAnimationSpeed", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("GetActorEndFrame", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("GetActorCurrentFrame", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("GetActorStartFrame", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("StartActorTransition", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("frame", ID_TYPE_NUM); + add_embedded_arg("transition_time", ID_TYPE_NUM); + embed_function("StopActorTransition", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("ActorIsInTransition", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("GetActorTransitionTime", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("actorAnimationIsLooped", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("loopActorAnimation", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("createMaterial", ID_TYPE_FN_NUM); + embed_function("deleteMaterial", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setActorMaterial", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("material_num", ID_TYPE_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("getActorMaterial", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("material_num", ID_TYPE_NUM); + embed_function("copyActorMaterial", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("material_num", ID_TYPE_NUM); + embed_function("copyMaterial", ID_TYPE_FN_NUM); + add_embedded_arg("smaterial_id", ID_TYPE_NUM); + embed_function("setMaterialTextureCanvas", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("level", ID_TYPE_NUM); + add_embedded_arg("canvas_id", ID_TYPE_NUM); + embed_function("setMaterialAmbientColor", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("color", ID_TYPE_NUM); + embed_function("getMaterialAmbientColor", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialAntiAliasing", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("aa", ID_TYPE_NUM); + embed_function("getMaterialAntiAliasing", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialBackfaceCulling", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("getMaterialBackfaceCulling", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialBlendFactor", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("bf", ID_TYPE_NUM); + embed_function("getMaterialBlendFactor", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialBlendMode", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("blend_mode", ID_TYPE_NUM); + embed_function("getMaterialBlendMode", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialColorMask", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("color_mask", ID_TYPE_NUM); + embed_function("getMaterialColorMask", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialColorMode", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("color_mode", ID_TYPE_NUM); + embed_function("getMaterialColorMode", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialDiffuseColor", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("color", ID_TYPE_NUM); + embed_function("getMaterialDiffuseColor", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialEmissiveColor", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("color", ID_TYPE_NUM); + embed_function("getMaterialEmissiveColor", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialFog", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("getMaterialFog", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialFrontfaceCulling", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("getMaterialFrontfaceCulling", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialGouraudShading", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("materialIsGouraudShaded", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("materialIsAplhaBlend", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("materialIsTransparent", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialLighting", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("materialIsLit", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialType", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("mat_type", ID_TYPE_NUM); + embed_function("getMaterialType", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialNormalize", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("materialIsNormalized", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialPointCloud", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("materialIsPointCloud", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialFlag", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("material_flag", ID_TYPE_NUM); + add_embedded_arg("f_value", ID_TYPE_NUM); + embed_function("getMaterialFlag", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("material_flag", ID_TYPE_NUM); + embed_function("setMaterialTexture", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("level", ID_TYPE_NUM); + add_embedded_arg("img_id", ID_TYPE_NUM); + embed_function("setMaterialShininess", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("shininess", ID_TYPE_NUM); + embed_function("getMaterialShininess", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialSpecularColor", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("color", ID_TYPE_NUM); + embed_function("getMaterialSpecularColor", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialThickness", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("thickness", ID_TYPE_NUM); + embed_function("getMaterialThickness", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialWireframe", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("materialIsWireframe", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setActorTexture", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("layer", ID_TYPE_NUM); + add_embedded_arg("image_id", ID_TYPE_NUM); + embed_function("getActorMaterialCount", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setActorMaterialFlag", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + add_embedded_arg("flag_value", ID_TYPE_NUM); + embed_function("getActorMaterialFlag", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("material", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("setActorMaterialType", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("material_type", ID_TYPE_NUM); + embed_function("getActorMaterialType", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("material", ID_TYPE_NUM); +} void init_embedded_types() { - create_type("empty"); + create_type("empty"); } void init_embedded_variables() { -} - -#endif // RC_BUILTIN_H_INCLUDED +} + +#endif // RC_BUILTIN_H_INCLUDED diff --git a/rcbasic_build/rc_builtin2.h b/rcbasic_build/rc_builtin2.h new file mode 100644 index 0000000..b6fb954 --- /dev/null +++ b/rcbasic_build/rc_builtin2.h @@ -0,0 +1,2521 @@ +#ifndef RC_BUILTIN_H_INCLUDED +#define RC_BUILTIN_H_INCLUDED +#include "identifier.h" + +void init_embedded_functions() +{ + embed_function("Fprint", ID_TYPE_SUB); + add_embedded_arg("txt$", ID_TYPE_STR); + embed_function("Input$", ID_TYPE_FN_STR); + add_embedded_arg("prompt$", ID_TYPE_STR); + embed_function("ArrayDim", ID_TYPE_FN_NUM); + add_embedded_arg("id", ID_TYPE_BYREF_NUM); + embed_function("StringArrayDim", ID_TYPE_FN_NUM); + add_embedded_arg("id$", ID_TYPE_BYREF_STR); + embed_function("NumberArrayDim", ID_TYPE_FN_NUM); + add_embedded_arg("id", ID_TYPE_BYREF_NUM); + embed_function("ArraySize", ID_TYPE_FN_NUM); + add_embedded_arg("id", ID_TYPE_BYREF_NUM); + add_embedded_arg("array_dim", ID_TYPE_NUM); + embed_function("StringArraySize", ID_TYPE_FN_NUM); + add_embedded_arg("id$", ID_TYPE_BYREF_STR); + add_embedded_arg("array_dim", ID_TYPE_NUM); + embed_function("NumberArraySize", ID_TYPE_FN_NUM); + add_embedded_arg("id", ID_TYPE_BYREF_NUM); + add_embedded_arg("array_dim", ID_TYPE_NUM); + embed_function("NumberArrayCopy", ID_TYPE_SUB); + add_embedded_arg("src", ID_TYPE_BYREF_NUM); + add_embedded_arg("dst", ID_TYPE_BYREF_NUM); + embed_function("StringArrayCopy", ID_TYPE_SUB); + add_embedded_arg("src$", ID_TYPE_BYREF_STR); + add_embedded_arg("dst$", ID_TYPE_BYREF_STR); + embed_function("ArrayCopy", ID_TYPE_SUB); + add_embedded_arg("src", ID_TYPE_BYREF_NUM); + add_embedded_arg("dst", ID_TYPE_BYREF_NUM); + embed_function("NumberArrayFill", ID_TYPE_SUB); + add_embedded_arg("src", ID_TYPE_BYREF_NUM); + add_embedded_arg("fdata", ID_TYPE_NUM); + embed_function("StringArrayFill", ID_TYPE_SUB); + add_embedded_arg("src$", ID_TYPE_BYREF_STR); + add_embedded_arg("fdata$", ID_TYPE_STR); + embed_function("ArrayFill", ID_TYPE_SUB); + add_embedded_arg("src", ID_TYPE_BYREF_NUM); + add_embedded_arg("fdata", ID_TYPE_NUM); + embed_function("TypeArrayDim", ID_TYPE_FN_NUM); + add_embedded_arg("id", ID_TYPE_BYREF_USER, 0); + embed_function("TypeArraySize", ID_TYPE_FN_NUM); + add_embedded_arg("id", ID_TYPE_BYREF_USER, 0); + add_embedded_arg("array_dim", ID_TYPE_NUM); + embed_function("TypeArrayCopy", ID_TYPE_SUB); + add_embedded_arg("src", ID_TYPE_BYREF_USER, 0); + add_embedded_arg("dst", ID_TYPE_BYREF_USER, 0); + embed_function("TypeArrayFill", ID_TYPE_SUB); + add_embedded_arg("src", ID_TYPE_BYREF_USER, 0); + add_embedded_arg("fdata", ID_TYPE_USER, 0); + embed_function("Abs", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Acos", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("AndBit", ID_TYPE_FN_NUM); + add_embedded_arg("a", ID_TYPE_NUM); + add_embedded_arg("b", ID_TYPE_NUM); + embed_function("Asin", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Atan", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Bin$", ID_TYPE_FN_STR); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("CInt32", ID_TYPE_FN_NUM); + add_embedded_arg("i", ID_TYPE_NUM); + embed_function("CInt64", ID_TYPE_FN_NUM); + add_embedded_arg("i", ID_TYPE_NUM); + embed_function("Cos", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Degrees", ID_TYPE_FN_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + embed_function("Exp", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Frac", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Hex$", ID_TYPE_FN_STR); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("HexVal", ID_TYPE_FN_NUM); + add_embedded_arg("n$", ID_TYPE_STR); + embed_function("Int", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Log", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Max", ID_TYPE_FN_NUM); + add_embedded_arg("a", ID_TYPE_NUM); + add_embedded_arg("b", ID_TYPE_NUM); + embed_function("Min", ID_TYPE_FN_NUM); + add_embedded_arg("a", ID_TYPE_NUM); + add_embedded_arg("b", ID_TYPE_NUM); + embed_function("OrBit", ID_TYPE_FN_NUM); + add_embedded_arg("a", ID_TYPE_NUM); + add_embedded_arg("b", ID_TYPE_NUM); + embed_function("Radians", ID_TYPE_FN_NUM); + add_embedded_arg("d", ID_TYPE_NUM); + embed_function("Randomize", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Rand", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Round", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Sign", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Sin", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Sqrt", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Tan", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("XOrBit", ID_TYPE_FN_NUM); + add_embedded_arg("a", ID_TYPE_NUM); + add_embedded_arg("b", ID_TYPE_NUM); + embed_function("GetLineIntersection", ID_TYPE_FN_NUM); + add_embedded_arg("p0_x", ID_TYPE_NUM); + add_embedded_arg("p0_y", ID_TYPE_NUM); + add_embedded_arg("p1_x", ID_TYPE_NUM); + add_embedded_arg("p1_y", ID_TYPE_NUM); + add_embedded_arg("p2_x", ID_TYPE_NUM); + add_embedded_arg("p2_y", ID_TYPE_NUM); + add_embedded_arg("p3_x", ID_TYPE_NUM); + add_embedded_arg("p3_y", ID_TYPE_NUM); + add_embedded_arg("i_x", ID_TYPE_BYREF_NUM); + add_embedded_arg("i_y", ID_TYPE_BYREF_NUM); + embed_function("Interpolate", ID_TYPE_FN_NUM); + add_embedded_arg("min_a", ID_TYPE_NUM); + add_embedded_arg("max_a", ID_TYPE_NUM); + add_embedded_arg("mid_a", ID_TYPE_NUM); + add_embedded_arg("min_b", ID_TYPE_NUM); + add_embedded_arg("max_b", ID_TYPE_NUM); + embed_function("ATan2", ID_TYPE_FN_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + embed_function("PointInQuad", ID_TYPE_FN_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("x1", ID_TYPE_NUM); + add_embedded_arg("y1", ID_TYPE_NUM); + add_embedded_arg("x2", ID_TYPE_NUM); + add_embedded_arg("y2", ID_TYPE_NUM); + add_embedded_arg("x3", ID_TYPE_NUM); + add_embedded_arg("y3", ID_TYPE_NUM); + add_embedded_arg("x4", ID_TYPE_NUM); + add_embedded_arg("y4", ID_TYPE_NUM); + embed_function("PointInTri", ID_TYPE_FN_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("x1", ID_TYPE_NUM); + add_embedded_arg("y1", ID_TYPE_NUM); + add_embedded_arg("x2", ID_TYPE_NUM); + add_embedded_arg("y2", ID_TYPE_NUM); + add_embedded_arg("x3", ID_TYPE_NUM); + add_embedded_arg("y3", ID_TYPE_NUM); + embed_function("Distance2D", ID_TYPE_FN_NUM); + add_embedded_arg("x1", ID_TYPE_NUM); + add_embedded_arg("y1", ID_TYPE_NUM); + add_embedded_arg("x2", ID_TYPE_NUM); + add_embedded_arg("y2", ID_TYPE_NUM); + embed_function("Distance3D", ID_TYPE_FN_NUM); + add_embedded_arg("x1", ID_TYPE_NUM); + add_embedded_arg("y1", ID_TYPE_NUM); + add_embedded_arg("z1", ID_TYPE_NUM); + add_embedded_arg("x2", ID_TYPE_NUM); + add_embedded_arg("y2", ID_TYPE_NUM); + add_embedded_arg("z2", ID_TYPE_NUM); + embed_function("GetCircleLineIntersection", ID_TYPE_FN_NUM); + add_embedded_arg("circle_x", ID_TYPE_NUM); + add_embedded_arg("circle_y", ID_TYPE_NUM); + add_embedded_arg("radius", ID_TYPE_NUM); + add_embedded_arg("x1", ID_TYPE_NUM); + add_embedded_arg("y1", ID_TYPE_NUM); + add_embedded_arg("x2", ID_TYPE_NUM); + add_embedded_arg("y2", ID_TYPE_NUM); + add_embedded_arg("ix1", ID_TYPE_BYREF_NUM); + add_embedded_arg("iy1", ID_TYPE_BYREF_NUM); + add_embedded_arg("ix2", ID_TYPE_BYREF_NUM); + add_embedded_arg("iy2", ID_TYPE_BYREF_NUM); + embed_function("GetLinePlaneIntersection", ID_TYPE_FN_NUM); + add_embedded_arg("line_point", ID_TYPE_BYREF_NUM); + add_embedded_arg("line_direction", ID_TYPE_BYREF_NUM); + add_embedded_arg("plane_point_1", ID_TYPE_BYREF_NUM); + add_embedded_arg("plane_point_2", ID_TYPE_BYREF_NUM); + add_embedded_arg("plane_point_3", ID_TYPE_BYREF_NUM); + add_embedded_arg("intersection", ID_TYPE_BYREF_NUM); + embed_function("Asc", ID_TYPE_FN_NUM); + add_embedded_arg("c$", ID_TYPE_STR); + embed_function("Chr$", ID_TYPE_FN_STR); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Insert$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("tgt$", ID_TYPE_STR); + add_embedded_arg("pos", ID_TYPE_NUM); + embed_function("InStr", ID_TYPE_FN_NUM); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("substr$", ID_TYPE_STR); + embed_function("Lcase$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + embed_function("Left$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Length", ID_TYPE_FN_NUM); + add_embedded_arg("src$", ID_TYPE_STR); + embed_function("Len", ID_TYPE_FN_NUM); + add_embedded_arg("src$", ID_TYPE_STR); + embed_function("Ltrim$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + embed_function("Mid$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("start", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("ReplaceSubstr$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("rpc$", ID_TYPE_STR); + add_embedded_arg("pos", ID_TYPE_NUM); + embed_function("Replace$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("tgt$", ID_TYPE_STR); + add_embedded_arg("rpc$", ID_TYPE_STR); + embed_function("Reverse$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + embed_function("Right$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Rtrim$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + embed_function("StringFill$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Str$", ID_TYPE_FN_STR); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Str_F$", ID_TYPE_FN_STR); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Str_S$", ID_TYPE_FN_STR); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Tally", ID_TYPE_FN_NUM); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("substr$", ID_TYPE_STR); + embed_function("Trim$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + embed_function("Ucase$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + embed_function("Val", ID_TYPE_FN_NUM); + add_embedded_arg("n$", ID_TYPE_STR); + embed_function("Size", ID_TYPE_FN_NUM); + add_embedded_arg("s$", ID_TYPE_STR); + embed_function("BufferFromString", ID_TYPE_FN_NUM); + add_embedded_arg("s$", ID_TYPE_STR); + add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); + embed_function("StringFromBuffer$", ID_TYPE_FN_STR); + add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); + add_embedded_arg("buffer_size", ID_TYPE_NUM); + embed_function("CreateStack_N", ID_TYPE_FN_NUM); + embed_function("CreateStack_S", ID_TYPE_FN_NUM); + embed_function("ClearStack_N", ID_TYPE_SUB); + embed_function("ClearStack_S", ID_TYPE_SUB); + embed_function("DeleteStack_N", ID_TYPE_SUB); + add_embedded_arg("stack_id", ID_TYPE_NUM); + embed_function("DeleteStack_S", ID_TYPE_SUB); + add_embedded_arg("stack_id", ID_TYPE_NUM); + embed_function("Stack_N", ID_TYPE_SUB); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Stack_S", ID_TYPE_SUB); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Push_N", ID_TYPE_SUB); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Pop_N", ID_TYPE_FN_NUM); + embed_function("Push_S", ID_TYPE_SUB); + add_embedded_arg("s$", ID_TYPE_STR); + embed_function("Pop_S$", ID_TYPE_FN_STR); + embed_function("Stack_Size_N", ID_TYPE_FN_NUM); + embed_function("Stack_Size_S", ID_TYPE_FN_NUM); + embed_function("OpenFile", ID_TYPE_FN_NUM); + add_embedded_arg("fileName$", ID_TYPE_STR); + add_embedded_arg("mode", ID_TYPE_NUM); + embed_function("CloseFile", ID_TYPE_SUB); + add_embedded_arg("stream", ID_TYPE_NUM); + embed_function("ReadByte", ID_TYPE_FN_NUM); + add_embedded_arg("stream", ID_TYPE_NUM); + embed_function("WriteByte", ID_TYPE_SUB); + add_embedded_arg("stream", ID_TYPE_NUM); + add_embedded_arg("byte", ID_TYPE_NUM); + embed_function("ReadLine$", ID_TYPE_FN_STR); + add_embedded_arg("stream", ID_TYPE_NUM); + embed_function("Write", ID_TYPE_SUB); + add_embedded_arg("stream", ID_TYPE_NUM); + add_embedded_arg("txt$", ID_TYPE_STR); + embed_function("WriteLine", ID_TYPE_SUB); + add_embedded_arg("stream", ID_TYPE_NUM); + add_embedded_arg("txt$", ID_TYPE_STR); + embed_function("CopyFile", ID_TYPE_SUB); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("dst$", ID_TYPE_STR); + embed_function("RemoveFile", ID_TYPE_FN_NUM); + add_embedded_arg("fileName$", ID_TYPE_STR); + embed_function("FileExists", ID_TYPE_FN_NUM); + add_embedded_arg("fileName$", ID_TYPE_STR); + embed_function("MoveFile", ID_TYPE_FN_NUM); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("dst$", ID_TYPE_STR); + embed_function("RenameFile", ID_TYPE_FN_NUM); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("dst$", ID_TYPE_STR); + embed_function("FileLength", ID_TYPE_FN_NUM); + add_embedded_arg("fileName$", ID_TYPE_STR); + embed_function("Tell", ID_TYPE_FN_NUM); + add_embedded_arg("stream", ID_TYPE_NUM); + embed_function("Seek", ID_TYPE_FN_NUM); + add_embedded_arg("stream", ID_TYPE_NUM); + add_embedded_arg("pos", ID_TYPE_NUM); + embed_function("EOF", ID_TYPE_FN_NUM); + add_embedded_arg("stream", ID_TYPE_NUM); + embed_function("WriteByteBuffer", ID_TYPE_FN_NUM); + add_embedded_arg("stream", ID_TYPE_NUM); + add_embedded_arg("buf", ID_TYPE_BYREF_NUM); + add_embedded_arg("buf_size", ID_TYPE_NUM); + embed_function("ReadByteBuffer", ID_TYPE_FN_NUM); + add_embedded_arg("stream", ID_TYPE_NUM); + add_embedded_arg("buf", ID_TYPE_BYREF_NUM); + add_embedded_arg("buf_size", ID_TYPE_NUM); + embed_function("ChangeDir", ID_TYPE_SUB); + add_embedded_arg("p$", ID_TYPE_STR); + embed_function("DirExists", ID_TYPE_FN_NUM); + add_embedded_arg("p$", ID_TYPE_STR); + embed_function("DirFirst$", ID_TYPE_FN_STR); + embed_function("Dir$", ID_TYPE_FN_STR); + embed_function("DirNext$", ID_TYPE_FN_STR); + embed_function("MakeDir", ID_TYPE_FN_NUM); + add_embedded_arg("p$", ID_TYPE_STR); + embed_function("RemoveDir", ID_TYPE_FN_NUM); + add_embedded_arg("p$", ID_TYPE_STR); + embed_function("Date$", ID_TYPE_FN_STR); + embed_function("Easter$", ID_TYPE_FN_STR); + add_embedded_arg("year", ID_TYPE_NUM); + embed_function("Ticks", ID_TYPE_FN_NUM); + embed_function("Time$", ID_TYPE_FN_STR); + embed_function("Timer", ID_TYPE_FN_NUM); + embed_function("Wait", ID_TYPE_SUB); + add_embedded_arg("m_sec", ID_TYPE_NUM); + embed_function("OpenWindow", ID_TYPE_FN_NUM); + add_embedded_arg("title$", ID_TYPE_STR); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + add_embedded_arg("fullscreen", ID_TYPE_NUM); + add_embedded_arg("vsync", ID_TYPE_NUM); + embed_function("OpenWindowEx", ID_TYPE_FN_NUM); + add_embedded_arg("title$", ID_TYPE_STR); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + add_embedded_arg("mode", ID_TYPE_NUM); + add_embedded_arg("aa", ID_TYPE_NUM); + add_embedded_arg("stencil_buffer", ID_TYPE_NUM); + add_embedded_arg("vsync", ID_TYPE_NUM); + embed_function("CloseWindow", ID_TYPE_SUB); + embed_function("RaiseWindow", ID_TYPE_SUB); + embed_function("Update", ID_TYPE_SUB); + embed_function("Cls", ID_TYPE_SUB); + embed_function("SetClearColor", ID_TYPE_SUB); + add_embedded_arg("c", ID_TYPE_NUM); + embed_function("ShowWindow", ID_TYPE_SUB); + embed_function("HideWindow", ID_TYPE_SUB); + embed_function("SetWindowTitle", ID_TYPE_SUB); + add_embedded_arg("title$", ID_TYPE_STR); + embed_function("WindowTitle$", ID_TYPE_FN_STR); + embed_function("SetWindowPosition", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("GetWindowPosition", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + embed_function("SetWindowSize", ID_TYPE_SUB); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("GetWindowSize", ID_TYPE_SUB); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("SetWindowMinSize", ID_TYPE_SUB); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("GetWindowMinSize", ID_TYPE_SUB); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("SetWindowMaxSize", ID_TYPE_SUB); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("GetWindowMaxSize", ID_TYPE_SUB); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("WindowIsFullscreen", ID_TYPE_FN_NUM); + embed_function("WindowIsVisible", ID_TYPE_FN_NUM); + embed_function("WindowIsBordered", ID_TYPE_FN_NUM); + embed_function("WindowIsResizable", ID_TYPE_FN_NUM); + embed_function("WindowIsMinimized", ID_TYPE_FN_NUM); + embed_function("WindowIsMaximized", ID_TYPE_FN_NUM); + embed_function("WindowHasInputFocus", ID_TYPE_FN_NUM); + embed_function("WindowHasMouseFocus", ID_TYPE_FN_NUM); + embed_function("SetWindowFullscreen", ID_TYPE_SUB); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("MaximizeWindow", ID_TYPE_SUB); + embed_function("MinimizeWindow", ID_TYPE_SUB); + embed_function("SetWindowBorder", ID_TYPE_SUB); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("WindowClip", ID_TYPE_FN_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("WindowExists", ID_TYPE_FN_NUM); + embed_function("WindowEvent_Close", ID_TYPE_FN_NUM); + embed_function("WindowEvent_Maximize", ID_TYPE_FN_NUM); + embed_function("WindowEvent_Minimize", ID_TYPE_FN_NUM); + embed_function("FPS", ID_TYPE_FN_NUM); + embed_function("SetWindowIcon", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("WindowEvent_Resize", ID_TYPE_FN_NUM); + embed_function("SetWindowAutoClose", ID_TYPE_SUB); + add_embedded_arg("exit_on_close", ID_TYPE_NUM); + embed_function("SetWindowResizable", ID_TYPE_SUB); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("WindowMode", ID_TYPE_FN_NUM); + add_embedded_arg("visible", ID_TYPE_NUM); + add_embedded_arg("fullscreen", ID_TYPE_NUM); + add_embedded_arg("resizable", ID_TYPE_NUM); + add_embedded_arg("borderless", ID_TYPE_NUM); + add_embedded_arg("highDPI", ID_TYPE_NUM); + embed_function("getWindowMode", ID_TYPE_FN_NUM); + embed_function("RestoreWindow", ID_TYPE_SUB); + embed_function("GrabInput", ID_TYPE_SUB); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("SetWindowAlwaysOnTop", ID_TYPE_SUB); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("SetMouseRelative", ID_TYPE_SUB); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("SetWindowVSync", ID_TYPE_SUB); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("FlashWindow", ID_TYPE_FN_NUM); + embed_function("WindowIsGrabbed", ID_TYPE_FN_NUM); + embed_function("OpenCanvas", ID_TYPE_FN_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + add_embedded_arg("viewport_x", ID_TYPE_NUM); + add_embedded_arg("viewport_y", ID_TYPE_NUM); + add_embedded_arg("viewport_w", ID_TYPE_NUM); + add_embedded_arg("viewport_h", ID_TYPE_NUM); + add_embedded_arg("mode", ID_TYPE_NUM); + embed_function("CloseCanvas", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + embed_function("SetCanvas3D", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("SetCanvasVisible", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("CanvasIsVisible", ID_TYPE_FN_NUM); + add_embedded_arg("c_num", ID_TYPE_NUM); + embed_function("SetCanvasViewport", ID_TYPE_SUB); + add_embedded_arg("cnum", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("GetCanvasViewport", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("Canvas", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + embed_function("SetCanvasOffset", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("GetCanvasOffset", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + embed_function("GetCanvasSize", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("ClearCanvas", ID_TYPE_SUB); + embed_function("SetCanvasAlpha", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + add_embedded_arg("a", ID_TYPE_NUM); + embed_function("GetCanvasAlpha", ID_TYPE_FN_NUM); + add_embedded_arg("c_num", ID_TYPE_NUM); + embed_function("SetCanvasColorMod", ID_TYPE_FN_NUM); + add_embedded_arg("c_num", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + embed_function("GetCanvasColorMod", ID_TYPE_FN_NUM); + add_embedded_arg("c_num", ID_TYPE_NUM); + embed_function("CloneCanvas", ID_TYPE_SUB); + add_embedded_arg("src", ID_TYPE_NUM); + add_embedded_arg("dst", ID_TYPE_NUM); + embed_function("SetCanvasZ", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("GetCanvasZ", ID_TYPE_FN_NUM); + add_embedded_arg("c_num", ID_TYPE_NUM); + embed_function("CanvasClip", ID_TYPE_FN_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("ActiveCanvas", ID_TYPE_FN_NUM); + embed_function("Circle", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("radius", ID_TYPE_NUM); + embed_function("CircleFill", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("radius", ID_TYPE_NUM); + embed_function("Ellipse", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("rx", ID_TYPE_NUM); + add_embedded_arg("ry", ID_TYPE_NUM); + embed_function("EllipseFill", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("rx", ID_TYPE_NUM); + add_embedded_arg("ry", ID_TYPE_NUM); + embed_function("FloodFill", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("GetPixel", ID_TYPE_FN_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("SetColor", ID_TYPE_SUB); + add_embedded_arg("c", ID_TYPE_NUM); + embed_function("Line", ID_TYPE_SUB); + add_embedded_arg("x1", ID_TYPE_NUM); + add_embedded_arg("y1", ID_TYPE_NUM); + add_embedded_arg("x2", ID_TYPE_NUM); + add_embedded_arg("y2", ID_TYPE_NUM); + embed_function("Poly", ID_TYPE_SUB); + add_embedded_arg("n", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + embed_function("Rect", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("RectFill", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("RGB", ID_TYPE_FN_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("g", ID_TYPE_NUM); + add_embedded_arg("b", ID_TYPE_NUM); + embed_function("RGBA", ID_TYPE_FN_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("g", ID_TYPE_NUM); + add_embedded_arg("b", ID_TYPE_NUM); + add_embedded_arg("a", ID_TYPE_NUM); + embed_function("Pset", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("LoadImage", ID_TYPE_FN_NUM); + add_embedded_arg("img$", ID_TYPE_STR); + embed_function("LoadImageEx", ID_TYPE_FN_NUM); + add_embedded_arg("img$", ID_TYPE_STR); + add_embedded_arg("colkey", ID_TYPE_NUM); + embed_function("createImage", ID_TYPE_FN_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); + embed_function("createImageEx", ID_TYPE_FN_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); + add_embedded_arg("color", ID_TYPE_NUM); + embed_function("getImageBuffer", ID_TYPE_SUB); + add_embedded_arg("img_id", ID_TYPE_NUM); + add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); + embed_function("ImageExists", ID_TYPE_FN_NUM); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("ColorKey", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + embed_function("setBilinearFilter", ID_TYPE_SUB); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("getBilinearFilter", ID_TYPE_FN_NUM); + embed_function("CopyImage", ID_TYPE_FN_NUM); + add_embedded_arg("img_id", ID_TYPE_NUM); + embed_function("DeleteImage", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("SetImageAlpha", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("a", ID_TYPE_NUM); + embed_function("GetImageAlpha", ID_TYPE_FN_NUM); + add_embedded_arg("img_id", ID_TYPE_NUM); + embed_function("GetImageSize", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("SetBlendMode", ID_TYPE_SUB); + add_embedded_arg("blend_mode", ID_TYPE_NUM); + embed_function("GetBlendMode", ID_TYPE_FN_NUM); + add_embedded_arg("blend_mode", ID_TYPE_NUM); + embed_function("SetImageColorMod", ID_TYPE_FN_NUM); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + embed_function("ImageColorMod", ID_TYPE_FN_NUM); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("DrawImage", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("DrawImage_Blit", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("src_x", ID_TYPE_NUM); + add_embedded_arg("src_y", ID_TYPE_NUM); + add_embedded_arg("src_w", ID_TYPE_NUM); + add_embedded_arg("src_h", ID_TYPE_NUM); + embed_function("DrawImage_BlitEx", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + add_embedded_arg("src_x", ID_TYPE_NUM); + add_embedded_arg("src_y", ID_TYPE_NUM); + add_embedded_arg("src_w", ID_TYPE_NUM); + add_embedded_arg("src_h", ID_TYPE_NUM); + embed_function("DrawImage_Rotate", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("angle", ID_TYPE_NUM); + embed_function("DrawImage_RotateEx", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("src_x", ID_TYPE_NUM); + add_embedded_arg("src_y", ID_TYPE_NUM); + add_embedded_arg("src_w", ID_TYPE_NUM); + add_embedded_arg("src_h", ID_TYPE_NUM); + add_embedded_arg("angle", ID_TYPE_NUM); + embed_function("DrawImage_Zoom", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("zx", ID_TYPE_NUM); + add_embedded_arg("zy", ID_TYPE_NUM); + embed_function("DrawImage_ZoomEx", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("src_x", ID_TYPE_NUM); + add_embedded_arg("src_y", ID_TYPE_NUM); + add_embedded_arg("src_w", ID_TYPE_NUM); + add_embedded_arg("src_h", ID_TYPE_NUM); + add_embedded_arg("zx", ID_TYPE_NUM); + add_embedded_arg("zy", ID_TYPE_NUM); + embed_function("DrawImage_Rotozoom", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("angle", ID_TYPE_NUM); + add_embedded_arg("zx", ID_TYPE_NUM); + add_embedded_arg("zy", ID_TYPE_NUM); + embed_function("DrawImage_RotozoomEx", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("src_x", ID_TYPE_NUM); + add_embedded_arg("src_y", ID_TYPE_NUM); + add_embedded_arg("src_w", ID_TYPE_NUM); + add_embedded_arg("src_h", ID_TYPE_NUM); + add_embedded_arg("angle", ID_TYPE_NUM); + add_embedded_arg("zx", ID_TYPE_NUM); + add_embedded_arg("zy", ID_TYPE_NUM); + embed_function("DrawImage_Flip", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + add_embedded_arg("v", ID_TYPE_NUM); + embed_function("DrawImage_FlipEx", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("src_x", ID_TYPE_NUM); + add_embedded_arg("src_y", ID_TYPE_NUM); + add_embedded_arg("src_w", ID_TYPE_NUM); + add_embedded_arg("src_h", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + add_embedded_arg("v", ID_TYPE_NUM); + embed_function("InKey", ID_TYPE_FN_NUM); + embed_function("Key", ID_TYPE_FN_NUM); + add_embedded_arg("key_code", ID_TYPE_NUM); + embed_function("WaitKey", ID_TYPE_FN_NUM); + embed_function("HideMouse", ID_TYPE_SUB); + embed_function("ShowMouse", ID_TYPE_SUB); + embed_function("MouseIsVisible", ID_TYPE_FN_NUM); + embed_function("GetMouse", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("mb1", ID_TYPE_BYREF_NUM); + add_embedded_arg("mb2", ID_TYPE_BYREF_NUM); + add_embedded_arg("mb3", ID_TYPE_BYREF_NUM); + embed_function("MouseX", ID_TYPE_FN_NUM); + embed_function("MouseY", ID_TYPE_FN_NUM); + embed_function("MouseButton", ID_TYPE_FN_NUM); + add_embedded_arg("mb", ID_TYPE_NUM); + embed_function("GetMouseWheel", ID_TYPE_SUB); + add_embedded_arg("x_axis", ID_TYPE_BYREF_NUM); + add_embedded_arg("y_axis", ID_TYPE_BYREF_NUM); + embed_function("MouseWheelX", ID_TYPE_FN_NUM); + embed_function("MouseWheelY", ID_TYPE_FN_NUM); + embed_function("GetGlobalMouse", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("mb1", ID_TYPE_BYREF_NUM); + add_embedded_arg("mb2", ID_TYPE_BYREF_NUM); + add_embedded_arg("mb3", ID_TYPE_BYREF_NUM); + embed_function("GlobalMouseX", ID_TYPE_FN_NUM); + embed_function("GlobalMouseY", ID_TYPE_FN_NUM); + embed_function("WarpMouse", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("WarpMouseGlobal", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("SetMouseZone", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("ClearMouseZone", ID_TYPE_SUB); + embed_function("SoundFromBuffer", ID_TYPE_FN_NUM); + add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); + add_embedded_arg("buffer_size", ID_TYPE_NUM); + add_embedded_arg("vol", ID_TYPE_NUM); + embed_function("LoadSound", ID_TYPE_FN_NUM); + add_embedded_arg("snd_file$", ID_TYPE_STR); + embed_function("LoadMusic", ID_TYPE_SUB); + add_embedded_arg("music_file$", ID_TYPE_STR); + embed_function("PlaySound", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("channel", ID_TYPE_NUM); + add_embedded_arg("loops", ID_TYPE_NUM); + embed_function("PlaySoundTimed", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("channel", ID_TYPE_NUM); + add_embedded_arg("loops", ID_TYPE_NUM); + add_embedded_arg("ms", ID_TYPE_NUM); + embed_function("PlayMusic", ID_TYPE_SUB); + add_embedded_arg("mLoops", ID_TYPE_NUM); + embed_function("PauseSound", ID_TYPE_SUB); + add_embedded_arg("channel", ID_TYPE_NUM); + embed_function("ResumeSound", ID_TYPE_SUB); + add_embedded_arg("channel", ID_TYPE_NUM); + embed_function("PauseMusic", ID_TYPE_SUB); + embed_function("ResumeMusic", ID_TYPE_SUB); + embed_function("DeleteSound", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("DeleteMusic", ID_TYPE_SUB); + embed_function("FadeMusicIn", ID_TYPE_SUB); + add_embedded_arg("fade_time", ID_TYPE_NUM); + add_embedded_arg("loops", ID_TYPE_NUM); + embed_function("FadeMusicOut", ID_TYPE_SUB); + add_embedded_arg("fade_time", ID_TYPE_NUM); + embed_function("MusicExists", ID_TYPE_FN_NUM); + embed_function("SetMusicVolume", ID_TYPE_SUB); + add_embedded_arg("vol", ID_TYPE_NUM); + embed_function("GetMusicVolume", ID_TYPE_FN_NUM); + embed_function("SetMusicPosition", ID_TYPE_SUB); + add_embedded_arg("pos", ID_TYPE_NUM); + embed_function("GetMusicPosition", ID_TYPE_FN_NUM); + embed_function("RewindMusic", ID_TYPE_SUB); + embed_function("SetSoundChannels", ID_TYPE_SUB); + add_embedded_arg("max_channels", ID_TYPE_NUM); + embed_function("NumSoundChannels", ID_TYPE_FN_NUM); + embed_function("SoundIsEnabled", ID_TYPE_FN_NUM); + embed_function("SoundExists", ID_TYPE_FN_NUM); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("SetChannelVolume", ID_TYPE_SUB); + add_embedded_arg("channel", ID_TYPE_NUM); + add_embedded_arg("vol", ID_TYPE_NUM); + embed_function("GetChannelVolume", ID_TYPE_FN_NUM); + add_embedded_arg("channel", ID_TYPE_NUM); + embed_function("SetSoundVolume", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("vol", ID_TYPE_NUM); + embed_function("GetSoundVolume", ID_TYPE_FN_NUM); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("StopMusic", ID_TYPE_SUB); + embed_function("StopSound", ID_TYPE_SUB); + add_embedded_arg("channel", ID_TYPE_NUM); + embed_function("SetChannelPanning", ID_TYPE_FN_NUM); + add_embedded_arg("channel", ID_TYPE_NUM); + add_embedded_arg("left_value", ID_TYPE_NUM); + add_embedded_arg("right_value", ID_TYPE_NUM); + embed_function("SetChannelDistance", ID_TYPE_FN_NUM); + add_embedded_arg("channel", ID_TYPE_NUM); + add_embedded_arg("dist_value", ID_TYPE_NUM); + embed_function("ChannelIsPlaying", ID_TYPE_FN_NUM); + add_embedded_arg("channel", ID_TYPE_NUM); + embed_function("ChannelIsPaused", ID_TYPE_FN_NUM); + add_embedded_arg("channel", ID_TYPE_NUM); + embed_function("QueryAudioSpec", ID_TYPE_FN_NUM); + add_embedded_arg("freq", ID_TYPE_BYREF_NUM); + add_embedded_arg("format", ID_TYPE_BYREF_NUM); + add_embedded_arg("channels", ID_TYPE_BYREF_NUM); + embed_function("MusicIsPlaying", ID_TYPE_FN_NUM); + embed_function("SetChannelSpacePosition", ID_TYPE_FN_NUM); + add_embedded_arg("channel", ID_TYPE_NUM); + add_embedded_arg("angle", ID_TYPE_NUM); + add_embedded_arg("distance", ID_TYPE_NUM); + embed_function("NumJoysticks", ID_TYPE_FN_NUM); + embed_function("NumJoyAxes", ID_TYPE_FN_NUM); + add_embedded_arg("joy_num", ID_TYPE_NUM); + embed_function("NumJoyButtons", ID_TYPE_FN_NUM); + add_embedded_arg("joy_num", ID_TYPE_NUM); + embed_function("NumJoyHats", ID_TYPE_FN_NUM); + add_embedded_arg("joy_num", ID_TYPE_NUM); + embed_function("NumJoyTrackBalls", ID_TYPE_FN_NUM); + add_embedded_arg("joy_num", ID_TYPE_NUM); + embed_function("JoyAxis", ID_TYPE_FN_NUM); + add_embedded_arg("joy_num", ID_TYPE_NUM); + add_embedded_arg("joy_axis", ID_TYPE_NUM); + embed_function("JoyButton", ID_TYPE_FN_NUM); + add_embedded_arg("joy_num", ID_TYPE_NUM); + add_embedded_arg("joy_button", ID_TYPE_NUM); + embed_function("JoyHat", ID_TYPE_FN_NUM); + add_embedded_arg("joy_num", ID_TYPE_NUM); + add_embedded_arg("joy_hat", ID_TYPE_NUM); + embed_function("GetJoyTrackBall", ID_TYPE_SUB); + add_embedded_arg("joy_num", ID_TYPE_NUM); + add_embedded_arg("ball", ID_TYPE_NUM); + add_embedded_arg("dx", ID_TYPE_BYREF_NUM); + add_embedded_arg("dy", ID_TYPE_BYREF_NUM); + embed_function("JoyName$", ID_TYPE_FN_STR); + add_embedded_arg("joy_num", ID_TYPE_NUM); + embed_function("JoystickIsConnected", ID_TYPE_FN_NUM); + add_embedded_arg("joy_num", ID_TYPE_NUM); + embed_function("JoyRumblePlay", ID_TYPE_SUB); + add_embedded_arg("joy_num", ID_TYPE_NUM); + add_embedded_arg("strength", ID_TYPE_NUM); + add_embedded_arg("duration", ID_TYPE_NUM); + embed_function("JoyRumbleStop", ID_TYPE_SUB); + add_embedded_arg("joy_num", ID_TYPE_NUM); + embed_function("JoystickIsHaptic", ID_TYPE_FN_NUM); + add_embedded_arg("joy_num", ID_TYPE_NUM); + embed_function("LoadFont", ID_TYPE_FN_NUM); + add_embedded_arg("fnt_file$", ID_TYPE_STR); + add_embedded_arg("font_size", ID_TYPE_NUM); + embed_function("DeleteFont", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("FontExists", ID_TYPE_FN_NUM); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("SetFont", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("DrawText", ID_TYPE_SUB); + add_embedded_arg("txt$", ID_TYPE_STR); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("RenderText", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("txt$", ID_TYPE_STR); + embed_function("GetTextSize", ID_TYPE_SUB); + add_embedded_arg("txt$", ID_TYPE_STR); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("GetTextWidth", ID_TYPE_FN_NUM); + add_embedded_arg("txt$", ID_TYPE_STR); + embed_function("GetTextHeight", ID_TYPE_FN_NUM); + add_embedded_arg("txt$", ID_TYPE_STR); + embed_function("TouchPressure", ID_TYPE_FN_NUM); + embed_function("GetTouch", ID_TYPE_SUB); + add_embedded_arg("status", ID_TYPE_BYREF_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("dx", ID_TYPE_BYREF_NUM); + add_embedded_arg("dy", ID_TYPE_BYREF_NUM); + embed_function("GetMultiTouch", ID_TYPE_SUB); + add_embedded_arg("status", ID_TYPE_BYREF_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("fingers", ID_TYPE_BYREF_NUM); + add_embedded_arg("dist", ID_TYPE_BYREF_NUM); + add_embedded_arg("theta", ID_TYPE_BYREF_NUM); + embed_function("GetTouchFinger", ID_TYPE_SUB); + add_embedded_arg("finger", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("pressure", ID_TYPE_BYREF_NUM); + embed_function("NumFingers", ID_TYPE_FN_NUM); + embed_function("GetAccel", ID_TYPE_SUB); + add_embedded_arg("accel_num", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("AccelName$", ID_TYPE_FN_STR); + add_embedded_arg("accel_num", ID_TYPE_NUM); + embed_function("NumAccels", ID_TYPE_FN_NUM); + embed_function("GetGyro", ID_TYPE_SUB); + add_embedded_arg("gyro_num", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("GyroName$", ID_TYPE_FN_STR); + add_embedded_arg("gyro_num", ID_TYPE_NUM); + embed_function("NumGyros", ID_TYPE_FN_NUM); + embed_function("CheckSockets", ID_TYPE_FN_NUM); + add_embedded_arg("timeout_ms", ID_TYPE_NUM); + embed_function("TCP_SocketReady", ID_TYPE_FN_NUM); + add_embedded_arg("socket", ID_TYPE_NUM); + embed_function("UDP_SocketReady", ID_TYPE_FN_NUM); + add_embedded_arg("socket", ID_TYPE_NUM); + embed_function("TCP_OpenSocket", ID_TYPE_FN_NUM); + add_embedded_arg("host$", ID_TYPE_STR); + add_embedded_arg("port", ID_TYPE_NUM); + embed_function("TCP_CloseSocket", ID_TYPE_SUB); + add_embedded_arg("socket", ID_TYPE_NUM); + embed_function("TCP_RemoteHost", ID_TYPE_FN_NUM); + add_embedded_arg("socket", ID_TYPE_NUM); + embed_function("TCP_RemotePort", ID_TYPE_FN_NUM); + add_embedded_arg("socket", ID_TYPE_NUM); + embed_function("TCP_GetData", ID_TYPE_FN_NUM); + add_embedded_arg("socket", ID_TYPE_NUM); + add_embedded_arg("sData$", ID_TYPE_BYREF_STR); + add_embedded_arg("numBytes", ID_TYPE_NUM); + embed_function("TCP_SendData", ID_TYPE_SUB); + add_embedded_arg("socket", ID_TYPE_NUM); + add_embedded_arg("sData$", ID_TYPE_STR); + embed_function("TCP_AcceptSocket", ID_TYPE_FN_NUM); + add_embedded_arg("server", ID_TYPE_NUM); + add_embedded_arg("client", ID_TYPE_NUM); + embed_function("UDP_OpenSocket", ID_TYPE_FN_NUM); + add_embedded_arg("port", ID_TYPE_NUM); + embed_function("UDP_CloseSocket", ID_TYPE_SUB); + add_embedded_arg("socket", ID_TYPE_NUM); + embed_function("UDP_GetData", ID_TYPE_FN_NUM); + add_embedded_arg("socket", ID_TYPE_NUM); + add_embedded_arg("sData$", ID_TYPE_BYREF_STR); + add_embedded_arg("host$", ID_TYPE_BYREF_STR); + add_embedded_arg("port", ID_TYPE_BYREF_NUM); + embed_function("UDP_Length", ID_TYPE_FN_NUM); + embed_function("UDP_MaxLength", ID_TYPE_FN_NUM); + embed_function("UDP_RemoteHost$", ID_TYPE_FN_STR); + add_embedded_arg("socket", ID_TYPE_NUM); + embed_function("UDP_RemotePort", ID_TYPE_FN_NUM); + add_embedded_arg("socket", ID_TYPE_NUM); + embed_function("UDP_SendData", ID_TYPE_SUB); + add_embedded_arg("socket", ID_TYPE_NUM); + add_embedded_arg("sData$", ID_TYPE_STR); + add_embedded_arg("host$", ID_TYPE_STR); + add_embedded_arg("port", ID_TYPE_NUM); + embed_function("LoadVideo", ID_TYPE_SUB); + add_embedded_arg("vid$", ID_TYPE_STR); + embed_function("PlayVideo", ID_TYPE_SUB); + add_embedded_arg("vLoops", ID_TYPE_NUM); + embed_function("PauseVideo", ID_TYPE_SUB); + embed_function("StopVideo", ID_TYPE_SUB); + embed_function("SetVideoPosition", ID_TYPE_SUB); + add_embedded_arg("pos", ID_TYPE_NUM); + embed_function("ResumeVideo", ID_TYPE_SUB); + embed_function("GetVideoPosition", ID_TYPE_FN_NUM); + embed_function("DeleteVideo", ID_TYPE_SUB); + embed_function("VideoIsPlaying", ID_TYPE_FN_NUM); + embed_function("VideoEnd", ID_TYPE_FN_NUM); + embed_function("GetVideoStats", ID_TYPE_SUB); + add_embedded_arg("vFile$", ID_TYPE_STR); + add_embedded_arg("vLen", ID_TYPE_BYREF_NUM); + add_embedded_arg("vfps", ID_TYPE_BYREF_NUM); + add_embedded_arg("frame_w", ID_TYPE_BYREF_NUM); + add_embedded_arg("frame_h", ID_TYPE_BYREF_NUM); + embed_function("SetVideoDrawRect", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("GetVideoDrawRect", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("GetVideoSize", ID_TYPE_SUB); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("VideoExists", ID_TYPE_FN_NUM); + embed_function("SetVideoAlpha", ID_TYPE_SUB); + add_embedded_arg("a", ID_TYPE_NUM); + embed_function("SetVideoVolume", ID_TYPE_SUB); + add_embedded_arg("vol", ID_TYPE_NUM); + embed_function("GetVideoVolume", ID_TYPE_FN_NUM); + add_embedded_arg("vol", ID_TYPE_NUM); + embed_function("System", ID_TYPE_FN_NUM); + add_embedded_arg("cmd$", ID_TYPE_STR); + embed_function("OS$", ID_TYPE_FN_STR); + embed_function("Command$", ID_TYPE_FN_STR); + add_embedded_arg("arg", ID_TYPE_NUM); + embed_function("NumCommands", ID_TYPE_FN_NUM); + embed_function("Env$", ID_TYPE_FN_STR); + add_embedded_arg("v$", ID_TYPE_STR); + embed_function("SetEnv", ID_TYPE_SUB); + add_embedded_arg("var$", ID_TYPE_STR); + add_embedded_arg("value$", ID_TYPE_STR); + embed_function("PrefPath$", ID_TYPE_FN_STR); + add_embedded_arg("org_name$", ID_TYPE_STR); + add_embedded_arg("app_name$", ID_TYPE_STR); + embed_function("Android_GetExternalStoragePath$", ID_TYPE_FN_STR); + embed_function("Android_GetExternalStorageState", ID_TYPE_FN_NUM); + embed_function("Android_GetInternalStoragePath$", ID_TYPE_FN_STR); + embed_function("Android_JNI_Message$", ID_TYPE_FN_STR); + add_embedded_arg("arg$", ID_TYPE_STR); + embed_function("Runtime_Utility_Message$", ID_TYPE_FN_STR); + add_embedded_arg("arg$", ID_TYPE_STR); + embed_function("GetDesktopDisplayMode", ID_TYPE_SUB); + add_embedded_arg("index", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + add_embedded_arg("freq", ID_TYPE_BYREF_NUM); + embed_function("GetPowerInfo", ID_TYPE_SUB); + add_embedded_arg("status", ID_TYPE_BYREF_NUM); + add_embedded_arg("secs", ID_TYPE_BYREF_NUM); + add_embedded_arg("pct", ID_TYPE_BYREF_NUM); + embed_function("EvalJS$", ID_TYPE_FN_STR); + add_embedded_arg("js_code$", ID_TYPE_STR); + embed_function("SystemReturnStdOut$", ID_TYPE_FN_STR); + add_embedded_arg("cmd$", ID_TYPE_STR); + embed_function("OpenURL", ID_TYPE_FN_NUM); + add_embedded_arg("url$", ID_TYPE_STR); + embed_function("MessageBox", ID_TYPE_FN_NUM); + add_embedded_arg("title$", ID_TYPE_STR); + add_embedded_arg("msg$", ID_TYPE_STR); + embed_function("Runtime$", ID_TYPE_FN_STR); + embed_function("NumCPUs", ID_TYPE_FN_NUM); + embed_function("DimMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("m_rows", ID_TYPE_NUM); + add_embedded_arg("m_cols", ID_TYPE_NUM); + embed_function("DeleteMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + embed_function("AddMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("mC", ID_TYPE_NUM); + embed_function("AugmentMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("mC", ID_TYPE_NUM); + embed_function("CopyMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + embed_function("InsertMatrixColumns", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("num_cols", ID_TYPE_NUM); + embed_function("InsertMatrixRows", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("num_rows", ID_TYPE_NUM); + embed_function("MultiplyMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("mC", ID_TYPE_NUM); + embed_function("CubeMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + embed_function("DeleteMatrixColumns", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("num_cols", ID_TYPE_NUM); + embed_function("DeleteMatrixRows", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("num_rows", ID_TYPE_NUM); + embed_function("ClearMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + embed_function("ClearMatrixColumns", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("num_cols", ID_TYPE_NUM); + embed_function("ClearMatrixRows", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("num_rows", ID_TYPE_NUM); + embed_function("FillMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("v", ID_TYPE_NUM); + embed_function("FillMatrixColumns", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("num_cols", ID_TYPE_NUM); + add_embedded_arg("v", ID_TYPE_NUM); + embed_function("FillMatrixRows", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("num_rows", ID_TYPE_NUM); + add_embedded_arg("v", ID_TYPE_NUM); + embed_function("CopyMatrixColumns", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("num_cols", ID_TYPE_NUM); + embed_function("CopyMatrixRows", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("num_rows", ID_TYPE_NUM); + embed_function("IdentityMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("SolveMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("mC", ID_TYPE_NUM); + embed_function("IsEqualMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("tolerance", ID_TYPE_NUM); + embed_function("Determinant", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + embed_function("AdjointMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + embed_function("InvertMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + embed_function("MatrixFromBuffer", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); + embed_function("GetMatrix", ID_TYPE_SUB); + add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + embed_function("RandomizeMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("vmin", ID_TYPE_NUM); + add_embedded_arg("vmax", ID_TYPE_NUM); + embed_function("MatrixValue", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + embed_function("SetMatrixValue", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("v", ID_TYPE_NUM); + embed_function("ScalarMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("s_value", ID_TYPE_NUM); + embed_function("ScalarMatrixColumns", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("num_cols", ID_TYPE_NUM); + add_embedded_arg("s_value", ID_TYPE_NUM); + embed_function("ScalarMatrixRows", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("num_rows", ID_TYPE_NUM); + add_embedded_arg("s_value", ID_TYPE_NUM); + embed_function("SquareMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + embed_function("CofactorMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + embed_function("SubtractMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("mC", ID_TYPE_NUM); + embed_function("SwapMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + embed_function("SwapMatrixColumn", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("C1", ID_TYPE_NUM); + add_embedded_arg("C2", ID_TYPE_NUM); + embed_function("SwapMatrixRow", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("R1", ID_TYPE_NUM); + add_embedded_arg("R2", ID_TYPE_NUM); + embed_function("TransposeMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + embed_function("UnAugmentMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("mC", ID_TYPE_NUM); + embed_function("ZeroMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + embed_function("GetMatrixSize", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_BYREF_NUM); + add_embedded_arg("c", ID_TYPE_BYREF_NUM); + embed_function("IncrementMatrixRows", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("num_rows", ID_TYPE_NUM); + add_embedded_arg("value", ID_TYPE_NUM); + embed_function("IncrementMatrixColumns", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("num_cols", ID_TYPE_NUM); + add_embedded_arg("value", ID_TYPE_NUM); + embed_function("JoinMatrixRows", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("mC", ID_TYPE_NUM); + embed_function("JoinMatrixColumns", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("mC", ID_TYPE_NUM); + embed_function("ClipMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("num_rows", ID_TYPE_NUM); + add_embedded_arg("num_cols", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + embed_function("SetMatrixTranslation", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("SetMatrixRotation", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("SetMatrixScale", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("GetMatrixTranslation", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("GetMatrixRotation", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("GetMatrixScale", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("ClipboardText$", ID_TYPE_FN_STR); + embed_function("SetClipboardText", ID_TYPE_SUB); + add_embedded_arg("txt$", ID_TYPE_STR); + embed_function("HasClipboardText", ID_TYPE_FN_NUM); + embed_function("ReadInput_Start", ID_TYPE_SUB); + embed_function("ReadInput_Stop", ID_TYPE_SUB); + embed_function("ReadInput_Text$", ID_TYPE_FN_STR); + embed_function("ReadInput_SetText", ID_TYPE_SUB); + add_embedded_arg("txt$", ID_TYPE_STR); + embed_function("ReadInput_ToggleBackspace", ID_TYPE_SUB); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("CreateSprite", ID_TYPE_FN_NUM); + add_embedded_arg("img", ID_TYPE_NUM); + embed_function("DeleteSprite", ID_TYPE_SUB); + add_embedded_arg("sprite", ID_TYPE_NUM); + embed_function("SetSpritePosition", ID_TYPE_SUB); + add_embedded_arg("sprite", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("LoadMesh", ID_TYPE_FN_NUM); + add_embedded_arg("mesh_file$", ID_TYPE_STR); + embed_function("DeleteMesh", ID_TYPE_SUB); + add_embedded_arg("mesh", ID_TYPE_NUM); + embed_function("CreateMesh", ID_TYPE_FN_NUM); + embed_function("AddMeshBuffer", ID_TYPE_SUB); + add_embedded_arg("mesh", ID_TYPE_NUM); + add_embedded_arg("vertex_count", ID_TYPE_NUM); + add_embedded_arg("vertex_data", ID_TYPE_BYREF_NUM); + add_embedded_arg("normal_data", ID_TYPE_BYREF_NUM); + add_embedded_arg("uv_data", ID_TYPE_BYREF_NUM); + add_embedded_arg("index_count", ID_TYPE_NUM); + add_embedded_arg("index_data", ID_TYPE_BYREF_NUM); + embed_function("LoadMeshFromArchive", ID_TYPE_FN_NUM); + add_embedded_arg("archive$", ID_TYPE_STR); + add_embedded_arg("mesh_file$", ID_TYPE_STR); + embed_function("CreateMeshActor", ID_TYPE_FN_NUM); + add_embedded_arg("mesh", ID_TYPE_NUM); + embed_function("CreateMeshOctreeActor", ID_TYPE_FN_NUM); + add_embedded_arg("mesh", ID_TYPE_NUM); + embed_function("CreateCubeActor", ID_TYPE_FN_NUM); + add_embedded_arg("cube_size", ID_TYPE_NUM); + embed_function("CreateSphereActor", ID_TYPE_FN_NUM); + add_embedded_arg("radius", ID_TYPE_NUM); + embed_function("CreateWaterPlaneActor", ID_TYPE_FN_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("CreateLightActor", ID_TYPE_FN_NUM); + embed_function("CreateBillboardActor", ID_TYPE_FN_NUM); + embed_function("CreateTerrainActor", ID_TYPE_FN_NUM); + add_embedded_arg("hmap_file$", ID_TYPE_STR); + embed_function("DeleteActor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("GetActorTransform", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("matrix", ID_TYPE_NUM); + embed_function("SetActorPosition", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("TranslateActor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("TranslateActorWorld", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("GetActorPosition", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("SetActorScale", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("ScaleActor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("GetActorScale", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("SetActorRotation", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("RotateActor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("GetActorRotation", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("SetActorVisible", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("ActorIsVisible", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("SetActorAutoCulling", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("cull_type", ID_TYPE_NUM); + embed_function("GetActorAutoCulling", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("AddActorShadow", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("RemoveActorShadow", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("SetGravity3D", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("GetGravity3D", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("SetActorCollisionShape", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("shape_type", ID_TYPE_NUM); + add_embedded_arg("mass", ID_TYPE_NUM); + embed_function("GetActorCollisionShape", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("SetActorSolid", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("ActorIsSolid", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("GetActorCollision", ID_TYPE_FN_NUM); + add_embedded_arg("actor1", ID_TYPE_NUM); + add_embedded_arg("actor2", ID_TYPE_NUM); + embed_function("SetActorGravity", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("GetActorGravity", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("setActorDamping", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("lin_damping", ID_TYPE_NUM); + add_embedded_arg("ang_damping", ID_TYPE_NUM); + embed_function("getActorLinearDamping", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("getActorAngularDamping", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("getActorLinearSleepThreshold", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("getActorAngularSleepThreshold", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("applyActorDamping", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("timeStep", ID_TYPE_NUM); + embed_function("setActorMassProperties", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("mass", ID_TYPE_NUM); + add_embedded_arg("inertia_x", ID_TYPE_NUM); + add_embedded_arg("inertia_y", ID_TYPE_NUM); + add_embedded_arg("inertia_z", ID_TYPE_NUM); + embed_function("getActorLinearFactor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("setActorLinearFactor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("getActorInverseMass", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("integrateActorVelocities", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("applyActorCentralForceLocal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("applyActorCentralForceWorld", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("getActorTotalForce", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("getActorTotalTorque", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("getActorInverseInertiaDiagLocal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("setActorInverseInertiaDiagLocal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("setActorSleepThresholds", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("linear", ID_TYPE_NUM); + add_embedded_arg("angular", ID_TYPE_NUM); + embed_function("applyActorTorqueLocal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("applyActorTorqueWorld", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("applyActorForceLocal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + add_embedded_arg("rel_x", ID_TYPE_NUM); + add_embedded_arg("rel_y", ID_TYPE_NUM); + add_embedded_arg("rel_z", ID_TYPE_NUM); + embed_function("applyActorForceWorld", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + add_embedded_arg("rel_x", ID_TYPE_NUM); + add_embedded_arg("rel_y", ID_TYPE_NUM); + add_embedded_arg("rel_z", ID_TYPE_NUM); + embed_function("applyActorCentralImpulseLocal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("applyActorCentralImpulseWorld", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("applyActorTorqueImpulseLocal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("applyActorTorqueImpulseWorld", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("applyActorImpulseLocal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + add_embedded_arg("rel_x", ID_TYPE_NUM); + add_embedded_arg("rel_y", ID_TYPE_NUM); + add_embedded_arg("rel_z", ID_TYPE_NUM); + embed_function("applyActorImpulseWorld", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + add_embedded_arg("rel_x", ID_TYPE_NUM); + add_embedded_arg("rel_y", ID_TYPE_NUM); + add_embedded_arg("rel_z", ID_TYPE_NUM); + embed_function("clearActorForces", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("updateActorInertiaTensor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("getActorCOMPosition", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("getActorRotationQ", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + embed_function("getActorLinearVelocity", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("getActorAngularVelocity", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("setActorLinearVelocityLocal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("setActorLinearVelocityWorld", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("setActorAngularVelocityLocal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("setActorAngularVelocityWorld", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("getActorLocalPointVelocity", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("rel_x", ID_TYPE_NUM); + add_embedded_arg("rel_y", ID_TYPE_NUM); + add_embedded_arg("rel_z", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("getActorLinearVelocityLocal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("getActorAngularVelocityLocal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("getActorAABB", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("min_x", ID_TYPE_BYREF_NUM); + add_embedded_arg("min_y", ID_TYPE_BYREF_NUM); + add_embedded_arg("min_z", ID_TYPE_BYREF_NUM); + add_embedded_arg("max_x", ID_TYPE_BYREF_NUM); + add_embedded_arg("max_y", ID_TYPE_BYREF_NUM); + add_embedded_arg("max_z", ID_TYPE_BYREF_NUM); + embed_function("computeActorImpulseDenominator", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("pos_x", ID_TYPE_NUM); + add_embedded_arg("pos_y", ID_TYPE_NUM); + add_embedded_arg("pos_z", ID_TYPE_NUM); + add_embedded_arg("normal_x", ID_TYPE_NUM); + add_embedded_arg("normal_y", ID_TYPE_NUM); + add_embedded_arg("normal_z", ID_TYPE_NUM); + embed_function("computeActorAngularImpulseDenominator", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("setActorAngularFactor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("getActorAngularFactor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("computeActorGyroImpulseLocal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("dt", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("computeActorGyroImpulseWorld", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("dt", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("getActorLocalInertia", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("createPointConstraint", ID_TYPE_FN_NUM); + add_embedded_arg("actorA", ID_TYPE_NUM); + add_embedded_arg("pxA", ID_TYPE_NUM); + add_embedded_arg("pyA", ID_TYPE_NUM); + add_embedded_arg("pzA", ID_TYPE_NUM); + embed_function("createPointConstraintEx", ID_TYPE_FN_NUM); + add_embedded_arg("actorA", ID_TYPE_NUM); + add_embedded_arg("actorB", ID_TYPE_NUM); + add_embedded_arg("pxA", ID_TYPE_NUM); + add_embedded_arg("pyA", ID_TYPE_NUM); + add_embedded_arg("pzA", ID_TYPE_NUM); + add_embedded_arg("pxB", ID_TYPE_NUM); + add_embedded_arg("pyB", ID_TYPE_NUM); + add_embedded_arg("pzB", ID_TYPE_NUM); + embed_function("setConstraintPivotA", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("setConstraintPivotB", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("createHingeConstraint", ID_TYPE_FN_NUM); + add_embedded_arg("actorA", ID_TYPE_NUM); + add_embedded_arg("pxA", ID_TYPE_NUM); + add_embedded_arg("pyA", ID_TYPE_NUM); + add_embedded_arg("pzA", ID_TYPE_NUM); + add_embedded_arg("axA", ID_TYPE_NUM); + add_embedded_arg("ayA", ID_TYPE_NUM); + add_embedded_arg("azA", ID_TYPE_NUM); + embed_function("createHingeConstraintEx", ID_TYPE_FN_NUM); + add_embedded_arg("actorA", ID_TYPE_NUM); + add_embedded_arg("actorB", ID_TYPE_NUM); + add_embedded_arg("pxA", ID_TYPE_NUM); + add_embedded_arg("pyA", ID_TYPE_NUM); + add_embedded_arg("pzA", ID_TYPE_NUM); + add_embedded_arg("pxB", ID_TYPE_NUM); + add_embedded_arg("pyB", ID_TYPE_NUM); + add_embedded_arg("pzB", ID_TYPE_NUM); + add_embedded_arg("axA", ID_TYPE_NUM); + add_embedded_arg("ayA", ID_TYPE_NUM); + add_embedded_arg("azA", ID_TYPE_NUM); + add_embedded_arg("axB", ID_TYPE_NUM); + add_embedded_arg("ayB", ID_TYPE_NUM); + add_embedded_arg("azB", ID_TYPE_NUM); + embed_function("createSlideConstraint", ID_TYPE_FN_NUM); + add_embedded_arg("actorA", ID_TYPE_NUM); + add_embedded_arg("frameInB_matrix", ID_TYPE_NUM); + add_embedded_arg("useLinearReferenceFrameA", ID_TYPE_NUM); + embed_function("createSlideConstraintEx", ID_TYPE_FN_NUM); + add_embedded_arg("actorA", ID_TYPE_NUM); + add_embedded_arg("actorB", ID_TYPE_NUM); + add_embedded_arg("frameInA_matrix", ID_TYPE_NUM); + add_embedded_arg("frameInB_matrix", ID_TYPE_NUM); + add_embedded_arg("useLinearReferenceFrameA", ID_TYPE_NUM); + embed_function("createConeConstraint", ID_TYPE_FN_NUM); + add_embedded_arg("actorA", ID_TYPE_NUM); + add_embedded_arg("rbAFrame_matrix", ID_TYPE_NUM); + embed_function("createConeConstraintEx", ID_TYPE_FN_NUM); + add_embedded_arg("actorA", ID_TYPE_NUM); + add_embedded_arg("actorB", ID_TYPE_NUM); + add_embedded_arg("rbAFrame_matrix", ID_TYPE_NUM); + add_embedded_arg("rbBFrame_matrix", ID_TYPE_NUM); + embed_function("deleteConstraint", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintFrameOffsetA", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + add_embedded_arg("rx", ID_TYPE_BYREF_NUM); + add_embedded_arg("ry", ID_TYPE_BYREF_NUM); + add_embedded_arg("rz", ID_TYPE_BYREF_NUM); + embed_function("getConstraintFrameOffsetB", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + add_embedded_arg("rx", ID_TYPE_BYREF_NUM); + add_embedded_arg("ry", ID_TYPE_BYREF_NUM); + add_embedded_arg("rz", ID_TYPE_BYREF_NUM); + embed_function("useConstraintFrameOffset", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("getHingeAngle", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getHingeAngleEx", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("t_matrixA", ID_TYPE_NUM); + add_embedded_arg("t_matrixB", ID_TYPE_NUM); + embed_function("getConstraintBreakingImpulseThreshold", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintAFrame", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + embed_function("getConstraintBFrame", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + embed_function("setConstraintAxis", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("setConstraintBreakingImpulseThreshold", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("threshold", ID_TYPE_NUM); + embed_function("setConstraintFrames", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("frameA_matrix", ID_TYPE_NUM); + add_embedded_arg("frameB_matrix", ID_TYPE_NUM); + embed_function("setHingeLimit", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("low", ID_TYPE_NUM); + add_embedded_arg("high", ID_TYPE_NUM); + add_embedded_arg("softness", ID_TYPE_NUM); + add_embedded_arg("bias_factor", ID_TYPE_NUM); + add_embedded_arg("relaxation_factor", ID_TYPE_NUM); + embed_function("setConeLimit", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("swingSpan1", ID_TYPE_NUM); + add_embedded_arg("swingSpan2", ID_TYPE_NUM); + add_embedded_arg("twistSpan", ID_TYPE_NUM); + add_embedded_arg("softness", ID_TYPE_NUM); + add_embedded_arg("bias_factor", ID_TYPE_NUM); + add_embedded_arg("relaxation_factor", ID_TYPE_NUM); + embed_function("getConstraintLimitBiasFactor", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getLimitRelaxationFactor", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintLimitSign", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getHingeSolveLimit", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("useHingeReferenceFrameA", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("getConstraintAppliedImpulse", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintFixedActor", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintPivotA", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("getConstraintPivotB", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("getConstraintActorA", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintActorB", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("setConstraintSolverIterations", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("num", ID_TYPE_NUM); + embed_function("getConstraintBiasFactor", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintDamping", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintFixThresh", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintLimit", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("limit_index", ID_TYPE_NUM); + embed_function("getConstraintLimitSoftness", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintSolverIterations", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintAnglePoint", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("angle", ID_TYPE_NUM); + add_embedded_arg("c_len", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("getConstraintAngularOnly", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintSolveSwingLimit", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintSolveTwistLimit", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintSolveLimit", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintSwingSpan1", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintSwingSpan2", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintTwistAngle", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintTwistLimitSign", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintTwistSpan", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("setConstraintAngularOnly", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("setConstraintDamping", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("damping", ID_TYPE_NUM); + embed_function("setConstraintFixThresh", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("fixThresh", ID_TYPE_NUM); + embed_function("getConstraintAnchorA", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("getConstraintAnchorB", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("getConstraintAngDepth", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintAngularPos", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintDampingDirAng", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintDampingDirLin", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintDampingLimAng", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintDampingLimLin", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintDampingOrthoAng", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintDampingOrthoLin", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintLinearPos", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintLinDepth", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintLowerAngLimit", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintLowerLinLimit", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintRestitutionDirAng", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintRestitutionDirLin", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintRestitutionLimAng", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintRestitutionLimLin", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintRestitutionOrthoAng", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintRestitutionOrthoLin", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintSoftnessDirAng", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintSoftnessDirLin", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintSoftnessLimAng", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintSoftnessLimLin", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintSoftnessOrthoAng", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintSoftnessOrthoLin", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintSolveAngLimit", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintSolveLinLimit", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintUpperAngLimit", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintUpperLinLimit", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("getConstraintUseFrameOffset", ID_TYPE_FN_NUM); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + embed_function("setConstraintDampingDirAng", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintDampingDirLin", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintDampingLimAng", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintDampingLimLin", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintDampingOrthoAng", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintDampingOrthoLin", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintLowerAngLimit", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintLowerLinLimit", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintRestitutionDirAng", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintRestitutionDirLin", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintRestitutionLimAng", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintRestitutionLimLin", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintRestitutionOrthoAng", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintRestitutionOrthoLin", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintSoftnessDirAng", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintSoftnessDirLin", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintSoftnessLimAng", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintSoftnessLimLin", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintSoftnessOrthoAng", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintSoftnessOrthoLin", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintUpperAngLimit", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("setConstraintUpperLinLimit", ID_TYPE_SUB); + add_embedded_arg("constraint_id", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("SetCameraPosition", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("GetCameraPosition", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("TranslateCamera", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("SetCameraRotation", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("GetCameraRotation", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("RotateCamera", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("SetCameraFOV", ID_TYPE_SUB); + add_embedded_arg("fov", ID_TYPE_NUM); + embed_function("GetCameraFOV", ID_TYPE_FN_NUM); + embed_function("SetCameraAspectRatio", ID_TYPE_SUB); + add_embedded_arg("aspect", ID_TYPE_NUM); + embed_function("GetCameraAspectRatio", ID_TYPE_FN_NUM); + embed_function("SetCameraFarValue", ID_TYPE_SUB); + add_embedded_arg("zf", ID_TYPE_NUM); + embed_function("GetCameraFarValue", ID_TYPE_FN_NUM); + embed_function("SetCameraNearValue", ID_TYPE_SUB); + add_embedded_arg("zn", ID_TYPE_NUM); + embed_function("GetCameraNearValue", ID_TYPE_FN_NUM); + embed_function("AddSceneSkyBox", ID_TYPE_SUB); + add_embedded_arg("img_top", ID_TYPE_NUM); + add_embedded_arg("img_bottom", ID_TYPE_NUM); + add_embedded_arg("img_left", ID_TYPE_NUM); + add_embedded_arg("img_right", ID_TYPE_NUM); + add_embedded_arg("img_front", ID_TYPE_NUM); + add_embedded_arg("img_back", ID_TYPE_NUM); + embed_function("AddSceneSkyDome", ID_TYPE_SUB); + add_embedded_arg("img", ID_TYPE_NUM); + embed_function("AddSceneSkyDomeEx", ID_TYPE_SUB); + add_embedded_arg("img", ID_TYPE_NUM); + add_embedded_arg("horiRes", ID_TYPE_NUM); + add_embedded_arg("vertRes", ID_TYPE_NUM); + add_embedded_arg("txPercentage", ID_TYPE_NUM); + add_embedded_arg("spherePercentage", ID_TYPE_NUM); + add_embedded_arg("radius", ID_TYPE_NUM); + embed_function("RemoveSceneSky", ID_TYPE_SUB); + embed_function("SetWorld3DDeltaTime", ID_TYPE_SUB); + add_embedded_arg("dt", ID_TYPE_NUM); + embed_function("SetWorld3DMaxSubSteps", ID_TYPE_SUB); + add_embedded_arg("steps", ID_TYPE_NUM); + embed_function("SetWorld3DTimeStep", ID_TYPE_SUB); + add_embedded_arg("ts", ID_TYPE_NUM); + embed_function("startParticleEmitter", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("stopParticleEmitter", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setParticleDirection", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("getParticleDirection", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("useParticleEveryMeshVertex", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("particleIsUsingEveryMeshVertex", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setParticleNormalDirectionMod", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("getParticleNormalDirectionMod", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("useParticleNormalDirection", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("particleIsUsingNormalDirection", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setParticleMesh", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("mesh", ID_TYPE_NUM); + embed_function("setParticleMinParticlesPerSecond", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("minParticlesPerSecond", ID_TYPE_NUM); + embed_function("getParticleMinParticlesPerSecond", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setParticleMaxParticlesPerSecond", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("maxParticlesPerSecond", ID_TYPE_NUM); + embed_function("getParticleMaxParticlesPerSecond", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setParticleMinStartColor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("color", ID_TYPE_NUM); + embed_function("getParticleMinStartColor", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setParticleMaxStartColor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("color", ID_TYPE_NUM); + embed_function("getParticleMaxStartColor", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setParticleMinLife", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("minLife", ID_TYPE_NUM); + embed_function("getParticleMinLife", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setParticleMaxLife", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("maxLife", ID_TYPE_NUM); + embed_function("getParticleMaxLife", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setParticleMaxAngle", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("maxAngle", ID_TYPE_NUM); + embed_function("getParticleMaxAngle", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setParticleMinStartSize", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("getParticleMinStartSize", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("setParticleMaxStartSize", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("getParticleMaxStartSize", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("setParticleCenter", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("getParticleCenter", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("setParticleRadius", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("radius", ID_TYPE_NUM); + embed_function("getParticleRadius", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setParticleRingThickness", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("ringThickness", ID_TYPE_NUM); + embed_function("getParticleRingThickness", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setParticleBox", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("min_x", ID_TYPE_NUM); + add_embedded_arg("min_y", ID_TYPE_NUM); + add_embedded_arg("min_z", ID_TYPE_NUM); + add_embedded_arg("max_x", ID_TYPE_NUM); + add_embedded_arg("max_y", ID_TYPE_NUM); + add_embedded_arg("max_z", ID_TYPE_NUM); + embed_function("getParticleBox", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("min_x", ID_TYPE_BYREF_NUM); + add_embedded_arg("min_y", ID_TYPE_BYREF_NUM); + add_embedded_arg("min_z", ID_TYPE_BYREF_NUM); + add_embedded_arg("max_x", ID_TYPE_BYREF_NUM); + add_embedded_arg("max_y", ID_TYPE_BYREF_NUM); + add_embedded_arg("max_z", ID_TYPE_BYREF_NUM); + embed_function("setParticleNormal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("getParticleNormal", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("setParticleLength", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("p_len", ID_TYPE_NUM); + embed_function("getParticleLength", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("useParticleOutlineOnly", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("particleIsUsingOutlineOnly", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("lightIsCastingShadow", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("getLightType", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("getLightRadius", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setLightType", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("light_type", ID_TYPE_NUM); + embed_function("setLightRadius", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("radius", ID_TYPE_NUM); + embed_function("setLightShadowCast", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("SetLightAmbientColor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("color", ID_TYPE_NUM); + embed_function("GetLightAmbientColor", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("SetLightAttenuation", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("l_constant", ID_TYPE_NUM); + add_embedded_arg("l_linear", ID_TYPE_NUM); + add_embedded_arg("l_quadratic", ID_TYPE_NUM); + embed_function("GetLightAttenuation", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("constant", ID_TYPE_BYREF_NUM); + add_embedded_arg("linear", ID_TYPE_BYREF_NUM); + add_embedded_arg("quadratic", ID_TYPE_BYREF_NUM); + embed_function("SetLightDiffuseColor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("color", ID_TYPE_NUM); + embed_function("GetLightDiffuseColor", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("SetLightFalloff", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("falloff", ID_TYPE_NUM); + embed_function("GetLightFalloff", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("SetLightInnerCone", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("angle", ID_TYPE_NUM); + embed_function("GetLightInnerCone", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("SetLightOuterCone", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("angle", ID_TYPE_NUM); + embed_function("GetLightOuterCone", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("SetLightSpecularColor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("color", ID_TYPE_NUM); + embed_function("GetLightSpecularColor", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("GetTerrainPatchAABB", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("patchX", ID_TYPE_NUM); + add_embedded_arg("patchZ", ID_TYPE_NUM); + add_embedded_arg("minX", ID_TYPE_BYREF_NUM); + add_embedded_arg("minY", ID_TYPE_BYREF_NUM); + add_embedded_arg("minZ", ID_TYPE_BYREF_NUM); + add_embedded_arg("maxX", ID_TYPE_BYREF_NUM); + add_embedded_arg("maxY", ID_TYPE_BYREF_NUM); + add_embedded_arg("maxZ", ID_TYPE_BYREF_NUM); + embed_function("GetTerrainPatchLOD", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("patchX", ID_TYPE_NUM); + add_embedded_arg("patchZ", ID_TYPE_NUM); + embed_function("GetTerrainHeight", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("patchX", ID_TYPE_NUM); + add_embedded_arg("patchZ", ID_TYPE_NUM); + embed_function("GetTerrainCenter", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("SetTerrainLODDistance", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("LOD", ID_TYPE_NUM); + add_embedded_arg("distance", ID_TYPE_NUM); + embed_function("ScaleTerrainTexture", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("scale", ID_TYPE_NUM); + add_embedded_arg("scale2", ID_TYPE_NUM); + embed_function("SetTerrainCameraMovementDelta", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("delta", ID_TYPE_NUM); + embed_function("SetTerrainCameraRotationDelta", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("delta", ID_TYPE_NUM); + embed_function("SetTerrainPatchLOD", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("patchX", ID_TYPE_NUM); + add_embedded_arg("patchZ", ID_TYPE_NUM); + add_embedded_arg("LOD", ID_TYPE_NUM); + embed_function("setWaterWindForce", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("f", ID_TYPE_NUM); + embed_function("getWaterWindForce", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setWaterWaveHeight", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("getWaterWaveHeight", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setWaterWindDirection", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("getWaterWindDirection", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("setWaterColor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + embed_function("getWaterColor", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setWaterColorBlendFactor", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("cbfactor", ID_TYPE_NUM); + embed_function("getWaterColorBlendFactor", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("SetActorAnimation", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("start_frame", ID_TYPE_NUM); + add_embedded_arg("end_frame", ID_TYPE_NUM); + embed_function("SetActorAnimationSpeed", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("speed", ID_TYPE_NUM); + embed_function("SetActorFrame", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("frame", ID_TYPE_NUM); + embed_function("SetActorMD2Animation", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("anim", ID_TYPE_NUM); + embed_function("SetActorMD2AnimationByName", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("anim_name$", ID_TYPE_STR); + embed_function("GetActorAnimationSpeed", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("GetActorEndFrame", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("GetActorCurrentFrame", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("GetActorStartFrame", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("StartActorTransition", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("frame", ID_TYPE_NUM); + add_embedded_arg("transition_time", ID_TYPE_NUM); + embed_function("StopActorTransition", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("ActorIsInTransition", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("GetActorTransitionTime", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("actorAnimationIsLooped", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("loopActorAnimation", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("createMaterial", ID_TYPE_FN_NUM); + embed_function("deleteMaterial", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setActorMaterial", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("material_num", ID_TYPE_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("getActorMaterial", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("material_num", ID_TYPE_NUM); + embed_function("copyActorMaterial", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("material_num", ID_TYPE_NUM); + embed_function("copyMaterial", ID_TYPE_FN_NUM); + add_embedded_arg("smaterial_id", ID_TYPE_NUM); + embed_function("setMaterialTextureCanvas", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("level", ID_TYPE_NUM); + add_embedded_arg("canvas_id", ID_TYPE_NUM); + embed_function("setMaterialAmbientColor", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("color", ID_TYPE_NUM); + embed_function("getMaterialAmbientColor", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialAntiAliasing", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("aa", ID_TYPE_NUM); + embed_function("getMaterialAntiAliasing", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialBackfaceCulling", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("getMaterialBackfaceCulling", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialBlendFactor", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("bf", ID_TYPE_NUM); + embed_function("getMaterialBlendFactor", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialBlendMode", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("blend_mode", ID_TYPE_NUM); + embed_function("getMaterialBlendMode", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialColorMask", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("color_mask", ID_TYPE_NUM); + embed_function("getMaterialColorMask", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialColorMode", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("color_mode", ID_TYPE_NUM); + embed_function("getMaterialColorMode", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialDiffuseColor", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("color", ID_TYPE_NUM); + embed_function("getMaterialDiffuseColor", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialEmissiveColor", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("color", ID_TYPE_NUM); + embed_function("getMaterialEmissiveColor", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialFog", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("getMaterialFog", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialFrontfaceCulling", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("getMaterialFrontfaceCulling", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialGouraudShading", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("materialGouraudShading", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("materialIsAplhaBlend", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("materialIsTransparent", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialLighting", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("materialIsLit", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialType", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("mat_type", ID_TYPE_NUM); + embed_function("getMaterialType", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialNormalize", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("materialIsNormalized", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialPointCloud", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("materialIsPointCloud", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialFlag", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("material_flag", ID_TYPE_NUM); + add_embedded_arg("f_value", ID_TYPE_NUM); + embed_function("getMaterialFlag", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("material_flag", ID_TYPE_NUM); + embed_function("setMaterialTexture", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("level", ID_TYPE_NUM); + add_embedded_arg("img_id", ID_TYPE_NUM); + embed_function("setMaterialShininess", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("shininess", ID_TYPE_NUM); + embed_function("getMaterialShininess", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialSpecularColor", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("color", ID_TYPE_NUM); + embed_function("getMaterialSpecularColor", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialThickness", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("thickness", ID_TYPE_NUM); + embed_function("getMaterialThickness", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setMaterialWireframe", ID_TYPE_SUB); + add_embedded_arg("material_id", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("materialIsWireframe", ID_TYPE_FN_NUM); + add_embedded_arg("material_id", ID_TYPE_NUM); + embed_function("setActorTexture", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("layer", ID_TYPE_NUM); + add_embedded_arg("image_id", ID_TYPE_NUM); + embed_function("getActorMaterialCount", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("setActorMaterialFlag", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + add_embedded_arg("flag_value", ID_TYPE_NUM); + embed_function("getActorMaterialFlag", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("material", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("setActorMaterialType", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("material_type", ID_TYPE_NUM); + embed_function("getActorMaterialType", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("material", ID_TYPE_NUM); +} + +void init_embedded_types() +{ + create_type("empty"); +} + +init_embedded_variables() +{ +} + +#endif // RC_BUILTIN_H_INCLUDED diff --git a/rcbasic_build/rc_debug.h b/rcbasic_build/rc_debug.h old mode 100644 new mode 100755 diff --git a/rcbasic_build/rc_global.h b/rcbasic_build/rc_global.h old mode 100644 new mode 100755 diff --git a/rcbasic_build/rc_utility.h b/rcbasic_build/rc_utility.h old mode 100644 new mode 100755 index 706a78f..8ec2977 --- a/rcbasic_build/rc_utility.h +++ b/rcbasic_build/rc_utility.h @@ -69,4 +69,19 @@ bool is_file_exist(const char *fileName) return infile.good(); } +std::string rc_replace(std::string src, std::string tgt, std::string rpc) +{ + if(tgt.length()==0) + return src; + size_t found_inc = rpc.length() > 0 ? rpc.length() : 1; + size_t found = 0; + found = src.find(tgt); + while( found != string::npos && found < src.length()) + { + src = src.substr(0,found) + rpc + src.substr(found + tgt.length()); + found = src.find(tgt,found+found_inc); + } + return src; +} + #endif // RC_UTILITY_H_INCLUDED diff --git a/rcbasic_build/rc_vm_asm.h b/rcbasic_build/rc_vm_asm.h old mode 100644 new mode 100755 index aa5aa6b..927b856 --- a/rcbasic_build/rc_vm_asm.h +++ b/rcbasic_build/rc_vm_asm.h @@ -1354,6 +1354,7 @@ namespace rc_cbc_assembler else { int p = rc_find_digit(line_arg[i]); + //cout << "line_arg = " << line_arg[i] << endl; rc_int.i = rc_stringToInt(line_arg[i].substr(p)); if(rc_int.i < 0) { diff --git a/rcbasic_build/rcbasic.dbgi b/rcbasic_build/rcbasic.dbgi new file mode 100644 index 0000000..131d7b4 --- /dev/null +++ b/rcbasic_build/rcbasic.dbgi @@ -0,0 +1 @@ +/home/n00b/Projects/RCBASIC4/rcbasic_runtime/bin/Release/unittest.bas diff --git a/rcbasic_build/rcbasic.dbgs b/rcbasic_build/rcbasic.dbgs new file mode 100644 index 0000000..40146ed --- /dev/null +++ b/rcbasic_build/rcbasic.dbgs @@ -0,0 +1,12 @@ +U main x 2 +U main.x t 0 +UN main.x.t w 0 +UN main.x n 0 +U main y 3 +U main.y t 0 +UN main.y.t w 0 +UN main.y n 0 +U main z 4 +U main.z t 0 +UN main.z.t w 0 +UN main.z n 0 diff --git a/rcbasic_build/rcbasic4_changes.ods b/rcbasic_build/rcbasic4_changes.ods new file mode 100644 index 0000000..506c968 Binary files /dev/null and b/rcbasic_build/rcbasic4_changes.ods differ diff --git a/rcbasic_build/rcbasic_build.cbp b/rcbasic_build/rcbasic_build.cbp new file mode 100755 index 0000000..c381683 --- /dev/null +++ b/rcbasic_build/rcbasic_build.cbp @@ -0,0 +1,50 @@ + + + + + + diff --git a/rcbasic_build/rcbasic_build.depend b/rcbasic_build/rcbasic_build.depend new file mode 100755 index 0000000..f5ee0e8 --- /dev/null +++ b/rcbasic_build/rcbasic_build.depend @@ -0,0 +1,83 @@ +# depslib dependency file v1.0 +1726847571 source:/home/n00b/Projects/RCBASIC4/rcbasic_build/main.cpp + + + + + + + "tokenizer.h" + "parser.h" + "rc_builtin.h" + "rc_vm_asm.h" + "file_directory.h" + "env_resolve.h" + "identifier.h" + +1726839554 /home/n00b/Projects/RCBASIC4/rcbasic_build/tokenizer.h + + + + + + "rc_utility.h" + "rc_debug.h" + "keywords.h" + "constants.h" + +1726346351 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_utility.h + + + + +1714359665 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_debug.h + +1714359665 /home/n00b/Projects/RCBASIC4/rcbasic_build/keywords.h + +1714359665 /home/n00b/Projects/RCBASIC4/rcbasic_build/constants.h + + +1726801277 /home/n00b/Projects/RCBASIC4/rcbasic_build/parser.h + "tokenizer.h" + "identifier.h" + "rc_global.h" + "constants.h" + + +1726623560 /home/n00b/Projects/RCBASIC4/rcbasic_build/identifier.h + + + "rc_global.h" + "rc_utility.h" + "rc_debug.h" + +1714359717 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_global.h + + +1726536916 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_builtin.h + "identifier.h" + +1726620092 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_vm_asm.h + + + + + + + + +1714359665 /home/n00b/Projects/RCBASIC4/rcbasic_build/file_directory.h + + + + + + + + + + +1714359665 /home/n00b/Projects/RCBASIC4/rcbasic_build/env_resolve.h + + + diff --git a/rcbasic_build/rcbasic_build.layout b/rcbasic_build/rcbasic_build.layout new file mode 100755 index 0000000..7976836 --- /dev/null +++ b/rcbasic_build/rcbasic_build.layout @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rcbasic_build/rcbasic_dev.txt b/rcbasic_build/rcbasic_dev.txt index 8947c90..721ca08 100644 --- a/rcbasic_build/rcbasic_dev.txt +++ b/rcbasic_build/rcbasic_dev.txt @@ -1,7 +1,9 @@ -embed_function("FPrint", ID_TYPE_SUB); +embed_function("Fprint", ID_TYPE_SUB); add_embedded_arg("txt$", ID_TYPE_STR); embed_function("Input$", ID_TYPE_FN_STR); add_embedded_arg("prompt$", ID_TYPE_STR); +embed_function("tst", ID_TYPE_SUB); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); embed_function("ArrayDim", ID_TYPE_FN_NUM); add_embedded_arg("id", ID_TYPE_BYREF_NUM); embed_function("StringArrayDim", ID_TYPE_FN_NUM); @@ -17,16 +19,45 @@ add_embedded_arg("array_dim", ID_TYPE_NUM); embed_function("NumberArraySize", ID_TYPE_FN_NUM); add_embedded_arg("id", ID_TYPE_BYREF_NUM); add_embedded_arg("array_dim", ID_TYPE_NUM); +embed_function("NumberArrayCopy", ID_TYPE_SUB); +add_embedded_arg("src", ID_TYPE_BYREF_NUM); +add_embedded_arg("dst", ID_TYPE_BYREF_NUM); +embed_function("StringArrayCopy", ID_TYPE_SUB); +add_embedded_arg("src$", ID_TYPE_BYREF_STR); +add_embedded_arg("dst$", ID_TYPE_BYREF_STR); +embed_function("ArrayCopy", ID_TYPE_SUB); +add_embedded_arg("src", ID_TYPE_BYREF_NUM); +add_embedded_arg("dst", ID_TYPE_BYREF_NUM); +embed_function("NumberArrayFill", ID_TYPE_SUB); +add_embedded_arg("src", ID_TYPE_BYREF_NUM); +add_embedded_arg("fdata", ID_TYPE_NUM); +embed_function("StringArrayFill", ID_TYPE_SUB); +add_embedded_arg("src$", ID_TYPE_BYREF_STR); +add_embedded_arg("fdata$", ID_TYPE_STR); +embed_function("ArrayFill", ID_TYPE_SUB); +add_embedded_arg("src", ID_TYPE_BYREF_NUM); +add_embedded_arg("fdata", ID_TYPE_NUM); +embed_function("TypeArrayDim", ID_TYPE_FN_NUM); +add_embedded_arg("id", ID_TYPE_BYREF_USER, 0); +embed_function("TypeArraySize", ID_TYPE_FN_NUM); +add_embedded_arg("id", ID_TYPE_BYREF_USER, 0); +add_embedded_arg("array_dim", ID_TYPE_NUM); +embed_function("TypeArrayCopy", ID_TYPE_SUB); +add_embedded_arg("src", ID_TYPE_BYREF_USER, 0); +add_embedded_arg("dst", ID_TYPE_BYREF_USER, 0); +embed_function("TypeArrayFill", ID_TYPE_SUB); +add_embedded_arg("src", ID_TYPE_BYREF_USER, 0); +add_embedded_arg("fdata", ID_TYPE_USER, 0); embed_function("Abs", ID_TYPE_FN_NUM); add_embedded_arg("n", ID_TYPE_NUM); -embed_function("ACos", ID_TYPE_FN_NUM); +embed_function("Acos", ID_TYPE_FN_NUM); add_embedded_arg("n", ID_TYPE_NUM); embed_function("AndBit", ID_TYPE_FN_NUM); add_embedded_arg("a", ID_TYPE_NUM); add_embedded_arg("b", ID_TYPE_NUM); -embed_function("ASin", ID_TYPE_FN_NUM); +embed_function("Asin", ID_TYPE_FN_NUM); add_embedded_arg("n", ID_TYPE_NUM); -embed_function("ATan", ID_TYPE_FN_NUM); +embed_function("Atan", ID_TYPE_FN_NUM); add_embedded_arg("n", ID_TYPE_NUM); embed_function("Bin$", ID_TYPE_FN_STR); add_embedded_arg("n", ID_TYPE_NUM); @@ -78,1252 +109,6 @@ add_embedded_arg("n", ID_TYPE_NUM); embed_function("XOrBit", ID_TYPE_FN_NUM); add_embedded_arg("a", ID_TYPE_NUM); add_embedded_arg("b", ID_TYPE_NUM); -embed_function("Asc", ID_TYPE_FN_NUM); -add_embedded_arg("c$", ID_TYPE_STR); -embed_function("Chr$", ID_TYPE_FN_STR); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Insert$", ID_TYPE_FN_STR); -add_embedded_arg("src$", ID_TYPE_STR); -add_embedded_arg("tgt$", ID_TYPE_STR); -add_embedded_arg("pos", ID_TYPE_NUM); -embed_function("InStr", ID_TYPE_FN_NUM); -add_embedded_arg("src$", ID_TYPE_STR); -add_embedded_arg("substr$", ID_TYPE_STR); -embed_function("LCase$", ID_TYPE_FN_STR); -add_embedded_arg("src$", ID_TYPE_STR); -embed_function("Left$", ID_TYPE_FN_STR); -add_embedded_arg("src$", ID_TYPE_STR); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Length", ID_TYPE_FN_NUM); -add_embedded_arg("src$", ID_TYPE_STR); -embed_function("Len", ID_TYPE_FN_NUM); -add_embedded_arg("src$", ID_TYPE_STR); -embed_function("LTrim$", ID_TYPE_FN_STR); -add_embedded_arg("src$", ID_TYPE_STR); -embed_function("Mid$", ID_TYPE_FN_STR); -add_embedded_arg("src$", ID_TYPE_STR); -add_embedded_arg("start", ID_TYPE_NUM); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("ReplaceSubstr$", ID_TYPE_FN_STR); -add_embedded_arg("src$", ID_TYPE_STR); -add_embedded_arg("rpc$", ID_TYPE_STR); -add_embedded_arg("pos", ID_TYPE_NUM); -embed_function("Replace$", ID_TYPE_FN_STR); -add_embedded_arg("src$", ID_TYPE_STR); -add_embedded_arg("tgt$", ID_TYPE_STR); -add_embedded_arg("rpc$", ID_TYPE_STR); -embed_function("Reverse$", ID_TYPE_FN_STR); -add_embedded_arg("src$", ID_TYPE_STR); -embed_function("Right$", ID_TYPE_FN_STR); -add_embedded_arg("src$", ID_TYPE_STR); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("RTrim$", ID_TYPE_FN_STR); -add_embedded_arg("src$", ID_TYPE_STR); -embed_function("StringFill$", ID_TYPE_FN_STR); -add_embedded_arg("src$", ID_TYPE_STR); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Str$", ID_TYPE_FN_STR); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Str_F$", ID_TYPE_FN_STR); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Str_S$", ID_TYPE_FN_STR); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Tally", ID_TYPE_FN_NUM); -add_embedded_arg("src$", ID_TYPE_STR); -add_embedded_arg("substr$", ID_TYPE_STR); -embed_function("Trim$", ID_TYPE_FN_STR); -add_embedded_arg("src$", ID_TYPE_STR); -embed_function("UCase$", ID_TYPE_FN_STR); -add_embedded_arg("src$", ID_TYPE_STR); -embed_function("Val", ID_TYPE_FN_NUM); -add_embedded_arg("n$", ID_TYPE_STR); -embed_function("Stack_N", ID_TYPE_SUB); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Stack_S", ID_TYPE_SUB); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Push_N", ID_TYPE_SUB); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Pop_N", ID_TYPE_FN_NUM); -embed_function("Push_S", ID_TYPE_SUB); -add_embedded_arg("s$", ID_TYPE_STR); -embed_function("Pop_S$", ID_TYPE_FN_STR); -embed_function("Stack_Size_N", ID_TYPE_FN_NUM); -embed_function("Stack_Size_S", ID_TYPE_FN_NUM); -embed_function("FileOpen", ID_TYPE_FN_NUM); -add_embedded_arg("stream", ID_TYPE_NUM); -add_embedded_arg("fileName$", ID_TYPE_STR); -add_embedded_arg("mode", ID_TYPE_NUM); -embed_function("FileClose", ID_TYPE_SUB); -add_embedded_arg("stream", ID_TYPE_NUM); -embed_function("ReadByte", ID_TYPE_FN_NUM); -add_embedded_arg("stream", ID_TYPE_NUM); -embed_function("WriteByte", ID_TYPE_SUB); -add_embedded_arg("stream", ID_TYPE_NUM); -add_embedded_arg("byte", ID_TYPE_NUM); -embed_function("ReadLine$", ID_TYPE_FN_STR); -add_embedded_arg("stream", ID_TYPE_NUM); -embed_function("Write", ID_TYPE_SUB); -add_embedded_arg("stream", ID_TYPE_NUM); -add_embedded_arg("txt$", ID_TYPE_STR); -embed_function("WriteLine", ID_TYPE_SUB); -add_embedded_arg("stream", ID_TYPE_NUM); -add_embedded_arg("txt$", ID_TYPE_STR); -embed_function("CopyFile", ID_TYPE_SUB); -add_embedded_arg("src$", ID_TYPE_STR); -add_embedded_arg("dst$", ID_TYPE_STR); -embed_function("RemoveFile", ID_TYPE_FN_NUM); -add_embedded_arg("fileName$", ID_TYPE_STR); -embed_function("FileExists", ID_TYPE_FN_NUM); -add_embedded_arg("fileName$", ID_TYPE_STR); -embed_function("MoveFile", ID_TYPE_FN_NUM); -add_embedded_arg("src$", ID_TYPE_STR); -add_embedded_arg("dst$", ID_TYPE_STR); -embed_function("RenameFile", ID_TYPE_FN_NUM); -add_embedded_arg("src$", ID_TYPE_STR); -add_embedded_arg("dst$", ID_TYPE_STR); -embed_function("FileLength", ID_TYPE_FN_NUM); -add_embedded_arg("fileName$", ID_TYPE_STR); -embed_function("Tell", ID_TYPE_FN_NUM); -add_embedded_arg("stream", ID_TYPE_NUM); -embed_function("Seek", ID_TYPE_FN_NUM); -add_embedded_arg("stream", ID_TYPE_NUM); -add_embedded_arg("pos", ID_TYPE_NUM); -embed_function("EOF", ID_TYPE_FN_NUM); -add_embedded_arg("stream", ID_TYPE_NUM); -embed_function("FreeFile", ID_TYPE_FN_NUM); -embed_function("ChangeDir", ID_TYPE_SUB); -add_embedded_arg("p$", ID_TYPE_STR); -embed_function("DirExists", ID_TYPE_FN_NUM); -add_embedded_arg("p$", ID_TYPE_STR); -embed_function("DirFirst$", ID_TYPE_FN_STR); -embed_function("Dir$", ID_TYPE_FN_STR); -embed_function("DirNext$", ID_TYPE_FN_STR); -embed_function("MakeDir", ID_TYPE_FN_NUM); -add_embedded_arg("p$", ID_TYPE_STR); -embed_function("RemoveDir", ID_TYPE_FN_NUM); -add_embedded_arg("p$", ID_TYPE_STR); -embed_function("Date$", ID_TYPE_FN_STR); -embed_function("Easter$", ID_TYPE_FN_STR); -add_embedded_arg("year", ID_TYPE_NUM); -embed_function("Ticks", ID_TYPE_FN_NUM); -embed_function("Time$", ID_TYPE_FN_STR); -embed_function("Timer", ID_TYPE_FN_NUM); -embed_function("Wait", ID_TYPE_SUB); -add_embedded_arg("m_sec", ID_TYPE_NUM); -embed_function("WindowOpen", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("title$", ID_TYPE_STR); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -add_embedded_arg("flag", ID_TYPE_NUM); -add_embedded_arg("vsync", ID_TYPE_NUM); -embed_function("WindowClose", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("RaiseWindow", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("Window", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("Update", ID_TYPE_SUB); -embed_function("Cls", ID_TYPE_SUB); -embed_function("SetClearColor", ID_TYPE_SUB); -add_embedded_arg("c", ID_TYPE_NUM); -embed_function("ShowWindow", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("HideWindow", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("SetWindowTitle", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("title$", ID_TYPE_STR); -embed_function("WindowTitle$", ID_TYPE_FN_STR); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("SetWindowPosition", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -embed_function("GetWindowPosition", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_BYREF_NUM); -add_embedded_arg("y", ID_TYPE_BYREF_NUM); -embed_function("SetWindowSize", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -embed_function("GetWindowSize", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_BYREF_NUM); -add_embedded_arg("h", ID_TYPE_BYREF_NUM); -embed_function("SetWindowMinSize", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -embed_function("GetWindowMinSize", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_BYREF_NUM); -add_embedded_arg("h", ID_TYPE_BYREF_NUM); -embed_function("SetWindowMaxSize", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -embed_function("GetWindowMaxSize", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_BYREF_NUM); -add_embedded_arg("h", ID_TYPE_BYREF_NUM); -embed_function("WindowIsFullscreen", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("WindowIsVisible", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("WindowIsBordered", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("WindowIsResizable", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("WindowIsMinimized", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("WindowIsMaximized", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("WindowHasInputFocus", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("WindowHasMouseFocus", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("SetWindowFullscreen", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("flag", ID_TYPE_NUM); -embed_function("MaximizeWindow", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("MinimizeWindow", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("SetWindowBorder", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("flag", ID_TYPE_NUM); -embed_function("WindowClip", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -embed_function("WindowExists", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("NumWindows", ID_TYPE_FN_NUM); -embed_function("WindowEvent_Close", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("WindowEvent_Maximize", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("WindowEvent_Minimize", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("ActiveWindow", ID_TYPE_FN_NUM); -embed_function("FPS", ID_TYPE_FN_NUM); -embed_function("SetWindowIcon", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("slot", ID_TYPE_NUM); -embed_function("CanvasOpen", ID_TYPE_SUB); -add_embedded_arg("c_num", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -add_embedded_arg("viewport_x", ID_TYPE_NUM); -add_embedded_arg("viewport_y", ID_TYPE_NUM); -add_embedded_arg("viewport_w", ID_TYPE_NUM); -add_embedded_arg("viewport_h", ID_TYPE_NUM); -add_embedded_arg("mode", ID_TYPE_NUM); -embed_function("CanvasClose", ID_TYPE_SUB); -add_embedded_arg("c_num", ID_TYPE_NUM); -embed_function("SetCanvasVisible", ID_TYPE_SUB); -add_embedded_arg("c_num", ID_TYPE_NUM); -add_embedded_arg("flag", ID_TYPE_NUM); -embed_function("CanvasIsVisible", ID_TYPE_FN_NUM); -add_embedded_arg("c_num", ID_TYPE_NUM); -embed_function("SetCanvasViewport", ID_TYPE_SUB); -add_embedded_arg("cnum", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -embed_function("GetCanvasViewport", ID_TYPE_SUB); -add_embedded_arg("c_num", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_BYREF_NUM); -add_embedded_arg("y", ID_TYPE_BYREF_NUM); -add_embedded_arg("w", ID_TYPE_BYREF_NUM); -add_embedded_arg("h", ID_TYPE_BYREF_NUM); -embed_function("Canvas", ID_TYPE_SUB); -add_embedded_arg("c_num", ID_TYPE_NUM); -embed_function("SetCanvasOffset", ID_TYPE_SUB); -add_embedded_arg("c_num", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -embed_function("GetCanvasOffset", ID_TYPE_SUB); -add_embedded_arg("c_num", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_BYREF_NUM); -add_embedded_arg("y", ID_TYPE_BYREF_NUM); -embed_function("GetCanvasSize", ID_TYPE_SUB); -add_embedded_arg("c_num", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_BYREF_NUM); -add_embedded_arg("h", ID_TYPE_BYREF_NUM); -embed_function("ClearCanvas", ID_TYPE_SUB); -embed_function("SetCanvasAlpha", ID_TYPE_SUB); -add_embedded_arg("c_num", ID_TYPE_NUM); -add_embedded_arg("a", ID_TYPE_NUM); -embed_function("CanvasAlpha", ID_TYPE_FN_NUM); -add_embedded_arg("c_num", ID_TYPE_NUM); -embed_function("SetCanvasBlendMode", ID_TYPE_FN_NUM); -add_embedded_arg("c_num", ID_TYPE_NUM); -add_embedded_arg("blend_mode", ID_TYPE_NUM); -embed_function("CanvasBlendMode", ID_TYPE_FN_NUM); -add_embedded_arg("c_num", ID_TYPE_NUM); -embed_function("SetCanvasColorMod", ID_TYPE_FN_NUM); -add_embedded_arg("c_num", ID_TYPE_NUM); -add_embedded_arg("c", ID_TYPE_NUM); -embed_function("CanvasColorMod", ID_TYPE_FN_NUM); -add_embedded_arg("c_num", ID_TYPE_NUM); -embed_function("CopyCanvas", ID_TYPE_SUB); -add_embedded_arg("src", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -add_embedded_arg("dst", ID_TYPE_NUM); -add_embedded_arg("dx", ID_TYPE_NUM); -add_embedded_arg("dy", ID_TYPE_NUM); -embed_function("CloneCanvas", ID_TYPE_SUB); -add_embedded_arg("src", ID_TYPE_NUM); -add_embedded_arg("dst", ID_TYPE_NUM); -embed_function("SetCanvasZ", ID_TYPE_SUB); -add_embedded_arg("c_num", ID_TYPE_NUM); -add_embedded_arg("z", ID_TYPE_NUM); -embed_function("CanvasZ", ID_TYPE_FN_NUM); -add_embedded_arg("c_num", ID_TYPE_NUM); -embed_function("CanvasClip", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -add_embedded_arg("flag", ID_TYPE_NUM); -embed_function("ActiveCanvas", ID_TYPE_FN_NUM); -embed_function("Box", ID_TYPE_SUB); -add_embedded_arg("x1", ID_TYPE_NUM); -add_embedded_arg("y1", ID_TYPE_NUM); -add_embedded_arg("x2", ID_TYPE_NUM); -add_embedded_arg("y2", ID_TYPE_NUM); -embed_function("BoxFill", ID_TYPE_SUB); -add_embedded_arg("x1", ID_TYPE_NUM); -add_embedded_arg("y1", ID_TYPE_NUM); -add_embedded_arg("x2", ID_TYPE_NUM); -add_embedded_arg("y2", ID_TYPE_NUM); -embed_function("Circle", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("radius", ID_TYPE_NUM); -embed_function("CircleFill", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("radius", ID_TYPE_NUM); -embed_function("Ellipse", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("rx", ID_TYPE_NUM); -add_embedded_arg("ry", ID_TYPE_NUM); -embed_function("EllipseFill", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("rx", ID_TYPE_NUM); -add_embedded_arg("ry", ID_TYPE_NUM); -embed_function("FloodFill", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -embed_function("GetPixel", ID_TYPE_FN_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -embed_function("SetColor", ID_TYPE_SUB); -add_embedded_arg("c", ID_TYPE_NUM); -embed_function("Line", ID_TYPE_SUB); -add_embedded_arg("x1", ID_TYPE_NUM); -add_embedded_arg("y1", ID_TYPE_NUM); -add_embedded_arg("x2", ID_TYPE_NUM); -add_embedded_arg("y2", ID_TYPE_NUM); -embed_function("Poly", ID_TYPE_SUB); -add_embedded_arg("n", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_BYREF_NUM); -add_embedded_arg("y", ID_TYPE_BYREF_NUM); -embed_function("PolyFill", ID_TYPE_SUB); -add_embedded_arg("n", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_BYREF_NUM); -add_embedded_arg("y", ID_TYPE_BYREF_NUM); -embed_function("Rect", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -embed_function("RectFill", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -embed_function("RoundRect", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -embed_function("RoundRectFill", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -embed_function("RGB", ID_TYPE_FN_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -add_embedded_arg("g", ID_TYPE_NUM); -add_embedded_arg("b", ID_TYPE_NUM); -embed_function("RGBA", ID_TYPE_FN_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -add_embedded_arg("g", ID_TYPE_NUM); -add_embedded_arg("b", ID_TYPE_NUM); -add_embedded_arg("a", ID_TYPE_NUM); -embed_function("PSet", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -embed_function("LoadImage", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("img$", ID_TYPE_STR); -embed_function("LoadImage_Ex", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("img$", ID_TYPE_STR); -add_embedded_arg("colkey", ID_TYPE_NUM); -embed_function("ImageFromBuffer", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); -embed_function("ImageFromBuffer_Ex", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); -add_embedded_arg("colkey", ID_TYPE_NUM); -embed_function("BufferFromImage", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); -embed_function("ImageExists", ID_TYPE_FN_NUM); -add_embedded_arg("slot", ID_TYPE_NUM); -embed_function("ColorKey", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("c", ID_TYPE_NUM); -embed_function("CopyImage", ID_TYPE_SUB); -add_embedded_arg("src", ID_TYPE_NUM); -add_embedded_arg("dst", ID_TYPE_NUM); -embed_function("DeleteImage", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -embed_function("SetImageAlpha", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("a", ID_TYPE_NUM); -embed_function("ImageAlpha", ID_TYPE_FN_NUM); -add_embedded_arg("slot", ID_TYPE_NUM); -embed_function("GetImageSize", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_BYREF_NUM); -add_embedded_arg("h", ID_TYPE_BYREF_NUM); -embed_function("SetImageBlendMode", ID_TYPE_FN_NUM); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("blend_mode", ID_TYPE_NUM); -embed_function("ImageBlendMode", ID_TYPE_FN_NUM); -add_embedded_arg("slot", ID_TYPE_NUM); -embed_function("SetImageColorMod", ID_TYPE_FN_NUM); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("c", ID_TYPE_NUM); -embed_function("ImageColorMod", ID_TYPE_FN_NUM); -add_embedded_arg("slot", ID_TYPE_NUM); -embed_function("DrawImage", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -embed_function("DrawImage_Blit", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("src_x", ID_TYPE_NUM); -add_embedded_arg("src_y", ID_TYPE_NUM); -add_embedded_arg("src_w", ID_TYPE_NUM); -add_embedded_arg("src_h", ID_TYPE_NUM); -embed_function("DrawImage_Blit_Ex", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -add_embedded_arg("src_x", ID_TYPE_NUM); -add_embedded_arg("src_y", ID_TYPE_NUM); -add_embedded_arg("src_w", ID_TYPE_NUM); -add_embedded_arg("src_h", ID_TYPE_NUM); -embed_function("DrawImage_Rotate", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("angle", ID_TYPE_NUM); -embed_function("DrawImage_Rotate_Ex", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("src_x", ID_TYPE_NUM); -add_embedded_arg("src_y", ID_TYPE_NUM); -add_embedded_arg("src_w", ID_TYPE_NUM); -add_embedded_arg("src_h", ID_TYPE_NUM); -add_embedded_arg("angle", ID_TYPE_NUM); -embed_function("DrawImage_Zoom", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("zx", ID_TYPE_NUM); -add_embedded_arg("zy", ID_TYPE_NUM); -embed_function("DrawImage_Zoom_Ex", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("src_x", ID_TYPE_NUM); -add_embedded_arg("src_y", ID_TYPE_NUM); -add_embedded_arg("src_w", ID_TYPE_NUM); -add_embedded_arg("src_h", ID_TYPE_NUM); -add_embedded_arg("zx", ID_TYPE_NUM); -add_embedded_arg("zy", ID_TYPE_NUM); -embed_function("DrawImage_Rotozoom", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("angle", ID_TYPE_NUM); -add_embedded_arg("zx", ID_TYPE_NUM); -add_embedded_arg("zy", ID_TYPE_NUM); -embed_function("DrawImage_Rotozoom_Ex", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("src_x", ID_TYPE_NUM); -add_embedded_arg("src_y", ID_TYPE_NUM); -add_embedded_arg("src_w", ID_TYPE_NUM); -add_embedded_arg("src_h", ID_TYPE_NUM); -add_embedded_arg("angle", ID_TYPE_NUM); -add_embedded_arg("zx", ID_TYPE_NUM); -add_embedded_arg("zy", ID_TYPE_NUM); -embed_function("DrawImage_Flip", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -add_embedded_arg("v", ID_TYPE_NUM); -embed_function("DrawImage_Flip_Ex", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("src_x", ID_TYPE_NUM); -add_embedded_arg("src_y", ID_TYPE_NUM); -add_embedded_arg("src_w", ID_TYPE_NUM); -add_embedded_arg("src_h", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -add_embedded_arg("v", ID_TYPE_NUM); -embed_function("InKey", ID_TYPE_FN_NUM); -embed_function("Key", ID_TYPE_FN_NUM); -add_embedded_arg("key_code", ID_TYPE_NUM); -embed_function("WaitKey", ID_TYPE_FN_NUM); -embed_function("HideMouse", ID_TYPE_SUB); -embed_function("ShowMouse", ID_TYPE_SUB); -embed_function("MouseIsVisible", ID_TYPE_FN_NUM); -embed_function("GetMouse", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_BYREF_NUM); -add_embedded_arg("y", ID_TYPE_BYREF_NUM); -add_embedded_arg("mb1", ID_TYPE_BYREF_NUM); -add_embedded_arg("mb2", ID_TYPE_BYREF_NUM); -add_embedded_arg("mb3", ID_TYPE_BYREF_NUM); -embed_function("MouseX", ID_TYPE_FN_NUM); -embed_function("MouseY", ID_TYPE_FN_NUM); -embed_function("MouseButton", ID_TYPE_FN_NUM); -add_embedded_arg("mb", ID_TYPE_NUM); -embed_function("GetMouseWheel", ID_TYPE_SUB); -add_embedded_arg("x_axis", ID_TYPE_BYREF_NUM); -add_embedded_arg("y_axis", ID_TYPE_BYREF_NUM); -embed_function("MouseWheelX", ID_TYPE_FN_NUM); -embed_function("MouseWheelY", ID_TYPE_FN_NUM); -embed_function("SoundFromBuffer", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); -add_embedded_arg("buffer_size", ID_TYPE_NUM); -add_embedded_arg("vol", ID_TYPE_NUM); -embed_function("LoadSound", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("snd_file$", ID_TYPE_STR); -embed_function("LoadMusic", ID_TYPE_SUB); -add_embedded_arg("music_file$", ID_TYPE_STR); -embed_function("PlaySound", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("channel", ID_TYPE_NUM); -add_embedded_arg("loops", ID_TYPE_NUM); -embed_function("PlaySoundTimed", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("channel", ID_TYPE_NUM); -add_embedded_arg("loops", ID_TYPE_NUM); -add_embedded_arg("ms", ID_TYPE_NUM); -embed_function("PlayMusic", ID_TYPE_SUB); -add_embedded_arg("mLoops", ID_TYPE_NUM); -embed_function("PauseSound", ID_TYPE_SUB); -add_embedded_arg("channel", ID_TYPE_NUM); -embed_function("ResumeSound", ID_TYPE_SUB); -add_embedded_arg("channel", ID_TYPE_NUM); -embed_function("PauseMusic", ID_TYPE_SUB); -embed_function("ResumeMusic", ID_TYPE_SUB); -embed_function("DeleteSound", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -embed_function("DeleteMusic", ID_TYPE_SUB); -embed_function("FadeMusicIn", ID_TYPE_SUB); -add_embedded_arg("fade_time", ID_TYPE_NUM); -add_embedded_arg("loops", ID_TYPE_NUM); -embed_function("FadeMusicOut", ID_TYPE_SUB); -add_embedded_arg("fade_time", ID_TYPE_NUM); -embed_function("MusicExists", ID_TYPE_FN_NUM); -embed_function("SetMusicVolume", ID_TYPE_SUB); -add_embedded_arg("vol", ID_TYPE_NUM); -embed_function("MusicVolume", ID_TYPE_FN_NUM); -embed_function("SetMusicPosition", ID_TYPE_SUB); -add_embedded_arg("pos", ID_TYPE_NUM); -embed_function("MusicPosition", ID_TYPE_FN_NUM); -embed_function("RewindMusic", ID_TYPE_SUB); -embed_function("SetSoundChannels", ID_TYPE_SUB); -add_embedded_arg("max_channels", ID_TYPE_NUM); -embed_function("NumSoundChannels", ID_TYPE_FN_NUM); -embed_function("SoundIsEnabled", ID_TYPE_FN_NUM); -embed_function("SoundExists", ID_TYPE_FN_NUM); -add_embedded_arg("slot", ID_TYPE_NUM); -embed_function("SetChannelVolume", ID_TYPE_SUB); -add_embedded_arg("channel", ID_TYPE_NUM); -add_embedded_arg("vol", ID_TYPE_NUM); -embed_function("ChannelVolume", ID_TYPE_FN_NUM); -add_embedded_arg("channel", ID_TYPE_NUM); -embed_function("SetSoundVolume", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("vol", ID_TYPE_NUM); -embed_function("SoundVolume", ID_TYPE_FN_NUM); -add_embedded_arg("slot", ID_TYPE_NUM); -embed_function("StopMusic", ID_TYPE_SUB); -embed_function("StopSound", ID_TYPE_SUB); -add_embedded_arg("channel", ID_TYPE_NUM); -embed_function("SetChannelPanning", ID_TYPE_FN_NUM); -add_embedded_arg("channel", ID_TYPE_NUM); -add_embedded_arg("left_value", ID_TYPE_NUM); -add_embedded_arg("right_value", ID_TYPE_NUM); -embed_function("SetChannelDistance", ID_TYPE_FN_NUM); -add_embedded_arg("channel", ID_TYPE_NUM); -add_embedded_arg("dist_value", ID_TYPE_NUM); -embed_function("ChannelIsPlaying", ID_TYPE_FN_NUM); -add_embedded_arg("channel", ID_TYPE_NUM); -embed_function("ChannelIsPaused", ID_TYPE_FN_NUM); -add_embedded_arg("channel", ID_TYPE_NUM); -embed_function("NumJoysticks", ID_TYPE_FN_NUM); -embed_function("NumJoyAxes", ID_TYPE_FN_NUM); -add_embedded_arg("joy_num", ID_TYPE_NUM); -embed_function("NumJoyButtons", ID_TYPE_FN_NUM); -add_embedded_arg("joy_num", ID_TYPE_NUM); -embed_function("NumJoyHats", ID_TYPE_FN_NUM); -add_embedded_arg("joy_num", ID_TYPE_NUM); -embed_function("NumJoyTrackBalls", ID_TYPE_FN_NUM); -add_embedded_arg("joy_num", ID_TYPE_NUM); -embed_function("JoyAxis", ID_TYPE_FN_NUM); -add_embedded_arg("joy_num", ID_TYPE_NUM); -add_embedded_arg("joy_axis", ID_TYPE_NUM); -embed_function("JoyButton", ID_TYPE_FN_NUM); -add_embedded_arg("joy_num", ID_TYPE_NUM); -add_embedded_arg("joy_button", ID_TYPE_NUM); -embed_function("JoyHat", ID_TYPE_FN_NUM); -add_embedded_arg("joy_num", ID_TYPE_NUM); -add_embedded_arg("joy_hat", ID_TYPE_NUM); -embed_function("GetJoyTrackBall", ID_TYPE_SUB); -add_embedded_arg("joy_num", ID_TYPE_NUM); -add_embedded_arg("ball", ID_TYPE_NUM); -add_embedded_arg("dx", ID_TYPE_BYREF_NUM); -add_embedded_arg("dy", ID_TYPE_BYREF_NUM); -embed_function("JoyName$", ID_TYPE_FN_STR); -add_embedded_arg("joy_num", ID_TYPE_NUM); -embed_function("JoystickIsConnected", ID_TYPE_FN_NUM); -add_embedded_arg("joy_num", ID_TYPE_NUM); -embed_function("GetCursor", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_BYREF_NUM); -add_embedded_arg("y", ID_TYPE_BYREF_NUM); -embed_function("PrintS", ID_TYPE_SUB); -add_embedded_arg("txt$", ID_TYPE_STR); -embed_function("InputS$", ID_TYPE_FN_STR); -add_embedded_arg("prompt$", ID_TYPE_STR); -embed_function("ZoneInputS$", ID_TYPE_FN_STR); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -embed_function("Locate", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -embed_function("ReadInput_Start", ID_TYPE_SUB); -embed_function("ReadInput_Stop", ID_TYPE_SUB); -embed_function("ReadInput_Text$", ID_TYPE_FN_STR); -embed_function("ReadInput_SetText", ID_TYPE_SUB); -add_embedded_arg("txt$", ID_TYPE_STR); -embed_function("ReadInput_ToggleBackspace", ID_TYPE_SUB); -add_embedded_arg("flag", ID_TYPE_NUM); -embed_function("LoadFont", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("fnt_file$", ID_TYPE_STR); -add_embedded_arg("size", ID_TYPE_NUM); -embed_function("DeleteFont", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -embed_function("FontIsLoaded", ID_TYPE_FN_NUM); -add_embedded_arg("slot", ID_TYPE_NUM); -embed_function("Font", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -embed_function("SetFontStyle", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("style", ID_TYPE_NUM); -embed_function("DrawText", ID_TYPE_SUB); -add_embedded_arg("txt$", ID_TYPE_STR); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -embed_function("DrawText_Shaded", ID_TYPE_SUB); -add_embedded_arg("txt$", ID_TYPE_STR); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("fg_color", ID_TYPE_NUM); -add_embedded_arg("bg_color", ID_TYPE_NUM); -embed_function("DrawText_Blended", ID_TYPE_SUB); -add_embedded_arg("txt$", ID_TYPE_STR); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -embed_function("RenderText", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("txt$", ID_TYPE_STR); -embed_function("GetTextSize", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("txt$", ID_TYPE_STR); -add_embedded_arg("w", ID_TYPE_BYREF_NUM); -add_embedded_arg("h", ID_TYPE_BYREF_NUM); -embed_function("TouchPressure", ID_TYPE_FN_NUM); -embed_function("GetTouch", ID_TYPE_SUB); -add_embedded_arg("status", ID_TYPE_BYREF_NUM); -add_embedded_arg("x", ID_TYPE_BYREF_NUM); -add_embedded_arg("y", ID_TYPE_BYREF_NUM); -add_embedded_arg("dx", ID_TYPE_BYREF_NUM); -add_embedded_arg("dy", ID_TYPE_BYREF_NUM); -embed_function("GetMultiTouch", ID_TYPE_SUB); -add_embedded_arg("status", ID_TYPE_BYREF_NUM); -add_embedded_arg("x", ID_TYPE_BYREF_NUM); -add_embedded_arg("y", ID_TYPE_BYREF_NUM); -add_embedded_arg("fingers", ID_TYPE_BYREF_NUM); -add_embedded_arg("dist", ID_TYPE_BYREF_NUM); -add_embedded_arg("theta", ID_TYPE_BYREF_NUM); -embed_function("GetTouchFinger", ID_TYPE_SUB); -add_embedded_arg("finger", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_BYREF_NUM); -add_embedded_arg("y", ID_TYPE_BYREF_NUM); -add_embedded_arg("pressure", ID_TYPE_BYREF_NUM); -embed_function("NumFingers", ID_TYPE_FN_NUM); -embed_function("CheckSockets", ID_TYPE_FN_NUM); -add_embedded_arg("timeout_ms", ID_TYPE_NUM); -embed_function("TCP_SocketReady", ID_TYPE_FN_NUM); -add_embedded_arg("socket", ID_TYPE_NUM); -embed_function("UDP_SocketReady", ID_TYPE_FN_NUM); -add_embedded_arg("socket", ID_TYPE_NUM); -embed_function("TCP_SocketOpen", ID_TYPE_FN_NUM); -add_embedded_arg("socket", ID_TYPE_NUM); -add_embedded_arg("host$", ID_TYPE_STR); -add_embedded_arg("port", ID_TYPE_NUM); -embed_function("TCP_SocketClose", ID_TYPE_SUB); -add_embedded_arg("socket", ID_TYPE_NUM); -embed_function("TCP_RemoteHost", ID_TYPE_FN_NUM); -add_embedded_arg("socket", ID_TYPE_NUM); -embed_function("TCP_RemotePort", ID_TYPE_FN_NUM); -add_embedded_arg("socket", ID_TYPE_NUM); -embed_function("TCP_GetData", ID_TYPE_FN_NUM); -add_embedded_arg("socket", ID_TYPE_NUM); -add_embedded_arg("sData$", ID_TYPE_BYREF_STR); -add_embedded_arg("numBytes", ID_TYPE_NUM); -embed_function("TCP_SendData", ID_TYPE_SUB); -add_embedded_arg("socket", ID_TYPE_NUM); -add_embedded_arg("sData$", ID_TYPE_STR); -embed_function("TCP_AcceptSocket", ID_TYPE_FN_NUM); -add_embedded_arg("server", ID_TYPE_NUM); -add_embedded_arg("client", ID_TYPE_NUM); -embed_function("UDP_SocketOpen", ID_TYPE_FN_NUM); -add_embedded_arg("socket", ID_TYPE_NUM); -add_embedded_arg("port", ID_TYPE_NUM); -embed_function("UDP_SocketClose", ID_TYPE_FN_NUM); -add_embedded_arg("socket", ID_TYPE_NUM); -embed_function("UDP_GetData", ID_TYPE_FN_NUM); -add_embedded_arg("socket", ID_TYPE_NUM); -add_embedded_arg("sData$", ID_TYPE_BYREF_STR); -add_embedded_arg("host$", ID_TYPE_BYREF_STR); -add_embedded_arg("port", ID_TYPE_BYREF_NUM); -embed_function("UDP_Length", ID_TYPE_FN_NUM); -embed_function("UDP_MaxLength", ID_TYPE_FN_NUM); -embed_function("UDP_RemoteHost$", ID_TYPE_FN_STR); -add_embedded_arg("socket", ID_TYPE_NUM); -embed_function("UDP_RemotePort", ID_TYPE_FN_NUM); -add_embedded_arg("socket", ID_TYPE_NUM); -embed_function("UDP_SendData", ID_TYPE_SUB); -add_embedded_arg("socket", ID_TYPE_NUM); -add_embedded_arg("sData$", ID_TYPE_STR); -add_embedded_arg("host$", ID_TYPE_STR); -add_embedded_arg("port", ID_TYPE_NUM); -embed_function("LoadVideo", ID_TYPE_SUB); -add_embedded_arg("vid$", ID_TYPE_STR); -embed_function("PlayVideo", ID_TYPE_SUB); -add_embedded_arg("vLoops", ID_TYPE_NUM); -embed_function("PauseVideo", ID_TYPE_SUB); -embed_function("StopVideo", ID_TYPE_SUB); -embed_function("SetVideoPosition", ID_TYPE_SUB); -add_embedded_arg("pos", ID_TYPE_NUM); -embed_function("ResumeVideo", ID_TYPE_SUB); -embed_function("VideoPosition", ID_TYPE_FN_NUM); -embed_function("DeleteVideo", ID_TYPE_SUB); -embed_function("VideoIsPlaying", ID_TYPE_FN_NUM); -embed_function("VideoEnd", ID_TYPE_FN_NUM); -embed_function("GetVideoStats", ID_TYPE_SUB); -add_embedded_arg("vFile$", ID_TYPE_STR); -add_embedded_arg("vLen", ID_TYPE_BYREF_NUM); -add_embedded_arg("vfps", ID_TYPE_BYREF_NUM); -add_embedded_arg("frame_w", ID_TYPE_BYREF_NUM); -add_embedded_arg("frame_h", ID_TYPE_BYREF_NUM); -embed_function("SetVideoDrawRect", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -embed_function("GetVideoDrawRect", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_BYREF_NUM); -add_embedded_arg("y", ID_TYPE_BYREF_NUM); -add_embedded_arg("w", ID_TYPE_BYREF_NUM); -add_embedded_arg("h", ID_TYPE_BYREF_NUM); -embed_function("GetVideoSize", ID_TYPE_SUB); -add_embedded_arg("w", ID_TYPE_BYREF_NUM); -add_embedded_arg("h", ID_TYPE_BYREF_NUM); -embed_function("VideoExists", ID_TYPE_FN_NUM); -embed_function("SetVideoAlpha", ID_TYPE_SUB); -add_embedded_arg("a", ID_TYPE_NUM); -embed_function("System", ID_TYPE_FN_NUM); -add_embedded_arg("cmd$", ID_TYPE_STR); -embed_function("OS$", ID_TYPE_FN_STR); -embed_function("Command$", ID_TYPE_FN_STR); -add_embedded_arg("arg", ID_TYPE_NUM); -embed_function("NumCommands", ID_TYPE_FN_NUM); -embed_function("Env$", ID_TYPE_FN_STR); -add_embedded_arg("v$", ID_TYPE_STR); -embed_function("SetEnv", ID_TYPE_SUB); -add_embedded_arg("var$", ID_TYPE_STR); -add_embedded_arg("value$", ID_TYPE_STR); -add_embedded_arg("overwrite", ID_TYPE_NUM); -embed_function("PrefPath$", ID_TYPE_FN_STR); -add_embedded_arg("org_name$", ID_TYPE_STR); -add_embedded_arg("app_name$", ID_TYPE_STR); -embed_function("Android_GetExternalStoragePath$", ID_TYPE_FN_STR); -embed_function("Android_GetExternalStorageState", ID_TYPE_FN_NUM); -embed_function("Android_GetInternalStoragePath$", ID_TYPE_FN_STR); -embed_function("Android_JNI_Message$", ID_TYPE_FN_STR); -add_embedded_arg("arg$", ID_TYPE_STR); -embed_function("Runtime_Utility_Message$", ID_TYPE_FN_STR); -add_embedded_arg("arg$", ID_TYPE_STR); -embed_function("ClipboardText$", ID_TYPE_FN_STR); -embed_function("SetClipboardText", ID_TYPE_SUB); -add_embedded_arg("txt$", ID_TYPE_STR); -embed_function("HasClipboardText", ID_TYPE_FN_NUM); -embed_function("GetDesktopDisplayMode", ID_TYPE_SUB); -add_embedded_arg("index", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_BYREF_NUM); -add_embedded_arg("h", ID_TYPE_BYREF_NUM); -add_embedded_arg("freq", ID_TYPE_BYREF_NUM); -embed_function("DrawImage_Transform", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -add_embedded_arg("src_x", ID_TYPE_NUM); -add_embedded_arg("src_y", ID_TYPE_NUM); -add_embedded_arg("src_w", ID_TYPE_NUM); -add_embedded_arg("src_h", ID_TYPE_NUM); -add_embedded_arg("angle", ID_TYPE_NUM); -add_embedded_arg("center_x", ID_TYPE_NUM); -add_embedded_arg("center_y", ID_TYPE_NUM); -add_embedded_arg("flip_h", ID_TYPE_NUM); -add_embedded_arg("flip_v", ID_TYPE_NUM); -embed_function("GetPowerInfo", ID_TYPE_SUB); -add_embedded_arg("status", ID_TYPE_BYREF_NUM); -add_embedded_arg("secs", ID_TYPE_BYREF_NUM); -add_embedded_arg("pct", ID_TYPE_BYREF_NUM); -embed_function("SystemRam", ID_TYPE_FN_NUM); -embed_function("SetRenderScaleQuality", ID_TYPE_FN_NUM); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("EvalJS$", ID_TYPE_FN_STR); -add_embedded_arg("js_code$", ID_TYPE_STR); -embed_function("GetRenderScaleQuality", ID_TYPE_FN_NUM); -embed_function("GetGlobalMouse", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_BYREF_NUM); -add_embedded_arg("y", ID_TYPE_BYREF_NUM); -add_embedded_arg("mb1", ID_TYPE_BYREF_NUM); -add_embedded_arg("mb2", ID_TYPE_BYREF_NUM); -add_embedded_arg("mb3", ID_TYPE_BYREF_NUM); -embed_function("GlobalMouseX", ID_TYPE_FN_NUM); -embed_function("GlobalMouseY", ID_TYPE_FN_NUM); -embed_function("GetAccel", ID_TYPE_SUB); -add_embedded_arg("accel_num", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_BYREF_NUM); -add_embedded_arg("y", ID_TYPE_BYREF_NUM); -add_embedded_arg("z", ID_TYPE_BYREF_NUM); -embed_function("AccelName$", ID_TYPE_FN_STR); -add_embedded_arg("accel_num", ID_TYPE_NUM); -embed_function("NumAccels", ID_TYPE_FN_NUM); -embed_function("GetGyro", ID_TYPE_SUB); -add_embedded_arg("gyro_num", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_BYREF_NUM); -add_embedded_arg("y", ID_TYPE_BYREF_NUM); -add_embedded_arg("z", ID_TYPE_BYREF_NUM); -embed_function("GyroName$", ID_TYPE_FN_STR); -add_embedded_arg("gyro_num", ID_TYPE_NUM); -embed_function("NumGyros", ID_TYPE_FN_NUM); -embed_function("JoyRumblePlay", ID_TYPE_SUB); -add_embedded_arg("joy_num", ID_TYPE_NUM); -add_embedded_arg("strength", ID_TYPE_NUM); -add_embedded_arg("duration", ID_TYPE_NUM); -embed_function("JoyRumbleStop", ID_TYPE_SUB); -add_embedded_arg("joy_num", ID_TYPE_NUM); -embed_function("JoystickIsHaptic", ID_TYPE_FN_NUM); -add_embedded_arg("joy_num", ID_TYPE_NUM); -embed_function("WriteByteBuffer", ID_TYPE_FN_NUM); -add_embedded_arg("stream", ID_TYPE_NUM); -add_embedded_arg("buf", ID_TYPE_BYREF_NUM); -add_embedded_arg("buf_size", ID_TYPE_NUM); -embed_function("ReadByteBuffer", ID_TYPE_FN_NUM); -add_embedded_arg("stream", ID_TYPE_NUM); -add_embedded_arg("buf", ID_TYPE_BYREF_NUM); -add_embedded_arg("buf_size", ID_TYPE_NUM); -embed_function("WindowEvent_Resize", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("SetWindowAutoClose", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("exit_on_close", ID_TYPE_NUM); -embed_function("SetWindowResizable", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("flag", ID_TYPE_NUM); -embed_function("SystemReturnStdOut$", ID_TYPE_FN_STR); -add_embedded_arg("cmd$", ID_TYPE_STR); -embed_function("WindowMode", ID_TYPE_FN_NUM); -add_embedded_arg("visible", ID_TYPE_NUM); -add_embedded_arg("fullscreen", ID_TYPE_NUM); -add_embedded_arg("resizable", ID_TYPE_NUM); -add_embedded_arg("borderless", ID_TYPE_NUM); -add_embedded_arg("highDPI", ID_TYPE_NUM); -embed_function("WindowFlags", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("RestoreWindow", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("UpdateAllWindows", ID_TYPE_SUB); -embed_function("QueryAudioSpec", ID_TYPE_FN_NUM); -add_embedded_arg("freq", ID_TYPE_BYREF_NUM); -add_embedded_arg("format", ID_TYPE_BYREF_NUM); -add_embedded_arg("channels", ID_TYPE_BYREF_NUM); -embed_function("MusicIsPlaying", ID_TYPE_FN_NUM); -embed_function("DrawGeometry", ID_TYPE_FN_NUM); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("num_vertices", ID_TYPE_NUM); -add_embedded_arg("vertices", ID_TYPE_BYREF_NUM); -add_embedded_arg("num_indices", ID_TYPE_NUM); -add_embedded_arg("Indices", ID_TYPE_BYREF_NUM); -embed_function("Size", ID_TYPE_FN_NUM); -add_embedded_arg("s$", ID_TYPE_STR); -embed_function("BufferFromString", ID_TYPE_FN_NUM); -add_embedded_arg("s$", ID_TYPE_STR); -add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); -embed_function("StringFromBuffer$", ID_TYPE_FN_STR); -add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); -add_embedded_arg("buffer_size", ID_TYPE_NUM); -embed_function("GrabInput", ID_TYPE_SUB); -add_embedded_arg("flag", ID_TYPE_NUM); -embed_function("GrabbedWindow", ID_TYPE_FN_NUM); -embed_function("WarpMouse", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -embed_function("WarpMouseGlobal", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -embed_function("SetMouseZone", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -embed_function("ClearMouseZone", ID_TYPE_SUB); -embed_function("SetWindowAlwaysOnTop", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("flag", ID_TYPE_NUM); -embed_function("SetMouseRelative", ID_TYPE_SUB); -add_embedded_arg("flag", ID_TYPE_NUM); -embed_function("SetWindowVSync", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("flag", ID_TYPE_NUM); -embed_function("OpenURL", ID_TYPE_FN_NUM); -add_embedded_arg("url$", ID_TYPE_STR); -embed_function("APIVersion$", ID_TYPE_FN_STR); -embed_function("FlashWindow", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("MessageBox", ID_TYPE_FN_NUM); -add_embedded_arg("title$", ID_TYPE_STR); -add_embedded_arg("msg$", ID_TYPE_STR); -embed_function("NumberArrayCopy", ID_TYPE_SUB); -add_embedded_arg("src", ID_TYPE_BYREF_NUM); -add_embedded_arg("dst", ID_TYPE_BYREF_NUM); -embed_function("StringArrayCopy", ID_TYPE_SUB); -add_embedded_arg("src$", ID_TYPE_BYREF_STR); -add_embedded_arg("dst$", ID_TYPE_BYREF_STR); -embed_function("ArrayCopy", ID_TYPE_SUB); -add_embedded_arg("src", ID_TYPE_BYREF_NUM); -add_embedded_arg("dst", ID_TYPE_BYREF_NUM); -embed_function("NumberArrayFill", ID_TYPE_SUB); -add_embedded_arg("src", ID_TYPE_BYREF_NUM); -add_embedded_arg("fdata", ID_TYPE_NUM); -embed_function("StringArrayFill", ID_TYPE_SUB); -add_embedded_arg("src$", ID_TYPE_BYREF_STR); -add_embedded_arg("fdata$", ID_TYPE_STR); -embed_function("ArrayFill", ID_TYPE_SUB); -add_embedded_arg("src", ID_TYPE_BYREF_NUM); -add_embedded_arg("fdata", ID_TYPE_NUM); -embed_function("Runtime$", ID_TYPE_FN_STR); -embed_function("DimMatrix", ID_TYPE_SUB); -add_embedded_arg("m", ID_TYPE_NUM); -add_embedded_arg("m_rows", ID_TYPE_NUM); -add_embedded_arg("m_cols", ID_TYPE_NUM); -add_embedded_arg("preserve_flag", ID_TYPE_NUM); -embed_function("AddMatrix", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -add_embedded_arg("mC", ID_TYPE_NUM); -embed_function("AugmentMatrix", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -add_embedded_arg("mC", ID_TYPE_NUM); -embed_function("CopyMatrix", ID_TYPE_SUB); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -embed_function("InsertMatrixColumns", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("c", ID_TYPE_NUM); -add_embedded_arg("num_cols", ID_TYPE_NUM); -embed_function("InsertMatrixRows", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -add_embedded_arg("num_rows", ID_TYPE_NUM); -embed_function("MultiplyMatrix", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -add_embedded_arg("mC", ID_TYPE_NUM); -embed_function("CubeMatrix", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -embed_function("DeleteMatrixColumns", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("c", ID_TYPE_NUM); -add_embedded_arg("num_cols", ID_TYPE_NUM); -embed_function("DeleteMatrixRows", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -add_embedded_arg("num_rows", ID_TYPE_NUM); -embed_function("ClearMatrix", ID_TYPE_SUB); -add_embedded_arg("mA", ID_TYPE_NUM); -embed_function("ClearMatrixColumns", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("c", ID_TYPE_NUM); -add_embedded_arg("num_cols", ID_TYPE_NUM); -embed_function("ClearMatrixRows", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -add_embedded_arg("num_rows", ID_TYPE_NUM); -embed_function("FillMatrix", ID_TYPE_SUB); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("v", ID_TYPE_NUM); -embed_function("FillMatrixColumns", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("c", ID_TYPE_NUM); -add_embedded_arg("num_cols", ID_TYPE_NUM); -add_embedded_arg("v", ID_TYPE_NUM); -embed_function("FillMatrixRows", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -add_embedded_arg("num_rows", ID_TYPE_NUM); -add_embedded_arg("v", ID_TYPE_NUM); -embed_function("CopyMatrixColumns", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -add_embedded_arg("c", ID_TYPE_NUM); -add_embedded_arg("num_cols", ID_TYPE_NUM); -embed_function("CopyMatrixRows", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -add_embedded_arg("num_rows", ID_TYPE_NUM); -embed_function("IdentityMatrix", ID_TYPE_SUB); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("SolveMatrix", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -add_embedded_arg("mC", ID_TYPE_NUM); -embed_function("IsEqualMatrix", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -add_embedded_arg("tolerance", ID_TYPE_NUM); -embed_function("Determinant", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -embed_function("AdjointMatrix", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -embed_function("InvertMatrix", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -embed_function("MatrixFromBuffer", ID_TYPE_SUB); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -add_embedded_arg("c", ID_TYPE_NUM); -add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); -embed_function("GetMatrix", ID_TYPE_SUB); -add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -embed_function("RandomizeMatrix", ID_TYPE_SUB); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("vmin", ID_TYPE_NUM); -add_embedded_arg("vmax", ID_TYPE_NUM); -embed_function("MatrixValue", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -add_embedded_arg("c", ID_TYPE_NUM); -embed_function("SetMatrixValue", ID_TYPE_SUB); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -add_embedded_arg("c", ID_TYPE_NUM); -add_embedded_arg("v", ID_TYPE_NUM); -embed_function("ScalarMatrix", ID_TYPE_SUB); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -add_embedded_arg("s_value", ID_TYPE_NUM); -embed_function("ScalarMatrixColumns", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -add_embedded_arg("c", ID_TYPE_NUM); -add_embedded_arg("num_cols", ID_TYPE_NUM); -add_embedded_arg("s_value", ID_TYPE_NUM); -embed_function("ScalarMatrixRows", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -add_embedded_arg("num_rows", ID_TYPE_NUM); -add_embedded_arg("s_value", ID_TYPE_NUM); -embed_function("SquareMatrix", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -embed_function("SubMatrix", ID_TYPE_SUB); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -add_embedded_arg("c", ID_TYPE_NUM); -embed_function("SubtractMatrix", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -add_embedded_arg("mC", ID_TYPE_NUM); -embed_function("SwapMatrix", ID_TYPE_SUB); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -embed_function("SwapMatrixColumn", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("C1", ID_TYPE_NUM); -add_embedded_arg("C2", ID_TYPE_NUM); -embed_function("SwapMatrixRow", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("R1", ID_TYPE_NUM); -add_embedded_arg("R2", ID_TYPE_NUM); -embed_function("TransposeMatrix", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -embed_function("UnAugmentMatrix", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -add_embedded_arg("mC", ID_TYPE_NUM); -embed_function("ZeroMatrix", ID_TYPE_SUB); -add_embedded_arg("mA", ID_TYPE_NUM); -embed_function("GetMatrixSize", ID_TYPE_SUB); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("r", ID_TYPE_BYREF_NUM); -add_embedded_arg("c", ID_TYPE_BYREF_NUM); -embed_function("SetMatrixProcess", ID_TYPE_FN_NUM); -add_embedded_arg("p_num", ID_TYPE_NUM); -embed_function("ProcessOpen", ID_TYPE_FN_NUM); -add_embedded_arg("p_num", ID_TYPE_NUM); -embed_function("SetProcessErrorMode", ID_TYPE_SUB); -add_embedded_arg("p_num", ID_TYPE_NUM); -add_embedded_arg("error_mode", ID_TYPE_NUM); -embed_function("ProcessError", ID_TYPE_FN_NUM); -add_embedded_arg("p_num", ID_TYPE_NUM); -embed_function("ProcessWait", ID_TYPE_SUB); -add_embedded_arg("p_num", ID_TYPE_NUM); -embed_function("ProcessWaitAll", ID_TYPE_SUB); -embed_function("ProcessContinue", ID_TYPE_SUB); -add_embedded_arg("p_num", ID_TYPE_NUM); -embed_function("ProcessStop", ID_TYPE_SUB); -add_embedded_arg("p_num", ID_TYPE_NUM); -embed_function("ProcessClear", ID_TYPE_SUB); -add_embedded_arg("p_num", ID_TYPE_NUM); -embed_function("ProcessClose", ID_TYPE_FN_NUM); -add_embedded_arg("p_num", ID_TYPE_NUM); -embed_function("ProcessErrorMode", ID_TYPE_FN_NUM); -add_embedded_arg("p_num", ID_TYPE_NUM); -embed_function("ProcessSleep", ID_TYPE_SUB); -add_embedded_arg("p_num", ID_TYPE_NUM); -add_embedded_arg("msec", ID_TYPE_NUM); -embed_function("ProcessExists", ID_TYPE_FN_NUM); -add_embedded_arg("p_num", ID_TYPE_NUM); -embed_function("ProcessStopAll", ID_TYPE_SUB); -embed_function("ProcessContinueAll", ID_TYPE_SUB); -embed_function("ProcessQueueSize", ID_TYPE_FN_NUM); -add_embedded_arg("p_num", ID_TYPE_NUM); -embed_function("NumCPUs", ID_TYPE_FN_NUM); -embed_function("GetProjectionGeometry", ID_TYPE_SUB); -add_embedded_arg("cam_dist", ID_TYPE_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("f_vertex_count", ID_TYPE_NUM); -add_embedded_arg("columns", ID_TYPE_BYREF_NUM); -add_embedded_arg("uv", ID_TYPE_BYREF_NUM); -add_embedded_arg("graph_offset_x", ID_TYPE_NUM); -add_embedded_arg("graph_offset_y", ID_TYPE_NUM); -add_embedded_arg("v_color", ID_TYPE_NUM); -add_embedded_arg("vertex_count", ID_TYPE_BYREF_NUM); -add_embedded_arg("vertex2D", ID_TYPE_BYREF_NUM); -add_embedded_arg("index_count", ID_TYPE_BYREF_NUM); -add_embedded_arg("index", ID_TYPE_BYREF_NUM); -add_embedded_arg("clip_dist", ID_TYPE_BYREF_NUM); -add_embedded_arg("min_x", ID_TYPE_BYREF_NUM); -add_embedded_arg("min_y", ID_TYPE_BYREF_NUM); -add_embedded_arg("max_x", ID_TYPE_BYREF_NUM); -add_embedded_arg("max_y", ID_TYPE_BYREF_NUM); -embed_function("CalculateFaceZ", ID_TYPE_FN_NUM); -add_embedded_arg("cam_dist", ID_TYPE_NUM); -add_embedded_arg("graph_offset_x", ID_TYPE_NUM); -add_embedded_arg("graph_offset_y", ID_TYPE_NUM); -add_embedded_arg("view_w", ID_TYPE_NUM); -add_embedded_arg("view_h", ID_TYPE_NUM); -add_embedded_arg("view_depth", ID_TYPE_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("f_vertex_count", ID_TYPE_NUM); -add_embedded_arg("columns", ID_TYPE_BYREF_NUM); -add_embedded_arg("face_min_z", ID_TYPE_BYREF_NUM); -add_embedded_arg("face_max_z", ID_TYPE_BYREF_NUM); -add_embedded_arg("z_avg", ID_TYPE_BYREF_NUM); -embed_function("SetChannelSpacePosition", ID_TYPE_FN_NUM); -add_embedded_arg("channel", ID_TYPE_NUM); -add_embedded_arg("angle", ID_TYPE_NUM); -add_embedded_arg("distance", ID_TYPE_NUM); -embed_function("SaveBMP", ID_TYPE_FN_NUM); -add_embedded_arg("img", ID_TYPE_NUM); -add_embedded_arg("file$", ID_TYPE_STR); -embed_function("SavePNG", ID_TYPE_FN_NUM); -add_embedded_arg("img", ID_TYPE_NUM); -add_embedded_arg("file$", ID_TYPE_STR); -embed_function("SaveJPG", ID_TYPE_FN_NUM); -add_embedded_arg("img", ID_TYPE_NUM); -add_embedded_arg("file$", ID_TYPE_STR); embed_function("GetLineIntersection", ID_TYPE_FN_NUM); add_embedded_arg("p0_x", ID_TYPE_NUM); add_embedded_arg("p0_y", ID_TYPE_NUM); @@ -1395,6 +180,1023 @@ add_embedded_arg("plane_point_1", ID_TYPE_BYREF_NUM); add_embedded_arg("plane_point_2", ID_TYPE_BYREF_NUM); add_embedded_arg("plane_point_3", ID_TYPE_BYREF_NUM); add_embedded_arg("intersection", ID_TYPE_BYREF_NUM); +embed_function("Asc", ID_TYPE_FN_NUM); +add_embedded_arg("c$", ID_TYPE_STR); +embed_function("Chr$", ID_TYPE_FN_STR); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("Insert$", ID_TYPE_FN_STR); +add_embedded_arg("src$", ID_TYPE_STR); +add_embedded_arg("tgt$", ID_TYPE_STR); +add_embedded_arg("pos", ID_TYPE_NUM); +embed_function("InStr", ID_TYPE_FN_NUM); +add_embedded_arg("src$", ID_TYPE_STR); +add_embedded_arg("substr$", ID_TYPE_STR); +embed_function("Lcase$", ID_TYPE_FN_STR); +add_embedded_arg("src$", ID_TYPE_STR); +embed_function("Left$", ID_TYPE_FN_STR); +add_embedded_arg("src$", ID_TYPE_STR); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("Length", ID_TYPE_FN_NUM); +add_embedded_arg("src$", ID_TYPE_STR); +embed_function("Len", ID_TYPE_FN_NUM); +add_embedded_arg("src$", ID_TYPE_STR); +embed_function("Ltrim$", ID_TYPE_FN_STR); +add_embedded_arg("src$", ID_TYPE_STR); +embed_function("Mid$", ID_TYPE_FN_STR); +add_embedded_arg("src$", ID_TYPE_STR); +add_embedded_arg("start", ID_TYPE_NUM); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("ReplaceSubstr$", ID_TYPE_FN_STR); +add_embedded_arg("src$", ID_TYPE_STR); +add_embedded_arg("rpc$", ID_TYPE_STR); +add_embedded_arg("pos", ID_TYPE_NUM); +embed_function("Replace$", ID_TYPE_FN_STR); +add_embedded_arg("src$", ID_TYPE_STR); +add_embedded_arg("tgt$", ID_TYPE_STR); +add_embedded_arg("rpc$", ID_TYPE_STR); +embed_function("Reverse$", ID_TYPE_FN_STR); +add_embedded_arg("src$", ID_TYPE_STR); +embed_function("Right$", ID_TYPE_FN_STR); +add_embedded_arg("src$", ID_TYPE_STR); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("Rtrim$", ID_TYPE_FN_STR); +add_embedded_arg("src$", ID_TYPE_STR); +embed_function("StringFill$", ID_TYPE_FN_STR); +add_embedded_arg("src$", ID_TYPE_STR); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("Str$", ID_TYPE_FN_STR); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("Str_F$", ID_TYPE_FN_STR); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("Str_S$", ID_TYPE_FN_STR); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("Tally", ID_TYPE_FN_NUM); +add_embedded_arg("src$", ID_TYPE_STR); +add_embedded_arg("substr$", ID_TYPE_STR); +embed_function("Trim$", ID_TYPE_FN_STR); +add_embedded_arg("src$", ID_TYPE_STR); +embed_function("Ucase$", ID_TYPE_FN_STR); +add_embedded_arg("src$", ID_TYPE_STR); +embed_function("Val", ID_TYPE_FN_NUM); +add_embedded_arg("n$", ID_TYPE_STR); +embed_function("Size", ID_TYPE_FN_NUM); +add_embedded_arg("s$", ID_TYPE_STR); +embed_function("BufferFromString", ID_TYPE_FN_NUM); +add_embedded_arg("s$", ID_TYPE_STR); +add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); +embed_function("StringFromBuffer$", ID_TYPE_FN_STR); +add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); +add_embedded_arg("buffer_size", ID_TYPE_NUM); +embed_function("CreateStack_N", ID_TYPE_FN_NUM); +embed_function("CreateStack_S", ID_TYPE_FN_NUM); +embed_function("ClearStack_N", ID_TYPE_SUB); +add_embedded_arg("num_stack", ID_TYPE_NUM); +embed_function("ClearStack_S", ID_TYPE_SUB); +add_embedded_arg("str_stack", ID_TYPE_NUM); +embed_function("DeleteStack_N", ID_TYPE_SUB); +add_embedded_arg("num_stack", ID_TYPE_NUM); +embed_function("DeleteStack_S", ID_TYPE_SUB); +add_embedded_arg("str_stack", ID_TYPE_NUM); +embed_function("Push_N", ID_TYPE_SUB); +add_embedded_arg("num_stack", ID_TYPE_NUM); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("Pop_N", ID_TYPE_FN_NUM); +add_embedded_arg("num_stack", ID_TYPE_NUM); +embed_function("Push_S", ID_TYPE_SUB); +add_embedded_arg("str_stack", ID_TYPE_NUM); +add_embedded_arg("s$", ID_TYPE_STR); +embed_function("Pop_S$", ID_TYPE_FN_STR); +add_embedded_arg("str_stack", ID_TYPE_NUM); +embed_function("Stack_Size_N", ID_TYPE_FN_NUM); +add_embedded_arg("num_stack", ID_TYPE_NUM); +embed_function("Stack_Size_S", ID_TYPE_FN_NUM); +add_embedded_arg("str_stack", ID_TYPE_NUM); +embed_function("OpenFile", ID_TYPE_FN_NUM); +add_embedded_arg("fileName$", ID_TYPE_STR); +add_embedded_arg("mode", ID_TYPE_NUM); +embed_function("CloseFile", ID_TYPE_SUB); +add_embedded_arg("stream", ID_TYPE_NUM); +embed_function("ReadByte", ID_TYPE_FN_NUM); +add_embedded_arg("stream", ID_TYPE_NUM); +embed_function("WriteByte", ID_TYPE_SUB); +add_embedded_arg("stream", ID_TYPE_NUM); +add_embedded_arg("byte", ID_TYPE_NUM); +embed_function("ReadLine$", ID_TYPE_FN_STR); +add_embedded_arg("stream", ID_TYPE_NUM); +embed_function("Write", ID_TYPE_SUB); +add_embedded_arg("stream", ID_TYPE_NUM); +add_embedded_arg("txt$", ID_TYPE_STR); +embed_function("WriteLine", ID_TYPE_SUB); +add_embedded_arg("stream", ID_TYPE_NUM); +add_embedded_arg("txt$", ID_TYPE_STR); +embed_function("CopyFile", ID_TYPE_SUB); +add_embedded_arg("src$", ID_TYPE_STR); +add_embedded_arg("dst$", ID_TYPE_STR); +embed_function("RemoveFile", ID_TYPE_FN_NUM); +add_embedded_arg("fileName$", ID_TYPE_STR); +embed_function("FileExists", ID_TYPE_FN_NUM); +add_embedded_arg("fileName$", ID_TYPE_STR); +embed_function("MoveFile", ID_TYPE_FN_NUM); +add_embedded_arg("src$", ID_TYPE_STR); +add_embedded_arg("dst$", ID_TYPE_STR); +embed_function("RenameFile", ID_TYPE_FN_NUM); +add_embedded_arg("src$", ID_TYPE_STR); +add_embedded_arg("dst$", ID_TYPE_STR); +embed_function("FileLength", ID_TYPE_FN_NUM); +add_embedded_arg("fileName$", ID_TYPE_STR); +embed_function("Tell", ID_TYPE_FN_NUM); +add_embedded_arg("stream", ID_TYPE_NUM); +embed_function("Seek", ID_TYPE_FN_NUM); +add_embedded_arg("stream", ID_TYPE_NUM); +add_embedded_arg("pos", ID_TYPE_NUM); +embed_function("EOF", ID_TYPE_FN_NUM); +add_embedded_arg("stream", ID_TYPE_NUM); +embed_function("WriteByteBuffer", ID_TYPE_FN_NUM); +add_embedded_arg("stream", ID_TYPE_NUM); +add_embedded_arg("buf", ID_TYPE_BYREF_NUM); +add_embedded_arg("buf_size", ID_TYPE_NUM); +embed_function("ReadByteBuffer", ID_TYPE_FN_NUM); +add_embedded_arg("stream", ID_TYPE_NUM); +add_embedded_arg("buf", ID_TYPE_BYREF_NUM); +add_embedded_arg("buf_size", ID_TYPE_NUM); +embed_function("ChangeDir", ID_TYPE_SUB); +add_embedded_arg("p$", ID_TYPE_STR); +embed_function("DirExists", ID_TYPE_FN_NUM); +add_embedded_arg("p$", ID_TYPE_STR); +embed_function("DirFirst$", ID_TYPE_FN_STR); +embed_function("Dir$", ID_TYPE_FN_STR); +embed_function("DirNext$", ID_TYPE_FN_STR); +embed_function("MakeDir", ID_TYPE_FN_NUM); +add_embedded_arg("p$", ID_TYPE_STR); +embed_function("RemoveDir", ID_TYPE_FN_NUM); +add_embedded_arg("p$", ID_TYPE_STR); +embed_function("Date$", ID_TYPE_FN_STR); +embed_function("Easter$", ID_TYPE_FN_STR); +add_embedded_arg("year", ID_TYPE_NUM); +embed_function("Ticks", ID_TYPE_FN_NUM); +embed_function("Time$", ID_TYPE_FN_STR); +embed_function("Timer", ID_TYPE_FN_NUM); +embed_function("Wait", ID_TYPE_SUB); +add_embedded_arg("m_sec", ID_TYPE_NUM); +embed_function("OpenWindow", ID_TYPE_FN_NUM); +add_embedded_arg("title$", ID_TYPE_STR); +add_embedded_arg("w", ID_TYPE_NUM); +add_embedded_arg("h", ID_TYPE_NUM); +add_embedded_arg("fullscreen", ID_TYPE_NUM); +add_embedded_arg("vsync", ID_TYPE_NUM); +embed_function("OpenWindowEx", ID_TYPE_FN_NUM); +add_embedded_arg("title$", ID_TYPE_STR); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("w", ID_TYPE_NUM); +add_embedded_arg("h", ID_TYPE_NUM); +add_embedded_arg("mode", ID_TYPE_NUM); +add_embedded_arg("aa", ID_TYPE_NUM); +add_embedded_arg("stencil_buffer", ID_TYPE_NUM); +add_embedded_arg("vsync", ID_TYPE_NUM); +embed_function("CloseWindow", ID_TYPE_SUB); +embed_function("RaiseWindow", ID_TYPE_SUB); +embed_function("Update", ID_TYPE_SUB); +embed_function("Cls", ID_TYPE_SUB); +embed_function("SetClearColor", ID_TYPE_SUB); +add_embedded_arg("c", ID_TYPE_NUM); +embed_function("ShowWindow", ID_TYPE_SUB); +embed_function("HideWindow", ID_TYPE_SUB); +embed_function("SetWindowTitle", ID_TYPE_SUB); +add_embedded_arg("title$", ID_TYPE_STR); +embed_function("WindowTitle$", ID_TYPE_FN_STR); +embed_function("SetWindowPosition", ID_TYPE_SUB); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +embed_function("GetWindowPosition", ID_TYPE_SUB); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +embed_function("SetWindowSize", ID_TYPE_SUB); +add_embedded_arg("w", ID_TYPE_NUM); +add_embedded_arg("h", ID_TYPE_NUM); +embed_function("GetWindowSize", ID_TYPE_SUB); +add_embedded_arg("w", ID_TYPE_BYREF_NUM); +add_embedded_arg("h", ID_TYPE_BYREF_NUM); +embed_function("SetWindowMinSize", ID_TYPE_SUB); +add_embedded_arg("w", ID_TYPE_NUM); +add_embedded_arg("h", ID_TYPE_NUM); +embed_function("GetWindowMinSize", ID_TYPE_SUB); +add_embedded_arg("w", ID_TYPE_BYREF_NUM); +add_embedded_arg("h", ID_TYPE_BYREF_NUM); +embed_function("SetWindowMaxSize", ID_TYPE_SUB); +add_embedded_arg("w", ID_TYPE_NUM); +add_embedded_arg("h", ID_TYPE_NUM); +embed_function("GetWindowMaxSize", ID_TYPE_SUB); +add_embedded_arg("w", ID_TYPE_BYREF_NUM); +add_embedded_arg("h", ID_TYPE_BYREF_NUM); +embed_function("WindowIsFullscreen", ID_TYPE_FN_NUM); +embed_function("WindowIsVisible", ID_TYPE_FN_NUM); +embed_function("WindowIsBordered", ID_TYPE_FN_NUM); +embed_function("WindowIsResizable", ID_TYPE_FN_NUM); +embed_function("WindowIsMinimized", ID_TYPE_FN_NUM); +embed_function("WindowIsMaximized", ID_TYPE_FN_NUM); +embed_function("WindowHasInputFocus", ID_TYPE_FN_NUM); +embed_function("WindowHasMouseFocus", ID_TYPE_FN_NUM); +embed_function("SetWindowFullscreen", ID_TYPE_SUB); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("MaximizeWindow", ID_TYPE_SUB); +embed_function("MinimizeWindow", ID_TYPE_SUB); +embed_function("SetWindowBordered", ID_TYPE_SUB); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("WindowClip", ID_TYPE_FN_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("w", ID_TYPE_NUM); +add_embedded_arg("h", ID_TYPE_NUM); +embed_function("WindowExists", ID_TYPE_FN_NUM); +embed_function("WindowEvent_Close", ID_TYPE_FN_NUM); +embed_function("WindowEvent_Maximize", ID_TYPE_FN_NUM); +embed_function("WindowEvent_Minimize", ID_TYPE_FN_NUM); +embed_function("FPS", ID_TYPE_FN_NUM); +embed_function("SetWindowIcon", ID_TYPE_SUB); +add_embedded_arg("slot", ID_TYPE_NUM); +embed_function("WindowEvent_Resize", ID_TYPE_FN_NUM); +embed_function("SetWindowAutoClose", ID_TYPE_SUB); +add_embedded_arg("exit_on_close", ID_TYPE_NUM); +embed_function("SetWindowResizable", ID_TYPE_SUB); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("WindowMode", ID_TYPE_FN_NUM); +add_embedded_arg("visible", ID_TYPE_NUM); +add_embedded_arg("fullscreen", ID_TYPE_NUM); +add_embedded_arg("resizable", ID_TYPE_NUM); +add_embedded_arg("borderless", ID_TYPE_NUM); +add_embedded_arg("highDPI", ID_TYPE_NUM); +embed_function("getWindowMode", ID_TYPE_FN_NUM); +embed_function("RestoreWindow", ID_TYPE_SUB); +embed_function("GrabInput", ID_TYPE_SUB); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("SetWindowAlwaysOnTop", ID_TYPE_SUB); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("SetMouseRelative", ID_TYPE_SUB); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("SetWindowVSync", ID_TYPE_SUB); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("FlashWindow", ID_TYPE_FN_NUM); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("WindowIsGrabbed", ID_TYPE_FN_NUM); +embed_function("OpenCanvas", ID_TYPE_FN_NUM); +add_embedded_arg("w", ID_TYPE_NUM); +add_embedded_arg("h", ID_TYPE_NUM); +add_embedded_arg("viewport_x", ID_TYPE_NUM); +add_embedded_arg("viewport_y", ID_TYPE_NUM); +add_embedded_arg("viewport_w", ID_TYPE_NUM); +add_embedded_arg("viewport_h", ID_TYPE_NUM); +add_embedded_arg("mode", ID_TYPE_NUM); +embed_function("CloseCanvas", ID_TYPE_SUB); +add_embedded_arg("c_num", ID_TYPE_NUM); +embed_function("SetCanvas3D", ID_TYPE_SUB); +add_embedded_arg("c_num", ID_TYPE_NUM); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("SetCanvasVisible", ID_TYPE_SUB); +add_embedded_arg("c_num", ID_TYPE_NUM); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("CanvasIsVisible", ID_TYPE_FN_NUM); +add_embedded_arg("c_num", ID_TYPE_NUM); +embed_function("SetCanvasViewport", ID_TYPE_SUB); +add_embedded_arg("cnum", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("w", ID_TYPE_NUM); +add_embedded_arg("h", ID_TYPE_NUM); +embed_function("GetCanvasViewport", ID_TYPE_SUB); +add_embedded_arg("c_num", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("w", ID_TYPE_BYREF_NUM); +add_embedded_arg("h", ID_TYPE_BYREF_NUM); +embed_function("Canvas", ID_TYPE_SUB); +add_embedded_arg("c_num", ID_TYPE_NUM); +embed_function("SetCanvasOffset", ID_TYPE_SUB); +add_embedded_arg("c_num", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +embed_function("GetCanvasOffset", ID_TYPE_SUB); +add_embedded_arg("c_num", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +embed_function("GetCanvasSize", ID_TYPE_SUB); +add_embedded_arg("c_num", ID_TYPE_NUM); +add_embedded_arg("w", ID_TYPE_BYREF_NUM); +add_embedded_arg("h", ID_TYPE_BYREF_NUM); +embed_function("ClearCanvas", ID_TYPE_SUB); +embed_function("SetCanvasAlpha", ID_TYPE_SUB); +add_embedded_arg("c_num", ID_TYPE_NUM); +add_embedded_arg("a", ID_TYPE_NUM); +embed_function("GetCanvasAlpha", ID_TYPE_FN_NUM); +add_embedded_arg("c_num", ID_TYPE_NUM); +embed_function("SetCanvasColorMod", ID_TYPE_SUB); +add_embedded_arg("c_num", ID_TYPE_NUM); +add_embedded_arg("c", ID_TYPE_NUM); +embed_function("GetCanvasColorMod", ID_TYPE_FN_NUM); +add_embedded_arg("c_num", ID_TYPE_NUM); +embed_function("CloneCanvas", ID_TYPE_SUB); +add_embedded_arg("src", ID_TYPE_NUM); +add_embedded_arg("dst", ID_TYPE_NUM); +embed_function("SetCanvasZ", ID_TYPE_SUB); +add_embedded_arg("c_num", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("GetCanvasZ", ID_TYPE_FN_NUM); +add_embedded_arg("c_num", ID_TYPE_NUM); +embed_function("CanvasClip", ID_TYPE_FN_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("w", ID_TYPE_NUM); +add_embedded_arg("h", ID_TYPE_NUM); +embed_function("ActiveCanvas", ID_TYPE_FN_NUM); +embed_function("Circle", ID_TYPE_SUB); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("radius", ID_TYPE_NUM); +embed_function("CircleFill", ID_TYPE_SUB); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("radius", ID_TYPE_NUM); +embed_function("Ellipse", ID_TYPE_SUB); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("rx", ID_TYPE_NUM); +add_embedded_arg("ry", ID_TYPE_NUM); +embed_function("EllipseFill", ID_TYPE_SUB); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("rx", ID_TYPE_NUM); +add_embedded_arg("ry", ID_TYPE_NUM); +embed_function("FloodFill", ID_TYPE_SUB); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +embed_function("GetPixel", ID_TYPE_FN_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +embed_function("SetColor", ID_TYPE_SUB); +add_embedded_arg("c", ID_TYPE_NUM); +embed_function("Line", ID_TYPE_SUB); +add_embedded_arg("x1", ID_TYPE_NUM); +add_embedded_arg("y1", ID_TYPE_NUM); +add_embedded_arg("x2", ID_TYPE_NUM); +add_embedded_arg("y2", ID_TYPE_NUM); +embed_function("Poly", ID_TYPE_SUB); +add_embedded_arg("n", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +embed_function("Rect", ID_TYPE_SUB); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("w", ID_TYPE_NUM); +add_embedded_arg("h", ID_TYPE_NUM); +embed_function("RectFill", ID_TYPE_SUB); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("w", ID_TYPE_NUM); +add_embedded_arg("h", ID_TYPE_NUM); +embed_function("RGB", ID_TYPE_FN_NUM); +add_embedded_arg("r", ID_TYPE_NUM); +add_embedded_arg("g", ID_TYPE_NUM); +add_embedded_arg("b", ID_TYPE_NUM); +embed_function("RGBA", ID_TYPE_FN_NUM); +add_embedded_arg("r", ID_TYPE_NUM); +add_embedded_arg("g", ID_TYPE_NUM); +add_embedded_arg("b", ID_TYPE_NUM); +add_embedded_arg("a", ID_TYPE_NUM); +embed_function("Pset", ID_TYPE_SUB); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +embed_function("LoadImage", ID_TYPE_FN_NUM); +add_embedded_arg("img$", ID_TYPE_STR); +embed_function("LoadImageEx", ID_TYPE_FN_NUM); +add_embedded_arg("img$", ID_TYPE_STR); +add_embedded_arg("colkey", ID_TYPE_NUM); +embed_function("createImage", ID_TYPE_FN_NUM); +add_embedded_arg("w", ID_TYPE_NUM); +add_embedded_arg("h", ID_TYPE_NUM); +add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); +embed_function("createImageEx", ID_TYPE_FN_NUM); +add_embedded_arg("w", ID_TYPE_NUM); +add_embedded_arg("h", ID_TYPE_NUM); +add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); +add_embedded_arg("color", ID_TYPE_NUM); +embed_function("getImageBuffer", ID_TYPE_SUB); +add_embedded_arg("img_id", ID_TYPE_NUM); +add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); +embed_function("ImageExists", ID_TYPE_FN_NUM); +add_embedded_arg("slot", ID_TYPE_NUM); +embed_function("ColorKey", ID_TYPE_SUB); +add_embedded_arg("slot", ID_TYPE_NUM); +add_embedded_arg("c", ID_TYPE_NUM); +embed_function("setBilinearFilter", ID_TYPE_SUB); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("getBilinearFilter", ID_TYPE_FN_NUM); +embed_function("CopyImage", ID_TYPE_FN_NUM); +add_embedded_arg("img_id", ID_TYPE_NUM); +embed_function("DeleteImage", ID_TYPE_SUB); +add_embedded_arg("slot", ID_TYPE_NUM); +embed_function("SetImageAlpha", ID_TYPE_SUB); +add_embedded_arg("slot", ID_TYPE_NUM); +add_embedded_arg("a", ID_TYPE_NUM); +embed_function("GetImageAlpha", ID_TYPE_FN_NUM); +add_embedded_arg("img_id", ID_TYPE_NUM); +embed_function("GetImageSize", ID_TYPE_SUB); +add_embedded_arg("slot", ID_TYPE_NUM); +add_embedded_arg("w", ID_TYPE_BYREF_NUM); +add_embedded_arg("h", ID_TYPE_BYREF_NUM); +embed_function("SetBlendMode", ID_TYPE_SUB); +add_embedded_arg("blend_mode", ID_TYPE_NUM); +embed_function("GetBlendMode", ID_TYPE_FN_NUM); +embed_function("SetImageColorMod", ID_TYPE_SUB); +add_embedded_arg("slot", ID_TYPE_NUM); +add_embedded_arg("c", ID_TYPE_NUM); +embed_function("GetImageColorMod", ID_TYPE_FN_NUM); +add_embedded_arg("slot", ID_TYPE_NUM); +embed_function("DrawImage", ID_TYPE_SUB); +add_embedded_arg("slot", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +embed_function("DrawImage_Blit", ID_TYPE_SUB); +add_embedded_arg("slot", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("src_x", ID_TYPE_NUM); +add_embedded_arg("src_y", ID_TYPE_NUM); +add_embedded_arg("src_w", ID_TYPE_NUM); +add_embedded_arg("src_h", ID_TYPE_NUM); +embed_function("DrawImage_BlitEx", ID_TYPE_SUB); +add_embedded_arg("slot", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("w", ID_TYPE_NUM); +add_embedded_arg("h", ID_TYPE_NUM); +add_embedded_arg("src_x", ID_TYPE_NUM); +add_embedded_arg("src_y", ID_TYPE_NUM); +add_embedded_arg("src_w", ID_TYPE_NUM); +add_embedded_arg("src_h", ID_TYPE_NUM); +embed_function("DrawImage_Rotate", ID_TYPE_SUB); +add_embedded_arg("slot", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("angle", ID_TYPE_NUM); +embed_function("DrawImage_RotateEx", ID_TYPE_SUB); +add_embedded_arg("slot", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("src_x", ID_TYPE_NUM); +add_embedded_arg("src_y", ID_TYPE_NUM); +add_embedded_arg("src_w", ID_TYPE_NUM); +add_embedded_arg("src_h", ID_TYPE_NUM); +add_embedded_arg("angle", ID_TYPE_NUM); +embed_function("DrawImage_Zoom", ID_TYPE_SUB); +add_embedded_arg("slot", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("zx", ID_TYPE_NUM); +add_embedded_arg("zy", ID_TYPE_NUM); +embed_function("DrawImage_ZoomEx", ID_TYPE_SUB); +add_embedded_arg("slot", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("src_x", ID_TYPE_NUM); +add_embedded_arg("src_y", ID_TYPE_NUM); +add_embedded_arg("src_w", ID_TYPE_NUM); +add_embedded_arg("src_h", ID_TYPE_NUM); +add_embedded_arg("zx", ID_TYPE_NUM); +add_embedded_arg("zy", ID_TYPE_NUM); +embed_function("DrawImage_Rotozoom", ID_TYPE_SUB); +add_embedded_arg("slot", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("angle", ID_TYPE_NUM); +add_embedded_arg("zx", ID_TYPE_NUM); +add_embedded_arg("zy", ID_TYPE_NUM); +embed_function("DrawImage_RotozoomEx", ID_TYPE_SUB); +add_embedded_arg("slot", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("src_x", ID_TYPE_NUM); +add_embedded_arg("src_y", ID_TYPE_NUM); +add_embedded_arg("src_w", ID_TYPE_NUM); +add_embedded_arg("src_h", ID_TYPE_NUM); +add_embedded_arg("angle", ID_TYPE_NUM); +add_embedded_arg("zx", ID_TYPE_NUM); +add_embedded_arg("zy", ID_TYPE_NUM); +embed_function("DrawImage_Flip", ID_TYPE_SUB); +add_embedded_arg("slot", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("h", ID_TYPE_NUM); +add_embedded_arg("v", ID_TYPE_NUM); +embed_function("DrawImage_FlipEx", ID_TYPE_SUB); +add_embedded_arg("slot", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("src_x", ID_TYPE_NUM); +add_embedded_arg("src_y", ID_TYPE_NUM); +add_embedded_arg("src_w", ID_TYPE_NUM); +add_embedded_arg("src_h", ID_TYPE_NUM); +add_embedded_arg("h", ID_TYPE_NUM); +add_embedded_arg("v", ID_TYPE_NUM); +embed_function("InKey", ID_TYPE_FN_NUM); +embed_function("Key", ID_TYPE_FN_NUM); +add_embedded_arg("key_code", ID_TYPE_NUM); +embed_function("WaitKey", ID_TYPE_FN_NUM); +embed_function("HideMouse", ID_TYPE_SUB); +embed_function("ShowMouse", ID_TYPE_SUB); +embed_function("MouseIsVisible", ID_TYPE_FN_NUM); +embed_function("GetMouse", ID_TYPE_SUB); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("mb1", ID_TYPE_BYREF_NUM); +add_embedded_arg("mb2", ID_TYPE_BYREF_NUM); +add_embedded_arg("mb3", ID_TYPE_BYREF_NUM); +embed_function("MouseX", ID_TYPE_FN_NUM); +embed_function("MouseY", ID_TYPE_FN_NUM); +embed_function("MouseButton", ID_TYPE_FN_NUM); +add_embedded_arg("mb", ID_TYPE_NUM); +embed_function("GetMouseWheel", ID_TYPE_SUB); +add_embedded_arg("x_axis", ID_TYPE_BYREF_NUM); +add_embedded_arg("y_axis", ID_TYPE_BYREF_NUM); +embed_function("MouseWheelX", ID_TYPE_FN_NUM); +embed_function("MouseWheelY", ID_TYPE_FN_NUM); +embed_function("GetGlobalMouse", ID_TYPE_SUB); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("mb1", ID_TYPE_BYREF_NUM); +add_embedded_arg("mb2", ID_TYPE_BYREF_NUM); +add_embedded_arg("mb3", ID_TYPE_BYREF_NUM); +embed_function("GlobalMouseX", ID_TYPE_FN_NUM); +embed_function("GlobalMouseY", ID_TYPE_FN_NUM); +embed_function("WarpMouse", ID_TYPE_SUB); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +embed_function("WarpMouseGlobal", ID_TYPE_SUB); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +embed_function("SetMouseZone", ID_TYPE_SUB); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("w", ID_TYPE_NUM); +add_embedded_arg("h", ID_TYPE_NUM); +embed_function("ClearMouseZone", ID_TYPE_SUB); +embed_function("CreateSound", ID_TYPE_FN_NUM); +add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); +add_embedded_arg("buffer_size", ID_TYPE_NUM); +add_embedded_arg("vol", ID_TYPE_NUM); +embed_function("LoadSound", ID_TYPE_FN_NUM); +add_embedded_arg("snd_file$", ID_TYPE_STR); +embed_function("LoadMusic", ID_TYPE_SUB); +add_embedded_arg("music_file$", ID_TYPE_STR); +embed_function("PlaySound", ID_TYPE_SUB); +add_embedded_arg("slot", ID_TYPE_NUM); +add_embedded_arg("channel", ID_TYPE_NUM); +add_embedded_arg("loops", ID_TYPE_NUM); +embed_function("PlaySoundTimed", ID_TYPE_SUB); +add_embedded_arg("slot", ID_TYPE_NUM); +add_embedded_arg("channel", ID_TYPE_NUM); +add_embedded_arg("loops", ID_TYPE_NUM); +add_embedded_arg("ms", ID_TYPE_NUM); +embed_function("PlayMusic", ID_TYPE_SUB); +add_embedded_arg("mLoops", ID_TYPE_NUM); +embed_function("PauseSound", ID_TYPE_SUB); +add_embedded_arg("channel", ID_TYPE_NUM); +embed_function("ResumeSound", ID_TYPE_SUB); +add_embedded_arg("channel", ID_TYPE_NUM); +embed_function("PauseMusic", ID_TYPE_SUB); +embed_function("ResumeMusic", ID_TYPE_SUB); +embed_function("DeleteSound", ID_TYPE_SUB); +add_embedded_arg("slot", ID_TYPE_NUM); +embed_function("DeleteMusic", ID_TYPE_SUB); +embed_function("FadeMusicIn", ID_TYPE_SUB); +add_embedded_arg("fade_time", ID_TYPE_NUM); +add_embedded_arg("loops", ID_TYPE_NUM); +embed_function("FadeMusicOut", ID_TYPE_SUB); +add_embedded_arg("fade_time", ID_TYPE_NUM); +embed_function("MusicExists", ID_TYPE_FN_NUM); +embed_function("SetMusicVolume", ID_TYPE_SUB); +add_embedded_arg("vol", ID_TYPE_NUM); +embed_function("GetMusicVolume", ID_TYPE_FN_NUM); +embed_function("SetMusicPosition", ID_TYPE_SUB); +add_embedded_arg("pos", ID_TYPE_NUM); +embed_function("GetMusicPosition", ID_TYPE_FN_NUM); +embed_function("RewindMusic", ID_TYPE_SUB); +embed_function("SetSoundChannels", ID_TYPE_SUB); +add_embedded_arg("max_channels", ID_TYPE_NUM); +embed_function("NumSoundChannels", ID_TYPE_FN_NUM); +embed_function("SoundIsEnabled", ID_TYPE_FN_NUM); +embed_function("SoundExists", ID_TYPE_FN_NUM); +add_embedded_arg("slot", ID_TYPE_NUM); +embed_function("SetChannelVolume", ID_TYPE_SUB); +add_embedded_arg("channel", ID_TYPE_NUM); +add_embedded_arg("vol", ID_TYPE_NUM); +embed_function("GetChannelVolume", ID_TYPE_FN_NUM); +add_embedded_arg("channel", ID_TYPE_NUM); +embed_function("SetSoundVolume", ID_TYPE_SUB); +add_embedded_arg("slot", ID_TYPE_NUM); +add_embedded_arg("vol", ID_TYPE_NUM); +embed_function("GetSoundVolume", ID_TYPE_FN_NUM); +add_embedded_arg("slot", ID_TYPE_NUM); +embed_function("StopMusic", ID_TYPE_SUB); +embed_function("StopSound", ID_TYPE_SUB); +add_embedded_arg("channel", ID_TYPE_NUM); +embed_function("SetChannelPanning", ID_TYPE_FN_NUM); +add_embedded_arg("channel", ID_TYPE_NUM); +add_embedded_arg("left_value", ID_TYPE_NUM); +add_embedded_arg("right_value", ID_TYPE_NUM); +embed_function("SetChannelDistance", ID_TYPE_FN_NUM); +add_embedded_arg("channel", ID_TYPE_NUM); +add_embedded_arg("dist_value", ID_TYPE_NUM); +embed_function("ChannelIsPlaying", ID_TYPE_FN_NUM); +add_embedded_arg("channel", ID_TYPE_NUM); +embed_function("ChannelIsPaused", ID_TYPE_FN_NUM); +add_embedded_arg("channel", ID_TYPE_NUM); +embed_function("QueryAudioSpec", ID_TYPE_FN_NUM); +add_embedded_arg("freq", ID_TYPE_BYREF_NUM); +add_embedded_arg("format", ID_TYPE_BYREF_NUM); +add_embedded_arg("channels", ID_TYPE_BYREF_NUM); +embed_function("MusicIsPlaying", ID_TYPE_FN_NUM); +embed_function("SetChannelSpacePosition", ID_TYPE_FN_NUM); +add_embedded_arg("channel", ID_TYPE_NUM); +add_embedded_arg("angle", ID_TYPE_NUM); +add_embedded_arg("distance", ID_TYPE_NUM); +embed_function("NumJoysticks", ID_TYPE_FN_NUM); +embed_function("NumJoyAxes", ID_TYPE_FN_NUM); +add_embedded_arg("joy_num", ID_TYPE_NUM); +embed_function("NumJoyButtons", ID_TYPE_FN_NUM); +add_embedded_arg("joy_num", ID_TYPE_NUM); +embed_function("NumJoyHats", ID_TYPE_FN_NUM); +add_embedded_arg("joy_num", ID_TYPE_NUM); +embed_function("NumJoyTrackBalls", ID_TYPE_FN_NUM); +add_embedded_arg("joy_num", ID_TYPE_NUM); +embed_function("JoyAxis", ID_TYPE_FN_NUM); +add_embedded_arg("joy_num", ID_TYPE_NUM); +add_embedded_arg("joy_axis", ID_TYPE_NUM); +embed_function("JoyButton", ID_TYPE_FN_NUM); +add_embedded_arg("joy_num", ID_TYPE_NUM); +add_embedded_arg("joy_button", ID_TYPE_NUM); +embed_function("JoyHat", ID_TYPE_FN_NUM); +add_embedded_arg("joy_num", ID_TYPE_NUM); +add_embedded_arg("joy_hat", ID_TYPE_NUM); +embed_function("GetJoyTrackBall", ID_TYPE_SUB); +add_embedded_arg("joy_num", ID_TYPE_NUM); +add_embedded_arg("ball", ID_TYPE_NUM); +add_embedded_arg("dx", ID_TYPE_BYREF_NUM); +add_embedded_arg("dy", ID_TYPE_BYREF_NUM); +embed_function("JoyName$", ID_TYPE_FN_STR); +add_embedded_arg("joy_num", ID_TYPE_NUM); +embed_function("JoystickIsConnected", ID_TYPE_FN_NUM); +add_embedded_arg("joy_num", ID_TYPE_NUM); +embed_function("JoyRumblePlay", ID_TYPE_SUB); +add_embedded_arg("joy_num", ID_TYPE_NUM); +add_embedded_arg("strength", ID_TYPE_NUM); +add_embedded_arg("duration", ID_TYPE_NUM); +embed_function("JoyRumbleStop", ID_TYPE_SUB); +add_embedded_arg("joy_num", ID_TYPE_NUM); +embed_function("JoystickIsHaptic", ID_TYPE_FN_NUM); +add_embedded_arg("joy_num", ID_TYPE_NUM); +embed_function("LoadFont", ID_TYPE_FN_NUM); +add_embedded_arg("fnt_file$", ID_TYPE_STR); +add_embedded_arg("font_size", ID_TYPE_NUM); +embed_function("DeleteFont", ID_TYPE_SUB); +add_embedded_arg("slot", ID_TYPE_NUM); +embed_function("FontExists", ID_TYPE_FN_NUM); +add_embedded_arg("slot", ID_TYPE_NUM); +embed_function("SetFont", ID_TYPE_SUB); +add_embedded_arg("slot", ID_TYPE_NUM); +embed_function("DrawText", ID_TYPE_SUB); +add_embedded_arg("txt$", ID_TYPE_STR); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +embed_function("GetTextSize", ID_TYPE_SUB); +add_embedded_arg("txt$", ID_TYPE_STR); +add_embedded_arg("w", ID_TYPE_BYREF_NUM); +add_embedded_arg("h", ID_TYPE_BYREF_NUM); +embed_function("GetTextWidth", ID_TYPE_FN_NUM); +add_embedded_arg("txt$", ID_TYPE_STR); +embed_function("GetTextHeight", ID_TYPE_FN_NUM); +add_embedded_arg("txt$", ID_TYPE_STR); +embed_function("TouchPressure", ID_TYPE_FN_NUM); +embed_function("GetTouch", ID_TYPE_SUB); +add_embedded_arg("status", ID_TYPE_BYREF_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("dx", ID_TYPE_BYREF_NUM); +add_embedded_arg("dy", ID_TYPE_BYREF_NUM); +embed_function("GetMultiTouch", ID_TYPE_SUB); +add_embedded_arg("status", ID_TYPE_BYREF_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("fingers", ID_TYPE_BYREF_NUM); +add_embedded_arg("dist", ID_TYPE_BYREF_NUM); +add_embedded_arg("theta", ID_TYPE_BYREF_NUM); +embed_function("GetTouchFinger", ID_TYPE_SUB); +add_embedded_arg("finger", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("pressure", ID_TYPE_BYREF_NUM); +embed_function("NumFingers", ID_TYPE_FN_NUM); +embed_function("GetAccel", ID_TYPE_SUB); +add_embedded_arg("accel_num", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("AccelName$", ID_TYPE_FN_STR); +add_embedded_arg("accel_num", ID_TYPE_NUM); +embed_function("NumAccels", ID_TYPE_FN_NUM); +embed_function("GetGyro", ID_TYPE_SUB); +add_embedded_arg("gyro_num", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("GyroName$", ID_TYPE_FN_STR); +add_embedded_arg("gyro_num", ID_TYPE_NUM); +embed_function("NumGyros", ID_TYPE_FN_NUM); +embed_function("CheckSockets", ID_TYPE_FN_NUM); +add_embedded_arg("timeout_ms", ID_TYPE_NUM); +embed_function("TCP_SocketReady", ID_TYPE_FN_NUM); +add_embedded_arg("socket", ID_TYPE_NUM); +embed_function("UDP_SocketReady", ID_TYPE_FN_NUM); +add_embedded_arg("socket", ID_TYPE_NUM); +embed_function("TCP_OpenSocket", ID_TYPE_FN_NUM); +add_embedded_arg("host$", ID_TYPE_STR); +add_embedded_arg("port", ID_TYPE_NUM); +embed_function("TCP_CloseSocket", ID_TYPE_SUB); +add_embedded_arg("socket", ID_TYPE_NUM); +embed_function("TCP_RemoteHost", ID_TYPE_FN_NUM); +add_embedded_arg("socket", ID_TYPE_NUM); +embed_function("TCP_RemotePort", ID_TYPE_FN_NUM); +add_embedded_arg("socket", ID_TYPE_NUM); +embed_function("TCP_GetData", ID_TYPE_FN_NUM); +add_embedded_arg("socket", ID_TYPE_NUM); +add_embedded_arg("numBytes", ID_TYPE_NUM); +add_embedded_arg("sData$", ID_TYPE_BYREF_STR); +embed_function("TCP_SendData", ID_TYPE_SUB); +add_embedded_arg("socket", ID_TYPE_NUM); +add_embedded_arg("sData$", ID_TYPE_STR); +embed_function("TCP_AcceptSocket", ID_TYPE_FN_NUM); +add_embedded_arg("server", ID_TYPE_NUM); +add_embedded_arg("client", ID_TYPE_NUM); +embed_function("UDP_OpenSocket", ID_TYPE_FN_NUM); +add_embedded_arg("port", ID_TYPE_NUM); +embed_function("UDP_CloseSocket", ID_TYPE_SUB); +add_embedded_arg("socket", ID_TYPE_NUM); +embed_function("UDP_GetData", ID_TYPE_FN_NUM); +add_embedded_arg("socket", ID_TYPE_NUM); +add_embedded_arg("host$", ID_TYPE_BYREF_STR); +add_embedded_arg("port", ID_TYPE_BYREF_NUM); +add_embedded_arg("sData$", ID_TYPE_BYREF_STR); +embed_function("UDP_Length", ID_TYPE_FN_NUM); +embed_function("UDP_MaxLength", ID_TYPE_FN_NUM); +embed_function("UDP_RemoteHost$", ID_TYPE_FN_STR); +add_embedded_arg("socket", ID_TYPE_NUM); +embed_function("UDP_RemotePort", ID_TYPE_FN_NUM); +add_embedded_arg("socket", ID_TYPE_NUM); +embed_function("UDP_SendData", ID_TYPE_SUB); +add_embedded_arg("socket", ID_TYPE_NUM); +add_embedded_arg("host$", ID_TYPE_STR); +add_embedded_arg("port", ID_TYPE_NUM); +add_embedded_arg("sData$", ID_TYPE_STR); +embed_function("LoadVideo", ID_TYPE_SUB); +add_embedded_arg("vid$", ID_TYPE_STR); +embed_function("PlayVideo", ID_TYPE_SUB); +add_embedded_arg("vLoops", ID_TYPE_NUM); +embed_function("PauseVideo", ID_TYPE_SUB); +embed_function("StopVideo", ID_TYPE_SUB); +embed_function("SetVideoPosition", ID_TYPE_SUB); +add_embedded_arg("pos", ID_TYPE_NUM); +embed_function("ResumeVideo", ID_TYPE_SUB); +embed_function("GetVideoPosition", ID_TYPE_FN_NUM); +embed_function("DeleteVideo", ID_TYPE_SUB); +embed_function("VideoIsPlaying", ID_TYPE_FN_NUM); +embed_function("VideoEnd", ID_TYPE_FN_NUM); +embed_function("GetVideoStats", ID_TYPE_SUB); +add_embedded_arg("vFile$", ID_TYPE_STR); +add_embedded_arg("vLen", ID_TYPE_BYREF_NUM); +add_embedded_arg("vfps", ID_TYPE_BYREF_NUM); +add_embedded_arg("frame_w", ID_TYPE_BYREF_NUM); +add_embedded_arg("frame_h", ID_TYPE_BYREF_NUM); +embed_function("SetVideoDrawRect", ID_TYPE_SUB); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("w", ID_TYPE_NUM); +add_embedded_arg("h", ID_TYPE_NUM); +embed_function("GetVideoDrawRect", ID_TYPE_SUB); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("w", ID_TYPE_BYREF_NUM); +add_embedded_arg("h", ID_TYPE_BYREF_NUM); +embed_function("GetVideoSize", ID_TYPE_SUB); +add_embedded_arg("w", ID_TYPE_BYREF_NUM); +add_embedded_arg("h", ID_TYPE_BYREF_NUM); +embed_function("VideoExists", ID_TYPE_FN_NUM); +embed_function("SetVideoVolume", ID_TYPE_SUB); +add_embedded_arg("vol", ID_TYPE_NUM); +embed_function("GetVideoVolume", ID_TYPE_FN_NUM); +embed_function("System", ID_TYPE_FN_NUM); +add_embedded_arg("cmd$", ID_TYPE_STR); +embed_function("OS$", ID_TYPE_FN_STR); +embed_function("Command$", ID_TYPE_FN_STR); +add_embedded_arg("arg", ID_TYPE_NUM); +embed_function("NumCommands", ID_TYPE_FN_NUM); +embed_function("Env$", ID_TYPE_FN_STR); +add_embedded_arg("v$", ID_TYPE_STR); +embed_function("SetEnv", ID_TYPE_SUB); +add_embedded_arg("var$", ID_TYPE_STR); +add_embedded_arg("value$", ID_TYPE_STR); +embed_function("PrefPath$", ID_TYPE_FN_STR); +add_embedded_arg("org_name$", ID_TYPE_STR); +add_embedded_arg("app_name$", ID_TYPE_STR); +embed_function("Android_GetExternalStoragePath$", ID_TYPE_FN_STR); +embed_function("Android_GetExternalStorageState", ID_TYPE_FN_NUM); +embed_function("Android_GetInternalStoragePath$", ID_TYPE_FN_STR); +embed_function("Android_JNI_Message$", ID_TYPE_FN_STR); +add_embedded_arg("arg$", ID_TYPE_STR); +embed_function("Runtime_Utility_Message$", ID_TYPE_FN_STR); +add_embedded_arg("arg$", ID_TYPE_STR); +embed_function("GetDesktopDisplayMode", ID_TYPE_SUB); +add_embedded_arg("index", ID_TYPE_NUM); +add_embedded_arg("w", ID_TYPE_BYREF_NUM); +add_embedded_arg("h", ID_TYPE_BYREF_NUM); +add_embedded_arg("freq", ID_TYPE_BYREF_NUM); +embed_function("GetPowerInfo", ID_TYPE_SUB); +add_embedded_arg("status", ID_TYPE_BYREF_NUM); +add_embedded_arg("secs", ID_TYPE_BYREF_NUM); +add_embedded_arg("pct", ID_TYPE_BYREF_NUM); +embed_function("EvalJS$", ID_TYPE_FN_STR); +add_embedded_arg("js_code$", ID_TYPE_STR); +embed_function("SystemReturnStdOut$", ID_TYPE_FN_STR); +add_embedded_arg("cmd$", ID_TYPE_STR); +embed_function("OpenURL", ID_TYPE_FN_NUM); +add_embedded_arg("url$", ID_TYPE_STR); +embed_function("MessageBox", ID_TYPE_FN_NUM); +add_embedded_arg("title$", ID_TYPE_STR); +add_embedded_arg("msg$", ID_TYPE_STR); +embed_function("Runtime$", ID_TYPE_FN_STR); +embed_function("NumCPUs", ID_TYPE_FN_NUM); +embed_function("SystemRam", ID_TYPE_FN_NUM); +embed_function("DimMatrix", ID_TYPE_FN_NUM); +add_embedded_arg("m_rows", ID_TYPE_NUM); +add_embedded_arg("m_cols", ID_TYPE_NUM); +embed_function("DeleteMatrix", ID_TYPE_SUB); +add_embedded_arg("mA", ID_TYPE_NUM); +embed_function("AddMatrix", ID_TYPE_FN_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("mB", ID_TYPE_NUM); +add_embedded_arg("mC", ID_TYPE_NUM); +embed_function("AugmentMatrix", ID_TYPE_FN_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("mB", ID_TYPE_NUM); +add_embedded_arg("mC", ID_TYPE_NUM); +embed_function("CopyMatrix", ID_TYPE_SUB); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("mB", ID_TYPE_NUM); +embed_function("InsertMatrixColumns", ID_TYPE_FN_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("c", ID_TYPE_NUM); +add_embedded_arg("num_cols", ID_TYPE_NUM); +embed_function("InsertMatrixRows", ID_TYPE_FN_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("r", ID_TYPE_NUM); +add_embedded_arg("num_rows", ID_TYPE_NUM); +embed_function("MultiplyMatrix", ID_TYPE_FN_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("mB", ID_TYPE_NUM); +add_embedded_arg("mC", ID_TYPE_NUM); +embed_function("CubeMatrix", ID_TYPE_FN_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("mB", ID_TYPE_NUM); +embed_function("DeleteMatrixColumns", ID_TYPE_FN_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("c", ID_TYPE_NUM); +add_embedded_arg("num_cols", ID_TYPE_NUM); +embed_function("DeleteMatrixRows", ID_TYPE_FN_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("r", ID_TYPE_NUM); +add_embedded_arg("num_rows", ID_TYPE_NUM); +embed_function("ClearMatrix", ID_TYPE_SUB); +add_embedded_arg("mA", ID_TYPE_NUM); +embed_function("ClearMatrixColumns", ID_TYPE_FN_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("c", ID_TYPE_NUM); +add_embedded_arg("num_cols", ID_TYPE_NUM); +embed_function("ClearMatrixRows", ID_TYPE_FN_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("r", ID_TYPE_NUM); +add_embedded_arg("num_rows", ID_TYPE_NUM); +embed_function("FillMatrix", ID_TYPE_SUB); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("v", ID_TYPE_NUM); +embed_function("FillMatrixColumns", ID_TYPE_FN_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("c", ID_TYPE_NUM); +add_embedded_arg("num_cols", ID_TYPE_NUM); +add_embedded_arg("v", ID_TYPE_NUM); +embed_function("FillMatrixRows", ID_TYPE_FN_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("r", ID_TYPE_NUM); +add_embedded_arg("num_rows", ID_TYPE_NUM); +add_embedded_arg("v", ID_TYPE_NUM); +embed_function("CopyMatrixColumns", ID_TYPE_FN_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("mB", ID_TYPE_NUM); +add_embedded_arg("c", ID_TYPE_NUM); +add_embedded_arg("num_cols", ID_TYPE_NUM); +embed_function("CopyMatrixRows", ID_TYPE_FN_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("mB", ID_TYPE_NUM); +add_embedded_arg("r", ID_TYPE_NUM); +add_embedded_arg("num_rows", ID_TYPE_NUM); +embed_function("SetIdentityMatrix", ID_TYPE_SUB); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("SolveMatrix", ID_TYPE_FN_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("mB", ID_TYPE_NUM); +add_embedded_arg("mC", ID_TYPE_NUM); +embed_function("IsEqualMatrix", ID_TYPE_FN_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("mB", ID_TYPE_NUM); +add_embedded_arg("tolerance", ID_TYPE_NUM); +embed_function("Determinant", ID_TYPE_FN_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +embed_function("AdjointMatrix", ID_TYPE_FN_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("mB", ID_TYPE_NUM); +embed_function("InvertMatrix", ID_TYPE_FN_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("mB", ID_TYPE_NUM); +embed_function("MatrixFromBuffer", ID_TYPE_SUB); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("r", ID_TYPE_NUM); +add_embedded_arg("c", ID_TYPE_NUM); +add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); +embed_function("BufferFromMatrix", ID_TYPE_SUB); +add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +embed_function("RandomizeMatrix", ID_TYPE_SUB); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("vmin", ID_TYPE_NUM); +add_embedded_arg("vmax", ID_TYPE_NUM); +embed_function("MatrixValue", ID_TYPE_FN_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("r", ID_TYPE_NUM); +add_embedded_arg("c", ID_TYPE_NUM); +embed_function("SetMatrixValue", ID_TYPE_SUB); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("r", ID_TYPE_NUM); +add_embedded_arg("c", ID_TYPE_NUM); +add_embedded_arg("v", ID_TYPE_NUM); +embed_function("ScalarMatrix", ID_TYPE_SUB); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("mB", ID_TYPE_NUM); +add_embedded_arg("s_value", ID_TYPE_NUM); +embed_function("ScalarMatrixColumns", ID_TYPE_FN_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("mB", ID_TYPE_NUM); +add_embedded_arg("c", ID_TYPE_NUM); +add_embedded_arg("num_cols", ID_TYPE_NUM); +add_embedded_arg("s_value", ID_TYPE_NUM); +embed_function("ScalarMatrixRows", ID_TYPE_FN_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("mB", ID_TYPE_NUM); +add_embedded_arg("r", ID_TYPE_NUM); +add_embedded_arg("num_rows", ID_TYPE_NUM); +add_embedded_arg("s_value", ID_TYPE_NUM); +embed_function("SquareMatrix", ID_TYPE_FN_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("mB", ID_TYPE_NUM); +embed_function("CofactorMatrix", ID_TYPE_SUB); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("r", ID_TYPE_NUM); +add_embedded_arg("c", ID_TYPE_NUM); +embed_function("SubtractMatrix", ID_TYPE_FN_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("mB", ID_TYPE_NUM); +add_embedded_arg("mC", ID_TYPE_NUM); +embed_function("SwapMatrix", ID_TYPE_SUB); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("mB", ID_TYPE_NUM); +embed_function("SwapMatrixColumn", ID_TYPE_FN_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("C1", ID_TYPE_NUM); +add_embedded_arg("C2", ID_TYPE_NUM); +embed_function("SwapMatrixRow", ID_TYPE_FN_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("R1", ID_TYPE_NUM); +add_embedded_arg("R2", ID_TYPE_NUM); +embed_function("TransposeMatrix", ID_TYPE_FN_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("mB", ID_TYPE_NUM); +embed_function("UnAugmentMatrix", ID_TYPE_FN_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("mB", ID_TYPE_NUM); +add_embedded_arg("mC", ID_TYPE_NUM); +embed_function("ZeroMatrix", ID_TYPE_SUB); +add_embedded_arg("mA", ID_TYPE_NUM); +embed_function("GetMatrixSize", ID_TYPE_SUB); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("r", ID_TYPE_BYREF_NUM); +add_embedded_arg("c", ID_TYPE_BYREF_NUM); embed_function("IncrementMatrixRows", ID_TYPE_SUB); add_embedded_arg("mA", ID_TYPE_NUM); add_embedded_arg("mB", ID_TYPE_NUM); @@ -1415,14 +1217,1290 @@ embed_function("JoinMatrixColumns", ID_TYPE_SUB); add_embedded_arg("mA", ID_TYPE_NUM); add_embedded_arg("mB", ID_TYPE_NUM); add_embedded_arg("mC", ID_TYPE_NUM); -embed_function("TypeArrayDim", ID_TYPE_FN_NUM); -add_embedded_arg("id", ID_TYPE_BYREF_USER, 0); -embed_function("TypeArraySize", ID_TYPE_FN_NUM); -add_embedded_arg("id", ID_TYPE_BYREF_USER, 0); -add_embedded_arg("array_dim", ID_TYPE_NUM); -embed_function("TypeArrayCopy", ID_TYPE_SUB); -add_embedded_arg("src", ID_TYPE_BYREF_USER, 0); -add_embedded_arg("dst", ID_TYPE_BYREF_USER, 0); -embed_function("TypeArrayFill", ID_TYPE_SUB); -add_embedded_arg("src", ID_TYPE_BYREF_USER, 0); -add_embedded_arg("fdata", ID_TYPE_USER, 0); +embed_function("ClipMatrix", ID_TYPE_SUB); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("r", ID_TYPE_NUM); +add_embedded_arg("c", ID_TYPE_NUM); +add_embedded_arg("num_rows", ID_TYPE_NUM); +add_embedded_arg("num_cols", ID_TYPE_NUM); +add_embedded_arg("mB", ID_TYPE_NUM); +embed_function("SetMatrixTranslation", ID_TYPE_SUB); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("SetMatrixRotation", ID_TYPE_SUB); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("SetMatrixScale", ID_TYPE_SUB); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("GetMatrixTranslation", ID_TYPE_SUB); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("GetMatrixRotation", ID_TYPE_SUB); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("GetMatrixScale", ID_TYPE_SUB); +add_embedded_arg("mA", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("GetClipboardText$", ID_TYPE_FN_STR); +embed_function("SetClipboardText", ID_TYPE_SUB); +add_embedded_arg("txt$", ID_TYPE_STR); +embed_function("HasClipboardText", ID_TYPE_FN_NUM); +embed_function("ReadInput_Start", ID_TYPE_SUB); +embed_function("ReadInput_Stop", ID_TYPE_SUB); +embed_function("ReadInput_Text$", ID_TYPE_FN_STR); +embed_function("ReadInput_SetText", ID_TYPE_SUB); +add_embedded_arg("txt$", ID_TYPE_STR); +embed_function("ReadInput_ToggleBackspace", ID_TYPE_SUB); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("CreateSprite", ID_TYPE_FN_NUM); +add_embedded_arg("img", ID_TYPE_NUM); +embed_function("DeleteSprite", ID_TYPE_SUB); +add_embedded_arg("sprite", ID_TYPE_NUM); +embed_function("SetSpritePosition", ID_TYPE_SUB); +add_embedded_arg("sprite", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +embed_function("LoadMesh", ID_TYPE_FN_NUM); +add_embedded_arg("mesh_file$", ID_TYPE_STR); +embed_function("DeleteMesh", ID_TYPE_SUB); +add_embedded_arg("mesh", ID_TYPE_NUM); +embed_function("CreateMesh", ID_TYPE_FN_NUM); +embed_function("AddMeshBuffer", ID_TYPE_SUB); +add_embedded_arg("mesh", ID_TYPE_NUM); +add_embedded_arg("vertex_count", ID_TYPE_NUM); +add_embedded_arg("vertex_data", ID_TYPE_BYREF_NUM); +add_embedded_arg("normal_data", ID_TYPE_BYREF_NUM); +add_embedded_arg("uv_data", ID_TYPE_BYREF_NUM); +add_embedded_arg("index_count", ID_TYPE_NUM); +add_embedded_arg("index_data", ID_TYPE_BYREF_NUM); +embed_function("LoadMeshFromArchive", ID_TYPE_FN_NUM); +add_embedded_arg("archive$", ID_TYPE_STR); +add_embedded_arg("mesh_file$", ID_TYPE_STR); +embed_function("CreateMeshActor", ID_TYPE_FN_NUM); +add_embedded_arg("mesh", ID_TYPE_NUM); +embed_function("CreateMeshOctreeActor", ID_TYPE_FN_NUM); +add_embedded_arg("mesh", ID_TYPE_NUM); +embed_function("CreateCubeActor", ID_TYPE_FN_NUM); +add_embedded_arg("cube_size", ID_TYPE_NUM); +embed_function("CreateSphereActor", ID_TYPE_FN_NUM); +add_embedded_arg("radius", ID_TYPE_NUM); +embed_function("CreateWaterPlaneActor", ID_TYPE_FN_NUM); +add_embedded_arg("w", ID_TYPE_NUM); +add_embedded_arg("h", ID_TYPE_NUM); +embed_function("CreateLightActor", ID_TYPE_FN_NUM); +embed_function("CreateBillboardActor", ID_TYPE_FN_NUM); +embed_function("CreateTerrainActor", ID_TYPE_FN_NUM); +add_embedded_arg("hmap_file$", ID_TYPE_STR); +embed_function("DeleteActor", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("GetActorTransform", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("matrix", ID_TYPE_NUM); +embed_function("SetActorPosition", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("TranslateActor", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("TranslateActorWorld", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("GetActorPosition", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("SetActorScale", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("ScaleActor", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("GetActorScale", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("SetActorRotation", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("RotateActor", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("GetActorRotation", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("SetActorVisible", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("ActorIsVisible", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("SetActorAutoCulling", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("cull_type", ID_TYPE_NUM); +embed_function("GetActorAutoCulling", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("AddActorShadow", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("RemoveActorShadow", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("SetGravity3D", ID_TYPE_SUB); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("GetGravity3D", ID_TYPE_SUB); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("SetActorCollisionShape", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("shape_type", ID_TYPE_NUM); +add_embedded_arg("mass", ID_TYPE_NUM); +embed_function("GetActorCollisionShape", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("SetActorSolid", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("ActorIsSolid", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("GetActorCollision", ID_TYPE_FN_NUM); +add_embedded_arg("actor1", ID_TYPE_NUM); +add_embedded_arg("actor2", ID_TYPE_NUM); +embed_function("SetActorGravity", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("GetActorGravity", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("setActorDamping", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("lin_damping", ID_TYPE_NUM); +add_embedded_arg("ang_damping", ID_TYPE_NUM); +embed_function("getActorLinearDamping", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("getActorAngularDamping", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("getActorLinearSleepThreshold", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("getActorAngularSleepThreshold", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("applyActorDamping", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("timeStep", ID_TYPE_NUM); +embed_function("setActorMassProperties", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("mass", ID_TYPE_NUM); +add_embedded_arg("inertia_x", ID_TYPE_NUM); +add_embedded_arg("inertia_y", ID_TYPE_NUM); +add_embedded_arg("inertia_z", ID_TYPE_NUM); +embed_function("getActorLinearFactor", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("setActorLinearFactor", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("getActorInverseMass", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("integrateActorVelocities", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("v_step", ID_TYPE_NUM); +embed_function("applyActorCentralForceLocal", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("applyActorCentralForceWorld", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("getActorTotalForce", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("getActorTotalTorque", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("getActorInverseInertiaDiagLocal", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("setActorInverseInertiaDiagLocal", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("setActorSleepThresholds", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("linear", ID_TYPE_NUM); +add_embedded_arg("angular", ID_TYPE_NUM); +embed_function("applyActorTorqueLocal", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("applyActorTorqueWorld", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("applyActorForceLocal", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +add_embedded_arg("rel_x", ID_TYPE_NUM); +add_embedded_arg("rel_y", ID_TYPE_NUM); +add_embedded_arg("rel_z", ID_TYPE_NUM); +embed_function("applyActorForceWorld", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +add_embedded_arg("rel_x", ID_TYPE_NUM); +add_embedded_arg("rel_y", ID_TYPE_NUM); +add_embedded_arg("rel_z", ID_TYPE_NUM); +embed_function("applyActorCentralImpulseLocal", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("applyActorCentralImpulseWorld", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("applyActorTorqueImpulseLocal", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("applyActorTorqueImpulseWorld", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("applyActorImpulseLocal", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +add_embedded_arg("rel_x", ID_TYPE_NUM); +add_embedded_arg("rel_y", ID_TYPE_NUM); +add_embedded_arg("rel_z", ID_TYPE_NUM); +embed_function("applyActorImpulseWorld", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +add_embedded_arg("rel_x", ID_TYPE_NUM); +add_embedded_arg("rel_y", ID_TYPE_NUM); +add_embedded_arg("rel_z", ID_TYPE_NUM); +embed_function("clearActorForces", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("updateActorInertiaTensor", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("getActorCOMPosition", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("getActorRotationQ", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +add_embedded_arg("w", ID_TYPE_BYREF_NUM); +embed_function("getActorLinearVelocity", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("getActorAngularVelocity", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("setActorLinearVelocityLocal", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("setActorLinearVelocityWorld", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("setActorAngularVelocityLocal", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("setActorAngularVelocityWorld", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("getActorLocalPointVelocity", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("rel_x", ID_TYPE_NUM); +add_embedded_arg("rel_y", ID_TYPE_NUM); +add_embedded_arg("rel_z", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("getActorLinearVelocityLocal", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("getActorAngularVelocityLocal", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("getActorAABB", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("min_x", ID_TYPE_BYREF_NUM); +add_embedded_arg("min_y", ID_TYPE_BYREF_NUM); +add_embedded_arg("min_z", ID_TYPE_BYREF_NUM); +add_embedded_arg("max_x", ID_TYPE_BYREF_NUM); +add_embedded_arg("max_y", ID_TYPE_BYREF_NUM); +add_embedded_arg("max_z", ID_TYPE_BYREF_NUM); +embed_function("computeActorImpulseDenominator", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("pos_x", ID_TYPE_NUM); +add_embedded_arg("pos_y", ID_TYPE_NUM); +add_embedded_arg("pos_z", ID_TYPE_NUM); +add_embedded_arg("normal_x", ID_TYPE_NUM); +add_embedded_arg("normal_y", ID_TYPE_NUM); +add_embedded_arg("normal_z", ID_TYPE_NUM); +embed_function("computeActorAngularImpulseDenominator", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("setActorAngularFactor", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("getActorAngularFactor", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("computeActorGyroImpulseLocal", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("dt", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("computeActorGyroImpulseWorld", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("dt", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("getActorLocalInertia", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("createPointConstraint", ID_TYPE_FN_NUM); +add_embedded_arg("actorA", ID_TYPE_NUM); +add_embedded_arg("pxA", ID_TYPE_NUM); +add_embedded_arg("pyA", ID_TYPE_NUM); +add_embedded_arg("pzA", ID_TYPE_NUM); +embed_function("createPointConstraintEx", ID_TYPE_FN_NUM); +add_embedded_arg("actorA", ID_TYPE_NUM); +add_embedded_arg("actorB", ID_TYPE_NUM); +add_embedded_arg("pxA", ID_TYPE_NUM); +add_embedded_arg("pyA", ID_TYPE_NUM); +add_embedded_arg("pzA", ID_TYPE_NUM); +add_embedded_arg("pxB", ID_TYPE_NUM); +add_embedded_arg("pyB", ID_TYPE_NUM); +add_embedded_arg("pzB", ID_TYPE_NUM); +embed_function("setConstraintPivotA", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("setConstraintPivotB", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("createHingeConstraint", ID_TYPE_FN_NUM); +add_embedded_arg("actorA", ID_TYPE_NUM); +add_embedded_arg("pxA", ID_TYPE_NUM); +add_embedded_arg("pyA", ID_TYPE_NUM); +add_embedded_arg("pzA", ID_TYPE_NUM); +add_embedded_arg("axA", ID_TYPE_NUM); +add_embedded_arg("ayA", ID_TYPE_NUM); +add_embedded_arg("azA", ID_TYPE_NUM); +embed_function("createHingeConstraintEx", ID_TYPE_FN_NUM); +add_embedded_arg("actorA", ID_TYPE_NUM); +add_embedded_arg("actorB", ID_TYPE_NUM); +add_embedded_arg("pxA", ID_TYPE_NUM); +add_embedded_arg("pyA", ID_TYPE_NUM); +add_embedded_arg("pzA", ID_TYPE_NUM); +add_embedded_arg("pxB", ID_TYPE_NUM); +add_embedded_arg("pyB", ID_TYPE_NUM); +add_embedded_arg("pzB", ID_TYPE_NUM); +add_embedded_arg("axA", ID_TYPE_NUM); +add_embedded_arg("ayA", ID_TYPE_NUM); +add_embedded_arg("azA", ID_TYPE_NUM); +add_embedded_arg("axB", ID_TYPE_NUM); +add_embedded_arg("ayB", ID_TYPE_NUM); +add_embedded_arg("azB", ID_TYPE_NUM); +embed_function("createSlideConstraint", ID_TYPE_FN_NUM); +add_embedded_arg("actorA", ID_TYPE_NUM); +add_embedded_arg("frameInB_matrix", ID_TYPE_NUM); +add_embedded_arg("useLinearReferenceFrameA", ID_TYPE_NUM); +embed_function("createSlideConstraintEx", ID_TYPE_FN_NUM); +add_embedded_arg("actorA", ID_TYPE_NUM); +add_embedded_arg("actorB", ID_TYPE_NUM); +add_embedded_arg("frameInA_matrix", ID_TYPE_NUM); +add_embedded_arg("frameInB_matrix", ID_TYPE_NUM); +add_embedded_arg("useLinearReferenceFrameA", ID_TYPE_NUM); +embed_function("createConeConstraint", ID_TYPE_FN_NUM); +add_embedded_arg("actorA", ID_TYPE_NUM); +add_embedded_arg("rbAFrame_matrix", ID_TYPE_NUM); +embed_function("createConeConstraintEx", ID_TYPE_FN_NUM); +add_embedded_arg("actorA", ID_TYPE_NUM); +add_embedded_arg("actorB", ID_TYPE_NUM); +add_embedded_arg("rbAFrame_matrix", ID_TYPE_NUM); +add_embedded_arg("rbBFrame_matrix", ID_TYPE_NUM); +embed_function("deleteConstraint", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintFrameOffsetA", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +add_embedded_arg("rx", ID_TYPE_BYREF_NUM); +add_embedded_arg("ry", ID_TYPE_BYREF_NUM); +add_embedded_arg("rz", ID_TYPE_BYREF_NUM); +embed_function("getConstraintFrameOffsetB", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +add_embedded_arg("rx", ID_TYPE_BYREF_NUM); +add_embedded_arg("ry", ID_TYPE_BYREF_NUM); +add_embedded_arg("rz", ID_TYPE_BYREF_NUM); +embed_function("useConstraintFrameOffset", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("getHingeAngle", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getHingeAngleEx", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("t_matrixA", ID_TYPE_NUM); +add_embedded_arg("t_matrixB", ID_TYPE_NUM); +embed_function("getConstraintBreakingImpulseThreshold", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintAFrame", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +embed_function("getConstraintBFrame", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("mA", ID_TYPE_NUM); +embed_function("setConstraintAxis", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("setConstraintBreakingImpulseThreshold", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("threshold", ID_TYPE_NUM); +embed_function("setConstraintFrames", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("frameA_matrix", ID_TYPE_NUM); +add_embedded_arg("frameB_matrix", ID_TYPE_NUM); +embed_function("setHingeLimit", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("low", ID_TYPE_NUM); +add_embedded_arg("high", ID_TYPE_NUM); +add_embedded_arg("softness", ID_TYPE_NUM); +add_embedded_arg("bias_factor", ID_TYPE_NUM); +add_embedded_arg("relaxation_factor", ID_TYPE_NUM); +embed_function("setConeLimit", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("swingSpan1", ID_TYPE_NUM); +add_embedded_arg("swingSpan2", ID_TYPE_NUM); +add_embedded_arg("twistSpan", ID_TYPE_NUM); +add_embedded_arg("softness", ID_TYPE_NUM); +add_embedded_arg("bias_factor", ID_TYPE_NUM); +add_embedded_arg("relaxation_factor", ID_TYPE_NUM); +embed_function("getConstraintLimitBiasFactor", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getLimitRelaxationFactor", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintLimitSign", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getHingeSolveLimit", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("useHingeReferenceFrameA", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("getConstraintAppliedImpulse", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintFixedActor", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintPivotA", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("getConstraintPivotB", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("getConstraintActorA", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintActorB", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("setConstraintSolverIterations", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("num", ID_TYPE_NUM); +embed_function("getConstraintBiasFactor", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintDamping", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintFixThresh", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintLimit", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("limit_index", ID_TYPE_NUM); +embed_function("getConstraintLimitSoftness", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintSolverIterations", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintAnglePoint", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("angle", ID_TYPE_NUM); +add_embedded_arg("c_len", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("getConstraintAngularOnly", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintSolveSwingLimit", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintSolveTwistLimit", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintSolveLimit", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintSwingSpan1", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintSwingSpan2", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintTwistAngle", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintTwistLimitSign", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintTwistSpan", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("setConstraintAngularOnly", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("setConstraintDamping", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("damping", ID_TYPE_NUM); +embed_function("setConstraintFixThresh", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("fixThresh", ID_TYPE_NUM); +embed_function("getConstraintAnchorA", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("getConstraintAnchorB", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("getConstraintAngDepth", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintAngularPos", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintDampingDirAng", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintDampingDirLin", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintDampingLimAng", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintDampingLimLin", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintDampingOrthoAng", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintDampingOrthoLin", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintLinearPos", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintLinDepth", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintLowerAngLimit", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintLowerLinLimit", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintRestitutionDirAng", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintRestitutionDirLin", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintRestitutionLimAng", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintRestitutionLimLin", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintRestitutionOrthoAng", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintRestitutionOrthoLin", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintSoftnessDirAng", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintSoftnessDirLin", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintSoftnessLimAng", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintSoftnessLimLin", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintSoftnessOrthoAng", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintSoftnessOrthoLin", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintSolveAngLimit", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintSolveLinLimit", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintUpperAngLimit", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintUpperLinLimit", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("getConstraintUseFrameOffset", ID_TYPE_FN_NUM); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +embed_function("setConstraintDampingDirAng", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("setConstraintDampingDirLin", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("setConstraintDampingLimAng", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("setConstraintDampingLimLin", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("setConstraintDampingOrthoAng", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("setConstraintDampingOrthoLin", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("setConstraintLowerAngLimit", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("setConstraintLowerLinLimit", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("setConstraintRestitutionDirAng", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("setConstraintRestitutionDirLin", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("setConstraintRestitutionLimAng", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("setConstraintRestitutionLimLin", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("setConstraintRestitutionOrthoAng", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("setConstraintRestitutionOrthoLin", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("setConstraintSoftnessDirAng", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("setConstraintSoftnessDirLin", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("setConstraintSoftnessLimAng", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("setConstraintSoftnessLimLin", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("setConstraintSoftnessOrthoAng", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("setConstraintSoftnessOrthoLin", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("setConstraintUpperAngLimit", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("setConstraintUpperLinLimit", ID_TYPE_SUB); +add_embedded_arg("constraint_id", ID_TYPE_NUM); +add_embedded_arg("n", ID_TYPE_NUM); +embed_function("SetCameraPosition", ID_TYPE_SUB); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("GetCameraPosition", ID_TYPE_SUB); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("TranslateCamera", ID_TYPE_SUB); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("SetCameraRotation", ID_TYPE_SUB); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("GetCameraRotation", ID_TYPE_SUB); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("RotateCamera", ID_TYPE_SUB); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("SetCameraFOV", ID_TYPE_SUB); +add_embedded_arg("fov", ID_TYPE_NUM); +embed_function("GetCameraFOV", ID_TYPE_FN_NUM); +embed_function("SetCameraAspectRatio", ID_TYPE_SUB); +add_embedded_arg("aspect", ID_TYPE_NUM); +embed_function("GetCameraAspectRatio", ID_TYPE_FN_NUM); +embed_function("SetCameraFarValue", ID_TYPE_SUB); +add_embedded_arg("zf", ID_TYPE_NUM); +embed_function("GetCameraFarValue", ID_TYPE_FN_NUM); +embed_function("SetCameraNearValue", ID_TYPE_SUB); +add_embedded_arg("zn", ID_TYPE_NUM); +embed_function("GetCameraNearValue", ID_TYPE_FN_NUM); +embed_function("AddSceneSkyBox", ID_TYPE_SUB); +add_embedded_arg("img_top", ID_TYPE_NUM); +add_embedded_arg("img_bottom", ID_TYPE_NUM); +add_embedded_arg("img_left", ID_TYPE_NUM); +add_embedded_arg("img_right", ID_TYPE_NUM); +add_embedded_arg("img_front", ID_TYPE_NUM); +add_embedded_arg("img_back", ID_TYPE_NUM); +embed_function("AddSceneSkyDome", ID_TYPE_SUB); +add_embedded_arg("img", ID_TYPE_NUM); +embed_function("AddSceneSkyDomeEx", ID_TYPE_SUB); +add_embedded_arg("img", ID_TYPE_NUM); +add_embedded_arg("horiRes", ID_TYPE_NUM); +add_embedded_arg("vertRes", ID_TYPE_NUM); +add_embedded_arg("txPercentage", ID_TYPE_NUM); +add_embedded_arg("spherePercentage", ID_TYPE_NUM); +add_embedded_arg("radius", ID_TYPE_NUM); +embed_function("RemoveSceneSky", ID_TYPE_SUB); +embed_function("SetWorld3DDeltaTime", ID_TYPE_SUB); +add_embedded_arg("dt", ID_TYPE_NUM); +embed_function("SetWorld3DMaxSubSteps", ID_TYPE_SUB); +add_embedded_arg("steps", ID_TYPE_NUM); +embed_function("SetWorld3DTimeStep", ID_TYPE_SUB); +add_embedded_arg("ts", ID_TYPE_NUM); +embed_function("startParticleEmitter", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("stopParticleEmitter", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("setParticleDirection", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("getParticleDirection", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("useParticleEveryMeshVertex", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("particleIsUsingEveryMeshVertex", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("setParticleNormalDirectionMod", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("nd_mod", ID_TYPE_NUM); +embed_function("getParticleNormalDirectionMod", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("useParticleNormalDirection", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("particleIsUsingNormalDirection", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("setParticleMesh", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("mesh", ID_TYPE_NUM); +embed_function("setParticleMinParticlesPerSecond", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("minParticlesPerSecond", ID_TYPE_NUM); +embed_function("getParticleMinParticlesPerSecond", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("setParticleMaxParticlesPerSecond", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("maxParticlesPerSecond", ID_TYPE_NUM); +embed_function("getParticleMaxParticlesPerSecond", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("setParticleMinStartColor", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("color", ID_TYPE_NUM); +embed_function("getParticleMinStartColor", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("setParticleMaxStartColor", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("color", ID_TYPE_NUM); +embed_function("getParticleMaxStartColor", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("setParticleMinLife", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("minLife", ID_TYPE_NUM); +embed_function("getParticleMinLife", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("setParticleMaxLife", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("maxLife", ID_TYPE_NUM); +embed_function("getParticleMaxLife", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("setParticleMaxAngle", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("maxAngle", ID_TYPE_NUM); +embed_function("getParticleMaxAngle", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("setParticleMinStartSize", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("w", ID_TYPE_NUM); +add_embedded_arg("h", ID_TYPE_NUM); +embed_function("getParticleMinStartSize", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("w", ID_TYPE_BYREF_NUM); +add_embedded_arg("h", ID_TYPE_BYREF_NUM); +embed_function("setParticleMaxStartSize", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("w", ID_TYPE_NUM); +add_embedded_arg("h", ID_TYPE_NUM); +embed_function("getParticleMaxStartSize", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("w", ID_TYPE_BYREF_NUM); +add_embedded_arg("h", ID_TYPE_BYREF_NUM); +embed_function("setParticleCenter", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("getParticleCenter", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("setParticleRadius", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("radius", ID_TYPE_NUM); +embed_function("getParticleRadius", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("setParticleRingThickness", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("ringThickness", ID_TYPE_NUM); +embed_function("getParticleRingThickness", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("setParticleBox", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("min_x", ID_TYPE_NUM); +add_embedded_arg("min_y", ID_TYPE_NUM); +add_embedded_arg("min_z", ID_TYPE_NUM); +add_embedded_arg("max_x", ID_TYPE_NUM); +add_embedded_arg("max_y", ID_TYPE_NUM); +add_embedded_arg("max_z", ID_TYPE_NUM); +embed_function("getParticleBox", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("min_x", ID_TYPE_BYREF_NUM); +add_embedded_arg("min_y", ID_TYPE_BYREF_NUM); +add_embedded_arg("min_z", ID_TYPE_BYREF_NUM); +add_embedded_arg("max_x", ID_TYPE_BYREF_NUM); +add_embedded_arg("max_y", ID_TYPE_BYREF_NUM); +add_embedded_arg("max_z", ID_TYPE_BYREF_NUM); +embed_function("setParticleNormal", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("getParticleNormal", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("setParticleLength", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("p_len", ID_TYPE_NUM); +embed_function("getParticleLength", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("useParticleOutlineOnly", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("particleIsUsingOutlineOnly", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("lightIsCastingShadow", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("getLightType", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("getLightRadius", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("setLightType", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("light_type", ID_TYPE_NUM); +embed_function("setLightRadius", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("radius", ID_TYPE_NUM); +embed_function("setLightShadowCast", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("SetLightAmbientColor", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("color", ID_TYPE_NUM); +embed_function("GetLightAmbientColor", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("SetLightAttenuation", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("l_constant", ID_TYPE_NUM); +add_embedded_arg("l_linear", ID_TYPE_NUM); +add_embedded_arg("l_quadratic", ID_TYPE_NUM); +embed_function("GetLightAttenuation", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("constant", ID_TYPE_BYREF_NUM); +add_embedded_arg("linear", ID_TYPE_BYREF_NUM); +add_embedded_arg("quadratic", ID_TYPE_BYREF_NUM); +embed_function("SetLightDiffuseColor", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("color", ID_TYPE_NUM); +embed_function("GetLightDiffuseColor", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("SetLightFalloff", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("falloff", ID_TYPE_NUM); +embed_function("GetLightFalloff", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("SetLightInnerCone", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("angle", ID_TYPE_NUM); +embed_function("GetLightInnerCone", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("SetLightOuterCone", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("angle", ID_TYPE_NUM); +embed_function("GetLightOuterCone", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("SetLightSpecularColor", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("color", ID_TYPE_NUM); +embed_function("GetLightSpecularColor", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("GetTerrainPatchAABB", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("patchX", ID_TYPE_NUM); +add_embedded_arg("patchZ", ID_TYPE_NUM); +add_embedded_arg("minX", ID_TYPE_BYREF_NUM); +add_embedded_arg("minY", ID_TYPE_BYREF_NUM); +add_embedded_arg("minZ", ID_TYPE_BYREF_NUM); +add_embedded_arg("maxX", ID_TYPE_BYREF_NUM); +add_embedded_arg("maxY", ID_TYPE_BYREF_NUM); +add_embedded_arg("maxZ", ID_TYPE_BYREF_NUM); +embed_function("GetTerrainPatchLOD", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("patchX", ID_TYPE_NUM); +add_embedded_arg("patchZ", ID_TYPE_NUM); +embed_function("GetTerrainHeight", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("patchX", ID_TYPE_NUM); +add_embedded_arg("patchZ", ID_TYPE_NUM); +embed_function("GetTerrainCenter", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("SetTerrainLODDistance", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("LOD", ID_TYPE_NUM); +add_embedded_arg("distance", ID_TYPE_NUM); +embed_function("ScaleTerrainTexture", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("scale", ID_TYPE_NUM); +add_embedded_arg("scale2", ID_TYPE_NUM); +embed_function("SetTerrainCameraMovementDelta", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("delta", ID_TYPE_NUM); +embed_function("SetTerrainCameraRotationDelta", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("delta", ID_TYPE_NUM); +embed_function("SetTerrainPatchLOD", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("patchX", ID_TYPE_NUM); +add_embedded_arg("patchZ", ID_TYPE_NUM); +add_embedded_arg("LOD", ID_TYPE_NUM); +embed_function("setWaterWindForce", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("f", ID_TYPE_NUM); +embed_function("getWaterWindForce", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("setWaterWaveHeight", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("h", ID_TYPE_NUM); +embed_function("getWaterWaveHeight", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("setWaterWindDirection", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("z", ID_TYPE_NUM); +embed_function("getWaterWindDirection", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("z", ID_TYPE_BYREF_NUM); +embed_function("setWaterColor", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("c", ID_TYPE_NUM); +embed_function("getWaterColor", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("setWaterColorBlendFactor", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("cbfactor", ID_TYPE_NUM); +embed_function("getWaterColorBlendFactor", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("SetActorAnimation", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("start_frame", ID_TYPE_NUM); +add_embedded_arg("end_frame", ID_TYPE_NUM); +embed_function("SetActorAnimationSpeed", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("speed", ID_TYPE_NUM); +embed_function("SetActorFrame", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("frame", ID_TYPE_NUM); +embed_function("SetActorMD2Animation", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("anim", ID_TYPE_NUM); +embed_function("SetActorMD2AnimationByName", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("anim_name$", ID_TYPE_STR); +embed_function("GetActorAnimationSpeed", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("GetActorEndFrame", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("GetActorCurrentFrame", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("GetActorStartFrame", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("StartActorTransition", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("frame", ID_TYPE_NUM); +add_embedded_arg("transition_time", ID_TYPE_NUM); +embed_function("StopActorTransition", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("ActorIsInTransition", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("GetActorTransitionTime", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("actorAnimationIsLooped", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("loopActorAnimation", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("createMaterial", ID_TYPE_FN_NUM); +embed_function("deleteMaterial", ID_TYPE_SUB); +add_embedded_arg("material_id", ID_TYPE_NUM); +embed_function("setActorMaterial", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("material_num", ID_TYPE_NUM); +add_embedded_arg("material_id", ID_TYPE_NUM); +embed_function("getActorMaterial", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("material_num", ID_TYPE_NUM); +embed_function("copyActorMaterial", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("material_num", ID_TYPE_NUM); +embed_function("copyMaterial", ID_TYPE_FN_NUM); +add_embedded_arg("smaterial_id", ID_TYPE_NUM); +embed_function("setMaterialTextureCanvas", ID_TYPE_SUB); +add_embedded_arg("material_id", ID_TYPE_NUM); +add_embedded_arg("level", ID_TYPE_NUM); +add_embedded_arg("canvas_id", ID_TYPE_NUM); +embed_function("setMaterialAmbientColor", ID_TYPE_SUB); +add_embedded_arg("material_id", ID_TYPE_NUM); +add_embedded_arg("color", ID_TYPE_NUM); +embed_function("getMaterialAmbientColor", ID_TYPE_FN_NUM); +add_embedded_arg("material_id", ID_TYPE_NUM); +embed_function("setMaterialAntiAliasing", ID_TYPE_SUB); +add_embedded_arg("material_id", ID_TYPE_NUM); +add_embedded_arg("aa", ID_TYPE_NUM); +embed_function("getMaterialAntiAliasing", ID_TYPE_FN_NUM); +add_embedded_arg("material_id", ID_TYPE_NUM); +embed_function("setMaterialBackfaceCulling", ID_TYPE_SUB); +add_embedded_arg("material_id", ID_TYPE_NUM); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("getMaterialBackfaceCulling", ID_TYPE_FN_NUM); +add_embedded_arg("material_id", ID_TYPE_NUM); +embed_function("setMaterialBlendFactor", ID_TYPE_SUB); +add_embedded_arg("material_id", ID_TYPE_NUM); +add_embedded_arg("bf", ID_TYPE_NUM); +embed_function("getMaterialBlendFactor", ID_TYPE_FN_NUM); +add_embedded_arg("material_id", ID_TYPE_NUM); +embed_function("setMaterialBlendMode", ID_TYPE_SUB); +add_embedded_arg("material_id", ID_TYPE_NUM); +add_embedded_arg("blend_mode", ID_TYPE_NUM); +embed_function("getMaterialBlendMode", ID_TYPE_FN_NUM); +add_embedded_arg("material_id", ID_TYPE_NUM); +embed_function("setMaterialColorMask", ID_TYPE_SUB); +add_embedded_arg("material_id", ID_TYPE_NUM); +add_embedded_arg("color_mask", ID_TYPE_NUM); +embed_function("getMaterialColorMask", ID_TYPE_FN_NUM); +add_embedded_arg("material_id", ID_TYPE_NUM); +embed_function("setMaterialColorMode", ID_TYPE_SUB); +add_embedded_arg("material_id", ID_TYPE_NUM); +add_embedded_arg("color_mode", ID_TYPE_NUM); +embed_function("getMaterialColorMode", ID_TYPE_FN_NUM); +add_embedded_arg("material_id", ID_TYPE_NUM); +embed_function("setMaterialDiffuseColor", ID_TYPE_SUB); +add_embedded_arg("material_id", ID_TYPE_NUM); +add_embedded_arg("color", ID_TYPE_NUM); +embed_function("getMaterialDiffuseColor", ID_TYPE_FN_NUM); +add_embedded_arg("material_id", ID_TYPE_NUM); +embed_function("setMaterialEmissiveColor", ID_TYPE_SUB); +add_embedded_arg("material_id", ID_TYPE_NUM); +add_embedded_arg("color", ID_TYPE_NUM); +embed_function("getMaterialEmissiveColor", ID_TYPE_FN_NUM); +add_embedded_arg("material_id", ID_TYPE_NUM); +embed_function("setMaterialFog", ID_TYPE_SUB); +add_embedded_arg("material_id", ID_TYPE_NUM); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("getMaterialFog", ID_TYPE_FN_NUM); +add_embedded_arg("material_id", ID_TYPE_NUM); +embed_function("setMaterialFrontfaceCulling", ID_TYPE_SUB); +add_embedded_arg("material_id", ID_TYPE_NUM); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("getMaterialFrontfaceCulling", ID_TYPE_FN_NUM); +add_embedded_arg("material_id", ID_TYPE_NUM); +embed_function("setMaterialGouraudShading", ID_TYPE_SUB); +add_embedded_arg("material_id", ID_TYPE_NUM); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("materialIsGouraudShaded", ID_TYPE_FN_NUM); +add_embedded_arg("material_id", ID_TYPE_NUM); +embed_function("materialIsAplhaBlend", ID_TYPE_FN_NUM); +add_embedded_arg("material_id", ID_TYPE_NUM); +embed_function("materialIsTransparent", ID_TYPE_FN_NUM); +add_embedded_arg("material_id", ID_TYPE_NUM); +embed_function("setMaterialLighting", ID_TYPE_SUB); +add_embedded_arg("material_id", ID_TYPE_NUM); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("materialIsLit", ID_TYPE_FN_NUM); +add_embedded_arg("material_id", ID_TYPE_NUM); +embed_function("setMaterialType", ID_TYPE_SUB); +add_embedded_arg("material_id", ID_TYPE_NUM); +add_embedded_arg("mat_type", ID_TYPE_NUM); +embed_function("getMaterialType", ID_TYPE_FN_NUM); +add_embedded_arg("material_id", ID_TYPE_NUM); +embed_function("setMaterialNormalize", ID_TYPE_SUB); +add_embedded_arg("material_id", ID_TYPE_NUM); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("materialIsNormalized", ID_TYPE_FN_NUM); +add_embedded_arg("material_id", ID_TYPE_NUM); +embed_function("setMaterialPointCloud", ID_TYPE_SUB); +add_embedded_arg("material_id", ID_TYPE_NUM); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("materialIsPointCloud", ID_TYPE_FN_NUM); +add_embedded_arg("material_id", ID_TYPE_NUM); +embed_function("setMaterialFlag", ID_TYPE_SUB); +add_embedded_arg("material_id", ID_TYPE_NUM); +add_embedded_arg("material_flag", ID_TYPE_NUM); +add_embedded_arg("f_value", ID_TYPE_NUM); +embed_function("getMaterialFlag", ID_TYPE_FN_NUM); +add_embedded_arg("material_id", ID_TYPE_NUM); +add_embedded_arg("material_flag", ID_TYPE_NUM); +embed_function("setMaterialTexture", ID_TYPE_SUB); +add_embedded_arg("material_id", ID_TYPE_NUM); +add_embedded_arg("level", ID_TYPE_NUM); +add_embedded_arg("img_id", ID_TYPE_NUM); +embed_function("setMaterialShininess", ID_TYPE_SUB); +add_embedded_arg("material_id", ID_TYPE_NUM); +add_embedded_arg("shininess", ID_TYPE_NUM); +embed_function("getMaterialShininess", ID_TYPE_FN_NUM); +add_embedded_arg("material_id", ID_TYPE_NUM); +embed_function("setMaterialSpecularColor", ID_TYPE_SUB); +add_embedded_arg("material_id", ID_TYPE_NUM); +add_embedded_arg("color", ID_TYPE_NUM); +embed_function("getMaterialSpecularColor", ID_TYPE_FN_NUM); +add_embedded_arg("material_id", ID_TYPE_NUM); +embed_function("setMaterialThickness", ID_TYPE_SUB); +add_embedded_arg("material_id", ID_TYPE_NUM); +add_embedded_arg("thickness", ID_TYPE_NUM); +embed_function("getMaterialThickness", ID_TYPE_FN_NUM); +add_embedded_arg("material_id", ID_TYPE_NUM); +embed_function("setMaterialWireframe", ID_TYPE_SUB); +add_embedded_arg("material_id", ID_TYPE_NUM); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("materialIsWireframe", ID_TYPE_FN_NUM); +add_embedded_arg("material_id", ID_TYPE_NUM); +embed_function("setActorTexture", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("layer", ID_TYPE_NUM); +add_embedded_arg("image_id", ID_TYPE_NUM); +embed_function("getActorMaterialCount", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("setActorMaterialFlag", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("flag", ID_TYPE_NUM); +add_embedded_arg("flag_value", ID_TYPE_NUM); +embed_function("getActorMaterialFlag", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("material", ID_TYPE_NUM); +add_embedded_arg("flag", ID_TYPE_NUM); +embed_function("setActorMaterialType", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("material_type", ID_TYPE_NUM); +embed_function("getActorMaterialType", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("material", ID_TYPE_NUM); diff --git a/rcbasic_build/rcbasic_dev2.txt b/rcbasic_build/rcbasic_dev2.txt index c3f29dd..b71f76b 100644 --- a/rcbasic_build/rcbasic_dev2.txt +++ b/rcbasic_build/rcbasic_dev2.txt @@ -1,1428 +1,2506 @@ -#define FN_FPrint 0 -#define FPRINT_TXT$ str_var[0].sid_value.value[ str_var[0].byref_offset ] +#define FN_Fprint 0 +#define FPRINT_TXT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] #define FN_Input$ 1 -#define INPUT$_PROMPT$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_ArrayDim 2 -#define ARRAYDIM_ID num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_StringArrayDim 3 -#define STRINGARRAYDIM_ID$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_NumberArrayDim 4 -#define NUMBERARRAYDIM_ID num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ArraySize 5 -#define ARRAYSIZE_ID num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define ARRAYSIZE_ARRAY_DIM num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_StringArraySize 6 -#define STRINGARRAYSIZE_ID$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define STRINGARRAYSIZE_ARRAY_DIM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_NumberArraySize 7 -#define NUMBERARRAYSIZE_ID num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define NUMBERARRAYSIZE_ARRAY_DIM num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_Abs 8 -#define ABS_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ACos 9 -#define ACOS_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_AndBit 10 -#define ANDBIT_A num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define ANDBIT_B num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_ASin 11 -#define ASIN_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ATan 12 -#define ATAN_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Bin$ 13 -#define BIN$_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_CInt32 14 -#define CINT32_I num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_CInt64 15 -#define CINT64_I num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Cos 16 -#define COS_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Degrees 17 -#define DEGREES_R num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Exp 18 -#define EXP_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Frac 19 -#define FRAC_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Hex$ 20 -#define HEX$_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_HexVal 21 -#define HEXVAL_N$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_Int 22 -#define INT_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Log 23 -#define LOG_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Max 24 -#define MAX_A num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define MAX_B num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_Min 25 -#define MIN_A num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define MIN_B num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_OrBit 26 -#define ORBIT_A num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define ORBIT_B num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_Radians 27 -#define RADIANS_D num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Randomize 28 -#define RANDOMIZE_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Rand 29 -#define RAND_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Round 30 -#define ROUND_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Sign 31 -#define SIGN_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Sin 32 -#define SIN_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Sqrt 33 -#define SQRT_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Tan 34 -#define TAN_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_XOrBit 35 -#define XORBIT_A num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define XORBIT_B num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_Asc 36 -#define ASC_C$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_Chr$ 37 -#define CHR$_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Insert$ 38 -#define INSERT$_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define INSERT$_TGT$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define INSERT$_POS num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_InStr 39 -#define INSTR_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define INSTR_SUBSTR$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define FN_LCase$ 40 -#define LCASE$_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_Left$ 41 -#define LEFT$_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define LEFT$_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Length 42 -#define LENGTH_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_Len 43 -#define LEN_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_LTrim$ 44 -#define LTRIM$_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_Mid$ 45 -#define MID$_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define MID$_START num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define MID$_N num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_ReplaceSubstr$ 46 -#define REPLACESUBSTR$_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define REPLACESUBSTR$_RPC$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define REPLACESUBSTR$_POS num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Replace$ 47 -#define REPLACE$_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define REPLACE$_TGT$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define REPLACE$_RPC$ str_var[2].sid_value.value[ str_var[2].byref_offset ] -#define FN_Reverse$ 48 -#define REVERSE$_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_Right$ 49 -#define RIGHT$_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define RIGHT$_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_RTrim$ 50 -#define RTRIM$_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_StringFill$ 51 -#define STRINGFILL$_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define STRINGFILL$_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Str$ 52 -#define STR$_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Str_F$ 53 -#define STR_F$_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Str_S$ 54 -#define STR_S$_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Tally 55 -#define TALLY_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define TALLY_SUBSTR$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define FN_Trim$ 56 -#define TRIM$_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_UCase$ 57 -#define UCASE$_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_Val 58 -#define VAL_N$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_Stack_N 59 -#define STACK_N_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Stack_S 60 -#define STACK_S_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Push_N 61 -#define PUSH_N_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Pop_N 62 -#define FN_Push_S 63 -#define PUSH_S_S$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_Pop_S$ 64 -#define FN_Stack_Size_N 65 -#define FN_Stack_Size_S 66 -#define FN_FileOpen 67 -#define FILEOPEN_STREAM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FILEOPEN_FILENAME$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FILEOPEN_MODE num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_FileClose 68 -#define FILECLOSE_STREAM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ReadByte 69 -#define READBYTE_STREAM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_WriteByte 70 -#define WRITEBYTE_STREAM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define WRITEBYTE_BYTE num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_ReadLine$ 71 -#define READLINE$_STREAM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Write 72 -#define WRITE_STREAM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define WRITE_TXT$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_WriteLine 73 -#define WRITELINE_STREAM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define WRITELINE_TXT$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_CopyFile 74 -#define COPYFILE_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define COPYFILE_DST$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define FN_RemoveFile 75 -#define REMOVEFILE_FILENAME$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_FileExists 76 -#define FILEEXISTS_FILENAME$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_MoveFile 77 -#define MOVEFILE_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define MOVEFILE_DST$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define FN_RenameFile 78 -#define RENAMEFILE_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define RENAMEFILE_DST$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define FN_FileLength 79 -#define FILELENGTH_FILENAME$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_Tell 80 -#define TELL_STREAM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Seek 81 -#define SEEK_STREAM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SEEK_POS num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_EOF 82 -#define EOF_STREAM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_FreeFile 83 -#define FN_ChangeDir 84 -#define CHANGEDIR_P$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_DirExists 85 -#define DIREXISTS_P$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_DirFirst$ 86 -#define FN_Dir$ 87 -#define FN_DirNext$ 88 -#define FN_MakeDir 89 -#define MAKEDIR_P$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_RemoveDir 90 -#define REMOVEDIR_P$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_Date$ 91 -#define FN_Easter$ 92 -#define EASTER$_YEAR num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Ticks 93 -#define FN_Time$ 94 -#define FN_Timer 95 -#define FN_Wait 96 -#define WAIT_M_SEC num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_WindowOpen 97 -#define WINDOWOPEN_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define WINDOWOPEN_TITLE$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define WINDOWOPEN_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define WINDOWOPEN_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define WINDOWOPEN_W num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define WINDOWOPEN_H num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define WINDOWOPEN_FLAG num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define WINDOWOPEN_VSYNC num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define FN_WindowClose 98 -#define WINDOWCLOSE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_RaiseWindow 99 -#define RAISEWINDOW_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Window 100 -#define WINDOW_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Update 101 -#define FN_Cls 102 -#define FN_SetClearColor 103 -#define SETCLEARCOLOR_C num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ShowWindow 104 -#define SHOWWINDOW_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_HideWindow 105 -#define HIDEWINDOW_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetWindowTitle 106 -#define SETWINDOWTITLE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETWINDOWTITLE_TITLE$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_WindowTitle$ 107 -#define WINDOWTITLE$_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetWindowPosition 108 -#define SETWINDOWPOSITION_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETWINDOWPOSITION_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SETWINDOWPOSITION_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_GetWindowPosition 109 -#define GETWINDOWPOSITION_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETWINDOWPOSITION_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETWINDOWPOSITION_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_SetWindowSize 110 -#define SETWINDOWSIZE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETWINDOWSIZE_W num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SETWINDOWSIZE_H num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_GetWindowSize 111 -#define GETWINDOWSIZE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETWINDOWSIZE_W num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETWINDOWSIZE_H num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_SetWindowMinSize 112 -#define SETWINDOWMINSIZE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETWINDOWMINSIZE_W num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SETWINDOWMINSIZE_H num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_GetWindowMinSize 113 -#define GETWINDOWMINSIZE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETWINDOWMINSIZE_W num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETWINDOWMINSIZE_H num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_SetWindowMaxSize 114 -#define SETWINDOWMAXSIZE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETWINDOWMAXSIZE_W num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SETWINDOWMAXSIZE_H num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_GetWindowMaxSize 115 -#define GETWINDOWMAXSIZE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETWINDOWMAXSIZE_W num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETWINDOWMAXSIZE_H num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_WindowIsFullscreen 116 -#define WINDOWISFULLSCREEN_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_WindowIsVisible 117 -#define WINDOWISVISIBLE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_WindowIsBordered 118 -#define WINDOWISBORDERED_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_WindowIsResizable 119 -#define WINDOWISRESIZABLE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_WindowIsMinimized 120 -#define WINDOWISMINIMIZED_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_WindowIsMaximized 121 -#define WINDOWISMAXIMIZED_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_WindowHasInputFocus 122 -#define WINDOWHASINPUTFOCUS_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_WindowHasMouseFocus 123 -#define WINDOWHASMOUSEFOCUS_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetWindowFullscreen 124 -#define SETWINDOWFULLSCREEN_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETWINDOWFULLSCREEN_FLAG num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_MaximizeWindow 125 -#define MAXIMIZEWINDOW_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_MinimizeWindow 126 -#define MINIMIZEWINDOW_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetWindowBorder 127 -#define SETWINDOWBORDER_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETWINDOWBORDER_FLAG num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_WindowClip 128 -#define WINDOWCLIP_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define WINDOWCLIP_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define WINDOWCLIP_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define WINDOWCLIP_W num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define WINDOWCLIP_H num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_WindowExists 129 -#define WINDOWEXISTS_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_NumWindows 130 -#define FN_WindowEvent_Close 131 -#define WINDOWEVENT_CLOSE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_WindowEvent_Maximize 132 -#define WINDOWEVENT_MAXIMIZE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_WindowEvent_Minimize 133 -#define WINDOWEVENT_MINIMIZE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ActiveWindow 134 -#define FN_FPS 135 -#define FN_SetWindowIcon 136 -#define SETWINDOWICON_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETWINDOWICON_SLOT num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_CanvasOpen 137 -#define CANVASOPEN_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define CANVASOPEN_W num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define CANVASOPEN_H num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define CANVASOPEN_VIEWPORT_X num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define CANVASOPEN_VIEWPORT_Y num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define CANVASOPEN_VIEWPORT_W num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define CANVASOPEN_VIEWPORT_H num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define CANVASOPEN_MODE num_var[7].nid_value.value[ num_var[7].byref_offset ] -#define FN_CanvasClose 138 -#define CANVASCLOSE_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetCanvasVisible 139 -#define SETCANVASVISIBLE_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETCANVASVISIBLE_FLAG num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_CanvasIsVisible 140 -#define CANVASISVISIBLE_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetCanvasViewport 141 -#define SETCANVASVIEWPORT_CNUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETCANVASVIEWPORT_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SETCANVASVIEWPORT_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define SETCANVASVIEWPORT_W num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define SETCANVASVIEWPORT_H num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_GetCanvasViewport 142 -#define GETCANVASVIEWPORT_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETCANVASVIEWPORT_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETCANVASVIEWPORT_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETCANVASVIEWPORT_W num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define GETCANVASVIEWPORT_H num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_Canvas 143 -#define CANVAS_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetCanvasOffset 144 -#define SETCANVASOFFSET_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETCANVASOFFSET_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SETCANVASOFFSET_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_GetCanvasOffset 145 -#define GETCANVASOFFSET_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETCANVASOFFSET_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETCANVASOFFSET_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_GetCanvasSize 146 -#define GETCANVASSIZE_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETCANVASSIZE_W num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETCANVASSIZE_H num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_ClearCanvas 147 -#define FN_SetCanvasAlpha 148 -#define SETCANVASALPHA_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETCANVASALPHA_A num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_CanvasAlpha 149 -#define CANVASALPHA_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetCanvasBlendMode 150 -#define SETCANVASBLENDMODE_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETCANVASBLENDMODE_BLEND_MODE num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_CanvasBlendMode 151 -#define CANVASBLENDMODE_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetCanvasColorMod 152 -#define SETCANVASCOLORMOD_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETCANVASCOLORMOD_C num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_CanvasColorMod 153 -#define CANVASCOLORMOD_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_CopyCanvas 154 -#define COPYCANVAS_SRC num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define COPYCANVAS_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define COPYCANVAS_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define COPYCANVAS_W num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define COPYCANVAS_H num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define COPYCANVAS_DST num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define COPYCANVAS_DX num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define COPYCANVAS_DY num_var[7].nid_value.value[ num_var[7].byref_offset ] -#define FN_CloneCanvas 155 -#define CLONECANVAS_SRC num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define CLONECANVAS_DST num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_SetCanvasZ 156 -#define SETCANVASZ_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETCANVASZ_Z num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_CanvasZ 157 -#define CANVASZ_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_CanvasClip 158 -#define CANVASCLIP_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define CANVASCLIP_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define CANVASCLIP_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define CANVASCLIP_W num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define CANVASCLIP_H num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define CANVASCLIP_FLAG num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define FN_ActiveCanvas 159 -#define FN_Box 160 -#define BOX_X1 num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define BOX_Y1 num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define BOX_X2 num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define BOX_Y2 num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_BoxFill 161 -#define BOXFILL_X1 num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define BOXFILL_Y1 num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define BOXFILL_X2 num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define BOXFILL_Y2 num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_Circle 162 -#define CIRCLE_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define CIRCLE_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define CIRCLE_RADIUS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_CircleFill 163 -#define CIRCLEFILL_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define CIRCLEFILL_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define CIRCLEFILL_RADIUS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_Ellipse 164 -#define ELLIPSE_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define ELLIPSE_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define ELLIPSE_RX num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define ELLIPSE_RY num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_EllipseFill 165 -#define ELLIPSEFILL_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define ELLIPSEFILL_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define ELLIPSEFILL_RX num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define ELLIPSEFILL_RY num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_FloodFill 166 -#define FLOODFILL_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FLOODFILL_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_GetPixel 167 -#define GETPIXEL_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETPIXEL_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_SetColor 168 -#define SETCOLOR_C num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Line 169 -#define LINE_X1 num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define LINE_Y1 num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define LINE_X2 num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define LINE_Y2 num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_Poly 170 -#define POLY_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define POLY_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define POLY_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_PolyFill 171 -#define POLYFILL_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define POLYFILL_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define POLYFILL_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_Rect 172 -#define RECT_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define RECT_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define RECT_W num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define RECT_H num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_RectFill 173 -#define RECTFILL_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define RECTFILL_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define RECTFILL_W num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define RECTFILL_H num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_RoundRect 174 -#define ROUNDRECT_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define ROUNDRECT_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define ROUNDRECT_W num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define ROUNDRECT_H num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define ROUNDRECT_R num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_RoundRectFill 175 -#define ROUNDRECTFILL_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define ROUNDRECTFILL_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define ROUNDRECTFILL_W num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define ROUNDRECTFILL_H num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define ROUNDRECTFILL_R num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_RGB 176 -#define RGB_R num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define RGB_G num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define RGB_B num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_RGBA 177 -#define RGBA_R num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define RGBA_G num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define RGBA_B num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define RGBA_A num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_PSet 178 -#define PSET_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define PSET_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_LoadImage 179 -#define LOADIMAGE_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define LOADIMAGE_IMG$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_LoadImage_Ex 180 -#define LOADIMAGE_EX_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define LOADIMAGE_EX_IMG$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define LOADIMAGE_EX_COLKEY num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_ImageFromBuffer 181 -#define IMAGEFROMBUFFER_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define IMAGEFROMBUFFER_W num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define IMAGEFROMBUFFER_H num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define IMAGEFROMBUFFER_BUFFER num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_ImageFromBuffer_Ex 182 -#define IMAGEFROMBUFFER_EX_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define IMAGEFROMBUFFER_EX_W num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define IMAGEFROMBUFFER_EX_H num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define IMAGEFROMBUFFER_EX_BUFFER num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define IMAGEFROMBUFFER_EX_COLKEY num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_BufferFromImage 183 -#define BUFFERFROMIMAGE_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define BUFFERFROMIMAGE_BUFFER num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_ImageExists 184 -#define IMAGEEXISTS_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ColorKey 185 -#define COLORKEY_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define COLORKEY_C num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_CopyImage 186 -#define COPYIMAGE_SRC num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define COPYIMAGE_DST num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_DeleteImage 187 -#define DELETEIMAGE_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetImageAlpha 188 -#define SETIMAGEALPHA_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETIMAGEALPHA_A num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_ImageAlpha 189 -#define IMAGEALPHA_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_GetImageSize 190 -#define GETIMAGESIZE_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETIMAGESIZE_W num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETIMAGESIZE_H num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_SetImageBlendMode 191 -#define SETIMAGEBLENDMODE_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETIMAGEBLENDMODE_BLEND_MODE num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_ImageBlendMode 192 -#define IMAGEBLENDMODE_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetImageColorMod 193 -#define SETIMAGECOLORMOD_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETIMAGECOLORMOD_C num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_ImageColorMod 194 -#define IMAGECOLORMOD_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_DrawImage 195 -#define DRAWIMAGE_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWIMAGE_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DRAWIMAGE_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_DrawImage_Blit 196 -#define DRAWIMAGE_BLIT_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWIMAGE_BLIT_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DRAWIMAGE_BLIT_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DRAWIMAGE_BLIT_SRC_X num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define DRAWIMAGE_BLIT_SRC_Y num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define DRAWIMAGE_BLIT_SRC_W num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define DRAWIMAGE_BLIT_SRC_H num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define FN_DrawImage_Blit_Ex 197 -#define DRAWIMAGE_BLIT_EX_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWIMAGE_BLIT_EX_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DRAWIMAGE_BLIT_EX_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DRAWIMAGE_BLIT_EX_W num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define DRAWIMAGE_BLIT_EX_H num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define DRAWIMAGE_BLIT_EX_SRC_X num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define DRAWIMAGE_BLIT_EX_SRC_Y num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define DRAWIMAGE_BLIT_EX_SRC_W num_var[7].nid_value.value[ num_var[7].byref_offset ] -#define DRAWIMAGE_BLIT_EX_SRC_H num_var[8].nid_value.value[ num_var[8].byref_offset ] -#define FN_DrawImage_Rotate 198 -#define DRAWIMAGE_ROTATE_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWIMAGE_ROTATE_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DRAWIMAGE_ROTATE_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DRAWIMAGE_ROTATE_ANGLE num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_DrawImage_Rotate_Ex 199 -#define DRAWIMAGE_ROTATE_EX_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWIMAGE_ROTATE_EX_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DRAWIMAGE_ROTATE_EX_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DRAWIMAGE_ROTATE_EX_SRC_X num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define DRAWIMAGE_ROTATE_EX_SRC_Y num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define DRAWIMAGE_ROTATE_EX_SRC_W num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define DRAWIMAGE_ROTATE_EX_SRC_H num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define DRAWIMAGE_ROTATE_EX_ANGLE num_var[7].nid_value.value[ num_var[7].byref_offset ] -#define FN_DrawImage_Zoom 200 -#define DRAWIMAGE_ZOOM_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWIMAGE_ZOOM_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DRAWIMAGE_ZOOM_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DRAWIMAGE_ZOOM_ZX num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define DRAWIMAGE_ZOOM_ZY num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_DrawImage_Zoom_Ex 201 -#define DRAWIMAGE_ZOOM_EX_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWIMAGE_ZOOM_EX_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DRAWIMAGE_ZOOM_EX_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DRAWIMAGE_ZOOM_EX_SRC_X num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define DRAWIMAGE_ZOOM_EX_SRC_Y num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define DRAWIMAGE_ZOOM_EX_SRC_W num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define DRAWIMAGE_ZOOM_EX_SRC_H num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define DRAWIMAGE_ZOOM_EX_ZX num_var[7].nid_value.value[ num_var[7].byref_offset ] -#define DRAWIMAGE_ZOOM_EX_ZY num_var[8].nid_value.value[ num_var[8].byref_offset ] -#define FN_DrawImage_Rotozoom 202 -#define DRAWIMAGE_ROTOZOOM_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWIMAGE_ROTOZOOM_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DRAWIMAGE_ROTOZOOM_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DRAWIMAGE_ROTOZOOM_ANGLE num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define DRAWIMAGE_ROTOZOOM_ZX num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define DRAWIMAGE_ROTOZOOM_ZY num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define FN_DrawImage_Rotozoom_Ex 203 -#define DRAWIMAGE_ROTOZOOM_EX_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWIMAGE_ROTOZOOM_EX_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DRAWIMAGE_ROTOZOOM_EX_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DRAWIMAGE_ROTOZOOM_EX_SRC_X num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define DRAWIMAGE_ROTOZOOM_EX_SRC_Y num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define DRAWIMAGE_ROTOZOOM_EX_SRC_W num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define DRAWIMAGE_ROTOZOOM_EX_SRC_H num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define DRAWIMAGE_ROTOZOOM_EX_ANGLE num_var[7].nid_value.value[ num_var[7].byref_offset ] -#define DRAWIMAGE_ROTOZOOM_EX_ZX num_var[8].nid_value.value[ num_var[8].byref_offset ] -#define DRAWIMAGE_ROTOZOOM_EX_ZY num_var[9].nid_value.value[ num_var[9].byref_offset ] -#define FN_DrawImage_Flip 204 -#define DRAWIMAGE_FLIP_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWIMAGE_FLIP_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DRAWIMAGE_FLIP_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DRAWIMAGE_FLIP_H num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define DRAWIMAGE_FLIP_V num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_DrawImage_Flip_Ex 205 -#define DRAWIMAGE_FLIP_EX_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWIMAGE_FLIP_EX_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DRAWIMAGE_FLIP_EX_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DRAWIMAGE_FLIP_EX_SRC_X num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define DRAWIMAGE_FLIP_EX_SRC_Y num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define DRAWIMAGE_FLIP_EX_SRC_W num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define DRAWIMAGE_FLIP_EX_SRC_H num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define DRAWIMAGE_FLIP_EX_H num_var[7].nid_value.value[ num_var[7].byref_offset ] -#define DRAWIMAGE_FLIP_EX_V num_var[8].nid_value.value[ num_var[8].byref_offset ] -#define FN_InKey 206 -#define FN_Key 207 -#define KEY_KEY_CODE num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_WaitKey 208 -#define FN_HideMouse 209 -#define FN_ShowMouse 210 -#define FN_MouseIsVisible 211 -#define FN_GetMouse 212 -#define GETMOUSE_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETMOUSE_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETMOUSE_MB1 num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETMOUSE_MB2 num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define GETMOUSE_MB3 num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_MouseX 213 -#define FN_MouseY 214 -#define FN_MouseButton 215 -#define MOUSEBUTTON_MB num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_GetMouseWheel 216 -#define GETMOUSEWHEEL_X_AXIS num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETMOUSEWHEEL_Y_AXIS num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_MouseWheelX 217 -#define FN_MouseWheelY 218 -#define FN_SoundFromBuffer 219 -#define SOUNDFROMBUFFER_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SOUNDFROMBUFFER_BUFFER num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SOUNDFROMBUFFER_BUFFER_SIZE num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define SOUNDFROMBUFFER_VOL num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_LoadSound 220 -#define LOADSOUND_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define LOADSOUND_SND_FILE$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_LoadMusic 221 -#define LOADMUSIC_MUSIC_FILE$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_PlaySound 222 -#define PLAYSOUND_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define PLAYSOUND_CHANNEL num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define PLAYSOUND_LOOPS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_PlaySoundTimed 223 -#define PLAYSOUNDTIMED_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define PLAYSOUNDTIMED_CHANNEL num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define PLAYSOUNDTIMED_LOOPS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define PLAYSOUNDTIMED_MS num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_PlayMusic 224 -#define PLAYMUSIC_MLOOPS num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_PauseSound 225 -#define PAUSESOUND_CHANNEL num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ResumeSound 226 -#define RESUMESOUND_CHANNEL num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_PauseMusic 227 -#define FN_ResumeMusic 228 -#define FN_DeleteSound 229 -#define DELETESOUND_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_DeleteMusic 230 -#define FN_FadeMusicIn 231 -#define FADEMUSICIN_FADE_TIME num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FADEMUSICIN_LOOPS num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_FadeMusicOut 232 -#define FADEMUSICOUT_FADE_TIME num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_MusicExists 233 -#define FN_SetMusicVolume 234 -#define SETMUSICVOLUME_VOL num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_MusicVolume 235 -#define FN_SetMusicPosition 236 -#define SETMUSICPOSITION_POS num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_MusicPosition 237 -#define FN_RewindMusic 238 -#define FN_SetSoundChannels 239 -#define SETSOUNDCHANNELS_MAX_CHANNELS num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_NumSoundChannels 240 -#define FN_SoundIsEnabled 241 -#define FN_SoundExists 242 -#define SOUNDEXISTS_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetChannelVolume 243 -#define SETCHANNELVOLUME_CHANNEL num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETCHANNELVOLUME_VOL num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_ChannelVolume 244 -#define CHANNELVOLUME_CHANNEL num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetSoundVolume 245 -#define SETSOUNDVOLUME_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETSOUNDVOLUME_VOL num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_SoundVolume 246 -#define SOUNDVOLUME_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_StopMusic 247 -#define FN_StopSound 248 -#define STOPSOUND_CHANNEL num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetChannelPanning 249 -#define SETCHANNELPANNING_CHANNEL num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETCHANNELPANNING_LEFT_VALUE num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SETCHANNELPANNING_RIGHT_VALUE num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_SetChannelDistance 250 -#define SETCHANNELDISTANCE_CHANNEL num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETCHANNELDISTANCE_DIST_VALUE num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_ChannelIsPlaying 251 -#define CHANNELISPLAYING_CHANNEL num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ChannelIsPaused 252 -#define CHANNELISPAUSED_CHANNEL num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_NumJoysticks 253 -#define FN_NumJoyAxes 254 -#define NUMJOYAXES_JOY_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_NumJoyButtons 255 -#define NUMJOYBUTTONS_JOY_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_NumJoyHats 256 -#define NUMJOYHATS_JOY_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_NumJoyTrackBalls 257 -#define NUMJOYTRACKBALLS_JOY_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_JoyAxis 258 -#define JOYAXIS_JOY_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define JOYAXIS_JOY_AXIS num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_JoyButton 259 -#define JOYBUTTON_JOY_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define JOYBUTTON_JOY_BUTTON num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_JoyHat 260 -#define JOYHAT_JOY_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define JOYHAT_JOY_HAT num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_GetJoyTrackBall 261 -#define GETJOYTRACKBALL_JOY_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETJOYTRACKBALL_BALL num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETJOYTRACKBALL_DX num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETJOYTRACKBALL_DY num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_JoyName$ 262 -#define JOYNAME$_JOY_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_JoystickIsConnected 263 -#define JOYSTICKISCONNECTED_JOY_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_GetCursor 264 -#define GETCURSOR_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETCURSOR_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_PrintS 265 -#define PRINTS_TXT$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_InputS$ 266 -#define INPUTS$_PROMPT$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_ZoneInputS$ 267 -#define ZONEINPUTS$_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define ZONEINPUTS$_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define ZONEINPUTS$_W num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define ZONEINPUTS$_H num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_Locate 268 -#define LOCATE_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define LOCATE_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_ReadInput_Start 269 -#define FN_ReadInput_Stop 270 -#define FN_ReadInput_Text$ 271 -#define FN_ReadInput_SetText 272 -#define READINPUT_SETTEXT_TXT$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_ReadInput_ToggleBackspace 273 -#define READINPUT_TOGGLEBACKSPACE_FLAG num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_LoadFont 274 -#define LOADFONT_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define LOADFONT_FNT_FILE$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define LOADFONT_SIZE num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_DeleteFont 275 -#define DELETEFONT_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_FontIsLoaded 276 -#define FONTISLOADED_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Font 277 -#define FONT_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetFontStyle 278 -#define SETFONTSTYLE_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETFONTSTYLE_STYLE num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_DrawText 279 -#define DRAWTEXT_TXT$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define DRAWTEXT_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWTEXT_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_DrawText_Shaded 280 -#define DRAWTEXT_SHADED_TXT$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define DRAWTEXT_SHADED_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWTEXT_SHADED_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DRAWTEXT_SHADED_FG_COLOR num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DRAWTEXT_SHADED_BG_COLOR num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_DrawText_Blended 281 -#define DRAWTEXT_BLENDED_TXT$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define DRAWTEXT_BLENDED_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWTEXT_BLENDED_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_RenderText 282 -#define RENDERTEXT_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define RENDERTEXT_TXT$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_GetTextSize 283 -#define GETTEXTSIZE_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETTEXTSIZE_TXT$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define GETTEXTSIZE_W num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETTEXTSIZE_H num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_TouchPressure 284 -#define FN_GetTouch 285 -#define GETTOUCH_STATUS num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETTOUCH_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETTOUCH_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETTOUCH_DX num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define GETTOUCH_DY num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_GetMultiTouch 286 -#define GETMULTITOUCH_STATUS num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETMULTITOUCH_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETMULTITOUCH_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETMULTITOUCH_FINGERS num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define GETMULTITOUCH_DIST num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define GETMULTITOUCH_THETA num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define FN_GetTouchFinger 287 -#define GETTOUCHFINGER_FINGER num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETTOUCHFINGER_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETTOUCHFINGER_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETTOUCHFINGER_PRESSURE num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_NumFingers 288 -#define FN_CheckSockets 289 -#define CHECKSOCKETS_TIMEOUT_MS num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_TCP_SocketReady 290 -#define TCP_SOCKETREADY_SOCKET num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_UDP_SocketReady 291 -#define UDP_SOCKETREADY_SOCKET num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_TCP_SocketOpen 292 -#define TCP_SOCKETOPEN_SOCKET num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define TCP_SOCKETOPEN_HOST$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define TCP_SOCKETOPEN_PORT num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_TCP_SocketClose 293 -#define TCP_SOCKETCLOSE_SOCKET num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_TCP_RemoteHost 294 -#define TCP_REMOTEHOST_SOCKET num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_TCP_RemotePort 295 -#define TCP_REMOTEPORT_SOCKET num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_TCP_GetData 296 -#define TCP_GETDATA_SOCKET num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define TCP_GETDATA_SDATA$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define TCP_GETDATA_NUMBYTES num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_TCP_SendData 297 -#define TCP_SENDDATA_SOCKET num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define TCP_SENDDATA_SDATA$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_TCP_AcceptSocket 298 -#define TCP_ACCEPTSOCKET_SERVER num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define TCP_ACCEPTSOCKET_CLIENT num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_UDP_SocketOpen 299 -#define UDP_SOCKETOPEN_SOCKET num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define UDP_SOCKETOPEN_PORT num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_UDP_SocketClose 300 -#define UDP_SOCKETCLOSE_SOCKET num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_UDP_GetData 301 -#define UDP_GETDATA_SOCKET num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define UDP_GETDATA_SDATA$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define UDP_GETDATA_HOST$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define UDP_GETDATA_PORT num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_UDP_Length 302 -#define FN_UDP_MaxLength 303 -#define FN_UDP_RemoteHost$ 304 -#define UDP_REMOTEHOST$_SOCKET num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_UDP_RemotePort 305 -#define UDP_REMOTEPORT_SOCKET num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_UDP_SendData 306 -#define UDP_SENDDATA_SOCKET num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define UDP_SENDDATA_SDATA$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define UDP_SENDDATA_HOST$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define UDP_SENDDATA_PORT num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_LoadVideo 307 -#define LOADVIDEO_VID$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_PlayVideo 308 -#define PLAYVIDEO_VLOOPS num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_PauseVideo 309 -#define FN_StopVideo 310 -#define FN_SetVideoPosition 311 -#define SETVIDEOPOSITION_POS num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ResumeVideo 312 -#define FN_VideoPosition 313 -#define FN_DeleteVideo 314 -#define FN_VideoIsPlaying 315 -#define FN_VideoEnd 316 -#define FN_GetVideoStats 317 -#define GETVIDEOSTATS_VFILE$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define GETVIDEOSTATS_VLEN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETVIDEOSTATS_VFPS num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETVIDEOSTATS_FRAME_W num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETVIDEOSTATS_FRAME_H num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_SetVideoDrawRect 318 -#define SETVIDEODRAWRECT_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETVIDEODRAWRECT_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SETVIDEODRAWRECT_W num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define SETVIDEODRAWRECT_H num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_GetVideoDrawRect 319 -#define GETVIDEODRAWRECT_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETVIDEODRAWRECT_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETVIDEODRAWRECT_W num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETVIDEODRAWRECT_H num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_GetVideoSize 320 -#define GETVIDEOSIZE_W num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETVIDEOSIZE_H num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_VideoExists 321 -#define FN_SetVideoAlpha 322 -#define SETVIDEOALPHA_A num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_System 323 -#define SYSTEM_CMD$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_OS$ 324 -#define FN_Command$ 325 -#define COMMAND$_ARG num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_NumCommands 326 -#define FN_Env$ 327 -#define ENV$_V$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_SetEnv 328 -#define SETENV_VAR$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define SETENV_VALUE$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define SETENV_OVERWRITE num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_PrefPath$ 329 -#define PREFPATH$_ORG_NAME$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define PREFPATH$_APP_NAME$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define FN_Android_GetExternalStoragePath$ 330 -#define FN_Android_GetExternalStorageState 331 -#define FN_Android_GetInternalStoragePath$ 332 -#define FN_Android_JNI_Message$ 333 -#define ANDROID_JNI_MESSAGE$_ARG$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_Runtime_Utility_Message$ 334 -#define RUNTIME_UTILITY_MESSAGE$_ARG$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_ClipboardText$ 335 -#define FN_SetClipboardText 336 -#define SETCLIPBOARDTEXT_TXT$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_HasClipboardText 337 -#define FN_GetDesktopDisplayMode 338 -#define GETDESKTOPDISPLAYMODE_INDEX num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETDESKTOPDISPLAYMODE_W num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETDESKTOPDISPLAYMODE_H num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETDESKTOPDISPLAYMODE_FREQ num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_DrawImage_Transform 339 -#define DRAWIMAGE_TRANSFORM_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWIMAGE_TRANSFORM_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DRAWIMAGE_TRANSFORM_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DRAWIMAGE_TRANSFORM_W num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define DRAWIMAGE_TRANSFORM_H num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define DRAWIMAGE_TRANSFORM_SRC_X num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define DRAWIMAGE_TRANSFORM_SRC_Y num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define DRAWIMAGE_TRANSFORM_SRC_W num_var[7].nid_value.value[ num_var[7].byref_offset ] -#define DRAWIMAGE_TRANSFORM_SRC_H num_var[8].nid_value.value[ num_var[8].byref_offset ] -#define DRAWIMAGE_TRANSFORM_ANGLE num_var[9].nid_value.value[ num_var[9].byref_offset ] -#define DRAWIMAGE_TRANSFORM_CENTER_X num_var[10].nid_value.value[ num_var[10].byref_offset ] -#define DRAWIMAGE_TRANSFORM_CENTER_Y num_var[11].nid_value.value[ num_var[11].byref_offset ] -#define DRAWIMAGE_TRANSFORM_FLIP_H num_var[12].nid_value.value[ num_var[12].byref_offset ] -#define DRAWIMAGE_TRANSFORM_FLIP_V num_var[13].nid_value.value[ num_var[13].byref_offset ] -#define FN_GetPowerInfo 340 -#define GETPOWERINFO_STATUS num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETPOWERINFO_SECS num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETPOWERINFO_PCT num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_SystemRam 341 -#define FN_SetRenderScaleQuality 342 -#define SETRENDERSCALEQUALITY_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_EvalJS$ 343 -#define EVALJS$_JS_CODE$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_GetRenderScaleQuality 344 -#define FN_GetGlobalMouse 345 -#define GETGLOBALMOUSE_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETGLOBALMOUSE_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETGLOBALMOUSE_MB1 num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETGLOBALMOUSE_MB2 num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define GETGLOBALMOUSE_MB3 num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_GlobalMouseX 346 -#define FN_GlobalMouseY 347 -#define FN_GetAccel 348 -#define GETACCEL_ACCEL_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETACCEL_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETACCEL_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETACCEL_Z num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_AccelName$ 349 -#define ACCELNAME$_ACCEL_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_NumAccels 350 -#define FN_GetGyro 351 -#define GETGYRO_GYRO_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETGYRO_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETGYRO_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETGYRO_Z num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_GyroName$ 352 -#define GYRONAME$_GYRO_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_NumGyros 353 -#define FN_JoyRumblePlay 354 -#define JOYRUMBLEPLAY_JOY_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define JOYRUMBLEPLAY_STRENGTH num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define JOYRUMBLEPLAY_DURATION num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_JoyRumbleStop 355 -#define JOYRUMBLESTOP_JOY_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_JoystickIsHaptic 356 -#define JOYSTICKISHAPTIC_JOY_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_WriteByteBuffer 357 -#define WRITEBYTEBUFFER_STREAM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define WRITEBYTEBUFFER_BUF num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define WRITEBYTEBUFFER_BUF_SIZE num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_ReadByteBuffer 358 -#define READBYTEBUFFER_STREAM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define READBYTEBUFFER_BUF num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define READBYTEBUFFER_BUF_SIZE num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_WindowEvent_Resize 359 -#define WINDOWEVENT_RESIZE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetWindowAutoClose 360 -#define SETWINDOWAUTOCLOSE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETWINDOWAUTOCLOSE_EXIT_ON_CLOSE num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_SetWindowResizable 361 -#define SETWINDOWRESIZABLE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETWINDOWRESIZABLE_FLAG num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_SystemReturnStdOut$ 362 -#define SYSTEMRETURNSTDOUT$_CMD$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_WindowMode 363 -#define WINDOWMODE_VISIBLE num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define WINDOWMODE_FULLSCREEN num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define WINDOWMODE_RESIZABLE num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define WINDOWMODE_BORDERLESS num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define WINDOWMODE_HIGHDPI num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_WindowFlags 364 -#define WINDOWFLAGS_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_RestoreWindow 365 -#define RESTOREWINDOW_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_UpdateAllWindows 366 -#define FN_QueryAudioSpec 367 -#define QUERYAUDIOSPEC_FREQ num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define QUERYAUDIOSPEC_FORMAT num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define QUERYAUDIOSPEC_CHANNELS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_MusicIsPlaying 368 -#define FN_DrawGeometry 369 -#define DRAWGEOMETRY_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWGEOMETRY_NUM_VERTICES num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DRAWGEOMETRY_VERTICES num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DRAWGEOMETRY_NUM_INDICES num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define DRAWGEOMETRY_INDICES num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_Size 370 -#define SIZE_S$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_BufferFromString 371 -#define BUFFERFROMSTRING_S$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define BUFFERFROMSTRING_BUFFER num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_StringFromBuffer$ 372 -#define STRINGFROMBUFFER$_BUFFER num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define STRINGFROMBUFFER$_BUFFER_SIZE num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_GrabInput 373 -#define GRABINPUT_FLAG num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_GrabbedWindow 374 -#define FN_WarpMouse 375 -#define WARPMOUSE_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define WARPMOUSE_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_WarpMouseGlobal 376 -#define WARPMOUSEGLOBAL_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define WARPMOUSEGLOBAL_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_SetMouseZone 377 -#define SETMOUSEZONE_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETMOUSEZONE_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SETMOUSEZONE_W num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define SETMOUSEZONE_H num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_ClearMouseZone 378 -#define FN_SetWindowAlwaysOnTop 379 -#define SETWINDOWALWAYSONTOP_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETWINDOWALWAYSONTOP_FLAG num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_SetMouseRelative 380 -#define SETMOUSERELATIVE_FLAG num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetWindowVSync 381 -#define SETWINDOWVSYNC_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETWINDOWVSYNC_FLAG num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_OpenURL 382 -#define OPENURL_URL$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_APIVersion$ 383 -#define FN_FlashWindow 384 -#define FLASHWINDOW_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_MessageBox 385 -#define MESSAGEBOX_TITLE$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define MESSAGEBOX_MSG$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define FN_NumberArrayCopy 386 -#define NUMBERARRAYCOPY_SRC num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define NUMBERARRAYCOPY_DST num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_StringArrayCopy 387 -#define STRINGARRAYCOPY_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define STRINGARRAYCOPY_DST$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define FN_ArrayCopy 388 -#define ARRAYCOPY_SRC num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define ARRAYCOPY_DST num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_NumberArrayFill 389 -#define NUMBERARRAYFILL_SRC num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define NUMBERARRAYFILL_FDATA num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_StringArrayFill 390 -#define STRINGARRAYFILL_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define STRINGARRAYFILL_FDATA$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define FN_ArrayFill 391 -#define ARRAYFILL_SRC num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define ARRAYFILL_FDATA num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_Runtime$ 392 -#define FN_DimMatrix 393 -#define DIMMATRIX_M num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DIMMATRIX_M_ROWS num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DIMMATRIX_M_COLS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DIMMATRIX_PRESERVE_FLAG num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_AddMatrix 394 -#define ADDMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define ADDMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define ADDMATRIX_MC num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_AugmentMatrix 395 -#define AUGMENTMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define AUGMENTMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define AUGMENTMATRIX_MC num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_CopyMatrix 396 -#define COPYMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define COPYMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_InsertMatrixColumns 397 -#define INSERTMATRIXCOLUMNS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define INSERTMATRIXCOLUMNS_C num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define INSERTMATRIXCOLUMNS_NUM_COLS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_InsertMatrixRows 398 -#define INSERTMATRIXROWS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define INSERTMATRIXROWS_R num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define INSERTMATRIXROWS_NUM_ROWS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_MultiplyMatrix 399 -#define MULTIPLYMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define MULTIPLYMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define MULTIPLYMATRIX_MC num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_CubeMatrix 400 -#define CUBEMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define CUBEMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_DeleteMatrixColumns 401 -#define DELETEMATRIXCOLUMNS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DELETEMATRIXCOLUMNS_C num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DELETEMATRIXCOLUMNS_NUM_COLS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_DeleteMatrixRows 402 -#define DELETEMATRIXROWS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DELETEMATRIXROWS_R num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DELETEMATRIXROWS_NUM_ROWS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_ClearMatrix 403 -#define CLEARMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ClearMatrixColumns 404 -#define CLEARMATRIXCOLUMNS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define CLEARMATRIXCOLUMNS_C num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define CLEARMATRIXCOLUMNS_NUM_COLS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_ClearMatrixRows 405 -#define CLEARMATRIXROWS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define CLEARMATRIXROWS_R num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define CLEARMATRIXROWS_NUM_ROWS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_FillMatrix 406 -#define FILLMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FILLMATRIX_V num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_FillMatrixColumns 407 -#define FILLMATRIXCOLUMNS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FILLMATRIXCOLUMNS_C num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FILLMATRIXCOLUMNS_NUM_COLS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FILLMATRIXCOLUMNS_V num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_FillMatrixRows 408 -#define FILLMATRIXROWS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FILLMATRIXROWS_R num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FILLMATRIXROWS_NUM_ROWS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FILLMATRIXROWS_V num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_CopyMatrixColumns 409 -#define COPYMATRIXCOLUMNS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define COPYMATRIXCOLUMNS_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define COPYMATRIXCOLUMNS_C num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define COPYMATRIXCOLUMNS_NUM_COLS num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_CopyMatrixRows 410 -#define COPYMATRIXROWS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define COPYMATRIXROWS_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define COPYMATRIXROWS_R num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define COPYMATRIXROWS_NUM_ROWS num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_IdentityMatrix 411 -#define IDENTITYMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define IDENTITYMATRIX_N num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_SolveMatrix 412 -#define SOLVEMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SOLVEMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SOLVEMATRIX_MC num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_IsEqualMatrix 413 -#define ISEQUALMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define ISEQUALMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define ISEQUALMATRIX_TOLERANCE num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_Determinant 414 -#define DETERMINANT_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_AdjointMatrix 415 -#define ADJOINTMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define ADJOINTMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_InvertMatrix 416 -#define INVERTMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define INVERTMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_MatrixFromBuffer 417 -#define MATRIXFROMBUFFER_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define MATRIXFROMBUFFER_R num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define MATRIXFROMBUFFER_C num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define MATRIXFROMBUFFER_BUFFER num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_GetMatrix 418 -#define GETMATRIX_BUFFER num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETMATRIX_MA num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_RandomizeMatrix 419 -#define RANDOMIZEMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define RANDOMIZEMATRIX_VMIN num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define RANDOMIZEMATRIX_VMAX num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_MatrixValue 420 -#define MATRIXVALUE_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define MATRIXVALUE_R num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define MATRIXVALUE_C num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_SetMatrixValue 421 -#define SETMATRIXVALUE_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETMATRIXVALUE_R num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SETMATRIXVALUE_C num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define SETMATRIXVALUE_V num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_ScalarMatrix 422 -#define SCALARMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SCALARMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SCALARMATRIX_S_VALUE num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_ScalarMatrixColumns 423 -#define SCALARMATRIXCOLUMNS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SCALARMATRIXCOLUMNS_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SCALARMATRIXCOLUMNS_C num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define SCALARMATRIXCOLUMNS_NUM_COLS num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define SCALARMATRIXCOLUMNS_S_VALUE num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_ScalarMatrixRows 424 -#define SCALARMATRIXROWS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SCALARMATRIXROWS_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SCALARMATRIXROWS_R num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define SCALARMATRIXROWS_NUM_ROWS num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define SCALARMATRIXROWS_S_VALUE num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_SquareMatrix 425 -#define SQUAREMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SQUAREMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_SubMatrix 426 -#define SUBMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SUBMATRIX_R num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SUBMATRIX_C num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_SubtractMatrix 427 -#define SUBTRACTMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SUBTRACTMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SUBTRACTMATRIX_MC num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_SwapMatrix 428 -#define SWAPMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SWAPMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_SwapMatrixColumn 429 -#define SWAPMATRIXCOLUMN_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SWAPMATRIXCOLUMN_C1 num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SWAPMATRIXCOLUMN_C2 num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_SwapMatrixRow 430 -#define SWAPMATRIXROW_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SWAPMATRIXROW_R1 num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SWAPMATRIXROW_R2 num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_TransposeMatrix 431 -#define TRANSPOSEMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define TRANSPOSEMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_UnAugmentMatrix 432 -#define UNAUGMENTMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define UNAUGMENTMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define UNAUGMENTMATRIX_MC num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_ZeroMatrix 433 -#define ZEROMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_GetMatrixSize 434 -#define GETMATRIXSIZE_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETMATRIXSIZE_R num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETMATRIXSIZE_C num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_SetMatrixProcess 435 -#define SETMATRIXPROCESS_P_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ProcessOpen 436 -#define PROCESSOPEN_P_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetProcessErrorMode 437 -#define SETPROCESSERRORMODE_P_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETPROCESSERRORMODE_ERROR_MODE num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_ProcessError 438 -#define PROCESSERROR_P_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ProcessWait 439 -#define PROCESSWAIT_P_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ProcessWaitAll 440 -#define FN_ProcessContinue 441 -#define PROCESSCONTINUE_P_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ProcessStop 442 -#define PROCESSSTOP_P_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ProcessClear 443 -#define PROCESSCLEAR_P_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ProcessClose 444 -#define PROCESSCLOSE_P_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ProcessErrorMode 445 -#define PROCESSERRORMODE_P_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ProcessSleep 446 -#define PROCESSSLEEP_P_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define PROCESSSLEEP_MSEC num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_ProcessExists 447 -#define PROCESSEXISTS_P_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ProcessStopAll 448 -#define FN_ProcessContinueAll 449 -#define FN_ProcessQueueSize 450 -#define PROCESSQUEUESIZE_P_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_NumCPUs 451 -#define FN_GetProjectionGeometry 452 -#define GETPROJECTIONGEOMETRY_CAM_DIST num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETPROJECTIONGEOMETRY_MA num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETPROJECTIONGEOMETRY_F_VERTEX_COUNT num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETPROJECTIONGEOMETRY_COLUMNS num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define GETPROJECTIONGEOMETRY_UV num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define GETPROJECTIONGEOMETRY_GRAPH_OFFSET_X num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define GETPROJECTIONGEOMETRY_GRAPH_OFFSET_Y num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define GETPROJECTIONGEOMETRY_V_COLOR num_var[7].nid_value.value[ num_var[7].byref_offset ] -#define GETPROJECTIONGEOMETRY_VERTEX_COUNT num_var[8].nid_value.value[ num_var[8].byref_offset ] -#define GETPROJECTIONGEOMETRY_VERTEX2D num_var[9].nid_value.value[ num_var[9].byref_offset ] -#define GETPROJECTIONGEOMETRY_INDEX_COUNT num_var[10].nid_value.value[ num_var[10].byref_offset ] -#define GETPROJECTIONGEOMETRY_INDEX num_var[11].nid_value.value[ num_var[11].byref_offset ] -#define GETPROJECTIONGEOMETRY_CLIP_DIST num_var[12].nid_value.value[ num_var[12].byref_offset ] -#define GETPROJECTIONGEOMETRY_MIN_X num_var[13].nid_value.value[ num_var[13].byref_offset ] -#define GETPROJECTIONGEOMETRY_MIN_Y num_var[14].nid_value.value[ num_var[14].byref_offset ] -#define GETPROJECTIONGEOMETRY_MAX_X num_var[15].nid_value.value[ num_var[15].byref_offset ] -#define GETPROJECTIONGEOMETRY_MAX_Y num_var[16].nid_value.value[ num_var[16].byref_offset ] -#define FN_CalculateFaceZ 453 -#define CALCULATEFACEZ_CAM_DIST num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define CALCULATEFACEZ_GRAPH_OFFSET_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define CALCULATEFACEZ_GRAPH_OFFSET_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define CALCULATEFACEZ_VIEW_W num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define CALCULATEFACEZ_VIEW_H num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define CALCULATEFACEZ_VIEW_DEPTH num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define CALCULATEFACEZ_MA num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define CALCULATEFACEZ_F_VERTEX_COUNT num_var[7].nid_value.value[ num_var[7].byref_offset ] -#define CALCULATEFACEZ_COLUMNS num_var[8].nid_value.value[ num_var[8].byref_offset ] -#define CALCULATEFACEZ_FACE_MIN_Z num_var[9].nid_value.value[ num_var[9].byref_offset ] -#define CALCULATEFACEZ_FACE_MAX_Z num_var[10].nid_value.value[ num_var[10].byref_offset ] -#define CALCULATEFACEZ_Z_AVG num_var[11].nid_value.value[ num_var[11].byref_offset ] -#define FN_SetChannelSpacePosition 454 -#define SETCHANNELSPACEPOSITION_CHANNEL num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETCHANNELSPACEPOSITION_ANGLE num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SETCHANNELSPACEPOSITION_DISTANCE num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_SaveBMP 455 -#define SAVEBMP_IMG num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SAVEBMP_FILE$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_SavePNG 456 -#define SAVEPNG_IMG num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SAVEPNG_FILE$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_SaveJPG 457 -#define SAVEJPG_IMG num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SAVEJPG_FILE$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_GetLineIntersection 458 -#define GETLINEINTERSECTION_P0_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETLINEINTERSECTION_P0_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETLINEINTERSECTION_P1_X num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETLINEINTERSECTION_P1_Y num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define GETLINEINTERSECTION_P2_X num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define GETLINEINTERSECTION_P2_Y num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define GETLINEINTERSECTION_P3_X num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define GETLINEINTERSECTION_P3_Y num_var[7].nid_value.value[ num_var[7].byref_offset ] -#define GETLINEINTERSECTION_I_X num_var[8].nid_value.value[ num_var[8].byref_offset ] -#define GETLINEINTERSECTION_I_Y num_var[9].nid_value.value[ num_var[9].byref_offset ] -#define FN_Interpolate 459 -#define INTERPOLATE_MIN_A num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define INTERPOLATE_MAX_A num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define INTERPOLATE_MID_A num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define INTERPOLATE_MIN_B num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define INTERPOLATE_MAX_B num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_ATan2 460 -#define ATAN2_Y num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define ATAN2_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_PointInQuad 461 -#define POINTINQUAD_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define POINTINQUAD_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define POINTINQUAD_X1 num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define POINTINQUAD_Y1 num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define POINTINQUAD_X2 num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define POINTINQUAD_Y2 num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define POINTINQUAD_X3 num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define POINTINQUAD_Y3 num_var[7].nid_value.value[ num_var[7].byref_offset ] -#define POINTINQUAD_X4 num_var[8].nid_value.value[ num_var[8].byref_offset ] -#define POINTINQUAD_Y4 num_var[9].nid_value.value[ num_var[9].byref_offset ] -#define FN_PointInTri 462 -#define POINTINTRI_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define POINTINTRI_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define POINTINTRI_X1 num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define POINTINTRI_Y1 num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define POINTINTRI_X2 num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define POINTINTRI_Y2 num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define POINTINTRI_X3 num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define POINTINTRI_Y3 num_var[7].nid_value.value[ num_var[7].byref_offset ] -#define FN_Distance2D 463 -#define DISTANCE2D_X1 num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DISTANCE2D_Y1 num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DISTANCE2D_X2 num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DISTANCE2D_Y2 num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_Distance3D 464 -#define DISTANCE3D_X1 num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DISTANCE3D_Y1 num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DISTANCE3D_Z1 num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DISTANCE3D_X2 num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define DISTANCE3D_Y2 num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define DISTANCE3D_Z2 num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define FN_GetCircleLineIntersection 465 -#define GETCIRCLELINEINTERSECTION_CIRCLE_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETCIRCLELINEINTERSECTION_CIRCLE_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETCIRCLELINEINTERSECTION_RADIUS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETCIRCLELINEINTERSECTION_X1 num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define GETCIRCLELINEINTERSECTION_Y1 num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define GETCIRCLELINEINTERSECTION_X2 num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define GETCIRCLELINEINTERSECTION_Y2 num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define GETCIRCLELINEINTERSECTION_IX1 num_var[7].nid_value.value[ num_var[7].byref_offset ] -#define GETCIRCLELINEINTERSECTION_IY1 num_var[8].nid_value.value[ num_var[8].byref_offset ] -#define GETCIRCLELINEINTERSECTION_IX2 num_var[9].nid_value.value[ num_var[9].byref_offset ] -#define GETCIRCLELINEINTERSECTION_IY2 num_var[10].nid_value.value[ num_var[10].byref_offset ] -#define FN_GetLinePlaneIntersection 466 -#define GETLINEPLANEINTERSECTION_LINE_POINT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETLINEPLANEINTERSECTION_LINE_DIRECTION num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETLINEPLANEINTERSECTION_PLANE_POINT_1 num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETLINEPLANEINTERSECTION_PLANE_POINT_2 num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define GETLINEPLANEINTERSECTION_PLANE_POINT_3 num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define GETLINEPLANEINTERSECTION_INTERSECTION num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define FN_IncrementMatrixRows 467 -#define INCREMENTMATRIXROWS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define INCREMENTMATRIXROWS_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define INCREMENTMATRIXROWS_R num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define INCREMENTMATRIXROWS_NUM_ROWS num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define INCREMENTMATRIXROWS_VALUE num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_IncrementMatrixColumns 468 -#define INCREMENTMATRIXCOLUMNS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define INCREMENTMATRIXCOLUMNS_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define INCREMENTMATRIXCOLUMNS_C num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define INCREMENTMATRIXCOLUMNS_NUM_COLS num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define INCREMENTMATRIXCOLUMNS_VALUE num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_JoinMatrixRows 469 -#define JOINMATRIXROWS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define JOINMATRIXROWS_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define JOINMATRIXROWS_MC num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_JoinMatrixColumns 470 -#define JOINMATRIXCOLUMNS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define JOINMATRIXCOLUMNS_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define JOINMATRIXCOLUMNS_MC num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_TypeArrayDim 471 +#define INPUT$_PROMPT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_tst 2 +#define TST_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_ArrayDim 3 +#define ARRAYDIM_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_StringArrayDim 4 +#define STRINGARRAYDIM_ID$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_NumberArrayDim 5 +#define NUMBERARRAYDIM_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_ArraySize 6 +#define ARRAYSIZE_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ARRAYSIZE_ARRAY_DIM num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_StringArraySize 7 +#define STRINGARRAYSIZE_ID$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define STRINGARRAYSIZE_ARRAY_DIM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_NumberArraySize 8 +#define NUMBERARRAYSIZE_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define NUMBERARRAYSIZE_ARRAY_DIM num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_NumberArrayCopy 9 +#define NUMBERARRAYCOPY_SRC num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define NUMBERARRAYCOPY_DST num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_StringArrayCopy 10 +#define STRINGARRAYCOPY_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define STRINGARRAYCOPY_DST$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define FN_ArrayCopy 11 +#define ARRAYCOPY_SRC num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ARRAYCOPY_DST num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_NumberArrayFill 12 +#define NUMBERARRAYFILL_SRC num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define NUMBERARRAYFILL_FDATA num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_StringArrayFill 13 +#define STRINGARRAYFILL_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define STRINGARRAYFILL_FDATA$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define FN_ArrayFill 14 +#define ARRAYFILL_SRC num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ARRAYFILL_FDATA num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_TypeArrayDim 15 #define TYPEARRAYDIM_ID usr_var[0].var_ref -#define FN_TypeArraySize 472 +#define FN_TypeArraySize 16 #define TYPEARRAYSIZE_ID usr_var[0].var_ref -#define TYPEARRAYSIZE_ARRAY_DIM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_TypeArrayCopy 473 +#define TYPEARRAYSIZE_ARRAY_DIM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_TypeArrayCopy 17 #define TYPEARRAYCOPY_SRC usr_var[0].var_ref #define TYPEARRAYCOPY_DST usr_var[1].var_ref -#define FN_TypeArrayFill 474 +#define FN_TypeArrayFill 18 #define TYPEARRAYFILL_SRC usr_var[0].var_ref #define TYPEARRAYFILL_FDATA usr_var[1].var_ref->uid_value[0] +#define FN_Abs 19 +#define ABS_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Acos 20 +#define ACOS_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_AndBit 21 +#define ANDBIT_A num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ANDBIT_B num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_Asin 22 +#define ASIN_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Atan 23 +#define ATAN_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Bin$ 24 +#define BIN$_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_CInt32 25 +#define CINT32_I num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_CInt64 26 +#define CINT64_I num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Cos 27 +#define COS_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Degrees 28 +#define DEGREES_R num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Exp 29 +#define EXP_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Frac 30 +#define FRAC_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Hex$ 31 +#define HEX$_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_HexVal 32 +#define HEXVAL_N$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_Int 33 +#define INT_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Log 34 +#define LOG_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Max 35 +#define MAX_A num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define MAX_B num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_Min 36 +#define MIN_A num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define MIN_B num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_OrBit 37 +#define ORBIT_A num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ORBIT_B num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_Radians 38 +#define RADIANS_D num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Randomize 39 +#define RANDOMIZE_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Rand 40 +#define RAND_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Round 41 +#define ROUND_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Sign 42 +#define SIGN_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Sin 43 +#define SIN_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Sqrt 44 +#define SQRT_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Tan 45 +#define TAN_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_XOrBit 46 +#define XORBIT_A num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define XORBIT_B num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetLineIntersection 47 +#define GETLINEINTERSECTION_P0_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETLINEINTERSECTION_P0_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETLINEINTERSECTION_P1_X num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETLINEINTERSECTION_P1_Y num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETLINEINTERSECTION_P2_X num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define GETLINEINTERSECTION_P2_Y num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define GETLINEINTERSECTION_P3_X num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define GETLINEINTERSECTION_P3_Y num_var[7].nref[0].value[ num_var[7].byref_offset ] +#define GETLINEINTERSECTION_I_X num_var[8].nref[0].value[ num_var[8].byref_offset ] +#define GETLINEINTERSECTION_I_Y num_var[9].nref[0].value[ num_var[9].byref_offset ] +#define FN_Interpolate 48 +#define INTERPOLATE_MIN_A num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define INTERPOLATE_MAX_A num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define INTERPOLATE_MID_A num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define INTERPOLATE_MIN_B num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define INTERPOLATE_MAX_B num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_ATan2 49 +#define ATAN2_Y num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ATAN2_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_PointInQuad 50 +#define POINTINQUAD_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define POINTINQUAD_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define POINTINQUAD_X1 num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define POINTINQUAD_Y1 num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define POINTINQUAD_X2 num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define POINTINQUAD_Y2 num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define POINTINQUAD_X3 num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define POINTINQUAD_Y3 num_var[7].nref[0].value[ num_var[7].byref_offset ] +#define POINTINQUAD_X4 num_var[8].nref[0].value[ num_var[8].byref_offset ] +#define POINTINQUAD_Y4 num_var[9].nref[0].value[ num_var[9].byref_offset ] +#define FN_PointInTri 51 +#define POINTINTRI_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define POINTINTRI_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define POINTINTRI_X1 num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define POINTINTRI_Y1 num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define POINTINTRI_X2 num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define POINTINTRI_Y2 num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define POINTINTRI_X3 num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define POINTINTRI_Y3 num_var[7].nref[0].value[ num_var[7].byref_offset ] +#define FN_Distance2D 52 +#define DISTANCE2D_X1 num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DISTANCE2D_Y1 num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DISTANCE2D_X2 num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define DISTANCE2D_Y2 num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_Distance3D 53 +#define DISTANCE3D_X1 num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DISTANCE3D_Y1 num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DISTANCE3D_Z1 num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define DISTANCE3D_X2 num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define DISTANCE3D_Y2 num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define DISTANCE3D_Z2 num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define FN_GetCircleLineIntersection 54 +#define GETCIRCLELINEINTERSECTION_CIRCLE_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCIRCLELINEINTERSECTION_CIRCLE_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETCIRCLELINEINTERSECTION_RADIUS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETCIRCLELINEINTERSECTION_X1 num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETCIRCLELINEINTERSECTION_Y1 num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define GETCIRCLELINEINTERSECTION_X2 num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define GETCIRCLELINEINTERSECTION_Y2 num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define GETCIRCLELINEINTERSECTION_IX1 num_var[7].nref[0].value[ num_var[7].byref_offset ] +#define GETCIRCLELINEINTERSECTION_IY1 num_var[8].nref[0].value[ num_var[8].byref_offset ] +#define GETCIRCLELINEINTERSECTION_IX2 num_var[9].nref[0].value[ num_var[9].byref_offset ] +#define GETCIRCLELINEINTERSECTION_IY2 num_var[10].nref[0].value[ num_var[10].byref_offset ] +#define FN_GetLinePlaneIntersection 55 +#define GETLINEPLANEINTERSECTION_LINE_POINT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETLINEPLANEINTERSECTION_LINE_DIRECTION num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETLINEPLANEINTERSECTION_PLANE_POINT_1 num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETLINEPLANEINTERSECTION_PLANE_POINT_2 num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETLINEPLANEINTERSECTION_PLANE_POINT_3 num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define GETLINEPLANEINTERSECTION_INTERSECTION num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define FN_Asc 56 +#define ASC_C$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_Chr$ 57 +#define CHR$_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Insert$ 58 +#define INSERT$_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define INSERT$_TGT$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define INSERT$_POS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_InStr 59 +#define INSTR_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define INSTR_SUBSTR$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define FN_Lcase$ 60 +#define LCASE$_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_Left$ 61 +#define LEFT$_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define LEFT$_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Length 62 +#define LENGTH_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_Len 63 +#define LEN_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_Ltrim$ 64 +#define LTRIM$_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_Mid$ 65 +#define MID$_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define MID$_START num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define MID$_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_ReplaceSubstr$ 66 +#define REPLACESUBSTR$_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define REPLACESUBSTR$_RPC$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define REPLACESUBSTR$_POS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Replace$ 67 +#define REPLACE$_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define REPLACE$_TGT$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define REPLACE$_RPC$ str_var[2].sref[0].value[ str_var[2].byref_offset ] +#define FN_Reverse$ 68 +#define REVERSE$_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_Right$ 69 +#define RIGHT$_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define RIGHT$_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Rtrim$ 70 +#define RTRIM$_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_StringFill$ 71 +#define STRINGFILL$_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define STRINGFILL$_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Str$ 72 +#define STR$_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Str_F$ 73 +#define STR_F$_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Str_S$ 74 +#define STR_S$_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Tally 75 +#define TALLY_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define TALLY_SUBSTR$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define FN_Trim$ 76 +#define TRIM$_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_Ucase$ 77 +#define UCASE$_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_Val 78 +#define VAL_N$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_Size 79 +#define SIZE_S$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_BufferFromString 80 +#define BUFFERFROMSTRING_S$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define BUFFERFROMSTRING_BUFFER num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_StringFromBuffer$ 81 +#define STRINGFROMBUFFER$_BUFFER num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define STRINGFROMBUFFER$_BUFFER_SIZE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_CreateStack_N 82 +#define FN_CreateStack_S 83 +#define FN_ClearStack_N 84 +#define CLEARSTACK_N_NUM_STACK num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_ClearStack_S 85 +#define CLEARSTACK_S_STR_STACK num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_DeleteStack_N 86 +#define DELETESTACK_N_NUM_STACK num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_DeleteStack_S 87 +#define DELETESTACK_S_STR_STACK num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Push_N 88 +#define PUSH_N_NUM_STACK num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define PUSH_N_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_Pop_N 89 +#define POP_N_NUM_STACK num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Push_S 90 +#define PUSH_S_STR_STACK num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define PUSH_S_S$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_Pop_S$ 91 +#define POP_S$_STR_STACK num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Stack_Size_N 92 +#define STACK_SIZE_N_NUM_STACK num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Stack_Size_S 93 +#define STACK_SIZE_S_STR_STACK num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_OpenFile 94 +#define OPENFILE_FILENAME$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define OPENFILE_MODE num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_CloseFile 95 +#define CLOSEFILE_STREAM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_ReadByte 96 +#define READBYTE_STREAM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_WriteByte 97 +#define WRITEBYTE_STREAM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define WRITEBYTE_BYTE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_ReadLine$ 98 +#define READLINE$_STREAM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Write 99 +#define WRITE_STREAM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define WRITE_TXT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_WriteLine 100 +#define WRITELINE_STREAM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define WRITELINE_TXT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_CopyFile 101 +#define COPYFILE_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define COPYFILE_DST$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define FN_RemoveFile 102 +#define REMOVEFILE_FILENAME$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_FileExists 103 +#define FILEEXISTS_FILENAME$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_MoveFile 104 +#define MOVEFILE_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define MOVEFILE_DST$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define FN_RenameFile 105 +#define RENAMEFILE_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define RENAMEFILE_DST$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define FN_FileLength 106 +#define FILELENGTH_FILENAME$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_Tell 107 +#define TELL_STREAM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Seek 108 +#define SEEK_STREAM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SEEK_POS num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_EOF 109 +#define EOF_STREAM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_WriteByteBuffer 110 +#define WRITEBYTEBUFFER_STREAM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define WRITEBYTEBUFFER_BUF num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define WRITEBYTEBUFFER_BUF_SIZE num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_ReadByteBuffer 111 +#define READBYTEBUFFER_STREAM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define READBYTEBUFFER_BUF num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define READBYTEBUFFER_BUF_SIZE num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_ChangeDir 112 +#define CHANGEDIR_P$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_DirExists 113 +#define DIREXISTS_P$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_DirFirst$ 114 +#define FN_Dir$ 115 +#define FN_DirNext$ 116 +#define FN_MakeDir 117 +#define MAKEDIR_P$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_RemoveDir 118 +#define REMOVEDIR_P$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_Date$ 119 +#define FN_Easter$ 120 +#define EASTER$_YEAR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Ticks 121 +#define FN_Time$ 122 +#define FN_Timer 123 +#define FN_Wait 124 +#define WAIT_M_SEC num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_OpenWindow 125 +#define OPENWINDOW_TITLE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define OPENWINDOW_W num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define OPENWINDOW_H num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define OPENWINDOW_FULLSCREEN num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define OPENWINDOW_VSYNC num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_OpenWindowEx 126 +#define OPENWINDOWEX_TITLE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define OPENWINDOWEX_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define OPENWINDOWEX_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define OPENWINDOWEX_W num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define OPENWINDOWEX_H num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define OPENWINDOWEX_MODE num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define OPENWINDOWEX_AA num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define OPENWINDOWEX_STENCIL_BUFFER num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define OPENWINDOWEX_VSYNC num_var[7].nref[0].value[ num_var[7].byref_offset ] +#define FN_CloseWindow 127 +#define FN_RaiseWindow 128 +#define FN_Update 129 +#define FN_Cls 130 +#define FN_SetClearColor 131 +#define SETCLEARCOLOR_C num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_ShowWindow 132 +#define FN_HideWindow 133 +#define FN_SetWindowTitle 134 +#define SETWINDOWTITLE_TITLE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_WindowTitle$ 135 +#define FN_SetWindowPosition 136 +#define SETWINDOWPOSITION_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETWINDOWPOSITION_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetWindowPosition 137 +#define GETWINDOWPOSITION_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETWINDOWPOSITION_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetWindowSize 138 +#define SETWINDOWSIZE_W num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETWINDOWSIZE_H num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetWindowSize 139 +#define GETWINDOWSIZE_W num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETWINDOWSIZE_H num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetWindowMinSize 140 +#define SETWINDOWMINSIZE_W num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETWINDOWMINSIZE_H num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetWindowMinSize 141 +#define GETWINDOWMINSIZE_W num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETWINDOWMINSIZE_H num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetWindowMaxSize 142 +#define SETWINDOWMAXSIZE_W num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETWINDOWMAXSIZE_H num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetWindowMaxSize 143 +#define GETWINDOWMAXSIZE_W num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETWINDOWMAXSIZE_H num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_WindowIsFullscreen 144 +#define FN_WindowIsVisible 145 +#define FN_WindowIsBordered 146 +#define FN_WindowIsResizable 147 +#define FN_WindowIsMinimized 148 +#define FN_WindowIsMaximized 149 +#define FN_WindowHasInputFocus 150 +#define FN_WindowHasMouseFocus 151 +#define FN_SetWindowFullscreen 152 +#define SETWINDOWFULLSCREEN_FLAG num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_MaximizeWindow 153 +#define FN_MinimizeWindow 154 +#define FN_SetWindowBordered 155 +#define SETWINDOWBORDERED_FLAG num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_WindowClip 156 +#define WINDOWCLIP_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define WINDOWCLIP_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define WINDOWCLIP_W num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define WINDOWCLIP_H num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_WindowExists 157 +#define FN_WindowEvent_Close 158 +#define FN_WindowEvent_Maximize 159 +#define FN_WindowEvent_Minimize 160 +#define FN_FPS 161 +#define FN_SetWindowIcon 162 +#define SETWINDOWICON_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_WindowEvent_Resize 163 +#define FN_SetWindowAutoClose 164 +#define SETWINDOWAUTOCLOSE_EXIT_ON_CLOSE num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetWindowResizable 165 +#define SETWINDOWRESIZABLE_FLAG num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_WindowMode 166 +#define WINDOWMODE_VISIBLE num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define WINDOWMODE_FULLSCREEN num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define WINDOWMODE_RESIZABLE num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define WINDOWMODE_BORDERLESS num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define WINDOWMODE_HIGHDPI num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_getWindowMode 167 +#define FN_RestoreWindow 168 +#define FN_GrabInput 169 +#define GRABINPUT_FLAG num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetWindowAlwaysOnTop 170 +#define SETWINDOWALWAYSONTOP_FLAG num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetMouseRelative 171 +#define SETMOUSERELATIVE_FLAG num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetWindowVSync 172 +#define SETWINDOWVSYNC_FLAG num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_FlashWindow 173 +#define FLASHWINDOW_FLAG num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_WindowIsGrabbed 174 +#define FN_OpenCanvas 175 +#define OPENCANVAS_W num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define OPENCANVAS_H num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define OPENCANVAS_VIEWPORT_X num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define OPENCANVAS_VIEWPORT_Y num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define OPENCANVAS_VIEWPORT_W num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define OPENCANVAS_VIEWPORT_H num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define OPENCANVAS_MODE num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_CloseCanvas 176 +#define CLOSECANVAS_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetCanvas3D 177 +#define SETCANVAS3D_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCANVAS3D_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetCanvasVisible 178 +#define SETCANVASVISIBLE_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCANVASVISIBLE_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_CanvasIsVisible 179 +#define CANVASISVISIBLE_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetCanvasViewport 180 +#define SETCANVASVIEWPORT_CNUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCANVASVIEWPORT_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETCANVASVIEWPORT_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETCANVASVIEWPORT_W num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define SETCANVASVIEWPORT_H num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_GetCanvasViewport 181 +#define GETCANVASVIEWPORT_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCANVASVIEWPORT_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETCANVASVIEWPORT_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETCANVASVIEWPORT_W num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETCANVASVIEWPORT_H num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_Canvas 182 +#define CANVAS_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetCanvasOffset 183 +#define SETCANVASOFFSET_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCANVASOFFSET_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETCANVASOFFSET_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_GetCanvasOffset 184 +#define GETCANVASOFFSET_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCANVASOFFSET_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETCANVASOFFSET_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_GetCanvasSize 185 +#define GETCANVASSIZE_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCANVASSIZE_W num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETCANVASSIZE_H num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_ClearCanvas 186 +#define FN_SetCanvasAlpha 187 +#define SETCANVASALPHA_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCANVASALPHA_A num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetCanvasAlpha 188 +#define GETCANVASALPHA_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetCanvasColorMod 189 +#define SETCANVASCOLORMOD_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCANVASCOLORMOD_C num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetCanvasColorMod 190 +#define GETCANVASCOLORMOD_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_CloneCanvas 191 +#define CLONECANVAS_SRC num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CLONECANVAS_DST num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetCanvasZ 192 +#define SETCANVASZ_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCANVASZ_Z num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetCanvasZ 193 +#define GETCANVASZ_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_CanvasClip 194 +#define CANVASCLIP_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CANVASCLIP_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CANVASCLIP_W num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define CANVASCLIP_H num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_ActiveCanvas 195 +#define FN_Circle 196 +#define CIRCLE_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CIRCLE_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CIRCLE_RADIUS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_CircleFill 197 +#define CIRCLEFILL_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CIRCLEFILL_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CIRCLEFILL_RADIUS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_Ellipse 198 +#define ELLIPSE_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ELLIPSE_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define ELLIPSE_RX num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define ELLIPSE_RY num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_EllipseFill 199 +#define ELLIPSEFILL_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ELLIPSEFILL_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define ELLIPSEFILL_RX num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define ELLIPSEFILL_RY num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_FloodFill 200 +#define FLOODFILL_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FLOODFILL_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetPixel 201 +#define GETPIXEL_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETPIXEL_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetColor 202 +#define SETCOLOR_C num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Line 203 +#define LINE_X1 num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define LINE_Y1 num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define LINE_X2 num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define LINE_Y2 num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_Poly 204 +#define POLY_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define POLY_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define POLY_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_Rect 205 +#define RECT_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define RECT_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define RECT_W num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define RECT_H num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_RectFill 206 +#define RECTFILL_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define RECTFILL_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define RECTFILL_W num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define RECTFILL_H num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_RGB 207 +#define RGB_R num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define RGB_G num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define RGB_B num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_RGBA 208 +#define RGBA_R num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define RGBA_G num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define RGBA_B num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define RGBA_A num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_Pset 209 +#define PSET_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define PSET_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_LoadImage 210 +#define LOADIMAGE_IMG$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_LoadImageEx 211 +#define LOADIMAGEEX_IMG$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define LOADIMAGEEX_COLKEY num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_createImage 212 +#define CREATEIMAGE_W num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CREATEIMAGE_H num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CREATEIMAGE_BUFFER num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_createImageEx 213 +#define CREATEIMAGEEX_W num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CREATEIMAGEEX_H num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CREATEIMAGEEX_BUFFER num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define CREATEIMAGEEX_COLOR num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getImageBuffer 214 +#define GETIMAGEBUFFER_IMG_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETIMAGEBUFFER_BUFFER num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_ImageExists 215 +#define IMAGEEXISTS_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_ColorKey 216 +#define COLORKEY_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define COLORKEY_C num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setBilinearFilter 217 +#define SETBILINEARFILTER_FLAG num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getBilinearFilter 218 +#define FN_CopyImage 219 +#define COPYIMAGE_IMG_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_DeleteImage 220 +#define DELETEIMAGE_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetImageAlpha 221 +#define SETIMAGEALPHA_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETIMAGEALPHA_A num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetImageAlpha 222 +#define GETIMAGEALPHA_IMG_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetImageSize 223 +#define GETIMAGESIZE_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETIMAGESIZE_W num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETIMAGESIZE_H num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_SetBlendMode 224 +#define SETBLENDMODE_BLEND_MODE num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetBlendMode 225 +#define FN_SetImageColorMod 226 +#define SETIMAGECOLORMOD_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETIMAGECOLORMOD_C num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetImageColorMod 227 +#define GETIMAGECOLORMOD_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_DrawImage 228 +#define DRAWIMAGE_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DRAWIMAGE_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DRAWIMAGE_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_DrawImage_Blit 229 +#define DRAWIMAGE_BLIT_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DRAWIMAGE_BLIT_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DRAWIMAGE_BLIT_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define DRAWIMAGE_BLIT_SRC_X num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define DRAWIMAGE_BLIT_SRC_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define DRAWIMAGE_BLIT_SRC_W num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define DRAWIMAGE_BLIT_SRC_H num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_DrawImage_BlitEx 230 +#define DRAWIMAGE_BLITEX_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DRAWIMAGE_BLITEX_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DRAWIMAGE_BLITEX_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define DRAWIMAGE_BLITEX_W num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define DRAWIMAGE_BLITEX_H num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define DRAWIMAGE_BLITEX_SRC_X num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define DRAWIMAGE_BLITEX_SRC_Y num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define DRAWIMAGE_BLITEX_SRC_W num_var[7].nref[0].value[ num_var[7].byref_offset ] +#define DRAWIMAGE_BLITEX_SRC_H num_var[8].nref[0].value[ num_var[8].byref_offset ] +#define FN_DrawImage_Rotate 231 +#define DRAWIMAGE_ROTATE_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DRAWIMAGE_ROTATE_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DRAWIMAGE_ROTATE_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define DRAWIMAGE_ROTATE_ANGLE num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_DrawImage_RotateEx 232 +#define DRAWIMAGE_ROTATEEX_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DRAWIMAGE_ROTATEEX_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DRAWIMAGE_ROTATEEX_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define DRAWIMAGE_ROTATEEX_SRC_X num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define DRAWIMAGE_ROTATEEX_SRC_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define DRAWIMAGE_ROTATEEX_SRC_W num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define DRAWIMAGE_ROTATEEX_SRC_H num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define DRAWIMAGE_ROTATEEX_ANGLE num_var[7].nref[0].value[ num_var[7].byref_offset ] +#define FN_DrawImage_Zoom 233 +#define DRAWIMAGE_ZOOM_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DRAWIMAGE_ZOOM_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DRAWIMAGE_ZOOM_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define DRAWIMAGE_ZOOM_ZX num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define DRAWIMAGE_ZOOM_ZY num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_DrawImage_ZoomEx 234 +#define DRAWIMAGE_ZOOMEX_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DRAWIMAGE_ZOOMEX_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DRAWIMAGE_ZOOMEX_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define DRAWIMAGE_ZOOMEX_SRC_X num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define DRAWIMAGE_ZOOMEX_SRC_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define DRAWIMAGE_ZOOMEX_SRC_W num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define DRAWIMAGE_ZOOMEX_SRC_H num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define DRAWIMAGE_ZOOMEX_ZX num_var[7].nref[0].value[ num_var[7].byref_offset ] +#define DRAWIMAGE_ZOOMEX_ZY num_var[8].nref[0].value[ num_var[8].byref_offset ] +#define FN_DrawImage_Rotozoom 235 +#define DRAWIMAGE_ROTOZOOM_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DRAWIMAGE_ROTOZOOM_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DRAWIMAGE_ROTOZOOM_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define DRAWIMAGE_ROTOZOOM_ANGLE num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define DRAWIMAGE_ROTOZOOM_ZX num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define DRAWIMAGE_ROTOZOOM_ZY num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define FN_DrawImage_RotozoomEx 236 +#define DRAWIMAGE_ROTOZOOMEX_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DRAWIMAGE_ROTOZOOMEX_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DRAWIMAGE_ROTOZOOMEX_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define DRAWIMAGE_ROTOZOOMEX_SRC_X num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define DRAWIMAGE_ROTOZOOMEX_SRC_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define DRAWIMAGE_ROTOZOOMEX_SRC_W num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define DRAWIMAGE_ROTOZOOMEX_SRC_H num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define DRAWIMAGE_ROTOZOOMEX_ANGLE num_var[7].nref[0].value[ num_var[7].byref_offset ] +#define DRAWIMAGE_ROTOZOOMEX_ZX num_var[8].nref[0].value[ num_var[8].byref_offset ] +#define DRAWIMAGE_ROTOZOOMEX_ZY num_var[9].nref[0].value[ num_var[9].byref_offset ] +#define FN_DrawImage_Flip 237 +#define DRAWIMAGE_FLIP_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DRAWIMAGE_FLIP_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DRAWIMAGE_FLIP_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define DRAWIMAGE_FLIP_H num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define DRAWIMAGE_FLIP_V num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_DrawImage_FlipEx 238 +#define DRAWIMAGE_FLIPEX_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DRAWIMAGE_FLIPEX_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DRAWIMAGE_FLIPEX_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define DRAWIMAGE_FLIPEX_SRC_X num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define DRAWIMAGE_FLIPEX_SRC_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define DRAWIMAGE_FLIPEX_SRC_W num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define DRAWIMAGE_FLIPEX_SRC_H num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define DRAWIMAGE_FLIPEX_H num_var[7].nref[0].value[ num_var[7].byref_offset ] +#define DRAWIMAGE_FLIPEX_V num_var[8].nref[0].value[ num_var[8].byref_offset ] +#define FN_InKey 239 +#define FN_Key 240 +#define KEY_KEY_CODE num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_WaitKey 241 +#define FN_HideMouse 242 +#define FN_ShowMouse 243 +#define FN_MouseIsVisible 244 +#define FN_GetMouse 245 +#define GETMOUSE_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETMOUSE_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETMOUSE_MB1 num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETMOUSE_MB2 num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETMOUSE_MB3 num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_MouseX 246 +#define FN_MouseY 247 +#define FN_MouseButton 248 +#define MOUSEBUTTON_MB num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetMouseWheel 249 +#define GETMOUSEWHEEL_X_AXIS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETMOUSEWHEEL_Y_AXIS num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_MouseWheelX 250 +#define FN_MouseWheelY 251 +#define FN_GetGlobalMouse 252 +#define GETGLOBALMOUSE_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETGLOBALMOUSE_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETGLOBALMOUSE_MB1 num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETGLOBALMOUSE_MB2 num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETGLOBALMOUSE_MB3 num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_GlobalMouseX 253 +#define FN_GlobalMouseY 254 +#define FN_WarpMouse 255 +#define WARPMOUSE_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define WARPMOUSE_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_WarpMouseGlobal 256 +#define WARPMOUSEGLOBAL_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define WARPMOUSEGLOBAL_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetMouseZone 257 +#define SETMOUSEZONE_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMOUSEZONE_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETMOUSEZONE_W num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETMOUSEZONE_H num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_ClearMouseZone 258 +#define FN_CreateSound 259 +#define CREATESOUND_BUFFER num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CREATESOUND_BUFFER_SIZE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CREATESOUND_VOL num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_LoadSound 260 +#define LOADSOUND_SND_FILE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_LoadMusic 261 +#define LOADMUSIC_MUSIC_FILE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_PlaySound 262 +#define PLAYSOUND_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define PLAYSOUND_CHANNEL num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define PLAYSOUND_LOOPS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_PlaySoundTimed 263 +#define PLAYSOUNDTIMED_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define PLAYSOUNDTIMED_CHANNEL num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define PLAYSOUNDTIMED_LOOPS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define PLAYSOUNDTIMED_MS num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_PlayMusic 264 +#define PLAYMUSIC_MLOOPS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_PauseSound 265 +#define PAUSESOUND_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_ResumeSound 266 +#define RESUMESOUND_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_PauseMusic 267 +#define FN_ResumeMusic 268 +#define FN_DeleteSound 269 +#define DELETESOUND_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_DeleteMusic 270 +#define FN_FadeMusicIn 271 +#define FADEMUSICIN_FADE_TIME num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FADEMUSICIN_LOOPS num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_FadeMusicOut 272 +#define FADEMUSICOUT_FADE_TIME num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_MusicExists 273 +#define FN_SetMusicVolume 274 +#define SETMUSICVOLUME_VOL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetMusicVolume 275 +#define FN_SetMusicPosition 276 +#define SETMUSICPOSITION_POS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetMusicPosition 277 +#define FN_RewindMusic 278 +#define FN_SetSoundChannels 279 +#define SETSOUNDCHANNELS_MAX_CHANNELS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_NumSoundChannels 280 +#define FN_SoundIsEnabled 281 +#define FN_SoundExists 282 +#define SOUNDEXISTS_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetChannelVolume 283 +#define SETCHANNELVOLUME_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCHANNELVOLUME_VOL num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetChannelVolume 284 +#define GETCHANNELVOLUME_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetSoundVolume 285 +#define SETSOUNDVOLUME_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETSOUNDVOLUME_VOL num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetSoundVolume 286 +#define GETSOUNDVOLUME_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_StopMusic 287 +#define FN_StopSound 288 +#define STOPSOUND_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetChannelPanning 289 +#define SETCHANNELPANNING_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCHANNELPANNING_LEFT_VALUE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETCHANNELPANNING_RIGHT_VALUE num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_SetChannelDistance 290 +#define SETCHANNELDISTANCE_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCHANNELDISTANCE_DIST_VALUE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_ChannelIsPlaying 291 +#define CHANNELISPLAYING_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_ChannelIsPaused 292 +#define CHANNELISPAUSED_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_QueryAudioSpec 293 +#define QUERYAUDIOSPEC_FREQ num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define QUERYAUDIOSPEC_FORMAT num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define QUERYAUDIOSPEC_CHANNELS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_MusicIsPlaying 294 +#define FN_SetChannelSpacePosition 295 +#define SETCHANNELSPACEPOSITION_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCHANNELSPACEPOSITION_ANGLE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETCHANNELSPACEPOSITION_DISTANCE num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_NumJoysticks 296 +#define FN_NumJoyAxes 297 +#define NUMJOYAXES_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_NumJoyButtons 298 +#define NUMJOYBUTTONS_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_NumJoyHats 299 +#define NUMJOYHATS_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_NumJoyTrackBalls 300 +#define NUMJOYTRACKBALLS_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_JoyAxis 301 +#define JOYAXIS_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define JOYAXIS_JOY_AXIS num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_JoyButton 302 +#define JOYBUTTON_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define JOYBUTTON_JOY_BUTTON num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_JoyHat 303 +#define JOYHAT_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define JOYHAT_JOY_HAT num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetJoyTrackBall 304 +#define GETJOYTRACKBALL_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETJOYTRACKBALL_BALL num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETJOYTRACKBALL_DX num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETJOYTRACKBALL_DY num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_JoyName$ 305 +#define JOYNAME$_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_JoystickIsConnected 306 +#define JOYSTICKISCONNECTED_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_JoyRumblePlay 307 +#define JOYRUMBLEPLAY_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define JOYRUMBLEPLAY_STRENGTH num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define JOYRUMBLEPLAY_DURATION num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_JoyRumbleStop 308 +#define JOYRUMBLESTOP_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_JoystickIsHaptic 309 +#define JOYSTICKISHAPTIC_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_LoadFont 310 +#define LOADFONT_FNT_FILE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define LOADFONT_FONT_SIZE num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_DeleteFont 311 +#define DELETEFONT_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_FontExists 312 +#define FONTEXISTS_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetFont 313 +#define SETFONT_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_DrawText 314 +#define DRAWTEXT_TXT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define DRAWTEXT_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DRAWTEXT_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetTextSize 315 +#define GETTEXTSIZE_TXT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define GETTEXTSIZE_W num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETTEXTSIZE_H num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetTextWidth 316 +#define GETTEXTWIDTH_TXT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_GetTextHeight 317 +#define GETTEXTHEIGHT_TXT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_TouchPressure 318 +#define FN_GetTouch 319 +#define GETTOUCH_STATUS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETTOUCH_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETTOUCH_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETTOUCH_DX num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETTOUCH_DY num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_GetMultiTouch 320 +#define GETMULTITOUCH_STATUS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETMULTITOUCH_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETMULTITOUCH_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETMULTITOUCH_FINGERS num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETMULTITOUCH_DIST num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define GETMULTITOUCH_THETA num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define FN_GetTouchFinger 321 +#define GETTOUCHFINGER_FINGER num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETTOUCHFINGER_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETTOUCHFINGER_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETTOUCHFINGER_PRESSURE num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_NumFingers 322 +#define FN_GetAccel 323 +#define GETACCEL_ACCEL_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACCEL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACCEL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACCEL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_AccelName$ 324 +#define ACCELNAME$_ACCEL_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_NumAccels 325 +#define FN_GetGyro 326 +#define GETGYRO_GYRO_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETGYRO_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETGYRO_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETGYRO_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_GyroName$ 327 +#define GYRONAME$_GYRO_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_NumGyros 328 +#define FN_CheckSockets 329 +#define CHECKSOCKETS_TIMEOUT_MS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_TCP_SocketReady 330 +#define TCP_SOCKETREADY_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_UDP_SocketReady 331 +#define UDP_SOCKETREADY_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_TCP_OpenSocket 332 +#define TCP_OPENSOCKET_HOST$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define TCP_OPENSOCKET_PORT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_TCP_CloseSocket 333 +#define TCP_CLOSESOCKET_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_TCP_RemoteHost 334 +#define TCP_REMOTEHOST_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_TCP_RemotePort 335 +#define TCP_REMOTEPORT_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_TCP_GetData 336 +#define TCP_GETDATA_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define TCP_GETDATA_NUMBYTES num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define TCP_GETDATA_SDATA$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_TCP_SendData 337 +#define TCP_SENDDATA_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define TCP_SENDDATA_SDATA$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_TCP_AcceptSocket 338 +#define TCP_ACCEPTSOCKET_SERVER num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define TCP_ACCEPTSOCKET_CLIENT num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_UDP_OpenSocket 339 +#define UDP_OPENSOCKET_PORT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_UDP_CloseSocket 340 +#define UDP_CLOSESOCKET_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_UDP_GetData 341 +#define UDP_GETDATA_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define UDP_GETDATA_HOST$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define UDP_GETDATA_PORT num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define UDP_GETDATA_SDATA$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define FN_UDP_Length 342 +#define FN_UDP_MaxLength 343 +#define FN_UDP_RemoteHost$ 344 +#define UDP_REMOTEHOST$_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_UDP_RemotePort 345 +#define UDP_REMOTEPORT_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_UDP_SendData 346 +#define UDP_SENDDATA_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define UDP_SENDDATA_HOST$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define UDP_SENDDATA_PORT num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define UDP_SENDDATA_SDATA$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define FN_LoadVideo 347 +#define LOADVIDEO_VID$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_PlayVideo 348 +#define PLAYVIDEO_VLOOPS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_PauseVideo 349 +#define FN_StopVideo 350 +#define FN_SetVideoPosition 351 +#define SETVIDEOPOSITION_POS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_ResumeVideo 352 +#define FN_GetVideoPosition 353 +#define FN_DeleteVideo 354 +#define FN_VideoIsPlaying 355 +#define FN_VideoEnd 356 +#define FN_GetVideoStats 357 +#define GETVIDEOSTATS_VFILE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define GETVIDEOSTATS_VLEN num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETVIDEOSTATS_VFPS num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETVIDEOSTATS_FRAME_W num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETVIDEOSTATS_FRAME_H num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_SetVideoDrawRect 358 +#define SETVIDEODRAWRECT_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETVIDEODRAWRECT_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETVIDEODRAWRECT_W num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETVIDEODRAWRECT_H num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_GetVideoDrawRect 359 +#define GETVIDEODRAWRECT_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETVIDEODRAWRECT_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETVIDEODRAWRECT_W num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETVIDEODRAWRECT_H num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_GetVideoSize 360 +#define GETVIDEOSIZE_W num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETVIDEOSIZE_H num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_VideoExists 361 +#define FN_SetVideoVolume 362 +#define SETVIDEOVOLUME_VOL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetVideoVolume 363 +#define FN_System 364 +#define SYSTEM_CMD$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_OS$ 365 +#define FN_Command$ 366 +#define COMMAND$_ARG num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_NumCommands 367 +#define FN_Env$ 368 +#define ENV$_V$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_SetEnv 369 +#define SETENV_VAR$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define SETENV_VALUE$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define FN_PrefPath$ 370 +#define PREFPATH$_ORG_NAME$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define PREFPATH$_APP_NAME$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define FN_Android_GetExternalStoragePath$ 371 +#define FN_Android_GetExternalStorageState 372 +#define FN_Android_GetInternalStoragePath$ 373 +#define FN_Android_JNI_Message$ 374 +#define ANDROID_JNI_MESSAGE$_ARG$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_Runtime_Utility_Message$ 375 +#define RUNTIME_UTILITY_MESSAGE$_ARG$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_GetDesktopDisplayMode 376 +#define GETDESKTOPDISPLAYMODE_INDEX num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETDESKTOPDISPLAYMODE_W num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETDESKTOPDISPLAYMODE_H num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETDESKTOPDISPLAYMODE_FREQ num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_GetPowerInfo 377 +#define GETPOWERINFO_STATUS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETPOWERINFO_SECS num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETPOWERINFO_PCT num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_EvalJS$ 378 +#define EVALJS$_JS_CODE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_SystemReturnStdOut$ 379 +#define SYSTEMRETURNSTDOUT$_CMD$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_OpenURL 380 +#define OPENURL_URL$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_MessageBox 381 +#define MESSAGEBOX_TITLE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define MESSAGEBOX_MSG$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define FN_Runtime$ 382 +#define FN_NumCPUs 383 +#define FN_SystemRam 384 +#define FN_DimMatrix 385 +#define DIMMATRIX_M_ROWS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DIMMATRIX_M_COLS num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_DeleteMatrix 386 +#define DELETEMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_AddMatrix 387 +#define ADDMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ADDMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define ADDMATRIX_MC num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_AugmentMatrix 388 +#define AUGMENTMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define AUGMENTMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define AUGMENTMATRIX_MC num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_CopyMatrix 389 +#define COPYMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define COPYMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_InsertMatrixColumns 390 +#define INSERTMATRIXCOLUMNS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define INSERTMATRIXCOLUMNS_C num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define INSERTMATRIXCOLUMNS_NUM_COLS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_InsertMatrixRows 391 +#define INSERTMATRIXROWS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define INSERTMATRIXROWS_R num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define INSERTMATRIXROWS_NUM_ROWS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_MultiplyMatrix 392 +#define MULTIPLYMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define MULTIPLYMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define MULTIPLYMATRIX_MC num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_CubeMatrix 393 +#define CUBEMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CUBEMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_DeleteMatrixColumns 394 +#define DELETEMATRIXCOLUMNS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DELETEMATRIXCOLUMNS_C num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DELETEMATRIXCOLUMNS_NUM_COLS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_DeleteMatrixRows 395 +#define DELETEMATRIXROWS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DELETEMATRIXROWS_R num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DELETEMATRIXROWS_NUM_ROWS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_ClearMatrix 396 +#define CLEARMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_ClearMatrixColumns 397 +#define CLEARMATRIXCOLUMNS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CLEARMATRIXCOLUMNS_C num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CLEARMATRIXCOLUMNS_NUM_COLS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_ClearMatrixRows 398 +#define CLEARMATRIXROWS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CLEARMATRIXROWS_R num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CLEARMATRIXROWS_NUM_ROWS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_FillMatrix 399 +#define FILLMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FILLMATRIX_V num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_FillMatrixColumns 400 +#define FILLMATRIXCOLUMNS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FILLMATRIXCOLUMNS_C num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FILLMATRIXCOLUMNS_NUM_COLS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FILLMATRIXCOLUMNS_V num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_FillMatrixRows 401 +#define FILLMATRIXROWS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FILLMATRIXROWS_R num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FILLMATRIXROWS_NUM_ROWS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FILLMATRIXROWS_V num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_CopyMatrixColumns 402 +#define COPYMATRIXCOLUMNS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define COPYMATRIXCOLUMNS_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define COPYMATRIXCOLUMNS_C num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define COPYMATRIXCOLUMNS_NUM_COLS num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_CopyMatrixRows 403 +#define COPYMATRIXROWS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define COPYMATRIXROWS_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define COPYMATRIXROWS_R num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define COPYMATRIXROWS_NUM_ROWS num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_SetIdentityMatrix 404 +#define SETIDENTITYMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETIDENTITYMATRIX_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SolveMatrix 405 +#define SOLVEMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SOLVEMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SOLVEMATRIX_MC num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_IsEqualMatrix 406 +#define ISEQUALMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ISEQUALMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define ISEQUALMATRIX_TOLERANCE num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_Determinant 407 +#define DETERMINANT_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_AdjointMatrix 408 +#define ADJOINTMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ADJOINTMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_InvertMatrix 409 +#define INVERTMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define INVERTMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_MatrixFromBuffer 410 +#define MATRIXFROMBUFFER_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define MATRIXFROMBUFFER_R num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define MATRIXFROMBUFFER_C num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define MATRIXFROMBUFFER_BUFFER num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_BufferFromMatrix 411 +#define BUFFERFROMMATRIX_BUFFER num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define BUFFERFROMMATRIX_MA num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_RandomizeMatrix 412 +#define RANDOMIZEMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define RANDOMIZEMATRIX_VMIN num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define RANDOMIZEMATRIX_VMAX num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_MatrixValue 413 +#define MATRIXVALUE_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define MATRIXVALUE_R num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define MATRIXVALUE_C num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_SetMatrixValue 414 +#define SETMATRIXVALUE_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATRIXVALUE_R num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETMATRIXVALUE_C num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETMATRIXVALUE_V num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_ScalarMatrix 415 +#define SCALARMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SCALARMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SCALARMATRIX_S_VALUE num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_ScalarMatrixColumns 416 +#define SCALARMATRIXCOLUMNS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SCALARMATRIXCOLUMNS_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SCALARMATRIXCOLUMNS_C num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SCALARMATRIXCOLUMNS_NUM_COLS num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define SCALARMATRIXCOLUMNS_S_VALUE num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_ScalarMatrixRows 417 +#define SCALARMATRIXROWS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SCALARMATRIXROWS_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SCALARMATRIXROWS_R num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SCALARMATRIXROWS_NUM_ROWS num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define SCALARMATRIXROWS_S_VALUE num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_SquareMatrix 418 +#define SQUAREMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SQUAREMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_CofactorMatrix 419 +#define COFACTORMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define COFACTORMATRIX_R num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define COFACTORMATRIX_C num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_SubtractMatrix 420 +#define SUBTRACTMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SUBTRACTMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SUBTRACTMATRIX_MC num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_SwapMatrix 421 +#define SWAPMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SWAPMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SwapMatrixColumn 422 +#define SWAPMATRIXCOLUMN_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SWAPMATRIXCOLUMN_C1 num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SWAPMATRIXCOLUMN_C2 num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_SwapMatrixRow 423 +#define SWAPMATRIXROW_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SWAPMATRIXROW_R1 num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SWAPMATRIXROW_R2 num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_TransposeMatrix 424 +#define TRANSPOSEMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define TRANSPOSEMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_UnAugmentMatrix 425 +#define UNAUGMENTMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define UNAUGMENTMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define UNAUGMENTMATRIX_MC num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_ZeroMatrix 426 +#define ZEROMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetMatrixSize 427 +#define GETMATRIXSIZE_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETMATRIXSIZE_R num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETMATRIXSIZE_C num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_IncrementMatrixRows 428 +#define INCREMENTMATRIXROWS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define INCREMENTMATRIXROWS_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define INCREMENTMATRIXROWS_R num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define INCREMENTMATRIXROWS_NUM_ROWS num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define INCREMENTMATRIXROWS_VALUE num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_IncrementMatrixColumns 429 +#define INCREMENTMATRIXCOLUMNS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define INCREMENTMATRIXCOLUMNS_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define INCREMENTMATRIXCOLUMNS_C num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define INCREMENTMATRIXCOLUMNS_NUM_COLS num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define INCREMENTMATRIXCOLUMNS_VALUE num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_JoinMatrixRows 430 +#define JOINMATRIXROWS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define JOINMATRIXROWS_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define JOINMATRIXROWS_MC num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_JoinMatrixColumns 431 +#define JOINMATRIXCOLUMNS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define JOINMATRIXCOLUMNS_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define JOINMATRIXCOLUMNS_MC num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_ClipMatrix 432 +#define CLIPMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CLIPMATRIX_R num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CLIPMATRIX_C num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define CLIPMATRIX_NUM_ROWS num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define CLIPMATRIX_NUM_COLS num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define CLIPMATRIX_MB num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define FN_SetMatrixTranslation 433 +#define SETMATRIXTRANSLATION_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATRIXTRANSLATION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETMATRIXTRANSLATION_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETMATRIXTRANSLATION_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_SetMatrixRotation 434 +#define SETMATRIXROTATION_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATRIXROTATION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETMATRIXROTATION_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETMATRIXROTATION_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_SetMatrixScale 435 +#define SETMATRIXSCALE_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATRIXSCALE_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETMATRIXSCALE_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETMATRIXSCALE_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_GetMatrixTranslation 436 +#define GETMATRIXTRANSLATION_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETMATRIXTRANSLATION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETMATRIXTRANSLATION_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETMATRIXTRANSLATION_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_GetMatrixRotation 437 +#define GETMATRIXROTATION_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETMATRIXROTATION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETMATRIXROTATION_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETMATRIXROTATION_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_GetMatrixScale 438 +#define GETMATRIXSCALE_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETMATRIXSCALE_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETMATRIXSCALE_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETMATRIXSCALE_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_GetClipboardText$ 439 +#define FN_SetClipboardText 440 +#define SETCLIPBOARDTEXT_TXT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_HasClipboardText 441 +#define FN_ReadInput_Start 442 +#define FN_ReadInput_Stop 443 +#define FN_ReadInput_Text$ 444 +#define FN_ReadInput_SetText 445 +#define READINPUT_SETTEXT_TXT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_ReadInput_ToggleBackspace 446 +#define READINPUT_TOGGLEBACKSPACE_FLAG num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_CreateSprite 447 +#define CREATESPRITE_IMG num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_DeleteSprite 448 +#define DELETESPRITE_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetSpritePosition 449 +#define SETSPRITEPOSITION_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETSPRITEPOSITION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETSPRITEPOSITION_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_LoadMesh 450 +#define LOADMESH_MESH_FILE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_DeleteMesh 451 +#define DELETEMESH_MESH num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_CreateMesh 452 +#define FN_AddMeshBuffer 453 +#define ADDMESHBUFFER_MESH num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ADDMESHBUFFER_VERTEX_COUNT num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define ADDMESHBUFFER_VERTEX_DATA num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define ADDMESHBUFFER_NORMAL_DATA num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define ADDMESHBUFFER_UV_DATA num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define ADDMESHBUFFER_INDEX_COUNT num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define ADDMESHBUFFER_INDEX_DATA num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_LoadMeshFromArchive 454 +#define LOADMESHFROMARCHIVE_ARCHIVE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define LOADMESHFROMARCHIVE_MESH_FILE$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define FN_CreateMeshActor 455 +#define CREATEMESHACTOR_MESH num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_CreateMeshOctreeActor 456 +#define CREATEMESHOCTREEACTOR_MESH num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_CreateCubeActor 457 +#define CREATECUBEACTOR_CUBE_SIZE num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_CreateSphereActor 458 +#define CREATESPHEREACTOR_RADIUS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_CreateWaterPlaneActor 459 +#define CREATEWATERPLANEACTOR_W num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CREATEWATERPLANEACTOR_H num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_CreateLightActor 460 +#define FN_CreateBillboardActor 461 +#define FN_CreateTerrainActor 462 +#define CREATETERRAINACTOR_HMAP_FILE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_DeleteActor 463 +#define DELETEACTOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetActorTransform 464 +#define GETACTORTRANSFORM_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORTRANSFORM_MATRIX num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetActorPosition 465 +#define SETACTORPOSITION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORPOSITION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORPOSITION_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETACTORPOSITION_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_TranslateActor 466 +#define TRANSLATEACTOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define TRANSLATEACTOR_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define TRANSLATEACTOR_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define TRANSLATEACTOR_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_TranslateActorWorld 467 +#define TRANSLATEACTORWORLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define TRANSLATEACTORWORLD_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define TRANSLATEACTORWORLD_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define TRANSLATEACTORWORLD_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_GetActorPosition 468 +#define GETACTORPOSITION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORPOSITION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORPOSITION_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORPOSITION_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_SetActorScale 469 +#define SETACTORSCALE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORSCALE_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORSCALE_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETACTORSCALE_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_ScaleActor 470 +#define SCALEACTOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SCALEACTOR_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SCALEACTOR_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SCALEACTOR_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_GetActorScale 471 +#define GETACTORSCALE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORSCALE_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORSCALE_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORSCALE_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_SetActorRotation 472 +#define SETACTORROTATION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORROTATION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORROTATION_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETACTORROTATION_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_RotateActor 473 +#define ROTATEACTOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ROTATEACTOR_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define ROTATEACTOR_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define ROTATEACTOR_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_GetActorRotation 474 +#define GETACTORROTATION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORROTATION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORROTATION_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORROTATION_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_SetActorVisible 475 +#define SETACTORVISIBLE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORVISIBLE_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_ActorIsVisible 476 +#define ACTORISVISIBLE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetActorAutoCulling 477 +#define SETACTORAUTOCULLING_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORAUTOCULLING_CULL_TYPE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetActorAutoCulling 478 +#define GETACTORAUTOCULLING_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_AddActorShadow 479 +#define ADDACTORSHADOW_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_RemoveActorShadow 480 +#define REMOVEACTORSHADOW_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetGravity3D 481 +#define SETGRAVITY3D_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETGRAVITY3D_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETGRAVITY3D_Z num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_GetGravity3D 482 +#define GETGRAVITY3D_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETGRAVITY3D_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETGRAVITY3D_Z num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_SetActorCollisionShape 483 +#define SETACTORCOLLISIONSHAPE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORCOLLISIONSHAPE_SHAPE_TYPE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORCOLLISIONSHAPE_MASS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_GetActorCollisionShape 484 +#define GETACTORCOLLISIONSHAPE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetActorSolid 485 +#define SETACTORSOLID_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORSOLID_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_ActorIsSolid 486 +#define ACTORISSOLID_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetActorCollision 487 +#define GETACTORCOLLISION_ACTOR1 num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORCOLLISION_ACTOR2 num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetActorGravity 488 +#define SETACTORGRAVITY_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORGRAVITY_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORGRAVITY_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETACTORGRAVITY_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_GetActorGravity 489 +#define GETACTORGRAVITY_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORGRAVITY_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORGRAVITY_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORGRAVITY_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_setActorDamping 490 +#define SETACTORDAMPING_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORDAMPING_LIN_DAMPING num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORDAMPING_ANG_DAMPING num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_getActorLinearDamping 491 +#define GETACTORLINEARDAMPING_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getActorAngularDamping 492 +#define GETACTORANGULARDAMPING_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getActorLinearSleepThreshold 493 +#define GETACTORLINEARSLEEPTHRESHOLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getActorAngularSleepThreshold 494 +#define GETACTORANGULARSLEEPTHRESHOLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_applyActorDamping 495 +#define APPLYACTORDAMPING_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define APPLYACTORDAMPING_TIMESTEP num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setActorMassProperties 496 +#define SETACTORMASSPROPERTIES_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORMASSPROPERTIES_MASS num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORMASSPROPERTIES_INERTIA_X num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETACTORMASSPROPERTIES_INERTIA_Y num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define SETACTORMASSPROPERTIES_INERTIA_Z num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_getActorLinearFactor 497 +#define GETACTORLINEARFACTOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORLINEARFACTOR_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORLINEARFACTOR_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORLINEARFACTOR_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_setActorLinearFactor 498 +#define SETACTORLINEARFACTOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORLINEARFACTOR_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORLINEARFACTOR_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETACTORLINEARFACTOR_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getActorInverseMass 499 +#define GETACTORINVERSEMASS_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_integrateActorVelocities 500 +#define INTEGRATEACTORVELOCITIES_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define INTEGRATEACTORVELOCITIES_V_STEP num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_applyActorCentralForceLocal 501 +#define APPLYACTORCENTRALFORCELOCAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define APPLYACTORCENTRALFORCELOCAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define APPLYACTORCENTRALFORCELOCAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define APPLYACTORCENTRALFORCELOCAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_applyActorCentralForceWorld 502 +#define APPLYACTORCENTRALFORCEWORLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define APPLYACTORCENTRALFORCEWORLD_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define APPLYACTORCENTRALFORCEWORLD_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define APPLYACTORCENTRALFORCEWORLD_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getActorTotalForce 503 +#define GETACTORTOTALFORCE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORTOTALFORCE_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORTOTALFORCE_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORTOTALFORCE_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getActorTotalTorque 504 +#define GETACTORTOTALTORQUE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORTOTALTORQUE_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORTOTALTORQUE_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORTOTALTORQUE_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getActorInverseInertiaDiagLocal 505 +#define GETACTORINVERSEINERTIADIAGLOCAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORINVERSEINERTIADIAGLOCAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORINVERSEINERTIADIAGLOCAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORINVERSEINERTIADIAGLOCAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_setActorInverseInertiaDiagLocal 506 +#define SETACTORINVERSEINERTIADIAGLOCAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORINVERSEINERTIADIAGLOCAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORINVERSEINERTIADIAGLOCAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETACTORINVERSEINERTIADIAGLOCAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_setActorSleepThresholds 507 +#define SETACTORSLEEPTHRESHOLDS_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORSLEEPTHRESHOLDS_LINEAR num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORSLEEPTHRESHOLDS_ANGULAR num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_applyActorTorqueLocal 508 +#define APPLYACTORTORQUELOCAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define APPLYACTORTORQUELOCAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define APPLYACTORTORQUELOCAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define APPLYACTORTORQUELOCAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_applyActorTorqueWorld 509 +#define APPLYACTORTORQUEWORLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define APPLYACTORTORQUEWORLD_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define APPLYACTORTORQUEWORLD_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define APPLYACTORTORQUEWORLD_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_applyActorForceLocal 510 +#define APPLYACTORFORCELOCAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define APPLYACTORFORCELOCAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define APPLYACTORFORCELOCAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define APPLYACTORFORCELOCAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define APPLYACTORFORCELOCAL_REL_X num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define APPLYACTORFORCELOCAL_REL_Y num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define APPLYACTORFORCELOCAL_REL_Z num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_applyActorForceWorld 511 +#define APPLYACTORFORCEWORLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define APPLYACTORFORCEWORLD_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define APPLYACTORFORCEWORLD_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define APPLYACTORFORCEWORLD_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define APPLYACTORFORCEWORLD_REL_X num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define APPLYACTORFORCEWORLD_REL_Y num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define APPLYACTORFORCEWORLD_REL_Z num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_applyActorCentralImpulseLocal 512 +#define APPLYACTORCENTRALIMPULSELOCAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define APPLYACTORCENTRALIMPULSELOCAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define APPLYACTORCENTRALIMPULSELOCAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define APPLYACTORCENTRALIMPULSELOCAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_applyActorCentralImpulseWorld 513 +#define APPLYACTORCENTRALIMPULSEWORLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define APPLYACTORCENTRALIMPULSEWORLD_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define APPLYACTORCENTRALIMPULSEWORLD_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define APPLYACTORCENTRALIMPULSEWORLD_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_applyActorTorqueImpulseLocal 514 +#define APPLYACTORTORQUEIMPULSELOCAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define APPLYACTORTORQUEIMPULSELOCAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define APPLYACTORTORQUEIMPULSELOCAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define APPLYACTORTORQUEIMPULSELOCAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_applyActorTorqueImpulseWorld 515 +#define APPLYACTORTORQUEIMPULSEWORLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define APPLYACTORTORQUEIMPULSEWORLD_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define APPLYACTORTORQUEIMPULSEWORLD_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define APPLYACTORTORQUEIMPULSEWORLD_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_applyActorImpulseLocal 516 +#define APPLYACTORIMPULSELOCAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define APPLYACTORIMPULSELOCAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define APPLYACTORIMPULSELOCAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define APPLYACTORIMPULSELOCAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define APPLYACTORIMPULSELOCAL_REL_X num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define APPLYACTORIMPULSELOCAL_REL_Y num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define APPLYACTORIMPULSELOCAL_REL_Z num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_applyActorImpulseWorld 517 +#define APPLYACTORIMPULSEWORLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define APPLYACTORIMPULSEWORLD_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define APPLYACTORIMPULSEWORLD_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define APPLYACTORIMPULSEWORLD_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define APPLYACTORIMPULSEWORLD_REL_X num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define APPLYACTORIMPULSEWORLD_REL_Y num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define APPLYACTORIMPULSEWORLD_REL_Z num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_clearActorForces 518 +#define CLEARACTORFORCES_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_updateActorInertiaTensor 519 +#define UPDATEACTORINERTIATENSOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getActorCOMPosition 520 +#define GETACTORCOMPOSITION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORCOMPOSITION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORCOMPOSITION_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORCOMPOSITION_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getActorRotationQ 521 +#define GETACTORROTATIONQ_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORROTATIONQ_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORROTATIONQ_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORROTATIONQ_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETACTORROTATIONQ_W num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_getActorLinearVelocity 522 +#define GETACTORLINEARVELOCITY_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORLINEARVELOCITY_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORLINEARVELOCITY_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORLINEARVELOCITY_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getActorAngularVelocity 523 +#define GETACTORANGULARVELOCITY_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORANGULARVELOCITY_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORANGULARVELOCITY_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORANGULARVELOCITY_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_setActorLinearVelocityLocal 524 +#define SETACTORLINEARVELOCITYLOCAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORLINEARVELOCITYLOCAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORLINEARVELOCITYLOCAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETACTORLINEARVELOCITYLOCAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_setActorLinearVelocityWorld 525 +#define SETACTORLINEARVELOCITYWORLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORLINEARVELOCITYWORLD_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORLINEARVELOCITYWORLD_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETACTORLINEARVELOCITYWORLD_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_setActorAngularVelocityLocal 526 +#define SETACTORANGULARVELOCITYLOCAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORANGULARVELOCITYLOCAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORANGULARVELOCITYLOCAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETACTORANGULARVELOCITYLOCAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_setActorAngularVelocityWorld 527 +#define SETACTORANGULARVELOCITYWORLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORANGULARVELOCITYWORLD_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORANGULARVELOCITYWORLD_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETACTORANGULARVELOCITYWORLD_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getActorLocalPointVelocity 528 +#define GETACTORLOCALPOINTVELOCITY_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORLOCALPOINTVELOCITY_REL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORLOCALPOINTVELOCITY_REL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORLOCALPOINTVELOCITY_REL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETACTORLOCALPOINTVELOCITY_X num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define GETACTORLOCALPOINTVELOCITY_Y num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define GETACTORLOCALPOINTVELOCITY_Z num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_getActorLinearVelocityLocal 529 +#define GETACTORLINEARVELOCITYLOCAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORLINEARVELOCITYLOCAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORLINEARVELOCITYLOCAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORLINEARVELOCITYLOCAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getActorAngularVelocityLocal 530 +#define GETACTORANGULARVELOCITYLOCAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORANGULARVELOCITYLOCAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORANGULARVELOCITYLOCAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORANGULARVELOCITYLOCAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getActorAABB 531 +#define GETACTORAABB_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORAABB_MIN_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORAABB_MIN_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORAABB_MIN_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETACTORAABB_MAX_X num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define GETACTORAABB_MAX_Y num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define GETACTORAABB_MAX_Z num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_computeActorImpulseDenominator 532 +#define COMPUTEACTORIMPULSEDENOMINATOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define COMPUTEACTORIMPULSEDENOMINATOR_POS_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define COMPUTEACTORIMPULSEDENOMINATOR_POS_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define COMPUTEACTORIMPULSEDENOMINATOR_POS_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define COMPUTEACTORIMPULSEDENOMINATOR_NORMAL_X num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define COMPUTEACTORIMPULSEDENOMINATOR_NORMAL_Y num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define COMPUTEACTORIMPULSEDENOMINATOR_NORMAL_Z num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_computeActorAngularImpulseDenominator 533 +#define COMPUTEACTORANGULARIMPULSEDENOMINATOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define COMPUTEACTORANGULARIMPULSEDENOMINATOR_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define COMPUTEACTORANGULARIMPULSEDENOMINATOR_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define COMPUTEACTORANGULARIMPULSEDENOMINATOR_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_setActorAngularFactor 534 +#define SETACTORANGULARFACTOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORANGULARFACTOR_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORANGULARFACTOR_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETACTORANGULARFACTOR_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getActorAngularFactor 535 +#define GETACTORANGULARFACTOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORANGULARFACTOR_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORANGULARFACTOR_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORANGULARFACTOR_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_computeActorGyroImpulseLocal 536 +#define COMPUTEACTORGYROIMPULSELOCAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define COMPUTEACTORGYROIMPULSELOCAL_DT num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define COMPUTEACTORGYROIMPULSELOCAL_X num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define COMPUTEACTORGYROIMPULSELOCAL_Y num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define COMPUTEACTORGYROIMPULSELOCAL_Z num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_computeActorGyroImpulseWorld 537 +#define COMPUTEACTORGYROIMPULSEWORLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define COMPUTEACTORGYROIMPULSEWORLD_DT num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define COMPUTEACTORGYROIMPULSEWORLD_X num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define COMPUTEACTORGYROIMPULSEWORLD_Y num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define COMPUTEACTORGYROIMPULSEWORLD_Z num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_getActorLocalInertia 538 +#define GETACTORLOCALINERTIA_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORLOCALINERTIA_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORLOCALINERTIA_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORLOCALINERTIA_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_createPointConstraint 539 +#define CREATEPOINTCONSTRAINT_ACTORA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CREATEPOINTCONSTRAINT_PXA num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CREATEPOINTCONSTRAINT_PYA num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define CREATEPOINTCONSTRAINT_PZA num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_createPointConstraintEx 540 +#define CREATEPOINTCONSTRAINTEX_ACTORA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CREATEPOINTCONSTRAINTEX_ACTORB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CREATEPOINTCONSTRAINTEX_PXA num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define CREATEPOINTCONSTRAINTEX_PYA num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define CREATEPOINTCONSTRAINTEX_PZA num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define CREATEPOINTCONSTRAINTEX_PXB num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define CREATEPOINTCONSTRAINTEX_PYB num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define CREATEPOINTCONSTRAINTEX_PZB num_var[7].nref[0].value[ num_var[7].byref_offset ] +#define FN_setConstraintPivotA 541 +#define SETCONSTRAINTPIVOTA_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTPIVOTA_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETCONSTRAINTPIVOTA_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETCONSTRAINTPIVOTA_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_setConstraintPivotB 542 +#define SETCONSTRAINTPIVOTB_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTPIVOTB_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETCONSTRAINTPIVOTB_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETCONSTRAINTPIVOTB_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_createHingeConstraint 543 +#define CREATEHINGECONSTRAINT_ACTORA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CREATEHINGECONSTRAINT_PXA num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CREATEHINGECONSTRAINT_PYA num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define CREATEHINGECONSTRAINT_PZA num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define CREATEHINGECONSTRAINT_AXA num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define CREATEHINGECONSTRAINT_AYA num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define CREATEHINGECONSTRAINT_AZA num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_createHingeConstraintEx 544 +#define CREATEHINGECONSTRAINTEX_ACTORA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CREATEHINGECONSTRAINTEX_ACTORB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CREATEHINGECONSTRAINTEX_PXA num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define CREATEHINGECONSTRAINTEX_PYA num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define CREATEHINGECONSTRAINTEX_PZA num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define CREATEHINGECONSTRAINTEX_PXB num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define CREATEHINGECONSTRAINTEX_PYB num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define CREATEHINGECONSTRAINTEX_PZB num_var[7].nref[0].value[ num_var[7].byref_offset ] +#define CREATEHINGECONSTRAINTEX_AXA num_var[8].nref[0].value[ num_var[8].byref_offset ] +#define CREATEHINGECONSTRAINTEX_AYA num_var[9].nref[0].value[ num_var[9].byref_offset ] +#define CREATEHINGECONSTRAINTEX_AZA num_var[10].nref[0].value[ num_var[10].byref_offset ] +#define CREATEHINGECONSTRAINTEX_AXB num_var[11].nref[0].value[ num_var[11].byref_offset ] +#define CREATEHINGECONSTRAINTEX_AYB num_var[12].nref[0].value[ num_var[12].byref_offset ] +#define CREATEHINGECONSTRAINTEX_AZB num_var[13].nref[0].value[ num_var[13].byref_offset ] +#define FN_createSlideConstraint 545 +#define CREATESLIDECONSTRAINT_ACTORA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CREATESLIDECONSTRAINT_FRAMEINB_MATRIX num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CREATESLIDECONSTRAINT_USELINEARREFERENCEFRAMEA num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_createSlideConstraintEx 546 +#define CREATESLIDECONSTRAINTEX_ACTORA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CREATESLIDECONSTRAINTEX_ACTORB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CREATESLIDECONSTRAINTEX_FRAMEINA_MATRIX num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define CREATESLIDECONSTRAINTEX_FRAMEINB_MATRIX num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define CREATESLIDECONSTRAINTEX_USELINEARREFERENCEFRAMEA num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_createConeConstraint 547 +#define CREATECONECONSTRAINT_ACTORA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CREATECONECONSTRAINT_RBAFRAME_MATRIX num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_createConeConstraintEx 548 +#define CREATECONECONSTRAINTEX_ACTORA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CREATECONECONSTRAINTEX_ACTORB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CREATECONECONSTRAINTEX_RBAFRAME_MATRIX num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define CREATECONECONSTRAINTEX_RBBFRAME_MATRIX num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_deleteConstraint 549 +#define DELETECONSTRAINT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintFrameOffsetA 550 +#define GETCONSTRAINTFRAMEOFFSETA_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCONSTRAINTFRAMEOFFSETA_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETCONSTRAINTFRAMEOFFSETA_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETCONSTRAINTFRAMEOFFSETA_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETCONSTRAINTFRAMEOFFSETA_RX num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define GETCONSTRAINTFRAMEOFFSETA_RY num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define GETCONSTRAINTFRAMEOFFSETA_RZ num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_getConstraintFrameOffsetB 551 +#define GETCONSTRAINTFRAMEOFFSETB_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCONSTRAINTFRAMEOFFSETB_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETCONSTRAINTFRAMEOFFSETB_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETCONSTRAINTFRAMEOFFSETB_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETCONSTRAINTFRAMEOFFSETB_RX num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define GETCONSTRAINTFRAMEOFFSETB_RY num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define GETCONSTRAINTFRAMEOFFSETB_RZ num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_useConstraintFrameOffset 552 +#define USECONSTRAINTFRAMEOFFSET_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define USECONSTRAINTFRAMEOFFSET_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getHingeAngle 553 +#define GETHINGEANGLE_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getHingeAngleEx 554 +#define GETHINGEANGLEEX_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETHINGEANGLEEX_T_MATRIXA num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETHINGEANGLEEX_T_MATRIXB num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_getConstraintBreakingImpulseThreshold 555 +#define GETCONSTRAINTBREAKINGIMPULSETHRESHOLD_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintAFrame 556 +#define GETCONSTRAINTAFRAME_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCONSTRAINTAFRAME_MA num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getConstraintBFrame 557 +#define GETCONSTRAINTBFRAME_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCONSTRAINTBFRAME_MA num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintAxis 558 +#define SETCONSTRAINTAXIS_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTAXIS_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETCONSTRAINTAXIS_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETCONSTRAINTAXIS_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_setConstraintBreakingImpulseThreshold 559 +#define SETCONSTRAINTBREAKINGIMPULSETHRESHOLD_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTBREAKINGIMPULSETHRESHOLD_THRESHOLD num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintFrames 560 +#define SETCONSTRAINTFRAMES_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTFRAMES_FRAMEA_MATRIX num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETCONSTRAINTFRAMES_FRAMEB_MATRIX num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_setHingeLimit 561 +#define SETHINGELIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETHINGELIMIT_LOW num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETHINGELIMIT_HIGH num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETHINGELIMIT_SOFTNESS num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define SETHINGELIMIT_BIAS_FACTOR num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define SETHINGELIMIT_RELAXATION_FACTOR num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define FN_setConeLimit 562 +#define SETCONELIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONELIMIT_SWINGSPAN1 num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETCONELIMIT_SWINGSPAN2 num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETCONELIMIT_TWISTSPAN num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define SETCONELIMIT_SOFTNESS num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define SETCONELIMIT_BIAS_FACTOR num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define SETCONELIMIT_RELAXATION_FACTOR num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_getConstraintLimitBiasFactor 563 +#define GETCONSTRAINTLIMITBIASFACTOR_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getLimitRelaxationFactor 564 +#define GETLIMITRELAXATIONFACTOR_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintLimitSign 565 +#define GETCONSTRAINTLIMITSIGN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getHingeSolveLimit 566 +#define GETHINGESOLVELIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_useHingeReferenceFrameA 567 +#define USEHINGEREFERENCEFRAMEA_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define USEHINGEREFERENCEFRAMEA_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getConstraintAppliedImpulse 568 +#define GETCONSTRAINTAPPLIEDIMPULSE_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintFixedActor 569 +#define GETCONSTRAINTFIXEDACTOR_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintPivotA 570 +#define GETCONSTRAINTPIVOTA_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCONSTRAINTPIVOTA_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETCONSTRAINTPIVOTA_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETCONSTRAINTPIVOTA_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getConstraintPivotB 571 +#define GETCONSTRAINTPIVOTB_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCONSTRAINTPIVOTB_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETCONSTRAINTPIVOTB_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETCONSTRAINTPIVOTB_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getConstraintActorA 572 +#define GETCONSTRAINTACTORA_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintActorB 573 +#define GETCONSTRAINTACTORB_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setConstraintSolverIterations 574 +#define SETCONSTRAINTSOLVERITERATIONS_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTSOLVERITERATIONS_NUM num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getConstraintBiasFactor 575 +#define GETCONSTRAINTBIASFACTOR_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintDamping 576 +#define GETCONSTRAINTDAMPING_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintFixThresh 577 +#define GETCONSTRAINTFIXTHRESH_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintLimit 578 +#define GETCONSTRAINTLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCONSTRAINTLIMIT_LIMIT_INDEX num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getConstraintLimitSoftness 579 +#define GETCONSTRAINTLIMITSOFTNESS_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintSolverIterations 580 +#define GETCONSTRAINTSOLVERITERATIONS_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintAnglePoint 581 +#define GETCONSTRAINTANGLEPOINT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCONSTRAINTANGLEPOINT_ANGLE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETCONSTRAINTANGLEPOINT_C_LEN num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETCONSTRAINTANGLEPOINT_X num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETCONSTRAINTANGLEPOINT_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define GETCONSTRAINTANGLEPOINT_Z num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define FN_getConstraintAngularOnly 582 +#define GETCONSTRAINTANGULARONLY_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintSolveSwingLimit 583 +#define GETCONSTRAINTSOLVESWINGLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintSolveTwistLimit 584 +#define GETCONSTRAINTSOLVETWISTLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintSolveLimit 585 +#define GETCONSTRAINTSOLVELIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintSwingSpan1 586 +#define GETCONSTRAINTSWINGSPAN1_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintSwingSpan2 587 +#define GETCONSTRAINTSWINGSPAN2_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintTwistAngle 588 +#define GETCONSTRAINTTWISTANGLE_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintTwistLimitSign 589 +#define GETCONSTRAINTTWISTLIMITSIGN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintTwistSpan 590 +#define GETCONSTRAINTTWISTSPAN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setConstraintAngularOnly 591 +#define SETCONSTRAINTANGULARONLY_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTANGULARONLY_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintDamping 592 +#define SETCONSTRAINTDAMPING_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTDAMPING_DAMPING num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintFixThresh 593 +#define SETCONSTRAINTFIXTHRESH_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTFIXTHRESH_FIXTHRESH num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getConstraintAnchorA 594 +#define GETCONSTRAINTANCHORA_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCONSTRAINTANCHORA_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETCONSTRAINTANCHORA_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETCONSTRAINTANCHORA_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getConstraintAnchorB 595 +#define GETCONSTRAINTANCHORB_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCONSTRAINTANCHORB_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETCONSTRAINTANCHORB_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETCONSTRAINTANCHORB_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getConstraintAngDepth 596 +#define GETCONSTRAINTANGDEPTH_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintAngularPos 597 +#define GETCONSTRAINTANGULARPOS_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintDampingDirAng 598 +#define GETCONSTRAINTDAMPINGDIRANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintDampingDirLin 599 +#define GETCONSTRAINTDAMPINGDIRLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintDampingLimAng 600 +#define GETCONSTRAINTDAMPINGLIMANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintDampingLimLin 601 +#define GETCONSTRAINTDAMPINGLIMLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintDampingOrthoAng 602 +#define GETCONSTRAINTDAMPINGORTHOANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintDampingOrthoLin 603 +#define GETCONSTRAINTDAMPINGORTHOLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintLinearPos 604 +#define GETCONSTRAINTLINEARPOS_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintLinDepth 605 +#define GETCONSTRAINTLINDEPTH_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintLowerAngLimit 606 +#define GETCONSTRAINTLOWERANGLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintLowerLinLimit 607 +#define GETCONSTRAINTLOWERLINLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintRestitutionDirAng 608 +#define GETCONSTRAINTRESTITUTIONDIRANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintRestitutionDirLin 609 +#define GETCONSTRAINTRESTITUTIONDIRLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintRestitutionLimAng 610 +#define GETCONSTRAINTRESTITUTIONLIMANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintRestitutionLimLin 611 +#define GETCONSTRAINTRESTITUTIONLIMLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintRestitutionOrthoAng 612 +#define GETCONSTRAINTRESTITUTIONORTHOANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintRestitutionOrthoLin 613 +#define GETCONSTRAINTRESTITUTIONORTHOLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintSoftnessDirAng 614 +#define GETCONSTRAINTSOFTNESSDIRANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintSoftnessDirLin 615 +#define GETCONSTRAINTSOFTNESSDIRLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintSoftnessLimAng 616 +#define GETCONSTRAINTSOFTNESSLIMANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintSoftnessLimLin 617 +#define GETCONSTRAINTSOFTNESSLIMLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintSoftnessOrthoAng 618 +#define GETCONSTRAINTSOFTNESSORTHOANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintSoftnessOrthoLin 619 +#define GETCONSTRAINTSOFTNESSORTHOLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintSolveAngLimit 620 +#define GETCONSTRAINTSOLVEANGLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintSolveLinLimit 621 +#define GETCONSTRAINTSOLVELINLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintUpperAngLimit 622 +#define GETCONSTRAINTUPPERANGLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintUpperLinLimit 623 +#define GETCONSTRAINTUPPERLINLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintUseFrameOffset 624 +#define GETCONSTRAINTUSEFRAMEOFFSET_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setConstraintDampingDirAng 625 +#define SETCONSTRAINTDAMPINGDIRANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTDAMPINGDIRANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintDampingDirLin 626 +#define SETCONSTRAINTDAMPINGDIRLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTDAMPINGDIRLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintDampingLimAng 627 +#define SETCONSTRAINTDAMPINGLIMANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTDAMPINGLIMANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintDampingLimLin 628 +#define SETCONSTRAINTDAMPINGLIMLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTDAMPINGLIMLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintDampingOrthoAng 629 +#define SETCONSTRAINTDAMPINGORTHOANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTDAMPINGORTHOANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintDampingOrthoLin 630 +#define SETCONSTRAINTDAMPINGORTHOLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTDAMPINGORTHOLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintLowerAngLimit 631 +#define SETCONSTRAINTLOWERANGLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTLOWERANGLIMIT_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintLowerLinLimit 632 +#define SETCONSTRAINTLOWERLINLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTLOWERLINLIMIT_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintRestitutionDirAng 633 +#define SETCONSTRAINTRESTITUTIONDIRANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTRESTITUTIONDIRANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintRestitutionDirLin 634 +#define SETCONSTRAINTRESTITUTIONDIRLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTRESTITUTIONDIRLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintRestitutionLimAng 635 +#define SETCONSTRAINTRESTITUTIONLIMANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTRESTITUTIONLIMANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintRestitutionLimLin 636 +#define SETCONSTRAINTRESTITUTIONLIMLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTRESTITUTIONLIMLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintRestitutionOrthoAng 637 +#define SETCONSTRAINTRESTITUTIONORTHOANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTRESTITUTIONORTHOANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintRestitutionOrthoLin 638 +#define SETCONSTRAINTRESTITUTIONORTHOLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTRESTITUTIONORTHOLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintSoftnessDirAng 639 +#define SETCONSTRAINTSOFTNESSDIRANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTSOFTNESSDIRANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintSoftnessDirLin 640 +#define SETCONSTRAINTSOFTNESSDIRLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTSOFTNESSDIRLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintSoftnessLimAng 641 +#define SETCONSTRAINTSOFTNESSLIMANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTSOFTNESSLIMANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintSoftnessLimLin 642 +#define SETCONSTRAINTSOFTNESSLIMLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTSOFTNESSLIMLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintSoftnessOrthoAng 643 +#define SETCONSTRAINTSOFTNESSORTHOANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTSOFTNESSORTHOANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintSoftnessOrthoLin 644 +#define SETCONSTRAINTSOFTNESSORTHOLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTSOFTNESSORTHOLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintUpperAngLimit 645 +#define SETCONSTRAINTUPPERANGLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTUPPERANGLIMIT_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintUpperLinLimit 646 +#define SETCONSTRAINTUPPERLINLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTUPPERLINLIMIT_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetCameraPosition 647 +#define SETCAMERAPOSITION_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCAMERAPOSITION_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETCAMERAPOSITION_Z num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_GetCameraPosition 648 +#define GETCAMERAPOSITION_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCAMERAPOSITION_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETCAMERAPOSITION_Z num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_TranslateCamera 649 +#define TRANSLATECAMERA_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define TRANSLATECAMERA_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define TRANSLATECAMERA_Z num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_SetCameraRotation 650 +#define SETCAMERAROTATION_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCAMERAROTATION_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETCAMERAROTATION_Z num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_GetCameraRotation 651 +#define GETCAMERAROTATION_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCAMERAROTATION_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETCAMERAROTATION_Z num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_RotateCamera 652 +#define ROTATECAMERA_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ROTATECAMERA_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define ROTATECAMERA_Z num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_SetCameraFOV 653 +#define SETCAMERAFOV_FOV num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetCameraFOV 654 +#define FN_SetCameraAspectRatio 655 +#define SETCAMERAASPECTRATIO_ASPECT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetCameraAspectRatio 656 +#define FN_SetCameraFarValue 657 +#define SETCAMERAFARVALUE_ZF num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetCameraFarValue 658 +#define FN_SetCameraNearValue 659 +#define SETCAMERANEARVALUE_ZN num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetCameraNearValue 660 +#define FN_AddSceneSkyBox 661 +#define ADDSCENESKYBOX_IMG_TOP num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ADDSCENESKYBOX_IMG_BOTTOM num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define ADDSCENESKYBOX_IMG_LEFT num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define ADDSCENESKYBOX_IMG_RIGHT num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define ADDSCENESKYBOX_IMG_FRONT num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define ADDSCENESKYBOX_IMG_BACK num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define FN_AddSceneSkyDome 662 +#define ADDSCENESKYDOME_IMG num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_AddSceneSkyDomeEx 663 +#define ADDSCENESKYDOMEEX_IMG num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ADDSCENESKYDOMEEX_HORIRES num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define ADDSCENESKYDOMEEX_VERTRES num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define ADDSCENESKYDOMEEX_TXPERCENTAGE num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define ADDSCENESKYDOMEEX_SPHEREPERCENTAGE num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define ADDSCENESKYDOMEEX_RADIUS num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define FN_RemoveSceneSky 664 +#define FN_SetWorld3DDeltaTime 665 +#define SETWORLD3DDELTATIME_DT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetWorld3DMaxSubSteps 666 +#define SETWORLD3DMAXSUBSTEPS_STEPS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetWorld3DTimeStep 667 +#define SETWORLD3DTIMESTEP_TS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_startParticleEmitter 668 +#define STARTPARTICLEEMITTER_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_stopParticleEmitter 669 +#define STOPPARTICLEEMITTER_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setParticleDirection 670 +#define SETPARTICLEDIRECTION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLEDIRECTION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETPARTICLEDIRECTION_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETPARTICLEDIRECTION_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getParticleDirection 671 +#define GETPARTICLEDIRECTION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETPARTICLEDIRECTION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETPARTICLEDIRECTION_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETPARTICLEDIRECTION_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_useParticleEveryMeshVertex 672 +#define USEPARTICLEEVERYMESHVERTEX_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define USEPARTICLEEVERYMESHVERTEX_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_particleIsUsingEveryMeshVertex 673 +#define PARTICLEISUSINGEVERYMESHVERTEX_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setParticleNormalDirectionMod 674 +#define SETPARTICLENORMALDIRECTIONMOD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLENORMALDIRECTIONMOD_ND_MOD num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getParticleNormalDirectionMod 675 +#define GETPARTICLENORMALDIRECTIONMOD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_useParticleNormalDirection 676 +#define USEPARTICLENORMALDIRECTION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define USEPARTICLENORMALDIRECTION_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_particleIsUsingNormalDirection 677 +#define PARTICLEISUSINGNORMALDIRECTION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setParticleMesh 678 +#define SETPARTICLEMESH_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLEMESH_MESH num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setParticleMinParticlesPerSecond 679 +#define SETPARTICLEMINPARTICLESPERSECOND_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLEMINPARTICLESPERSECOND_MINPARTICLESPERSECOND num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getParticleMinParticlesPerSecond 680 +#define GETPARTICLEMINPARTICLESPERSECOND_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setParticleMaxParticlesPerSecond 681 +#define SETPARTICLEMAXPARTICLESPERSECOND_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLEMAXPARTICLESPERSECOND_MAXPARTICLESPERSECOND num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getParticleMaxParticlesPerSecond 682 +#define GETPARTICLEMAXPARTICLESPERSECOND_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setParticleMinStartColor 683 +#define SETPARTICLEMINSTARTCOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLEMINSTARTCOLOR_COLOR num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getParticleMinStartColor 684 +#define GETPARTICLEMINSTARTCOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setParticleMaxStartColor 685 +#define SETPARTICLEMAXSTARTCOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLEMAXSTARTCOLOR_COLOR num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getParticleMaxStartColor 686 +#define GETPARTICLEMAXSTARTCOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setParticleMinLife 687 +#define SETPARTICLEMINLIFE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLEMINLIFE_MINLIFE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getParticleMinLife 688 +#define GETPARTICLEMINLIFE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setParticleMaxLife 689 +#define SETPARTICLEMAXLIFE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLEMAXLIFE_MAXLIFE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getParticleMaxLife 690 +#define GETPARTICLEMAXLIFE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setParticleMaxAngle 691 +#define SETPARTICLEMAXANGLE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLEMAXANGLE_MAXANGLE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getParticleMaxAngle 692 +#define GETPARTICLEMAXANGLE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setParticleMinStartSize 693 +#define SETPARTICLEMINSTARTSIZE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLEMINSTARTSIZE_W num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETPARTICLEMINSTARTSIZE_H num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_getParticleMinStartSize 694 +#define GETPARTICLEMINSTARTSIZE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETPARTICLEMINSTARTSIZE_W num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETPARTICLEMINSTARTSIZE_H num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_setParticleMaxStartSize 695 +#define SETPARTICLEMAXSTARTSIZE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLEMAXSTARTSIZE_W num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETPARTICLEMAXSTARTSIZE_H num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_getParticleMaxStartSize 696 +#define GETPARTICLEMAXSTARTSIZE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETPARTICLEMAXSTARTSIZE_W num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETPARTICLEMAXSTARTSIZE_H num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_setParticleCenter 697 +#define SETPARTICLECENTER_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLECENTER_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETPARTICLECENTER_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETPARTICLECENTER_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getParticleCenter 698 +#define GETPARTICLECENTER_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETPARTICLECENTER_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETPARTICLECENTER_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETPARTICLECENTER_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_setParticleRadius 699 +#define SETPARTICLERADIUS_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLERADIUS_RADIUS num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getParticleRadius 700 +#define GETPARTICLERADIUS_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setParticleRingThickness 701 +#define SETPARTICLERINGTHICKNESS_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLERINGTHICKNESS_RINGTHICKNESS num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getParticleRingThickness 702 +#define GETPARTICLERINGTHICKNESS_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setParticleBox 703 +#define SETPARTICLEBOX_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLEBOX_MIN_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETPARTICLEBOX_MIN_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETPARTICLEBOX_MIN_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define SETPARTICLEBOX_MAX_X num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define SETPARTICLEBOX_MAX_Y num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define SETPARTICLEBOX_MAX_Z num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_getParticleBox 704 +#define GETPARTICLEBOX_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETPARTICLEBOX_MIN_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETPARTICLEBOX_MIN_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETPARTICLEBOX_MIN_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETPARTICLEBOX_MAX_X num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define GETPARTICLEBOX_MAX_Y num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define GETPARTICLEBOX_MAX_Z num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_setParticleNormal 705 +#define SETPARTICLENORMAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLENORMAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETPARTICLENORMAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETPARTICLENORMAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getParticleNormal 706 +#define GETPARTICLENORMAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETPARTICLENORMAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETPARTICLENORMAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETPARTICLENORMAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_setParticleLength 707 +#define SETPARTICLELENGTH_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLELENGTH_P_LEN num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getParticleLength 708 +#define GETPARTICLELENGTH_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_useParticleOutlineOnly 709 +#define USEPARTICLEOUTLINEONLY_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define USEPARTICLEOUTLINEONLY_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_particleIsUsingOutlineOnly 710 +#define PARTICLEISUSINGOUTLINEONLY_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_lightIsCastingShadow 711 +#define LIGHTISCASTINGSHADOW_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getLightType 712 +#define GETLIGHTTYPE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getLightRadius 713 +#define GETLIGHTRADIUS_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setLightType 714 +#define SETLIGHTTYPE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETLIGHTTYPE_LIGHT_TYPE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setLightRadius 715 +#define SETLIGHTRADIUS_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETLIGHTRADIUS_RADIUS num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setLightShadowCast 716 +#define SETLIGHTSHADOWCAST_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETLIGHTSHADOWCAST_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetLightAmbientColor 717 +#define SETLIGHTAMBIENTCOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETLIGHTAMBIENTCOLOR_COLOR num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetLightAmbientColor 718 +#define GETLIGHTAMBIENTCOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetLightAttenuation 719 +#define SETLIGHTATTENUATION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETLIGHTATTENUATION_L_CONSTANT num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETLIGHTATTENUATION_L_LINEAR num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETLIGHTATTENUATION_L_QUADRATIC num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_GetLightAttenuation 720 +#define GETLIGHTATTENUATION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETLIGHTATTENUATION_CONSTANT num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETLIGHTATTENUATION_LINEAR num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETLIGHTATTENUATION_QUADRATIC num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_SetLightDiffuseColor 721 +#define SETLIGHTDIFFUSECOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETLIGHTDIFFUSECOLOR_COLOR num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetLightDiffuseColor 722 +#define GETLIGHTDIFFUSECOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetLightFalloff 723 +#define SETLIGHTFALLOFF_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETLIGHTFALLOFF_FALLOFF num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetLightFalloff 724 +#define GETLIGHTFALLOFF_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetLightInnerCone 725 +#define SETLIGHTINNERCONE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETLIGHTINNERCONE_ANGLE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetLightInnerCone 726 +#define GETLIGHTINNERCONE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetLightOuterCone 727 +#define SETLIGHTOUTERCONE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETLIGHTOUTERCONE_ANGLE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetLightOuterCone 728 +#define GETLIGHTOUTERCONE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetLightSpecularColor 729 +#define SETLIGHTSPECULARCOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETLIGHTSPECULARCOLOR_COLOR num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetLightSpecularColor 730 +#define GETLIGHTSPECULARCOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetTerrainPatchAABB 731 +#define GETTERRAINPATCHAABB_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETTERRAINPATCHAABB_PATCHX num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETTERRAINPATCHAABB_PATCHZ num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETTERRAINPATCHAABB_MINX num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETTERRAINPATCHAABB_MINY num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define GETTERRAINPATCHAABB_MINZ num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define GETTERRAINPATCHAABB_MAXX num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define GETTERRAINPATCHAABB_MAXY num_var[7].nref[0].value[ num_var[7].byref_offset ] +#define GETTERRAINPATCHAABB_MAXZ num_var[8].nref[0].value[ num_var[8].byref_offset ] +#define FN_GetTerrainPatchLOD 732 +#define GETTERRAINPATCHLOD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETTERRAINPATCHLOD_PATCHX num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETTERRAINPATCHLOD_PATCHZ num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_GetTerrainHeight 733 +#define GETTERRAINHEIGHT_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETTERRAINHEIGHT_PATCHX num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETTERRAINHEIGHT_PATCHZ num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_GetTerrainCenter 734 +#define GETTERRAINCENTER_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETTERRAINCENTER_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETTERRAINCENTER_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETTERRAINCENTER_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_SetTerrainLODDistance 735 +#define SETTERRAINLODDISTANCE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETTERRAINLODDISTANCE_LOD num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETTERRAINLODDISTANCE_DISTANCE num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_ScaleTerrainTexture 736 +#define SCALETERRAINTEXTURE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SCALETERRAINTEXTURE_SCALE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SCALETERRAINTEXTURE_SCALE2 num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_SetTerrainCameraMovementDelta 737 +#define SETTERRAINCAMERAMOVEMENTDELTA_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETTERRAINCAMERAMOVEMENTDELTA_DELTA num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetTerrainCameraRotationDelta 738 +#define SETTERRAINCAMERAROTATIONDELTA_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETTERRAINCAMERAROTATIONDELTA_DELTA num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetTerrainPatchLOD 739 +#define SETTERRAINPATCHLOD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETTERRAINPATCHLOD_PATCHX num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETTERRAINPATCHLOD_PATCHZ num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETTERRAINPATCHLOD_LOD num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_setWaterWindForce 740 +#define SETWATERWINDFORCE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETWATERWINDFORCE_F num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getWaterWindForce 741 +#define GETWATERWINDFORCE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setWaterWaveHeight 742 +#define SETWATERWAVEHEIGHT_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETWATERWAVEHEIGHT_H num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getWaterWaveHeight 743 +#define GETWATERWAVEHEIGHT_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setWaterWindDirection 744 +#define SETWATERWINDDIRECTION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETWATERWINDDIRECTION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETWATERWINDDIRECTION_Z num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_getWaterWindDirection 745 +#define GETWATERWINDDIRECTION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETWATERWINDDIRECTION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETWATERWINDDIRECTION_Z num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_setWaterColor 746 +#define SETWATERCOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETWATERCOLOR_C num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getWaterColor 747 +#define GETWATERCOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setWaterColorBlendFactor 748 +#define SETWATERCOLORBLENDFACTOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETWATERCOLORBLENDFACTOR_CBFACTOR num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getWaterColorBlendFactor 749 +#define GETWATERCOLORBLENDFACTOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetActorAnimation 750 +#define SETACTORANIMATION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORANIMATION_START_FRAME num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORANIMATION_END_FRAME num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_SetActorAnimationSpeed 751 +#define SETACTORANIMATIONSPEED_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORANIMATIONSPEED_SPEED num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetActorFrame 752 +#define SETACTORFRAME_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORFRAME_FRAME num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetActorMD2Animation 753 +#define SETACTORMD2ANIMATION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORMD2ANIMATION_ANIM num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetActorMD2AnimationByName 754 +#define SETACTORMD2ANIMATIONBYNAME_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORMD2ANIMATIONBYNAME_ANIM_NAME$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_GetActorAnimationSpeed 755 +#define GETACTORANIMATIONSPEED_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetActorEndFrame 756 +#define GETACTORENDFRAME_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetActorCurrentFrame 757 +#define GETACTORCURRENTFRAME_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetActorStartFrame 758 +#define GETACTORSTARTFRAME_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_StartActorTransition 759 +#define STARTACTORTRANSITION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define STARTACTORTRANSITION_FRAME num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define STARTACTORTRANSITION_TRANSITION_TIME num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_StopActorTransition 760 +#define STOPACTORTRANSITION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_ActorIsInTransition 761 +#define ACTORISINTRANSITION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetActorTransitionTime 762 +#define GETACTORTRANSITIONTIME_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_actorAnimationIsLooped 763 +#define ACTORANIMATIONISLOOPED_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_loopActorAnimation 764 +#define LOOPACTORANIMATION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define LOOPACTORANIMATION_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_createMaterial 765 +#define FN_deleteMaterial 766 +#define DELETEMATERIAL_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setActorMaterial 767 +#define SETACTORMATERIAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORMATERIAL_MATERIAL_NUM num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORMATERIAL_MATERIAL_ID num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_getActorMaterial 768 +#define GETACTORMATERIAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORMATERIAL_MATERIAL_NUM num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_copyActorMaterial 769 +#define COPYACTORMATERIAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define COPYACTORMATERIAL_MATERIAL_NUM num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_copyMaterial 770 +#define COPYMATERIAL_SMATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialTextureCanvas 771 +#define SETMATERIALTEXTURECANVAS_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALTEXTURECANVAS_LEVEL num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETMATERIALTEXTURECANVAS_CANVAS_ID num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_setMaterialAmbientColor 772 +#define SETMATERIALAMBIENTCOLOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALAMBIENTCOLOR_COLOR num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialAmbientColor 773 +#define GETMATERIALAMBIENTCOLOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialAntiAliasing 774 +#define SETMATERIALANTIALIASING_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALANTIALIASING_AA num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialAntiAliasing 775 +#define GETMATERIALANTIALIASING_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialBackfaceCulling 776 +#define SETMATERIALBACKFACECULLING_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALBACKFACECULLING_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialBackfaceCulling 777 +#define GETMATERIALBACKFACECULLING_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialBlendFactor 778 +#define SETMATERIALBLENDFACTOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALBLENDFACTOR_BF num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialBlendFactor 779 +#define GETMATERIALBLENDFACTOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialBlendMode 780 +#define SETMATERIALBLENDMODE_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALBLENDMODE_BLEND_MODE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialBlendMode 781 +#define GETMATERIALBLENDMODE_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialColorMask 782 +#define SETMATERIALCOLORMASK_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALCOLORMASK_COLOR_MASK num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialColorMask 783 +#define GETMATERIALCOLORMASK_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialColorMode 784 +#define SETMATERIALCOLORMODE_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALCOLORMODE_COLOR_MODE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialColorMode 785 +#define GETMATERIALCOLORMODE_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialDiffuseColor 786 +#define SETMATERIALDIFFUSECOLOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALDIFFUSECOLOR_COLOR num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialDiffuseColor 787 +#define GETMATERIALDIFFUSECOLOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialEmissiveColor 788 +#define SETMATERIALEMISSIVECOLOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALEMISSIVECOLOR_COLOR num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialEmissiveColor 789 +#define GETMATERIALEMISSIVECOLOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialFog 790 +#define SETMATERIALFOG_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALFOG_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialFog 791 +#define GETMATERIALFOG_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialFrontfaceCulling 792 +#define SETMATERIALFRONTFACECULLING_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALFRONTFACECULLING_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialFrontfaceCulling 793 +#define GETMATERIALFRONTFACECULLING_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialGouraudShading 794 +#define SETMATERIALGOURAUDSHADING_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALGOURAUDSHADING_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_materialIsGouraudShaded 795 +#define MATERIALISGOURAUDSHADED_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_materialIsAplhaBlend 796 +#define MATERIALISAPLHABLEND_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_materialIsTransparent 797 +#define MATERIALISTRANSPARENT_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialLighting 798 +#define SETMATERIALLIGHTING_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALLIGHTING_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_materialIsLit 799 +#define MATERIALISLIT_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialType 800 +#define SETMATERIALTYPE_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALTYPE_MAT_TYPE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialType 801 +#define GETMATERIALTYPE_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialNormalize 802 +#define SETMATERIALNORMALIZE_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALNORMALIZE_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_materialIsNormalized 803 +#define MATERIALISNORMALIZED_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialPointCloud 804 +#define SETMATERIALPOINTCLOUD_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALPOINTCLOUD_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_materialIsPointCloud 805 +#define MATERIALISPOINTCLOUD_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialFlag 806 +#define SETMATERIALFLAG_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALFLAG_MATERIAL_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETMATERIALFLAG_F_VALUE num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_getMaterialFlag 807 +#define GETMATERIALFLAG_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETMATERIALFLAG_MATERIAL_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setMaterialTexture 808 +#define SETMATERIALTEXTURE_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALTEXTURE_LEVEL num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETMATERIALTEXTURE_IMG_ID num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_setMaterialShininess 809 +#define SETMATERIALSHININESS_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALSHININESS_SHININESS num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialShininess 810 +#define GETMATERIALSHININESS_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialSpecularColor 811 +#define SETMATERIALSPECULARCOLOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALSPECULARCOLOR_COLOR num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialSpecularColor 812 +#define GETMATERIALSPECULARCOLOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialThickness 813 +#define SETMATERIALTHICKNESS_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALTHICKNESS_THICKNESS num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialThickness 814 +#define GETMATERIALTHICKNESS_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialWireframe 815 +#define SETMATERIALWIREFRAME_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALWIREFRAME_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_materialIsWireframe 816 +#define MATERIALISWIREFRAME_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setActorTexture 817 +#define SETACTORTEXTURE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORTEXTURE_LAYER num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORTEXTURE_IMAGE_ID num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_getActorMaterialCount 818 +#define GETACTORMATERIALCOUNT_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setActorMaterialFlag 819 +#define SETACTORMATERIALFLAG_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORMATERIALFLAG_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORMATERIALFLAG_FLAG_VALUE num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_getActorMaterialFlag 820 +#define GETACTORMATERIALFLAG_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORMATERIALFLAG_MATERIAL num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORMATERIALFLAG_FLAG num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_setActorMaterialType 821 +#define SETACTORMATERIALTYPE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORMATERIALTYPE_MATERIAL_TYPE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getActorMaterialType 822 +#define GETACTORMATERIALTYPE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORMATERIALTYPE_MATERIAL num_var[1].nref[0].value[ num_var[1].byref_offset ] diff --git a/rcbasic_build/rcbasic_dev3.txt b/rcbasic_build/rcbasic_dev3.txt index 1389185..6d84512 100644 --- a/rcbasic_build/rcbasic_dev3.txt +++ b/rcbasic_build/rcbasic_dev3.txt @@ -1,950 +1,2497 @@ -case FN_FPrint: //Sub Procedure -break; +case FN_Fprint: //Sub Procedure + rc_fprint( FPRINT_TXT$ ); + break; case FN_Input$: //String Function -break; + rc_push_str(rc_input( INPUT$_PROMPT$ )); + break; +case FN_tst: //Sub Procedure + rc_tst( &TST_X ); + break; case FN_ArrayDim: //Number Function -break; + //DUMMY CASE + + break; case FN_StringArrayDim: //Number Function -break; + 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 -break; + 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 -break; + //DUMMY CASE + + break; case FN_StringArraySize: //Number Function -break; + 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 -break; -case FN_Abs: //Number Function -break; -case FN_ACos: //Number Function -break; -case FN_AndBit: //Number Function -break; -case FN_ASin: //Number Function -break; -case FN_ATan: //Number Function -break; -case FN_Bin$: //String Function -break; -case FN_CInt32: //Number Function -break; -case FN_CInt64: //Number Function -break; -case FN_Cos: //Number Function -break; -case FN_Degrees: //Number Function -break; -case FN_Exp: //Number Function -break; -case FN_Frac: //Number Function -break; -case FN_Hex$: //String Function -break; -case FN_HexVal: //Number Function -break; -case FN_Int: //Number Function -break; -case FN_Log: //Number Function -break; -case FN_Max: //Number Function -break; -case FN_Min: //Number Function -break; -case FN_OrBit: //Number Function -break; -case FN_Radians: //Number Function -break; -case FN_Randomize: //Number Function -break; -case FN_Rand: //Number Function -break; -case FN_Round: //Number Function -break; -case FN_Sign: //Number Function -break; -case FN_Sin: //Number Function -break; -case FN_Sqrt: //Number Function -break; -case FN_Tan: //Number Function -break; -case FN_XOrBit: //Number Function -break; -case FN_Asc: //Number Function -break; -case FN_Chr$: //String Function -break; -case FN_Insert$: //String Function -break; -case FN_InStr: //Number Function -break; -case FN_LCase$: //String Function -break; -case FN_Left$: //String Function -break; -case FN_Length: //Number Function -break; -case FN_Len: //Number Function -break; -case FN_LTrim$: //String Function -break; -case FN_Mid$: //String Function -break; -case FN_ReplaceSubstr$: //String Function -break; -case FN_Replace$: //String Function -break; -case FN_Reverse$: //String Function -break; -case FN_Right$: //String Function -break; -case FN_RTrim$: //String Function -break; -case FN_StringFill$: //String Function -break; -case FN_Str$: //String Function -break; -case FN_Str_F$: //String Function -break; -case FN_Str_S$: //String Function -break; -case FN_Tally: //Number Function -break; -case FN_Trim$: //String Function -break; -case FN_UCase$: //String Function -break; -case FN_Val: //Number Function -break; -case FN_Stack_N: //Sub Procedure -break; -case FN_Stack_S: //Sub Procedure -break; -case FN_Push_N: //Sub Procedure -break; -case FN_Pop_N: //Number Function -break; -case FN_Push_S: //Sub Procedure -break; -case FN_Pop_S$: //String Function -break; -case FN_Stack_Size_N: //Number Function -break; -case FN_Stack_Size_S: //Number Function -break; -case FN_FileOpen: //Number Function -break; -case FN_FileClose: //Sub Procedure -break; -case FN_ReadByte: //Number Function -break; -case FN_WriteByte: //Sub Procedure -break; -case FN_ReadLine$: //String Function -break; -case FN_Write: //Sub Procedure -break; -case FN_WriteLine: //Sub Procedure -break; -case FN_CopyFile: //Sub Procedure -break; -case FN_RemoveFile: //Number Function -break; -case FN_FileExists: //Number Function -break; -case FN_MoveFile: //Number Function -break; -case FN_RenameFile: //Number Function -break; -case FN_FileLength: //Number Function -break; -case FN_Tell: //Number Function -break; -case FN_Seek: //Number Function -break; -case FN_EOF: //Number Function -break; -case FN_FreeFile: //Number Function -break; -case FN_ChangeDir: //Sub Procedure -break; -case FN_DirExists: //Number Function -break; -case FN_DirFirst$: //String Function -break; -case FN_Dir$: //String Function -break; -case FN_DirNext$: //String Function -break; -case FN_MakeDir: //Number Function -break; -case FN_RemoveDir: //Number Function -break; -case FN_Date$: //String Function -break; -case FN_Easter$: //String Function -break; -case FN_Ticks: //Number Function -break; -case FN_Time$: //String Function -break; -case FN_Timer: //Number Function -break; -case FN_Wait: //Sub Procedure -break; -case FN_WindowOpen: //Sub Procedure -break; -case FN_WindowClose: //Sub Procedure -break; -case FN_RaiseWindow: //Sub Procedure -break; -case FN_Window: //Sub Procedure -break; -case FN_Update: //Sub Procedure -break; -case FN_Cls: //Sub Procedure -break; -case FN_SetClearColor: //Sub Procedure -break; -case FN_ShowWindow: //Sub Procedure -break; -case FN_HideWindow: //Sub Procedure -break; -case FN_SetWindowTitle: //Sub Procedure -break; -case FN_WindowTitle$: //String Function -break; -case FN_SetWindowPosition: //Sub Procedure -break; -case FN_GetWindowPosition: //Sub Procedure -break; -case FN_SetWindowSize: //Sub Procedure -break; -case FN_GetWindowSize: //Sub Procedure -break; -case FN_SetWindowMinSize: //Sub Procedure -break; -case FN_GetWindowMinSize: //Sub Procedure -break; -case FN_SetWindowMaxSize: //Sub Procedure -break; -case FN_GetWindowMaxSize: //Sub Procedure -break; -case FN_WindowIsFullscreen: //Number Function -break; -case FN_WindowIsVisible: //Number Function -break; -case FN_WindowIsBordered: //Number Function -break; -case FN_WindowIsResizable: //Number Function -break; -case FN_WindowIsMinimized: //Number Function -break; -case FN_WindowIsMaximized: //Number Function -break; -case FN_WindowHasInputFocus: //Number Function -break; -case FN_WindowHasMouseFocus: //Number Function -break; -case FN_SetWindowFullscreen: //Sub Procedure -break; -case FN_MaximizeWindow: //Sub Procedure -break; -case FN_MinimizeWindow: //Sub Procedure -break; -case FN_SetWindowBorder: //Sub Procedure -break; -case FN_WindowClip: //Sub Procedure -break; -case FN_WindowExists: //Number Function -break; -case FN_NumWindows: //Number Function -break; -case FN_WindowEvent_Close: //Number Function -break; -case FN_WindowEvent_Maximize: //Number Function -break; -case FN_WindowEvent_Minimize: //Number Function -break; -case FN_ActiveWindow: //Number Function -break; -case FN_FPS: //Number Function -break; -case FN_SetWindowIcon: //Sub Procedure -break; -case FN_CanvasOpen: //Sub Procedure -break; -case FN_CanvasClose: //Sub Procedure -break; -case FN_SetCanvasVisible: //Sub Procedure -break; -case FN_CanvasIsVisible: //Number Function -break; -case FN_SetCanvasViewport: //Sub Procedure -break; -case FN_GetCanvasViewport: //Sub Procedure -break; -case FN_Canvas: //Sub Procedure -break; -case FN_SetCanvasOffset: //Sub Procedure -break; -case FN_GetCanvasOffset: //Sub Procedure -break; -case FN_GetCanvasSize: //Sub Procedure -break; -case FN_ClearCanvas: //Sub Procedure -break; -case FN_SetCanvasAlpha: //Sub Procedure -break; -case FN_CanvasAlpha: //Number Function -break; -case FN_SetCanvasBlendMode: //Number Function -break; -case FN_CanvasBlendMode: //Number Function -break; -case FN_SetCanvasColorMod: //Number Function -break; -case FN_CanvasColorMod: //Number Function -break; -case FN_CopyCanvas: //Sub Procedure -break; -case FN_CloneCanvas: //Sub Procedure -break; -case FN_SetCanvasZ: //Sub Procedure -break; -case FN_CanvasZ: //Number Function -break; -case FN_CanvasClip: //Sub Procedure -break; -case FN_ActiveCanvas: //Number Function -break; -case FN_Box: //Sub Procedure -break; -case FN_BoxFill: //Sub Procedure -break; -case FN_Circle: //Sub Procedure -break; -case FN_CircleFill: //Sub Procedure -break; -case FN_Ellipse: //Sub Procedure -break; -case FN_EllipseFill: //Sub Procedure -break; -case FN_FloodFill: //Sub Procedure -break; -case FN_GetPixel: //Number Function -break; -case FN_SetColor: //Sub Procedure -break; -case FN_Line: //Sub Procedure -break; -case FN_Poly: //Sub Procedure -break; -case FN_PolyFill: //Sub Procedure -break; -case FN_Rect: //Sub Procedure -break; -case FN_RectFill: //Sub Procedure -break; -case FN_RoundRect: //Sub Procedure -break; -case FN_RoundRectFill: //Sub Procedure -break; -case FN_RGB: //Number Function -break; -case FN_RGBA: //Number Function -break; -case FN_PSet: //Sub Procedure -break; -case FN_LoadImage: //Sub Procedure -break; -case FN_LoadImage_Ex: //Sub Procedure -break; -case FN_ImageFromBuffer: //Sub Procedure -break; -case FN_ImageFromBuffer_Ex: //Sub Procedure -break; -case FN_BufferFromImage: //Sub Procedure -break; -case FN_ImageExists: //Number Function -break; -case FN_ColorKey: //Sub Procedure -break; -case FN_CopyImage: //Sub Procedure -break; -case FN_DeleteImage: //Sub Procedure -break; -case FN_SetImageAlpha: //Sub Procedure -break; -case FN_ImageAlpha: //Number Function -break; -case FN_GetImageSize: //Sub Procedure -break; -case FN_SetImageBlendMode: //Number Function -break; -case FN_ImageBlendMode: //Number Function -break; -case FN_SetImageColorMod: //Number Function -break; -case FN_ImageColorMod: //Number Function -break; -case FN_DrawImage: //Sub Procedure -break; -case FN_DrawImage_Blit: //Sub Procedure -break; -case FN_DrawImage_Blit_Ex: //Sub Procedure -break; -case FN_DrawImage_Rotate: //Sub Procedure -break; -case FN_DrawImage_Rotate_Ex: //Sub Procedure -break; -case FN_DrawImage_Zoom: //Sub Procedure -break; -case FN_DrawImage_Zoom_Ex: //Sub Procedure -break; -case FN_DrawImage_Rotozoom: //Sub Procedure -break; -case FN_DrawImage_Rotozoom_Ex: //Sub Procedure -break; -case FN_DrawImage_Flip: //Sub Procedure -break; -case FN_DrawImage_Flip_Ex: //Sub Procedure -break; -case FN_InKey: //Number Function -break; -case FN_Key: //Number Function -break; -case FN_WaitKey: //Number Function -break; -case FN_HideMouse: //Sub Procedure -break; -case FN_ShowMouse: //Sub Procedure -break; -case FN_MouseIsVisible: //Number Function -break; -case FN_GetMouse: //Sub Procedure -break; -case FN_MouseX: //Number Function -break; -case FN_MouseY: //Number Function -break; -case FN_MouseButton: //Number Function -break; -case FN_GetMouseWheel: //Sub Procedure -break; -case FN_MouseWheelX: //Number Function -break; -case FN_MouseWheelY: //Number Function -break; -case FN_SoundFromBuffer: //Sub Procedure -break; -case FN_LoadSound: //Sub Procedure -break; -case FN_LoadMusic: //Sub Procedure -break; -case FN_PlaySound: //Sub Procedure -break; -case FN_PlaySoundTimed: //Sub Procedure -break; -case FN_PlayMusic: //Sub Procedure -break; -case FN_PauseSound: //Sub Procedure -break; -case FN_ResumeSound: //Sub Procedure -break; -case FN_PauseMusic: //Sub Procedure -break; -case FN_ResumeMusic: //Sub Procedure -break; -case FN_DeleteSound: //Sub Procedure -break; -case FN_DeleteMusic: //Sub Procedure -break; -case FN_FadeMusicIn: //Sub Procedure -break; -case FN_FadeMusicOut: //Sub Procedure -break; -case FN_MusicExists: //Number Function -break; -case FN_SetMusicVolume: //Sub Procedure -break; -case FN_MusicVolume: //Number Function -break; -case FN_SetMusicPosition: //Sub Procedure -break; -case FN_MusicPosition: //Number Function -break; -case FN_RewindMusic: //Sub Procedure -break; -case FN_SetSoundChannels: //Sub Procedure -break; -case FN_NumSoundChannels: //Number Function -break; -case FN_SoundIsEnabled: //Number Function -break; -case FN_SoundExists: //Number Function -break; -case FN_SetChannelVolume: //Sub Procedure -break; -case FN_ChannelVolume: //Number Function -break; -case FN_SetSoundVolume: //Sub Procedure -break; -case FN_SoundVolume: //Number Function -break; -case FN_StopMusic: //Sub Procedure -break; -case FN_StopSound: //Sub Procedure -break; -case FN_SetChannelPanning: //Number Function -break; -case FN_SetChannelDistance: //Number Function -break; -case FN_ChannelIsPlaying: //Number Function -break; -case FN_ChannelIsPaused: //Number Function -break; -case FN_NumJoysticks: //Number Function -break; -case FN_NumJoyAxes: //Number Function -break; -case FN_NumJoyButtons: //Number Function -break; -case FN_NumJoyHats: //Number Function -break; -case FN_NumJoyTrackBalls: //Number Function -break; -case FN_JoyAxis: //Number Function -break; -case FN_JoyButton: //Number Function -break; -case FN_JoyHat: //Number Function -break; -case FN_GetJoyTrackBall: //Sub Procedure -break; -case FN_JoyName$: //String Function -break; -case FN_JoystickIsConnected: //Number Function -break; -case FN_GetCursor: //Sub Procedure -break; -case FN_PrintS: //Sub Procedure -break; -case FN_InputS$: //String Function -break; -case FN_ZoneInputS$: //String Function -break; -case FN_Locate: //Sub Procedure -break; -case FN_ReadInput_Start: //Sub Procedure -break; -case FN_ReadInput_Stop: //Sub Procedure -break; -case FN_ReadInput_Text$: //String Function -break; -case FN_ReadInput_SetText: //Sub Procedure -break; -case FN_ReadInput_ToggleBackspace: //Sub Procedure -break; -case FN_LoadFont: //Sub Procedure -break; -case FN_DeleteFont: //Sub Procedure -break; -case FN_FontIsLoaded: //Number Function -break; -case FN_Font: //Sub Procedure -break; -case FN_SetFontStyle: //Sub Procedure -break; -case FN_DrawText: //Sub Procedure -break; -case FN_DrawText_Shaded: //Sub Procedure -break; -case FN_DrawText_Blended: //Sub Procedure -break; -case FN_RenderText: //Sub Procedure -break; -case FN_GetTextSize: //Sub Procedure -break; -case FN_TouchPressure: //Number Function -break; -case FN_GetTouch: //Sub Procedure -break; -case FN_GetMultiTouch: //Sub Procedure -break; -case FN_GetTouchFinger: //Sub Procedure -break; -case FN_NumFingers: //Number Function -break; -case FN_CheckSockets: //Number Function -break; -case FN_TCP_SocketReady: //Number Function -break; -case FN_UDP_SocketReady: //Number Function -break; -case FN_TCP_SocketOpen: //Number Function -break; -case FN_TCP_SocketClose: //Sub Procedure -break; -case FN_TCP_RemoteHost: //Number Function -break; -case FN_TCP_RemotePort: //Number Function -break; -case FN_TCP_GetData: //Number Function -break; -case FN_TCP_SendData: //Sub Procedure -break; -case FN_TCP_AcceptSocket: //Number Function -break; -case FN_UDP_SocketOpen: //Number Function -break; -case FN_UDP_SocketClose: //Number Function -break; -case FN_UDP_GetData: //Number Function -break; -case FN_UDP_Length: //Number Function -break; -case FN_UDP_MaxLength: //Number Function -break; -case FN_UDP_RemoteHost$: //String Function -break; -case FN_UDP_RemotePort: //Number Function -break; -case FN_UDP_SendData: //Sub Procedure -break; -case FN_LoadVideo: //Sub Procedure -break; -case FN_PlayVideo: //Sub Procedure -break; -case FN_PauseVideo: //Sub Procedure -break; -case FN_StopVideo: //Sub Procedure -break; -case FN_SetVideoPosition: //Sub Procedure -break; -case FN_ResumeVideo: //Sub Procedure -break; -case FN_VideoPosition: //Number Function -break; -case FN_DeleteVideo: //Sub Procedure -break; -case FN_VideoIsPlaying: //Number Function -break; -case FN_VideoEnd: //Number Function -break; -case FN_GetVideoStats: //Sub Procedure -break; -case FN_SetVideoDrawRect: //Sub Procedure -break; -case FN_GetVideoDrawRect: //Sub Procedure -break; -case FN_GetVideoSize: //Sub Procedure -break; -case FN_VideoExists: //Number Function -break; -case FN_SetVideoAlpha: //Sub Procedure -break; -case FN_System: //Number Function -break; -case FN_OS$: //String Function -break; -case FN_Command$: //String Function -break; -case FN_NumCommands: //Number Function -break; -case FN_Env$: //String Function -break; -case FN_SetEnv: //Sub Procedure -break; -case FN_PrefPath$: //String Function -break; -case FN_Android_GetExternalStoragePath$: //String Function -break; -case FN_Android_GetExternalStorageState: //Number Function -break; -case FN_Android_GetInternalStoragePath$: //String Function -break; -case FN_Android_JNI_Message$: //String Function -break; -case FN_Runtime_Utility_Message$: //String Function -break; -case FN_ClipboardText$: //String Function -break; -case FN_SetClipboardText: //Sub Procedure -break; -case FN_HasClipboardText: //Number Function -break; -case FN_GetDesktopDisplayMode: //Sub Procedure -break; -case FN_DrawImage_Transform: //Sub Procedure -break; -case FN_GetPowerInfo: //Sub Procedure -break; -case FN_SystemRam: //Number Function -break; -case FN_SetRenderScaleQuality: //Number Function -break; -case FN_EvalJS$: //String Function -break; -case FN_GetRenderScaleQuality: //Number Function -break; -case FN_GetGlobalMouse: //Sub Procedure -break; -case FN_GlobalMouseX: //Number Function -break; -case FN_GlobalMouseY: //Number Function -break; -case FN_GetAccel: //Sub Procedure -break; -case FN_AccelName$: //String Function -break; -case FN_NumAccels: //Number Function -break; -case FN_GetGyro: //Sub Procedure -break; -case FN_GyroName$: //String Function -break; -case FN_NumGyros: //Number Function -break; -case FN_JoyRumblePlay: //Sub Procedure -break; -case FN_JoyRumbleStop: //Sub Procedure -break; -case FN_JoystickIsHaptic: //Number Function -break; -case FN_WriteByteBuffer: //Number Function -break; -case FN_ReadByteBuffer: //Number Function -break; -case FN_WindowEvent_Resize: //Number Function -break; -case FN_SetWindowAutoClose: //Sub Procedure -break; -case FN_SetWindowResizable: //Sub Procedure -break; -case FN_SystemReturnStdOut$: //String Function -break; -case FN_WindowMode: //Number Function -break; -case FN_WindowFlags: //Number Function -break; -case FN_RestoreWindow: //Sub Procedure -break; -case FN_UpdateAllWindows: //Sub Procedure -break; -case FN_QueryAudioSpec: //Number Function -break; -case FN_MusicIsPlaying: //Number Function -break; -case FN_DrawGeometry: //Number Function -break; -case FN_Size: //Number Function -break; -case FN_BufferFromString: //Number Function -break; -case FN_StringFromBuffer$: //String Function -break; -case FN_GrabInput: //Sub Procedure -break; -case FN_GrabbedWindow: //Number Function -break; -case FN_WarpMouse: //Sub Procedure -break; -case FN_WarpMouseGlobal: //Sub Procedure -break; -case FN_SetMouseZone: //Sub Procedure -break; -case FN_ClearMouseZone: //Sub Procedure -break; -case FN_SetWindowAlwaysOnTop: //Sub Procedure -break; -case FN_SetMouseRelative: //Sub Procedure -break; -case FN_SetWindowVSync: //Sub Procedure -break; -case FN_OpenURL: //Number Function -break; -case FN_APIVersion$: //String Function -break; -case FN_FlashWindow: //Number Function -break; -case FN_MessageBox: //Number Function -break; + 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 -break; + rc_number_array_copy( &num_var[0], &num_var[1]); + arr_ref_id.clear(); + + break; case FN_StringArrayCopy: //Sub Procedure -break; + rc_string_array_copy( &str_var[0], &str_var[1]); + arr_ref_id.clear(); + + break; case FN_ArrayCopy: //Sub Procedure -break; + //DUMMY CASE + + break; case FN_NumberArrayFill: //Sub Procedure -break; + rc_number_array_fill( &num_var[0], NUMBERARRAYFILL_FDATA); + arr_ref_id.clear(); + + break; case FN_StringArrayFill: //Sub Procedure -break; + rc_string_array_fill( &str_var[0], STRINGARRAYFILL_FDATA$); + arr_ref_id.clear(); + + break; case FN_ArrayFill: //Sub Procedure -break; -case FN_Runtime$: //String Function -break; -case FN_DimMatrix: //Sub Procedure -break; -case FN_AddMatrix: //Number Function -break; -case FN_AugmentMatrix: //Number Function -break; -case FN_CopyMatrix: //Sub Procedure -break; -case FN_InsertMatrixColumns: //Number Function -break; -case FN_InsertMatrixRows: //Number Function -break; -case FN_MultiplyMatrix: //Number Function -break; -case FN_CubeMatrix: //Number Function -break; -case FN_DeleteMatrixColumns: //Number Function -break; -case FN_DeleteMatrixRows: //Number Function -break; -case FN_ClearMatrix: //Sub Procedure -break; -case FN_ClearMatrixColumns: //Number Function -break; -case FN_ClearMatrixRows: //Number Function -break; -case FN_FillMatrix: //Sub Procedure -break; -case FN_FillMatrixColumns: //Number Function -break; -case FN_FillMatrixRows: //Number Function -break; -case FN_CopyMatrixColumns: //Number Function -break; -case FN_CopyMatrixRows: //Number Function -break; -case FN_IdentityMatrix: //Sub Procedure -break; -case FN_SolveMatrix: //Number Function -break; -case FN_IsEqualMatrix: //Number Function -break; -case FN_Determinant: //Number Function -break; -case FN_AdjointMatrix: //Number Function -break; -case FN_InvertMatrix: //Number Function -break; -case FN_MatrixFromBuffer: //Sub Procedure -break; -case FN_GetMatrix: //Sub Procedure -break; -case FN_RandomizeMatrix: //Sub Procedure -break; -case FN_MatrixValue: //Number Function -break; -case FN_SetMatrixValue: //Sub Procedure -break; -case FN_ScalarMatrix: //Sub Procedure -break; -case FN_ScalarMatrixColumns: //Number Function -break; -case FN_ScalarMatrixRows: //Number Function -break; -case FN_SquareMatrix: //Number Function -break; -case FN_SubMatrix: //Sub Procedure -break; -case FN_SubtractMatrix: //Number Function -break; -case FN_SwapMatrix: //Sub Procedure -break; -case FN_SwapMatrixColumn: //Number Function -break; -case FN_SwapMatrixRow: //Number Function -break; -case FN_TransposeMatrix: //Number Function -break; -case FN_UnAugmentMatrix: //Number Function -break; -case FN_ZeroMatrix: //Sub Procedure -break; -case FN_GetMatrixSize: //Sub Procedure -break; -case FN_SetMatrixProcess: //Number Function -break; -case FN_ProcessOpen: //Number Function -break; -case FN_SetProcessErrorMode: //Sub Procedure -break; -case FN_ProcessError: //Number Function -break; -case FN_ProcessWait: //Sub Procedure -break; -case FN_ProcessWaitAll: //Sub Procedure -break; -case FN_ProcessContinue: //Sub Procedure -break; -case FN_ProcessStop: //Sub Procedure -break; -case FN_ProcessClear: //Sub Procedure -break; -case FN_ProcessClose: //Number Function -break; -case FN_ProcessErrorMode: //Number Function -break; -case FN_ProcessSleep: //Sub Procedure -break; -case FN_ProcessExists: //Number Function -break; -case FN_ProcessStopAll: //Sub Procedure -break; -case FN_ProcessContinueAll: //Sub Procedure -break; -case FN_ProcessQueueSize: //Number Function -break; -case FN_NumCPUs: //Number Function -break; -case FN_GetProjectionGeometry: //Sub Procedure -break; -case FN_CalculateFaceZ: //Number Function -break; -case FN_SetChannelSpacePosition: //Number Function -break; -case FN_SaveBMP: //Number Function -break; -case FN_SavePNG: //Number Function -break; -case FN_SaveJPG: //Number Function -break; -case FN_GetLineIntersection: //Number Function -break; -case FN_Interpolate: //Number Function -break; -case FN_ATan2: //Number Function -break; -case FN_PointInQuad: //Number Function -break; -case FN_PointInTri: //Number Function -break; -case FN_Distance2D: //Number Function -break; -case FN_Distance3D: //Number Function -break; -case FN_GetCircleLineIntersection: //Number Function -break; -case FN_GetLinePlaneIntersection: //Number Function -break; -case FN_IncrementMatrixRows: //Sub Procedure -break; -case FN_IncrementMatrixColumns: //Sub Procedure -break; -case FN_JoinMatrixRows: //Sub Procedure -break; -case FN_JoinMatrixColumns: //Sub Procedure -break; + //DUMMY CASE + + break; case FN_TypeArrayDim: //Number Function -break; + rc_push_num( rc_type_array_dim( TYPEARRAYDIM_ID ) ); + arr_ref_id.clear(); + + break; case FN_TypeArraySize: //Number Function -break; + rc_push_num( rc_type_array_size( TYPEARRAYSIZE_ID, TYPEARRAYSIZE_ARRAY_DIM ) ); + arr_ref_id.clear(); + + break; case FN_TypeArrayCopy: //Sub Procedure -break; + rc_free_type(TYPEARRAYCOPY_DST); + rc_type_array_copy( TYPEARRAYCOPY_SRC, TYPEARRAYCOPY_DST ); + + break; case FN_TypeArrayFill: //Sub Procedure -break; + 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_SetWindowVSync: //Sub Procedure + rc_setWindowVSync( SETWINDOWVSYNC_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_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_SetCanvas3D: //Sub Procedure + rc_setCanvas3D( SETCANVAS3D_C_NUM, SETCANVAS3D_FLAG ); + 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: //Sub Procedure + rc_cloneCanvas( CLONECANVAS_SRC, CLONECANVAS_DST ); + break; +case FN_SetCanvasZ: //Sub Procedure + rc_setCanvasZ( SETCANVASZ_C_NUM, SETCANVASZ_Z ); + break; +case FN_GetCanvasZ: //Number Function + rc_push_num(rc_getCanvasZ( GETCANVASZ_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_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_getImageBuffer: //Sub Procedure + rc_getImageBuffer( GETIMAGEBUFFER_IMG_ID, &GETIMAGEBUFFER_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_GetTextWidth: //Number Function + rc_push_num(rc_getTextWidth( GETTEXTWIDTH_TXT$ )); + break; +case FN_GetTextHeight: //Number Function + rc_push_num(rc_getTextHeight( GETTEXTHEIGHT_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 )); + 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_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_CreateMeshActor: //Number Function + rc_push_num(rc_createMeshActor( CREATEMESHACTOR_MESH )); + break; +case FN_CreateMeshOctreeActor: //Number Function + rc_push_num(rc_createMeshOctreeActor( CREATEMESHOCTREEACTOR_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_CreateWaterPlaneActor: //Number Function + rc_push_num(rc_createWaterPlaneActor( CREATEWATERPLANEACTOR_W, CREATEWATERPLANEACTOR_H )); + 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_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_TranslateActor: //Sub Procedure + rc_translateActor( TRANSLATEACTOR_ACTOR, TRANSLATEACTOR_X, TRANSLATEACTOR_Y, TRANSLATEACTOR_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_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_getActorLinearVelocity: //Sub Procedure + rc_getActorLinearVelocity( GETACTORLINEARVELOCITY_ACTOR, &GETACTORLINEARVELOCITY_X, &GETACTORLINEARVELOCITY_Y, &GETACTORLINEARVELOCITY_Z ); + break; +case FN_getActorAngularVelocity: //Sub Procedure + rc_getActorAngularVelocity( GETACTORANGULARVELOCITY_ACTOR, &GETACTORANGULARVELOCITY_X, &GETACTORANGULARVELOCITY_Y, &GETACTORANGULARVELOCITY_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_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_setConstraintPivotA: //Sub Procedure + rc_setConstraintPivotA( SETCONSTRAINTPIVOTA_CONSTRAINT_ID, SETCONSTRAINTPIVOTA_X, SETCONSTRAINTPIVOTA_Y, SETCONSTRAINTPIVOTA_Z ); + break; +case FN_setConstraintPivotB: //Sub Procedure + rc_setConstraintPivotB( SETCONSTRAINTPIVOTB_CONSTRAINT_ID, SETCONSTRAINTPIVOTB_X, SETCONSTRAINTPIVOTB_Y, SETCONSTRAINTPIVOTB_Z ); + break; +case FN_createHingeConstraint: //Number Function + rc_push_num(rc_createHingeConstraint( CREATEHINGECONSTRAINT_ACTORA, CREATEHINGECONSTRAINT_PXA, CREATEHINGECONSTRAINT_PYA, CREATEHINGECONSTRAINT_PZA, CREATEHINGECONSTRAINT_AXA, CREATEHINGECONSTRAINT_AYA, CREATEHINGECONSTRAINT_AZA )); + break; +case FN_createHingeConstraintEx: //Number Function + rc_push_num(rc_createHingeConstraintEx( CREATEHINGECONSTRAINTEX_ACTORA, CREATEHINGECONSTRAINTEX_ACTORB, CREATEHINGECONSTRAINTEX_PXA, CREATEHINGECONSTRAINTEX_PYA, CREATEHINGECONSTRAINTEX_PZA, CREATEHINGECONSTRAINTEX_PXB, CREATEHINGECONSTRAINTEX_PYB, CREATEHINGECONSTRAINTEX_PZB, CREATEHINGECONSTRAINTEX_AXA, CREATEHINGECONSTRAINTEX_AYA, CREATEHINGECONSTRAINTEX_AZA, CREATEHINGECONSTRAINTEX_AXB, CREATEHINGECONSTRAINTEX_AYB, CREATEHINGECONSTRAINTEX_AZB )); + 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_setConstraintAxis: //Sub Procedure + rc_setConstraintAxis( SETCONSTRAINTAXIS_CONSTRAINT_ID, SETCONSTRAINTAXIS_X, SETCONSTRAINTAXIS_Y, SETCONSTRAINTAXIS_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_getConstraintLimitBiasFactor: //Number Function + rc_push_num(rc_getConstraintLimitBiasFactor( GETCONSTRAINTLIMITBIASFACTOR_CONSTRAINT_ID )); + break; +case FN_getLimitRelaxationFactor: //Number Function + rc_push_num(rc_getLimitRelaxationFactor( GETLIMITRELAXATIONFACTOR_CONSTRAINT_ID )); + break; +case FN_getConstraintLimitSign: //Number Function + rc_push_num(rc_getConstraintLimitSign( GETCONSTRAINTLIMITSIGN_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_getConstraintPivotA: //Sub Procedure + rc_getConstraintPivotA( GETCONSTRAINTPIVOTA_CONSTRAINT_ID, & GETCONSTRAINTPIVOTA_X, & GETCONSTRAINTPIVOTA_Y, & GETCONSTRAINTPIVOTA_Z ); + break; +case FN_getConstraintPivotB: //Sub Procedure + rc_getConstraintPivotB( GETCONSTRAINTPIVOTB_CONSTRAINT_ID, & GETCONSTRAINTPIVOTB_X, & GETCONSTRAINTPIVOTB_Y, & GETCONSTRAINTPIVOTB_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_getConstraintBiasFactor: //Number Function + rc_push_num(rc_getConstraintBiasFactor( GETCONSTRAINTBIASFACTOR_CONSTRAINT_ID )); + break; +case FN_getConstraintDamping: //Number Function + rc_push_num(rc_getConstraintDamping( GETCONSTRAINTDAMPING_CONSTRAINT_ID )); + break; +case FN_getConstraintFixThresh: //Number Function + rc_push_num(rc_getConstraintFixThresh( GETCONSTRAINTFIXTHRESH_CONSTRAINT_ID )); + break; +case FN_getConstraintLimit: //Number Function + rc_push_num(rc_getConstraintLimit( GETCONSTRAINTLIMIT_CONSTRAINT_ID, GETCONSTRAINTLIMIT_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_getConstraintAnglePoint: //Sub Procedure + rc_getConstraintAnglePoint( GETCONSTRAINTANGLEPOINT_CONSTRAINT_ID, GETCONSTRAINTANGLEPOINT_ANGLE, GETCONSTRAINTANGLEPOINT_C_LEN, & GETCONSTRAINTANGLEPOINT_X, & GETCONSTRAINTANGLEPOINT_Y, & GETCONSTRAINTANGLEPOINT_Z ); + break; +case FN_getConstraintAngularOnly: //Number Function + rc_push_num(rc_getConstraintAngularOnly( GETCONSTRAINTANGULARONLY_CONSTRAINT_ID )); + break; +case FN_getConstraintSolveSwingLimit: //Number Function + rc_push_num(rc_getConstraintSolveSwingLimit( GETCONSTRAINTSOLVESWINGLIMIT_CONSTRAINT_ID )); + break; +case FN_getConstraintSolveTwistLimit: //Number Function + rc_push_num(rc_getConstraintSolveTwistLimit( GETCONSTRAINTSOLVETWISTLIMIT_CONSTRAINT_ID )); + break; +case FN_getConstraintSolveLimit: //Number Function + rc_push_num(rc_getConstraintSolveLimit( GETCONSTRAINTSOLVELIMIT_CONSTRAINT_ID )); + break; +case FN_getConstraintSwingSpan1: //Number Function + rc_push_num(rc_getConstraintSwingSpan1( GETCONSTRAINTSWINGSPAN1_CONSTRAINT_ID )); + break; +case FN_getConstraintSwingSpan2: //Number Function + rc_push_num(rc_getConstraintSwingSpan2( GETCONSTRAINTSWINGSPAN2_CONSTRAINT_ID )); + break; +case FN_getConstraintTwistAngle: //Number Function + rc_push_num(rc_getConstraintTwistAngle( GETCONSTRAINTTWISTANGLE_CONSTRAINT_ID )); + break; +case FN_getConstraintTwistLimitSign: //Number Function + rc_push_num(rc_getConstraintTwistLimitSign( GETCONSTRAINTTWISTLIMITSIGN_CONSTRAINT_ID )); + break; +case FN_getConstraintTwistSpan: //Number Function + rc_push_num(rc_getConstraintTwistSpan( GETCONSTRAINTTWISTSPAN_CONSTRAINT_ID )); + break; +case FN_setConstraintAngularOnly: //Sub Procedure + rc_setConstraintAngularOnly( SETCONSTRAINTANGULARONLY_CONSTRAINT_ID, SETCONSTRAINTANGULARONLY_FLAG ); + break; +case FN_setConstraintDamping: //Sub Procedure + rc_setConstraintDamping( SETCONSTRAINTDAMPING_CONSTRAINT_ID, SETCONSTRAINTDAMPING_DAMPING ); + break; +case FN_setConstraintFixThresh: //Sub Procedure + rc_setConstraintFixThresh( SETCONSTRAINTFIXTHRESH_CONSTRAINT_ID, SETCONSTRAINTFIXTHRESH_FIXTHRESH ); + break; +case FN_getConstraintAnchorA: //Sub Procedure + rc_getConstraintAnchorA( GETCONSTRAINTANCHORA_CONSTRAINT_ID, & GETCONSTRAINTANCHORA_X, & GETCONSTRAINTANCHORA_Y, & GETCONSTRAINTANCHORA_Z ); + break; +case FN_getConstraintAnchorB: //Sub Procedure + rc_getConstraintAnchorB( GETCONSTRAINTANCHORB_CONSTRAINT_ID, & GETCONSTRAINTANCHORB_X, & GETCONSTRAINTANCHORB_Y, & GETCONSTRAINTANCHORB_Z ); + break; +case FN_getConstraintAngDepth: //Number Function + rc_push_num(rc_getConstraintAngDepth( GETCONSTRAINTANGDEPTH_CONSTRAINT_ID )); + break; +case FN_getConstraintAngularPos: //Number Function + rc_push_num(rc_getConstraintAngularPos( GETCONSTRAINTANGULARPOS_CONSTRAINT_ID )); + break; +case FN_getConstraintDampingDirAng: //Number Function + rc_push_num(rc_getConstraintDampingDirAng( GETCONSTRAINTDAMPINGDIRANG_CONSTRAINT_ID )); + break; +case FN_getConstraintDampingDirLin: //Number Function + rc_push_num(rc_getConstraintDampingDirLin( GETCONSTRAINTDAMPINGDIRLIN_CONSTRAINT_ID )); + break; +case FN_getConstraintDampingLimAng: //Number Function + rc_push_num(rc_getConstraintDampingLimAng( GETCONSTRAINTDAMPINGLIMANG_CONSTRAINT_ID )); + break; +case FN_getConstraintDampingLimLin: //Number Function + rc_push_num(rc_getConstraintDampingLimLin( GETCONSTRAINTDAMPINGLIMLIN_CONSTRAINT_ID )); + break; +case FN_getConstraintDampingOrthoAng: //Number Function + rc_push_num(rc_getConstraintDampingOrthoAng( GETCONSTRAINTDAMPINGORTHOANG_CONSTRAINT_ID )); + break; +case FN_getConstraintDampingOrthoLin: //Number Function + rc_push_num(rc_getConstraintDampingOrthoLin( GETCONSTRAINTDAMPINGORTHOLIN_CONSTRAINT_ID )); + break; +case FN_getConstraintLinearPos: //Number Function + rc_push_num(rc_getConstraintLinearPos( GETCONSTRAINTLINEARPOS_CONSTRAINT_ID )); + break; +case FN_getConstraintLinDepth: //Number Function + rc_push_num(rc_getConstraintLinDepth( GETCONSTRAINTLINDEPTH_CONSTRAINT_ID )); + break; +case FN_getConstraintLowerAngLimit: //Number Function + rc_push_num(rc_getConstraintLowerAngLimit( GETCONSTRAINTLOWERANGLIMIT_CONSTRAINT_ID )); + break; +case FN_getConstraintLowerLinLimit: //Number Function + rc_push_num(rc_getConstraintLowerLinLimit( GETCONSTRAINTLOWERLINLIMIT_CONSTRAINT_ID )); + break; +case FN_getConstraintRestitutionDirAng: //Number Function + rc_push_num(rc_getConstraintRestitutionDirAng( GETCONSTRAINTRESTITUTIONDIRANG_CONSTRAINT_ID )); + break; +case FN_getConstraintRestitutionDirLin: //Number Function + rc_push_num(rc_getConstraintRestitutionDirLin( GETCONSTRAINTRESTITUTIONDIRLIN_CONSTRAINT_ID )); + break; +case FN_getConstraintRestitutionLimAng: //Number Function + rc_push_num(rc_getConstraintRestitutionLimAng( GETCONSTRAINTRESTITUTIONLIMANG_CONSTRAINT_ID )); + break; +case FN_getConstraintRestitutionLimLin: //Number Function + rc_push_num(rc_getConstraintRestitutionLimLin( GETCONSTRAINTRESTITUTIONLIMLIN_CONSTRAINT_ID )); + break; +case FN_getConstraintRestitutionOrthoAng: //Number Function + rc_push_num(rc_getConstraintRestitutionOrthoAng( GETCONSTRAINTRESTITUTIONORTHOANG_CONSTRAINT_ID )); + break; +case FN_getConstraintRestitutionOrthoLin: //Number Function + rc_push_num(rc_getConstraintRestitutionOrthoLin( GETCONSTRAINTRESTITUTIONORTHOLIN_CONSTRAINT_ID )); + break; +case FN_getConstraintSoftnessDirAng: //Number Function + rc_push_num(rc_getConstraintSoftnessDirAng( GETCONSTRAINTSOFTNESSDIRANG_CONSTRAINT_ID )); + break; +case FN_getConstraintSoftnessDirLin: //Number Function + rc_push_num(rc_getConstraintSoftnessDirLin( GETCONSTRAINTSOFTNESSDIRLIN_CONSTRAINT_ID )); + break; +case FN_getConstraintSoftnessLimAng: //Number Function + rc_push_num(rc_getConstraintSoftnessLimAng( GETCONSTRAINTSOFTNESSLIMANG_CONSTRAINT_ID )); + break; +case FN_getConstraintSoftnessLimLin: //Number Function + rc_push_num(rc_getConstraintSoftnessLimLin( GETCONSTRAINTSOFTNESSLIMLIN_CONSTRAINT_ID )); + break; +case FN_getConstraintSoftnessOrthoAng: //Number Function + rc_push_num(rc_getConstraintSoftnessOrthoAng( GETCONSTRAINTSOFTNESSORTHOANG_CONSTRAINT_ID )); + break; +case FN_getConstraintSoftnessOrthoLin: //Number Function + rc_push_num(rc_getConstraintSoftnessOrthoLin( GETCONSTRAINTSOFTNESSORTHOLIN_CONSTRAINT_ID )); + break; +case FN_getConstraintSolveAngLimit: //Number Function + rc_push_num(rc_getConstraintSolveAngLimit( GETCONSTRAINTSOLVEANGLIMIT_CONSTRAINT_ID )); + break; +case FN_getConstraintSolveLinLimit: //Number Function + rc_push_num(rc_getConstraintSolveLinLimit( GETCONSTRAINTSOLVELINLIMIT_CONSTRAINT_ID )); + break; +case FN_getConstraintUpperAngLimit: //Number Function + rc_push_num(rc_getConstraintUpperAngLimit( GETCONSTRAINTUPPERANGLIMIT_CONSTRAINT_ID )); + break; +case FN_getConstraintUpperLinLimit: //Number Function + rc_push_num(rc_getConstraintUpperLinLimit( GETCONSTRAINTUPPERLINLIMIT_CONSTRAINT_ID )); + break; +case FN_getConstraintUseFrameOffset: //Number Function + rc_push_num(rc_getConstraintUseFrameOffset( GETCONSTRAINTUSEFRAMEOFFSET_CONSTRAINT_ID )); + break; +case FN_setConstraintDampingDirAng: //Sub Procedure + rc_setConstraintDampingDirAng( SETCONSTRAINTDAMPINGDIRANG_CONSTRAINT_ID, SETCONSTRAINTDAMPINGDIRANG_N ); + break; +case FN_setConstraintDampingDirLin: //Sub Procedure + rc_setConstraintDampingDirLin( SETCONSTRAINTDAMPINGDIRLIN_CONSTRAINT_ID, SETCONSTRAINTDAMPINGDIRLIN_N ); + break; +case FN_setConstraintDampingLimAng: //Sub Procedure + rc_setConstraintDampingLimAng( SETCONSTRAINTDAMPINGLIMANG_CONSTRAINT_ID, SETCONSTRAINTDAMPINGLIMANG_N ); + break; +case FN_setConstraintDampingLimLin: //Sub Procedure + rc_setConstraintDampingLimLin( SETCONSTRAINTDAMPINGLIMLIN_CONSTRAINT_ID, SETCONSTRAINTDAMPINGLIMLIN_N ); + break; +case FN_setConstraintDampingOrthoAng: //Sub Procedure + rc_setConstraintDampingOrthoAng( SETCONSTRAINTDAMPINGORTHOANG_CONSTRAINT_ID, SETCONSTRAINTDAMPINGORTHOANG_N ); + break; +case FN_setConstraintDampingOrthoLin: //Sub Procedure + rc_setConstraintDampingOrthoLin( SETCONSTRAINTDAMPINGORTHOLIN_CONSTRAINT_ID, SETCONSTRAINTDAMPINGORTHOLIN_N ); + break; +case FN_setConstraintLowerAngLimit: //Sub Procedure + rc_setConstraintLowerAngLimit( SETCONSTRAINTLOWERANGLIMIT_CONSTRAINT_ID, SETCONSTRAINTLOWERANGLIMIT_N ); + break; +case FN_setConstraintLowerLinLimit: //Sub Procedure + rc_setConstraintLowerLinLimit( SETCONSTRAINTLOWERLINLIMIT_CONSTRAINT_ID, SETCONSTRAINTLOWERLINLIMIT_N ); + break; +case FN_setConstraintRestitutionDirAng: //Sub Procedure + rc_setConstraintRestitutionDirAng( SETCONSTRAINTRESTITUTIONDIRANG_CONSTRAINT_ID, SETCONSTRAINTRESTITUTIONDIRANG_N ); + break; +case FN_setConstraintRestitutionDirLin: //Sub Procedure + rc_setConstraintRestitutionDirLin( SETCONSTRAINTRESTITUTIONDIRLIN_CONSTRAINT_ID, SETCONSTRAINTRESTITUTIONDIRLIN_N ); + break; +case FN_setConstraintRestitutionLimAng: //Sub Procedure + rc_setConstraintRestitutionLimAng( SETCONSTRAINTRESTITUTIONLIMANG_CONSTRAINT_ID, SETCONSTRAINTRESTITUTIONLIMANG_N ); + break; +case FN_setConstraintRestitutionLimLin: //Sub Procedure + rc_setConstraintRestitutionLimLin( SETCONSTRAINTRESTITUTIONLIMLIN_CONSTRAINT_ID, SETCONSTRAINTRESTITUTIONLIMLIN_N ); + break; +case FN_setConstraintRestitutionOrthoAng: //Sub Procedure + rc_setConstraintRestitutionOrthoAng( SETCONSTRAINTRESTITUTIONORTHOANG_CONSTRAINT_ID, SETCONSTRAINTRESTITUTIONORTHOANG_N ); + break; +case FN_setConstraintRestitutionOrthoLin: //Sub Procedure + rc_setConstraintRestitutionOrthoLin( SETCONSTRAINTRESTITUTIONORTHOLIN_CONSTRAINT_ID, SETCONSTRAINTRESTITUTIONORTHOLIN_N ); + break; +case FN_setConstraintSoftnessDirAng: //Sub Procedure + rc_setConstraintSoftnessDirAng( SETCONSTRAINTSOFTNESSDIRANG_CONSTRAINT_ID, SETCONSTRAINTSOFTNESSDIRANG_N ); + break; +case FN_setConstraintSoftnessDirLin: //Sub Procedure + rc_setConstraintSoftnessDirLin( SETCONSTRAINTSOFTNESSDIRLIN_CONSTRAINT_ID, SETCONSTRAINTSOFTNESSDIRLIN_N ); + break; +case FN_setConstraintSoftnessLimAng: //Sub Procedure + rc_setConstraintSoftnessLimAng( SETCONSTRAINTSOFTNESSLIMANG_CONSTRAINT_ID, SETCONSTRAINTSOFTNESSLIMANG_N ); + break; +case FN_setConstraintSoftnessLimLin: //Sub Procedure + rc_setConstraintSoftnessLimLin( SETCONSTRAINTSOFTNESSLIMLIN_CONSTRAINT_ID, SETCONSTRAINTSOFTNESSLIMLIN_N ); + break; +case FN_setConstraintSoftnessOrthoAng: //Sub Procedure + rc_setConstraintSoftnessOrthoAng( SETCONSTRAINTSOFTNESSORTHOANG_CONSTRAINT_ID, SETCONSTRAINTSOFTNESSORTHOANG_N ); + break; +case FN_setConstraintSoftnessOrthoLin: //Sub Procedure + rc_setConstraintSoftnessOrthoLin( SETCONSTRAINTSOFTNESSORTHOLIN_CONSTRAINT_ID, SETCONSTRAINTSOFTNESSORTHOLIN_N ); + break; +case FN_setConstraintUpperAngLimit: //Sub Procedure + rc_setConstraintUpperAngLimit( SETCONSTRAINTUPPERANGLIMIT_CONSTRAINT_ID, SETCONSTRAINTUPPERANGLIMIT_N ); + break; +case FN_setConstraintUpperLinLimit: //Sub Procedure + rc_setConstraintUpperLinLimit( SETCONSTRAINTUPPERLINLIMIT_CONSTRAINT_ID, SETCONSTRAINTUPPERLINLIMIT_N ); + 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_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_SetWorld3DDeltaTime: //Sub Procedure + rc_setWorld3DDeltaTime( SETWORLD3DDELTATIME_DT ); + 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_setParticleMinParticlesPerSecond: //Sub Procedure + rc_setParticleMinParticlesPerSecond( SETPARTICLEMINPARTICLESPERSECOND_ACTOR, SETPARTICLEMINPARTICLESPERSECOND_MINPARTICLESPERSECOND ); + break; +case FN_getParticleMinParticlesPerSecond: //Number Function + rc_push_num(rc_getParticleMinParticlesPerSecond( GETPARTICLEMINPARTICLESPERSECOND_ACTOR )); + break; +case FN_setParticleMaxParticlesPerSecond: //Sub Procedure + rc_setParticleMaxParticlesPerSecond( SETPARTICLEMAXPARTICLESPERSECOND_ACTOR, SETPARTICLEMAXPARTICLESPERSECOND_MAXPARTICLESPERSECOND ); + break; +case FN_getParticleMaxParticlesPerSecond: //Number Function + rc_push_num(rc_getParticleMaxParticlesPerSecond( GETPARTICLEMAXPARTICLESPERSECOND_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_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_setWaterWindForce: //Sub Procedure + rc_setWaterWindForce( SETWATERWINDFORCE_ACTOR, SETWATERWINDFORCE_F ); + break; +case FN_getWaterWindForce: //Number Function + rc_push_num(rc_getWaterWindForce( GETWATERWINDFORCE_ACTOR )); + break; +case FN_setWaterWaveHeight: //Sub Procedure + rc_setWaterWaveHeight( SETWATERWAVEHEIGHT_ACTOR, SETWATERWAVEHEIGHT_H ); + break; +case FN_getWaterWaveHeight: //Number Function + rc_push_num(rc_getWaterWaveHeight( GETWATERWAVEHEIGHT_ACTOR )); + break; +case FN_setWaterWindDirection: //Sub Procedure + rc_setWaterWindDirection( SETWATERWINDDIRECTION_ACTOR, SETWATERWINDDIRECTION_X, SETWATERWINDDIRECTION_Z ); + break; +case FN_getWaterWindDirection: //Sub Procedure + rc_getWaterWindDirection( GETWATERWINDDIRECTION_ACTOR, &GETWATERWINDDIRECTION_X, &GETWATERWINDDIRECTION_Z ); + break; +case FN_setWaterColor: //Sub Procedure + rc_setWaterColor( SETWATERCOLOR_ACTOR, SETWATERCOLOR_C ); + break; +case FN_getWaterColor: //Number Function + rc_push_num(rc_getWaterColor( GETWATERCOLOR_ACTOR )); + break; +case FN_setWaterColorBlendFactor: //Sub Procedure + rc_setWaterColorBlendFactor( SETWATERCOLORBLENDFACTOR_ACTOR, SETWATERCOLORBLENDFACTOR_CBFACTOR ); + break; +case FN_getWaterColorBlendFactor: //Number Function + rc_push_num(rc_getWaterColorBlendFactor( GETWATERCOLORBLENDFACTOR_ACTOR )); + break; +case FN_SetActorAnimation: //Sub Procedure + rc_setActorAnimation( SETACTORANIMATION_ACTOR, SETACTORANIMATION_START_FRAME, SETACTORANIMATION_END_FRAME ); + break; +case FN_SetActorAnimationSpeed: //Sub Procedure + rc_setActorAnimationSpeed( SETACTORANIMATIONSPEED_ACTOR, SETACTORANIMATIONSPEED_SPEED ); + break; +case FN_SetActorFrame: //Sub Procedure + rc_setActorFrame( SETACTORFRAME_ACTOR, SETACTORFRAME_FRAME ); + break; +case FN_SetActorMD2Animation: //Sub Procedure + rc_setActorMD2Animation( SETACTORMD2ANIMATION_ACTOR, SETACTORMD2ANIMATION_ANIM ); + break; +case FN_SetActorMD2AnimationByName: //Sub Procedure + rc_setActorMD2AnimationByName( SETACTORMD2ANIMATIONBYNAME_ACTOR, SETACTORMD2ANIMATIONBYNAME_ANIM_NAME$ ); + break; +case FN_GetActorAnimationSpeed: //Number Function + rc_push_num(rc_getActorAnimationSpeed( GETACTORANIMATIONSPEED_ACTOR )); + break; +case FN_GetActorEndFrame: //Number Function + rc_push_num(rc_getActorEndFrame( GETACTORENDFRAME_ACTOR )); + break; +case FN_GetActorCurrentFrame: //Number Function + rc_push_num(rc_getActorCurrentFrame( GETACTORCURRENTFRAME_ACTOR )); + break; +case FN_GetActorStartFrame: //Number Function + rc_push_num(rc_getActorStartFrame( GETACTORSTARTFRAME_ACTOR )); + break; +case FN_StartActorTransition: //Sub Procedure + rc_startActorTransition( STARTACTORTRANSITION_ACTOR, STARTACTORTRANSITION_FRAME, STARTACTORTRANSITION_TRANSITION_TIME ); + break; +case FN_StopActorTransition: //Sub Procedure + rc_stopActorTransition( STOPACTORTRANSITION_ACTOR ); + break; +case FN_ActorIsInTransition: //Number Function + rc_push_num(rc_actorIsInTransition( ACTORISINTRANSITION_ACTOR )); + break; +case FN_GetActorTransitionTime: //Number Function + rc_push_num(rc_getActorTransitionTime( GETACTORTRANSITIONTIME_ACTOR )); + break; +case FN_actorAnimationIsLooped: //Number Function + rc_push_num(rc_actorAnimationIsLooped( ACTORANIMATIONISLOOPED_ACTOR )); + break; +case FN_loopActorAnimation: //Sub Procedure + rc_loopActorAnimation( LOOPACTORANIMATION_ACTOR, LOOPACTORANIMATION_FLAG ); + 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; diff --git a/rcbasic_build/tokenizer.h b/rcbasic_build/tokenizer.h old mode 100644 new mode 100755 diff --git a/rcbasic_build/vm_asm b/rcbasic_build/vm_asm old mode 100644 new mode 100755 diff --git a/rcbasic_runtime/FreeMono.ttf b/rcbasic_runtime/FreeMono.ttf new file mode 100755 index 0000000..6697382 Binary files /dev/null and b/rcbasic_runtime/FreeMono.ttf differ diff --git a/rcbasic_runtime/NotoSansJP-VariableFont_wght.ttf b/rcbasic_runtime/NotoSansJP-VariableFont_wght.ttf new file mode 100644 index 0000000..505477e Binary files /dev/null and b/rcbasic_runtime/NotoSansJP-VariableFont_wght.ttf differ diff --git a/rcbasic_runtime/RealisticWater.cpp b/rcbasic_runtime/RealisticWater.cpp new file mode 100755 index 0000000..1b9fa31 --- /dev/null +++ b/rcbasic_runtime/RealisticWater.cpp @@ -0,0 +1,308 @@ +/* + * Copyright (c) 2013, elvman + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY elvman ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "RealisticWater.h" + +RealisticWaterSceneNode::RealisticWaterSceneNode(scene::ISceneManager* sceneManager, f32 width, f32 height, + const irr::core::stringc& resourcePath, core::dimension2du renderTargetSize, + scene::ISceneNode* parent, s32 id): + scene::ISceneNode(parent, sceneManager, id), _time(0), + _size(width, height), _sceneManager(sceneManager), _refractionMap(NULL), _reflectionMap(NULL), + _windForce(20.0f),_windDirection(0, 1),_waveHeight(0.3f), _waterColor(0.1f, 0.1f, 0.6f, 1.0f), _colorBlendFactor(0.2f), _camera(NULL) +{ + _videoDriver = sceneManager->getVideoDriver(); + + //create new camera + _camera = sceneManager->addCameraSceneNode(0, core::vector3df(0, 0, 0), core::vector3df(0, 0, 0), -1, false); + + _waterMesh = sceneManager->addHillPlaneMesh("RealisticWater", _size, core::dimension2d(1, 1)); + + _waterSceneNode = sceneManager->addMeshSceneNode(_waterMesh->getMesh(0), this); + + video::IGPUProgrammingServices* GPUProgrammingServices = _videoDriver->getGPUProgrammingServices(); + + core::stringc waterPixelShader; + core::stringc waterVertexShader; + + if (_videoDriver->getDriverType() == video::EDT_DIRECT3D9) + { + waterPixelShader = resourcePath + "/shaders/Water_ps.hlsl"; + waterVertexShader = resourcePath + "/shaders/Water_vs.hlsl"; + } + else if (_videoDriver->getDriverType() == video::EDT_OPENGL) + { + waterPixelShader = resourcePath + "/shaders/Water_ps.glsl"; + waterVertexShader = resourcePath + "/shaders/Water_vs.glsl"; + } + + _shaderMaterial = GPUProgrammingServices->addHighLevelShaderMaterialFromFiles( + waterVertexShader.c_str(), "main", video::EVST_VS_1_1, + waterPixelShader.c_str(), "main", video::EPST_PS_1_1, + this); + + _waterSceneNode->setMaterialType((video::E_MATERIAL_TYPE)_shaderMaterial); + + irr::video::ITexture* bumpTexture = _videoDriver->getTexture(resourcePath + "/data/waterbump.png"); + _waterSceneNode->setMaterialTexture(0, bumpTexture); + + _refractionMap = _videoDriver->addRenderTargetTexture(renderTargetSize); + _reflectionMap = _videoDriver->addRenderTargetTexture(renderTargetSize); + + _waterSceneNode->setMaterialTexture(1, _refractionMap); + _waterSceneNode->setMaterialTexture(2, _reflectionMap); +} + +RealisticWaterSceneNode::~RealisticWaterSceneNode() +{ + if (_camera) + { + _camera->drop(); + _camera = NULL; + } + + if (_refractionMap) + { + _refractionMap->drop(); + _refractionMap = NULL; + } + + if (_reflectionMap) + { + _reflectionMap->drop(); + _reflectionMap = NULL; + } + + if (_waterSceneNode) + { + _waterSceneNode->drop(); + _waterSceneNode = NULL; + } + + if (_waterMesh) + { + _waterMesh->drop(); + _waterMesh = NULL; + } +} + +// frame +void RealisticWaterSceneNode::OnRegisterSceneNode() +{ + ISceneNode::OnRegisterSceneNode(); + + if (IsVisible) + { + _sceneManager->registerNodeForRendering(this); + } +} + +void RealisticWaterSceneNode::OnAnimate(u32 timeMs) +{ + ISceneNode::OnAnimate(timeMs); + + _time = timeMs; + + //fixes glitches with incomplete refraction + const f32 CLIP_PLANE_OFFSET_Y = 5.0f; + + if (IsVisible) + { + setVisible(false); //hide the water + + //refraction + _videoDriver->setRenderTarget(_refractionMap, true, true); //render to refraction + + //refraction clipping plane + core::plane3d refractionClipPlane(0, RelativeTranslation.Y + CLIP_PLANE_OFFSET_Y, 0, 0, -1, 0); //refraction clip plane + _videoDriver->setClipPlane(0, refractionClipPlane, true); + + _sceneManager->drawAll(); //draw the scene + + //reflection + _videoDriver->setRenderTarget(_reflectionMap, true, true); //render to reflection + + //get current camera + scene::ICameraSceneNode* currentCamera = _sceneManager->getActiveCamera(); + + //set FOV anf far value from current camera + _camera->setFarValue(currentCamera->getFarValue()); + _camera->setFOV(currentCamera->getFOV()); + + core::vector3df position = currentCamera->getAbsolutePosition(); + position.Y = -position.Y + 2 * RelativeTranslation.Y; //position of the water + _camera->setPosition(position); + + core::vector3df target = currentCamera->getTarget(); + + //invert Y position of current camera + target.Y = -target.Y + 2 * RelativeTranslation.Y; + _camera->setTarget(target); + + //set the reflection camera + _sceneManager->setActiveCamera(_camera); + + //reflection clipping plane + core::plane3d reflectionClipPlane(0, RelativeTranslation.Y - CLIP_PLANE_OFFSET_Y, 0, 0, 1, 0); + _videoDriver->setClipPlane(0, reflectionClipPlane, true); + + _sceneManager->drawAll(); //draw the scene + + //disable clip plane + _videoDriver->enableClipPlane(0, false); + + //set back old render target + _videoDriver->setRenderTarget(0); + + //set back the active camera + _sceneManager->setActiveCamera(currentCamera); + + setVisible(true); //show it again + } +} + +void RealisticWaterSceneNode::render() +{ + /*core::array renderTargets; + //renderTargets.push_back(); + renderTargets.push_back(_refractionMap); + + _videoDriver->setRenderTarget(renderTargets, true, true);*/ + //_videoDriver->draw2DImage(_reflectionMap,core::position2d(0,0)); +} + +// returns the axis aligned bounding box of terrain +const core::aabbox3d& RealisticWaterSceneNode::getBoundingBox() const +{ + return _waterSceneNode->getBoundingBox(); +} + +void RealisticWaterSceneNode::OnSetConstants(video::IMaterialRendererServices* services, s32 userData) +{ + video::IVideoDriver* driver = services->getVideoDriver(); + + core::matrix4 projection = driver->getTransform(video::ETS_PROJECTION); + core::matrix4 view = driver->getTransform(video::ETS_VIEW); + core::matrix4 world = driver->getTransform(video::ETS_WORLD); + + core::matrix4 cameraView = _camera->getViewMatrix(); + + //vertex shader constants + //services->setVertexShaderConstant("View", view.pointer(), 16); + + core::matrix4 worldViewProj = projection; + worldViewProj *= view; + worldViewProj *= world; + + core::matrix4 worldReflectionViewProj = projection; + worldReflectionViewProj *= cameraView; + worldReflectionViewProj *= world; + + f32 waveLength = 0.1f; + f32 time = _time / 100000.0f; + core::vector3df cameraPosition = _sceneManager->getActiveCamera()->getPosition(); + + bool fogEnabled = getMaterial(0).getFlag(video::EMF_FOG_ENABLE); + irr::video::SColor color; + irr::video::E_FOG_TYPE fogType; + f32 start; + f32 end; + f32 density; + bool pixelFog; + bool rangeFog; + driver->getFog(color, fogType, start, end, density, pixelFog, rangeFog); + +#if (IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR == 9) + services->setVertexShaderConstant(services->getVertexShaderConstantID("WorldViewProj"), worldViewProj.pointer(), 16); + services->setVertexShaderConstant(services->getVertexShaderConstantID("WorldReflectionViewProj"), worldReflectionViewProj.pointer(), 16); + services->setVertexShaderConstant(services->getVertexShaderConstantID("WaveLength"), &waveLength, 1); + services->setVertexShaderConstant(services->getVertexShaderConstantID("Time"), &time, 1); + services->setVertexShaderConstant(services->getVertexShaderConstantID("WindForce"), &_windForce, 1); + services->setVertexShaderConstant(services->getVertexShaderConstantID("WindDirection"), &_windDirection.X, 2); + services->setPixelShaderConstant(services->getVertexShaderConstantID("CameraPosition"), &cameraPosition.X, 3); + services->setPixelShaderConstant(services->getVertexShaderConstantID("WaveHeight"), &_waveHeight, 1); + services->setPixelShaderConstant(services->getVertexShaderConstantID("WaterColor"), &_waterColor.r, 4); + services->setPixelShaderConstant(services->getVertexShaderConstantID("ColorBlendFactor"), &_colorBlendFactor, 1); +#else + services->setVertexShaderConstant("WorldViewProj", worldViewProj.pointer(), 16); + services->setVertexShaderConstant("WorldReflectionViewProj", worldReflectionViewProj.pointer(), 16); + services->setVertexShaderConstant("WaveLength", &waveLength, 1); + services->setVertexShaderConstant("Time", &time, 1); + services->setVertexShaderConstant("WindForce", &_windForce, 1); + services->setVertexShaderConstant("WindDirection", &_windDirection.X, 2); + services->setPixelShaderConstant("CameraPosition", &cameraPosition.X, 3); + services->setPixelShaderConstant("WaveHeight", &_waveHeight, 1); + services->setPixelShaderConstant("WaterColor", &_waterColor.r, 4); + services->setPixelShaderConstant("ColorBlendFactor", &_colorBlendFactor, 1); +#endif + + //texture constants for GLSL + if (driver->getDriverType() == video::EDT_OPENGL) + { + int var0 = 0; + int var1 = 1; + int var2 = 2; + +#if (IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR == 9) + services->setPixelShaderConstant(services->getVertexShaderConstantID("WaterBump"), &var0, 1); + services->setPixelShaderConstant(services->getVertexShaderConstantID("RefractionMap"), &var1, 1); + services->setPixelShaderConstant(services->getVertexShaderConstantID("ReflectionMap"), &var2, 1); + + services->setPixelShaderConstant(services->getVertexShaderConstantID("FogEnabled"), (int*)&fogEnabled, 1); + services->setPixelShaderConstant(services->getVertexShaderConstantID("FogMode"), (int*)&fogType, 1); +#else + services->setPixelShaderConstant("WaterBump", &var0, 1); + services->setPixelShaderConstant("RefractionMap", &var1, 1); + services->setPixelShaderConstant("ReflectionMap", &var2, 1); + + services->setPixelShaderConstant("FogEnabled", (int*)&fogEnabled, 1); + services->setPixelShaderConstant("FogMode", (int*)&fogType, 1); +#endif + } +} + +void RealisticWaterSceneNode::setWindForce(const f32 windForce) +{ + _windForce = windForce; +} + +void RealisticWaterSceneNode::setWindDirection(const core::vector2df& windDirection) +{ + _windDirection = windDirection; + _windDirection.normalize(); +} + +void RealisticWaterSceneNode::setWaveHeight(const f32 waveHeight) +{ + _waveHeight = waveHeight; +} + +void RealisticWaterSceneNode::setWaterColor(const video::SColorf& waterColor) +{ + _waterColor = waterColor; +} + +void RealisticWaterSceneNode::setColorBlendFactor(const f32 colorBlendFactor) +{ + _colorBlendFactor = colorBlendFactor; +} diff --git a/rcbasic_runtime/RealisticWater.h b/rcbasic_runtime/RealisticWater.h new file mode 100755 index 0000000..0faea9e --- /dev/null +++ b/rcbasic_runtime/RealisticWater.h @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2013, elvman + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY elvman ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#ifndef _REALISTIC_WATER_SCENE_NODE_H +#define _REALISTIC_WATER_SCENE_NODE_H + +#include + +using namespace irr; + +class RealisticWaterSceneNode: public scene::ISceneNode, video::IShaderConstantSetCallBack +{ +public: + RealisticWaterSceneNode(scene::ISceneManager* sceneManager, f32 width, f32 height, + const irr::core::stringc& resourcePath = irr::core::stringc(), + core::dimension2du renderTargetSize=core::dimension2du(512,512),scene::ISceneNode* parent = NULL, s32 id = -1); + virtual ~RealisticWaterSceneNode(); + + // frame + virtual void OnRegisterSceneNode(); + + virtual void OnAnimate(u32 timeMs); + + // renders terrain + virtual void render(); + + // returns the axis aligned bounding box of terrain + virtual const core::aabbox3d& getBoundingBox() const; + + virtual void OnSetConstants(video::IMaterialRendererServices* services, s32 userData); + + void setWindForce(f32 windForce); + void setWindDirection(const core::vector2df& windDirection); + void setWaveHeight(f32 waveHeight); + + void setWaterColor(const video::SColorf& waterColor); + void setColorBlendFactor(f32 colorBlendFactor); + + f32 getWindForce() { return _windForce; }; + core::vector2df getWindDirection() { return _windDirection; }; + f32 getWaveHeight() { return _waveHeight; }; + video::SColorf getWaterColor() { return _waterColor; }; + f32 getColorBlendFactor() { return _colorBlendFactor; }; + +private: + + scene::ICameraSceneNode* _camera; + scene::ISceneNode* _waterSceneNode; + + video::IVideoDriver* _videoDriver; + scene::ISceneManager* _sceneManager; + + core::dimension2d _size; + + s32 _shaderMaterial; + + scene::IAnimatedMesh* _waterMesh; + + video::ITexture* _refractionMap; + video::ITexture* _reflectionMap; + + f32 _windForce; + core::vector2df _windDirection; + f32 _waveHeight; + + video::SColorf _waterColor; + f32 _colorBlendFactor; + + u32 _time; +}; + +#endif diff --git a/rcbasic_runtime/camera.h b/rcbasic_runtime/camera.h new file mode 100644 index 0000000..6331f1c --- /dev/null +++ b/rcbasic_runtime/camera.h @@ -0,0 +1,258 @@ +#ifndef CAMERA_H_INCLUDED +#define CAMERA_H_INCLUDED + + +#include + +#include + +// use all irrlicht namespaces +using namespace irr; + +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + + +/* + ========== + rotateNode -- rotate a scene node locally + ========== +*/ +void rotateNode(irr::scene::ISceneNode *node, irr::core::vector3df rot) +{ + irr::core::matrix4 m; + m.setRotationDegrees(node->getRotation()); + irr::core::matrix4 n; + n.setRotationDegrees(rot); + m *= n; + node->setRotation( m.getRotationDegrees() ); + node->updateAbsolutePosition(); +} + + +/* + ========== + translateNode -- translate a scene node locally + ========== +*/ +void translateNode(ISceneNode *node, vector3df vel) +{ + irr::core::matrix4 m; + m.setRotationDegrees(node->getRotation()); + m.transformVect(vel); + node->setPosition(node->getPosition() + vel); + node->updateAbsolutePosition(); +} + +void translateNodeW(ISceneNode *node, vector3df vel) +{ + node->setPosition(node->getPosition() + vel); + node->updateAbsolutePosition(); +} + + + +/* camera framework */ +class Camera +{ +public: + + irr::scene::ISceneManager* Scene; + + irr::scene::ICameraSceneNode *camera; // the actual camera + ISceneNode *top; // above camera + ISceneNode *front; // in front of camera + + f32 rx,ry,rz; + f32 x,y,z; + + vector3df direction; + + + // initialize a camera at 0,0,0 or the location passed in + void init(irr::scene::ISceneManager* smgr, float x=0, float y=0, float z=0); + + void re_init(); + + + // locally translate the camera + void translate(float x, float y, float z); + void translateW(float x, float y, float z); + + + // locally rotate the camera + void rotate(float x, float y, float z); + + // update the camera, should be called at the end of mainloop + void update(void); + + // sets the global rotation of the camera + void setRotation(float x, float y, float z); + + // sets the global position of the camera + void setPosition(float x, float y, float z); + + // gets the global position of camera + void getPosition(f32 &x, f32 &y, f32 &z); +}; + + + // initialize a camera at 0,0,0 or the location passed in + void Camera::init(irr::scene::ISceneManager* smgr, float x, float y, float z) + { + Scene = smgr; + + // create camera scene node + camera = Scene->addCameraSceneNode(NULL, vector3df(x,y,z)); + + // empty reference nodes + top = Scene->addEmptySceneNode(); + front = Scene->addEmptySceneNode(); + + // parent the reference nodes + camera->addChild(top); + camera->addChild(front); + + // put the reference nodes in place + front->setPosition(vector3df(0,0,1)); + top->setPosition(vector3df(0,1,0)); + + // set lookat + camera->setUpVector(top->getAbsolutePosition() - camera->getAbsolutePosition()); + camera->setTarget(front->getAbsolutePosition() - camera->getAbsolutePosition()); + + direction = vector3df(0,0,1); + + //camera = Scene->addCameraSceneNodeFPS(); + + rx=ry=rz=0; + x=y=z=0; + } + + + // initialize a camera at 0,0,0 or the location passed in + void Camera::re_init() + { + + //Scene = smgr; + + // create camera scene node + //camera = Scene->addCameraSceneNode(NULL, vector3df(x,y,z)); + + // empty reference nodes + //top = Scene->addEmptySceneNode(); + //front = Scene->addEmptySceneNode(); + + // parent the reference nodes + //camera->addChild(top); + //camera->addChild(front); + + // put the reference nodes in place + front->setPosition(vector3df(0,0,1)); + top->setPosition(vector3df(0,1,0)); + + // set lookat + camera->setUpVector(top->getAbsolutePosition() - camera->getAbsolutePosition()); + camera->setTarget(front->getAbsolutePosition() - camera->getAbsolutePosition()); + + direction = vector3df(0,0,1); + + //camera = Scene->addCameraSceneNodeFPS(); + + rx=ry=rz=0; + x=y=z=0; + } + + // locally translate the camera + void Camera::translate(float x, float y, float z) + { + // translate the camera locally + translateNode(camera, vector3df(x,y,z)); + + // update reference nodes + front->updateAbsolutePosition(); + top->updateAbsolutePosition(); + } + + // locally translate the camera + void Camera::translateW(float x, float y, float z) + { + // translate the camera locally + translateNodeW(camera, vector3df(x,y,z)); + + // update reference nodes + front->updateAbsolutePosition(); + top->updateAbsolutePosition(); + } + + // locally rotate the camera + void Camera::rotate(float x, float y, float z) + { + rotateNode(camera, vector3df(x, y, z)); + + rx += x; + ry += y; + rz += z; + } + + // update the camera, should be called at the end of mainloop + void Camera::update(void) + { + camera->updateAbsolutePosition(); + + camera->setTarget(front->getAbsolutePosition()); + camera->setUpVector(top->getAbsolutePosition() - camera->getAbsolutePosition()); + + vector3df pos; + pos = camera->getAbsolutePosition(); + x=pos.X; + y=pos.Y; + z=pos.Z; + + pos = camera->getRotation(); + + //rx=pos.X; + //ry=pos.Y; + //rz=pos.Z; + } + + // sets the global rotation of the camera + void Camera::setRotation(float x, float y, float z) + { + camera->setRotation(vector3df(x,y,z)); + camera->updateAbsolutePosition(); + + front->updateAbsolutePosition(); + top->updateAbsolutePosition(); + + rx=x; + ry=y; + rz=z; + } + + // sets the global position of the camera + void Camera::setPosition(float x, float y, float z) + { + camera->setPosition(vector3df(x,y,z)); + camera->updateAbsolutePosition(); + + front->updateAbsolutePosition(); + top->updateAbsolutePosition(); + } + + // gets the global position of camera + void Camera::getPosition(f32 &x, f32 &y, f32 &z) + { + vector3df pos; + pos = camera->getAbsolutePosition(); + + x=pos.X; + y=pos.Y; + z=pos.Z; + } + + +#endif // CAMERA_H_INCLUDED diff --git a/rcbasic_runtime/data/waterbump.png b/rcbasic_runtime/data/waterbump.png new file mode 100755 index 0000000..1756a6d Binary files /dev/null and b/rcbasic_runtime/data/waterbump.png differ diff --git a/rcbasic_runtime/gui_freetype_font.cpp b/rcbasic_runtime/gui_freetype_font.cpp new file mode 100644 index 0000000..fbbefc0 --- /dev/null +++ b/rcbasic_runtime/gui_freetype_font.cpp @@ -0,0 +1,538 @@ +#include "gui_freetype_font.h" + +#if COMPILE_WITH_FREETYPE + +#include + +using namespace irr; +using namespace gui; + +#ifdef _MSC_VER +#pragma warning(disable: 4996) +#endif + + +// -------------------------------------------------------- +CGUITTGlyph::CGUITTGlyph() +: IReferenceCounted() + ,cached(false) + ,size(0) + ,top(0) + ,left(0) + ,texw(0) + ,texh(0) + ,imgw(0) + ,imgh(0) + ,tex(NULL) + ,top16(0) + ,left16(0) + ,texw16(0) + ,texh16(0) + ,imgw16(0) + ,imgh16(0) + ,tex16(NULL) + ,image(NULL) +{ +} + +CGUITTGlyph::~CGUITTGlyph() +{ + delete[] image; +} + +//void CGUITTGlyph::cache(u32 idx_, CGUITTFace& ttFace_, video::IVideoDriver* driver_, irr::core::dimension2d &largestSize) +void CGUITTGlyph::cache(u32 idx_, const CGUIFreetypeFont * freetypeFont) +{ + assert(freetypeFont); + + FT_Face face = freetypeFont->TrueTypeFace->face; + + FT_Set_Pixel_Sizes(face, 0, size); + if ( size > freetypeFont->LargestGlyph.Height ) + freetypeFont->LargestGlyph.Height = size; + + if ( !FT_Load_Glyph(face, idx_, FT_LOAD_NO_HINTING|FT_LOAD_NO_BITMAP) ) + { + FT_GlyphSlot glyph = face->glyph; + FT_Bitmap bits; + + if (glyph->format == ft_glyph_format_outline ) + { + if (!FT_Render_Glyph( glyph, FT_RENDER_MODE_NORMAL)) + { + bits = glyph->bitmap; + u8 *pt = bits.buffer; + delete[] image; + image = new u8[bits.width * bits.rows]; + memcpy(image,pt,bits.width * bits.rows); + top = glyph->bitmap_top; + left = glyph->bitmap_left; + imgw = 1; + imgh = 1; + texw = bits.width; + texh = bits.rows; + for(;;) + { + if (imgw > texw) + { + break; + } + else + { + imgw <<= 1; + } + } + for(;;) + { + if (imgh > texh) + { + break; + } + else + { + imgh <<= 1; + } + } + if (imgw > imgh) + { + imgh = imgw; + } + else + { + imgw = imgh; + } + + s32 offx = left; + s32 offy = size - top; + if ( offx+texw > freetypeFont->LargestGlyph.Width ) + freetypeFont->LargestGlyph.Width = offx+texw; + if ( offy+texh > freetypeFont->LargestGlyph.Height ) + freetypeFont->LargestGlyph.Height = offy+texh; + + u32 *texd = new u32[imgw*imgh]; + memset(texd,0,imgw*imgh*sizeof(u32)); + u32 *texp = texd; + bool cflag = (freetypeFont->Driver->getDriverType() == video::EDT_DIRECT3D9); + for (int i = 0;i < bits.rows;i++) + { + u32 *rowp = texp; + for (int j = 0;j < bits.width;j++) + { + if (*pt) + { + if (cflag) + { + *rowp = *pt; + *rowp *= 0x01010101; + } + else + { + *rowp = *pt << 24; + *rowp |= 0xffffff; + } + } + else + { + *rowp = 0; + } + pt++; + rowp++; + } + texp += imgw; + } + + c8 name[128]; + sprintf(name,"ttf%d_%d_%p",idx_, size, freetypeFont ); + video::IImage *img = freetypeFont->Driver->createImageFromData(video::ECF_A8R8G8B8,core::dimension2d(imgw,imgh),texd); + setGlyphTextureFlags(freetypeFont->Driver); + tex = freetypeFont->Driver->addTexture(name,img); + img->drop(); + restoreTextureFlags(freetypeFont->Driver); + delete[] texd; + cached = true; + } + } + } + + if (!FT_Load_Glyph(face,idx_,FT_LOAD_NO_HINTING|FT_LOAD_RENDER|FT_LOAD_MONOCHROME)) + { + FT_GlyphSlot glyph = face->glyph; + FT_Bitmap bits = glyph->bitmap; + u8 *pt = bits.buffer; + top16 = glyph->bitmap_top; + left16 = glyph->bitmap_left; + imgw16 = 1; + imgh16 = 1; + texw16 = bits.width; + texh16 = bits.rows; + for(;;) + { + if (imgw16 >= texw16) + { + break; + } + else + { + imgw16 <<= 1; + } + } + for(;;) + { + if (imgh16 >= texh16) + { + break; + } + else + { + imgh16 <<= 1; + } + } + if (imgw16 > imgh16) + { + imgh16 = imgw16; + } + else + { + imgw16 = imgh16; + } + + s32 offx = left; + s32 offy = size - top; + if ( offx+texw > freetypeFont->LargestGlyph.Width ) + freetypeFont->LargestGlyph.Width = offx+texw; + if ( offy+texh > freetypeFont->LargestGlyph.Height ) + freetypeFont->LargestGlyph.Height = offy+texh; + + + u16 *texd16 = new u16[imgw16*imgh16]; + memset(texd16,0,imgw16*imgh16*sizeof(u16)); + u16 *texp16 = texd16; + for (int y = 0;y < bits.rows;y++) + { + u16 *rowp = texp16; + for (int x = 0;x < bits.width;x++) + { + if (pt[y * bits.pitch + (x / 8)] & (0x80 >> (x % 8))) + { + *rowp = 0xffff; + } + rowp++; + } + texp16 += imgw16; + } + c8 name[128]; + sprintf(name,"ttf%d_%d_%p_16",idx_, size, freetypeFont ); + video::IImage *img = freetypeFont->Driver->createImageFromData(video::ECF_A1R5G5B5,core::dimension2d(imgw16,imgh16),texd16); + setGlyphTextureFlags(freetypeFont->Driver); + tex16 = freetypeFont->Driver->addTexture(name,img); + img->drop(); + restoreTextureFlags(freetypeFont->Driver); +// freetypeFont->Driver->makeColorKeyTexture(tex16,video::SColor(0,0,0,0)); + delete[] texd16; + } +} + +bool CGUITTGlyph::mTexFlag16 = false; +bool CGUITTGlyph::mTexFlag32 = true; +bool CGUITTGlyph::mTexFlagMip = false; + +void CGUITTGlyph::setGlyphTextureFlags(video::IVideoDriver* driver_) +{ + mTexFlag16 = driver_->getTextureCreationFlag(video::ETCF_ALWAYS_16_BIT); + mTexFlag32 = driver_->getTextureCreationFlag(video::ETCF_ALWAYS_32_BIT); + mTexFlagMip = driver_->getTextureCreationFlag(video::ETCF_CREATE_MIP_MAPS); + driver_->setTextureCreationFlag(video::ETCF_ALWAYS_16_BIT,false); + driver_->setTextureCreationFlag(video::ETCF_ALWAYS_32_BIT,true); + driver_->setTextureCreationFlag(video::ETCF_CREATE_MIP_MAPS, false); +} + +void CGUITTGlyph::restoreTextureFlags(video::IVideoDriver* driver_) +{ + driver_->setTextureCreationFlag(video::ETCF_ALWAYS_16_BIT, mTexFlag16); + driver_->setTextureCreationFlag(video::ETCF_ALWAYS_32_BIT, mTexFlag32); + driver_->setTextureCreationFlag(video::ETCF_CREATE_MIP_MAPS, mTexFlagMip); +} + +// -------------------------------------------------------- +FT_Library CGUITTFace::library = 0; +int CGUITTFace::countClassObjects = 0; + +CGUITTFace::CGUITTFace() +: face(0) +{ + ++countClassObjects; +} + +CGUITTFace::~CGUITTFace() +{ + if ( face ) + FT_Done_Face( face ); + + --countClassObjects; + assert(countClassObjects >= 0 ); + if ( !countClassObjects && library ) + { + FT_Done_FreeType( library ); + library = 0; + } +} + +//! loads a font file +bool CGUITTFace::load(const irr::io::path& filename) +{ + if ( !library ) + { + if (FT_Init_FreeType( &library )) + { + return false; + } + } + core::stringc ansiFilename(filename); // path can be anything but freetype can only work with ansi-filenames + if (FT_New_Face( library,ansiFilename.c_str(),0,&face )) + { + return false; + } + return true; +} + +// -------------------------------------------------------- +//! constructor +CGUIFreetypeFont::CGUIFreetypeFont(video::IVideoDriver* driver) +: Driver(driver) +, TrueTypeFace(0) +{ + #ifdef _DEBUG + setDebugName("CGUIFreetypeFont"); + #endif + + if (Driver) + Driver->grab(); + AntiAlias = false; + Transparency = false; +} + + + +//! destructor +CGUIFreetypeFont::~CGUIFreetypeFont() +{ + if ( TrueTypeFace ) + TrueTypeFace->drop(); + if (Driver) + Driver->drop(); + clearGlyphs(); +} + +bool CGUIFreetypeFont::attach(CGUITTFace *Face,u32 size) +{ + if (!Driver || !Face) + return false; + + Face->grab(); + if ( TrueTypeFace ) + TrueTypeFace->drop(); + TrueTypeFace = Face; + if ( !TrueTypeFace ) + return false; + + clearGlyphs(); + Glyphs.reallocate(TrueTypeFace->face->num_glyphs); + Glyphs.set_used(TrueTypeFace->face->num_glyphs); + for (int i = 0;i < TrueTypeFace->face->num_glyphs;i++) + { + CGUITTGlyph * glyph = new CGUITTGlyph(); + + glyph->size = size; +// glyph->cache((wchar_t)i + 1); + + Glyphs[i] = glyph; + } + + // TODO: this is a workaround to get a probably ok height for getDimensions. So we check a few extreme characters which usually make trouble. + getGlyphByChar(L'A'); + getGlyphByChar(L'g'); + getGlyphByChar(L'.'); + getGlyphByChar(L'('); + + return true; +} + +void CGUIFreetypeFont::clearGlyphs() +{ + for ( unsigned int i=0; i < Glyphs.size(); ++i ) + { + if ( Glyphs[i] ) + { + Glyphs[i]->drop(); + } + Glyphs[i] = 0; + } +} + +u32 CGUIFreetypeFont::getGlyphByChar(wchar_t c) const +{ + u32 idx = FT_Get_Char_Index( TrueTypeFace->face, c ); + if ( idx && !Glyphs[idx - 1]->cached ) + Glyphs[idx - 1]->cache(idx, this); + return idx; +} + +//! returns the dimension of a text +core::dimension2d CGUIFreetypeFont::getDimension(const wchar_t* text) const +{ + core::dimension2d dim(0, Glyphs[0]->size); + + for(const wchar_t* p = text; *p; ++p) + { + dim.Width += getWidthFromCharacter(*p); + } + + // TODO: The correct solution might be working with TrueTypeFace->height but I can't figure out how to use units_per_EM + // even if I know which FT_Render_Mode I used. I'm sure there is some way to figure that out, but I have to give up for now. + if ( TrueTypeFace && LargestGlyph.Height > dim.Height) + dim.Height = LargestGlyph.Height; + + return dim; +} + + +inline u32 CGUIFreetypeFont::getWidthFromCharacter(wchar_t c) const +{ + u32 n = getGlyphByChar(c); + if ( n > 0) + { + int w = Glyphs[n - 1]->texw; + s32 left = Glyphs[n - 1]->left; + if (w + left > 0) + return w + left; + } + if (c >= 0x2000) + { + return Glyphs[0]->size; + } + else + { + return Glyphs[0]->size / 2; + } +} + + +//! draws an text and clips it to the specified rectangle if wanted +void CGUIFreetypeFont::draw(const irr::core::stringw& textstring, const irr::core::rect& position, video::SColor color, bool hcenter, bool vcenter, const core::rect* clip) +{ + if (!Driver) + return; + + core::dimension2d textDimension; + core::position2d offset = position.UpperLeftCorner; + video::SColor colors[4]; + for (int i = 0;i < 4;i++) + { + colors[i] = color; + } + + const wchar_t * text = textstring.c_str(); + if (hcenter || vcenter) + { + textDimension = getDimension(text); + + if (hcenter) + offset.X = ((position.getWidth() - textDimension.Width)>>1) + offset.X; + + if (vcenter) + offset.Y = ((position.getHeight() - textDimension.Height)>>1) + offset.Y; + } + + u32 n; + + while(*text) + { + n = getGlyphByChar(*text); + if ( n > 0) + { + if (AntiAlias) + { +// s32 imgw = Glyphs[n-1]->imgw; +// s32 imgh = Glyphs[n-1]->imgh; + s32 texw = Glyphs[n-1]->texw; + s32 texh = Glyphs[n-1]->texh; + s32 offx = Glyphs[n-1]->left; + s32 offy = Glyphs[n-1]->size - Glyphs[n-1]->top; + if (Driver->getDriverType() != video::EDT_SOFTWARE) + { + if (!Transparency) + color.color |= 0xff000000; + Driver->draw2DImage(Glyphs[n-1]->tex,core::position2d(offset.X+offx,offset.Y+offy),core::rect(0,0,texw,texh),clip,color,true); + } + else + { + s32 a = color.getAlpha(); + s32 r = color.getRed(); + s32 g = color.getGreen(); + s32 b = color.getBlue(); + u8 *pt = Glyphs[n-1]->image; + if (!Transparency) a = 255; + for (int y = 0;y < texh;y++) + { + for (int x = 0;x < texw;x++) + { + if (!clip || clip->isPointInside(core::position2d(offset.X+x+offx,offset.Y+y+offy))) + { + if (*pt) + { + Driver->draw2DRectangle(video::SColor((a * *pt)/255,r,g,b),core::rect(offset.X+x+offx,offset.Y+y+offy,offset.X+x+offx+1,offset.Y+y+offy+1)); + } + pt++; + } + } + } + } + } + else + { +// s32 imgw = Glyphs[n-1]->imgw16; +// s32 imgh = Glyphs[n-1]->imgh16; + s32 texw = Glyphs[n-1]->texw16; + s32 texh = Glyphs[n-1]->texh16; + s32 offx = Glyphs[n-1]->left16; + s32 offy = Glyphs[n-1]->size - Glyphs[n-1]->top16; + if (!Transparency) + { + color.color |= 0xff000000; + } + Driver->draw2DImage(Glyphs[n-1]->tex16, + core::position2d(offset.X+offx,offset.Y+offy), + core::rect(0,0,texw,texh), + clip, color, true); + } + offset.X += getWidthFromCharacter(*text); + } + else + { + offset.X += getWidthFromCharacter(*text); + } + + ++text; + } +} + +//! Calculates the index of the character in the text which is on a specific position. +s32 CGUIFreetypeFont::getCharacterFromPos(const wchar_t* text, s32 pixel_x) const +{ + s32 x = 0; + s32 idx = 0; + + while (text[idx]) + { + x += getWidthFromCharacter(text[idx]); + + if (x >= pixel_x) + return idx; + + ++idx; + } + + return -1; +} + +#endif // #if COMPILE_WITH_FREETYPE diff --git a/rcbasic_runtime/gui_freetype_font.h b/rcbasic_runtime/gui_freetype_font.h new file mode 100644 index 0000000..8b9b265 --- /dev/null +++ b/rcbasic_runtime/gui_freetype_font.h @@ -0,0 +1,124 @@ +#ifndef _GUI_FREETYPE_FONT_H +#define _GUI_FREETYPE_FONT_H + +//! freetype support enabled with 1 and disabled with 0 +#define COMPILE_WITH_FREETYPE 1 + + +#if COMPILE_WITH_FREETYPE + +#include +#include +#include + +class CGUITTFace : public irr::IReferenceCounted +{ +public: + CGUITTFace(); + virtual ~CGUITTFace(); + + bool load(const irr::io::path& filename); + + FT_Face face; // handle to face + +private: + static int countClassObjects; + static FT_Library library; // handle to library +}; + +class CGUIFreetypeFont; + +class CGUITTGlyph : public irr::IReferenceCounted +{ +public: + CGUITTGlyph(); + virtual ~CGUITTGlyph(); + + bool cached; + void cache(irr::u32 idx_, const CGUIFreetypeFont * freetypeFont); + + irr::u32 size; + irr::u32 top; + irr::u32 left; + irr::u32 texw; + irr::u32 texh; + irr::u32 imgw; + irr::u32 imgh; + irr::video::ITexture *tex; + irr::u32 top16; + irr::u32 left16; + irr::u32 texw16; + irr::u32 texh16; + irr::u32 imgw16; + irr::u32 imgh16; + irr::video::ITexture *tex16; + irr::u8 *image; + +private: + void setGlyphTextureFlags(irr::video::IVideoDriver* driver_); + void restoreTextureFlags(irr::video::IVideoDriver* driver_); + + static bool mTexFlag16; + static bool mTexFlag32; + static bool mTexFlagMip; +}; + +class CGUIFreetypeFont : public irr::gui::IGUIFont +{ + friend class CGUITTGlyph; + +public: + + //! constructor + CGUIFreetypeFont(irr::video::IVideoDriver* Driver); + + //! destructor + virtual ~CGUIFreetypeFont(); + + //! loads a truetype font file + bool attach(CGUITTFace *Face,irr::u32 size); + + //! draws an text and clips it to the specified rectangle if wanted + virtual void draw(const irr::core::stringw& text, const irr::core::rect& position, irr::video::SColor color, bool hcenter=false, bool vcenter=false, const irr::core::rect* clip=0); + + //! returns the dimension of a text + virtual irr::core::dimension2d getDimension(const wchar_t* text) const; + + //! Calculates the index of the character in the text which is on a specific position. + virtual irr::s32 getCharacterFromPos(const wchar_t* text, irr::s32 pixel_x) const; + + //! Not yet supported + virtual void setKerningWidth (irr::s32 kerning) {} + + //! Not yet supported + virtual void setKerningHeight (irr::s32 kerning) {} + + //! Not yet supported + virtual irr::s32 getKerningWidth(const wchar_t* thisLetter=0, const wchar_t* previousLetter=0) const { return 0; } + + //! Not yet supported + virtual irr::s32 getKerningHeight() const { return 0; } + + //! Not yet supported + virtual void setInvisibleCharacters( const wchar_t *s ) {} + + + bool AntiAlias; + bool Transparency; + +protected: + void clearGlyphs(); + +private: + irr::u32 getWidthFromCharacter(wchar_t c) const; + irr::u32 getGlyphByChar(wchar_t c) const; + irr::video::IVideoDriver* Driver; + irr::core::array< CGUITTGlyph* > Glyphs; + CGUITTFace * TrueTypeFace; + mutable irr::core::dimension2d LargestGlyph; +}; + +#endif // #if COMPILE_WITH_FREETYPE + +#endif // _GUI_FREETYPE_FONT_H + diff --git a/rcbasic_runtime/irr_gfx/gui_freetype_font.cpp b/rcbasic_runtime/irr_gfx/gui_freetype_font.cpp new file mode 100644 index 0000000..fbbefc0 --- /dev/null +++ b/rcbasic_runtime/irr_gfx/gui_freetype_font.cpp @@ -0,0 +1,538 @@ +#include "gui_freetype_font.h" + +#if COMPILE_WITH_FREETYPE + +#include + +using namespace irr; +using namespace gui; + +#ifdef _MSC_VER +#pragma warning(disable: 4996) +#endif + + +// -------------------------------------------------------- +CGUITTGlyph::CGUITTGlyph() +: IReferenceCounted() + ,cached(false) + ,size(0) + ,top(0) + ,left(0) + ,texw(0) + ,texh(0) + ,imgw(0) + ,imgh(0) + ,tex(NULL) + ,top16(0) + ,left16(0) + ,texw16(0) + ,texh16(0) + ,imgw16(0) + ,imgh16(0) + ,tex16(NULL) + ,image(NULL) +{ +} + +CGUITTGlyph::~CGUITTGlyph() +{ + delete[] image; +} + +//void CGUITTGlyph::cache(u32 idx_, CGUITTFace& ttFace_, video::IVideoDriver* driver_, irr::core::dimension2d &largestSize) +void CGUITTGlyph::cache(u32 idx_, const CGUIFreetypeFont * freetypeFont) +{ + assert(freetypeFont); + + FT_Face face = freetypeFont->TrueTypeFace->face; + + FT_Set_Pixel_Sizes(face, 0, size); + if ( size > freetypeFont->LargestGlyph.Height ) + freetypeFont->LargestGlyph.Height = size; + + if ( !FT_Load_Glyph(face, idx_, FT_LOAD_NO_HINTING|FT_LOAD_NO_BITMAP) ) + { + FT_GlyphSlot glyph = face->glyph; + FT_Bitmap bits; + + if (glyph->format == ft_glyph_format_outline ) + { + if (!FT_Render_Glyph( glyph, FT_RENDER_MODE_NORMAL)) + { + bits = glyph->bitmap; + u8 *pt = bits.buffer; + delete[] image; + image = new u8[bits.width * bits.rows]; + memcpy(image,pt,bits.width * bits.rows); + top = glyph->bitmap_top; + left = glyph->bitmap_left; + imgw = 1; + imgh = 1; + texw = bits.width; + texh = bits.rows; + for(;;) + { + if (imgw > texw) + { + break; + } + else + { + imgw <<= 1; + } + } + for(;;) + { + if (imgh > texh) + { + break; + } + else + { + imgh <<= 1; + } + } + if (imgw > imgh) + { + imgh = imgw; + } + else + { + imgw = imgh; + } + + s32 offx = left; + s32 offy = size - top; + if ( offx+texw > freetypeFont->LargestGlyph.Width ) + freetypeFont->LargestGlyph.Width = offx+texw; + if ( offy+texh > freetypeFont->LargestGlyph.Height ) + freetypeFont->LargestGlyph.Height = offy+texh; + + u32 *texd = new u32[imgw*imgh]; + memset(texd,0,imgw*imgh*sizeof(u32)); + u32 *texp = texd; + bool cflag = (freetypeFont->Driver->getDriverType() == video::EDT_DIRECT3D9); + for (int i = 0;i < bits.rows;i++) + { + u32 *rowp = texp; + for (int j = 0;j < bits.width;j++) + { + if (*pt) + { + if (cflag) + { + *rowp = *pt; + *rowp *= 0x01010101; + } + else + { + *rowp = *pt << 24; + *rowp |= 0xffffff; + } + } + else + { + *rowp = 0; + } + pt++; + rowp++; + } + texp += imgw; + } + + c8 name[128]; + sprintf(name,"ttf%d_%d_%p",idx_, size, freetypeFont ); + video::IImage *img = freetypeFont->Driver->createImageFromData(video::ECF_A8R8G8B8,core::dimension2d(imgw,imgh),texd); + setGlyphTextureFlags(freetypeFont->Driver); + tex = freetypeFont->Driver->addTexture(name,img); + img->drop(); + restoreTextureFlags(freetypeFont->Driver); + delete[] texd; + cached = true; + } + } + } + + if (!FT_Load_Glyph(face,idx_,FT_LOAD_NO_HINTING|FT_LOAD_RENDER|FT_LOAD_MONOCHROME)) + { + FT_GlyphSlot glyph = face->glyph; + FT_Bitmap bits = glyph->bitmap; + u8 *pt = bits.buffer; + top16 = glyph->bitmap_top; + left16 = glyph->bitmap_left; + imgw16 = 1; + imgh16 = 1; + texw16 = bits.width; + texh16 = bits.rows; + for(;;) + { + if (imgw16 >= texw16) + { + break; + } + else + { + imgw16 <<= 1; + } + } + for(;;) + { + if (imgh16 >= texh16) + { + break; + } + else + { + imgh16 <<= 1; + } + } + if (imgw16 > imgh16) + { + imgh16 = imgw16; + } + else + { + imgw16 = imgh16; + } + + s32 offx = left; + s32 offy = size - top; + if ( offx+texw > freetypeFont->LargestGlyph.Width ) + freetypeFont->LargestGlyph.Width = offx+texw; + if ( offy+texh > freetypeFont->LargestGlyph.Height ) + freetypeFont->LargestGlyph.Height = offy+texh; + + + u16 *texd16 = new u16[imgw16*imgh16]; + memset(texd16,0,imgw16*imgh16*sizeof(u16)); + u16 *texp16 = texd16; + for (int y = 0;y < bits.rows;y++) + { + u16 *rowp = texp16; + for (int x = 0;x < bits.width;x++) + { + if (pt[y * bits.pitch + (x / 8)] & (0x80 >> (x % 8))) + { + *rowp = 0xffff; + } + rowp++; + } + texp16 += imgw16; + } + c8 name[128]; + sprintf(name,"ttf%d_%d_%p_16",idx_, size, freetypeFont ); + video::IImage *img = freetypeFont->Driver->createImageFromData(video::ECF_A1R5G5B5,core::dimension2d(imgw16,imgh16),texd16); + setGlyphTextureFlags(freetypeFont->Driver); + tex16 = freetypeFont->Driver->addTexture(name,img); + img->drop(); + restoreTextureFlags(freetypeFont->Driver); +// freetypeFont->Driver->makeColorKeyTexture(tex16,video::SColor(0,0,0,0)); + delete[] texd16; + } +} + +bool CGUITTGlyph::mTexFlag16 = false; +bool CGUITTGlyph::mTexFlag32 = true; +bool CGUITTGlyph::mTexFlagMip = false; + +void CGUITTGlyph::setGlyphTextureFlags(video::IVideoDriver* driver_) +{ + mTexFlag16 = driver_->getTextureCreationFlag(video::ETCF_ALWAYS_16_BIT); + mTexFlag32 = driver_->getTextureCreationFlag(video::ETCF_ALWAYS_32_BIT); + mTexFlagMip = driver_->getTextureCreationFlag(video::ETCF_CREATE_MIP_MAPS); + driver_->setTextureCreationFlag(video::ETCF_ALWAYS_16_BIT,false); + driver_->setTextureCreationFlag(video::ETCF_ALWAYS_32_BIT,true); + driver_->setTextureCreationFlag(video::ETCF_CREATE_MIP_MAPS, false); +} + +void CGUITTGlyph::restoreTextureFlags(video::IVideoDriver* driver_) +{ + driver_->setTextureCreationFlag(video::ETCF_ALWAYS_16_BIT, mTexFlag16); + driver_->setTextureCreationFlag(video::ETCF_ALWAYS_32_BIT, mTexFlag32); + driver_->setTextureCreationFlag(video::ETCF_CREATE_MIP_MAPS, mTexFlagMip); +} + +// -------------------------------------------------------- +FT_Library CGUITTFace::library = 0; +int CGUITTFace::countClassObjects = 0; + +CGUITTFace::CGUITTFace() +: face(0) +{ + ++countClassObjects; +} + +CGUITTFace::~CGUITTFace() +{ + if ( face ) + FT_Done_Face( face ); + + --countClassObjects; + assert(countClassObjects >= 0 ); + if ( !countClassObjects && library ) + { + FT_Done_FreeType( library ); + library = 0; + } +} + +//! loads a font file +bool CGUITTFace::load(const irr::io::path& filename) +{ + if ( !library ) + { + if (FT_Init_FreeType( &library )) + { + return false; + } + } + core::stringc ansiFilename(filename); // path can be anything but freetype can only work with ansi-filenames + if (FT_New_Face( library,ansiFilename.c_str(),0,&face )) + { + return false; + } + return true; +} + +// -------------------------------------------------------- +//! constructor +CGUIFreetypeFont::CGUIFreetypeFont(video::IVideoDriver* driver) +: Driver(driver) +, TrueTypeFace(0) +{ + #ifdef _DEBUG + setDebugName("CGUIFreetypeFont"); + #endif + + if (Driver) + Driver->grab(); + AntiAlias = false; + Transparency = false; +} + + + +//! destructor +CGUIFreetypeFont::~CGUIFreetypeFont() +{ + if ( TrueTypeFace ) + TrueTypeFace->drop(); + if (Driver) + Driver->drop(); + clearGlyphs(); +} + +bool CGUIFreetypeFont::attach(CGUITTFace *Face,u32 size) +{ + if (!Driver || !Face) + return false; + + Face->grab(); + if ( TrueTypeFace ) + TrueTypeFace->drop(); + TrueTypeFace = Face; + if ( !TrueTypeFace ) + return false; + + clearGlyphs(); + Glyphs.reallocate(TrueTypeFace->face->num_glyphs); + Glyphs.set_used(TrueTypeFace->face->num_glyphs); + for (int i = 0;i < TrueTypeFace->face->num_glyphs;i++) + { + CGUITTGlyph * glyph = new CGUITTGlyph(); + + glyph->size = size; +// glyph->cache((wchar_t)i + 1); + + Glyphs[i] = glyph; + } + + // TODO: this is a workaround to get a probably ok height for getDimensions. So we check a few extreme characters which usually make trouble. + getGlyphByChar(L'A'); + getGlyphByChar(L'g'); + getGlyphByChar(L'.'); + getGlyphByChar(L'('); + + return true; +} + +void CGUIFreetypeFont::clearGlyphs() +{ + for ( unsigned int i=0; i < Glyphs.size(); ++i ) + { + if ( Glyphs[i] ) + { + Glyphs[i]->drop(); + } + Glyphs[i] = 0; + } +} + +u32 CGUIFreetypeFont::getGlyphByChar(wchar_t c) const +{ + u32 idx = FT_Get_Char_Index( TrueTypeFace->face, c ); + if ( idx && !Glyphs[idx - 1]->cached ) + Glyphs[idx - 1]->cache(idx, this); + return idx; +} + +//! returns the dimension of a text +core::dimension2d CGUIFreetypeFont::getDimension(const wchar_t* text) const +{ + core::dimension2d dim(0, Glyphs[0]->size); + + for(const wchar_t* p = text; *p; ++p) + { + dim.Width += getWidthFromCharacter(*p); + } + + // TODO: The correct solution might be working with TrueTypeFace->height but I can't figure out how to use units_per_EM + // even if I know which FT_Render_Mode I used. I'm sure there is some way to figure that out, but I have to give up for now. + if ( TrueTypeFace && LargestGlyph.Height > dim.Height) + dim.Height = LargestGlyph.Height; + + return dim; +} + + +inline u32 CGUIFreetypeFont::getWidthFromCharacter(wchar_t c) const +{ + u32 n = getGlyphByChar(c); + if ( n > 0) + { + int w = Glyphs[n - 1]->texw; + s32 left = Glyphs[n - 1]->left; + if (w + left > 0) + return w + left; + } + if (c >= 0x2000) + { + return Glyphs[0]->size; + } + else + { + return Glyphs[0]->size / 2; + } +} + + +//! draws an text and clips it to the specified rectangle if wanted +void CGUIFreetypeFont::draw(const irr::core::stringw& textstring, const irr::core::rect& position, video::SColor color, bool hcenter, bool vcenter, const core::rect* clip) +{ + if (!Driver) + return; + + core::dimension2d textDimension; + core::position2d offset = position.UpperLeftCorner; + video::SColor colors[4]; + for (int i = 0;i < 4;i++) + { + colors[i] = color; + } + + const wchar_t * text = textstring.c_str(); + if (hcenter || vcenter) + { + textDimension = getDimension(text); + + if (hcenter) + offset.X = ((position.getWidth() - textDimension.Width)>>1) + offset.X; + + if (vcenter) + offset.Y = ((position.getHeight() - textDimension.Height)>>1) + offset.Y; + } + + u32 n; + + while(*text) + { + n = getGlyphByChar(*text); + if ( n > 0) + { + if (AntiAlias) + { +// s32 imgw = Glyphs[n-1]->imgw; +// s32 imgh = Glyphs[n-1]->imgh; + s32 texw = Glyphs[n-1]->texw; + s32 texh = Glyphs[n-1]->texh; + s32 offx = Glyphs[n-1]->left; + s32 offy = Glyphs[n-1]->size - Glyphs[n-1]->top; + if (Driver->getDriverType() != video::EDT_SOFTWARE) + { + if (!Transparency) + color.color |= 0xff000000; + Driver->draw2DImage(Glyphs[n-1]->tex,core::position2d(offset.X+offx,offset.Y+offy),core::rect(0,0,texw,texh),clip,color,true); + } + else + { + s32 a = color.getAlpha(); + s32 r = color.getRed(); + s32 g = color.getGreen(); + s32 b = color.getBlue(); + u8 *pt = Glyphs[n-1]->image; + if (!Transparency) a = 255; + for (int y = 0;y < texh;y++) + { + for (int x = 0;x < texw;x++) + { + if (!clip || clip->isPointInside(core::position2d(offset.X+x+offx,offset.Y+y+offy))) + { + if (*pt) + { + Driver->draw2DRectangle(video::SColor((a * *pt)/255,r,g,b),core::rect(offset.X+x+offx,offset.Y+y+offy,offset.X+x+offx+1,offset.Y+y+offy+1)); + } + pt++; + } + } + } + } + } + else + { +// s32 imgw = Glyphs[n-1]->imgw16; +// s32 imgh = Glyphs[n-1]->imgh16; + s32 texw = Glyphs[n-1]->texw16; + s32 texh = Glyphs[n-1]->texh16; + s32 offx = Glyphs[n-1]->left16; + s32 offy = Glyphs[n-1]->size - Glyphs[n-1]->top16; + if (!Transparency) + { + color.color |= 0xff000000; + } + Driver->draw2DImage(Glyphs[n-1]->tex16, + core::position2d(offset.X+offx,offset.Y+offy), + core::rect(0,0,texw,texh), + clip, color, true); + } + offset.X += getWidthFromCharacter(*text); + } + else + { + offset.X += getWidthFromCharacter(*text); + } + + ++text; + } +} + +//! Calculates the index of the character in the text which is on a specific position. +s32 CGUIFreetypeFont::getCharacterFromPos(const wchar_t* text, s32 pixel_x) const +{ + s32 x = 0; + s32 idx = 0; + + while (text[idx]) + { + x += getWidthFromCharacter(text[idx]); + + if (x >= pixel_x) + return idx; + + ++idx; + } + + return -1; +} + +#endif // #if COMPILE_WITH_FREETYPE diff --git a/rcbasic_runtime/irr_gfx/gui_freetype_font.h b/rcbasic_runtime/irr_gfx/gui_freetype_font.h new file mode 100644 index 0000000..8b9b265 --- /dev/null +++ b/rcbasic_runtime/irr_gfx/gui_freetype_font.h @@ -0,0 +1,124 @@ +#ifndef _GUI_FREETYPE_FONT_H +#define _GUI_FREETYPE_FONT_H + +//! freetype support enabled with 1 and disabled with 0 +#define COMPILE_WITH_FREETYPE 1 + + +#if COMPILE_WITH_FREETYPE + +#include +#include +#include + +class CGUITTFace : public irr::IReferenceCounted +{ +public: + CGUITTFace(); + virtual ~CGUITTFace(); + + bool load(const irr::io::path& filename); + + FT_Face face; // handle to face + +private: + static int countClassObjects; + static FT_Library library; // handle to library +}; + +class CGUIFreetypeFont; + +class CGUITTGlyph : public irr::IReferenceCounted +{ +public: + CGUITTGlyph(); + virtual ~CGUITTGlyph(); + + bool cached; + void cache(irr::u32 idx_, const CGUIFreetypeFont * freetypeFont); + + irr::u32 size; + irr::u32 top; + irr::u32 left; + irr::u32 texw; + irr::u32 texh; + irr::u32 imgw; + irr::u32 imgh; + irr::video::ITexture *tex; + irr::u32 top16; + irr::u32 left16; + irr::u32 texw16; + irr::u32 texh16; + irr::u32 imgw16; + irr::u32 imgh16; + irr::video::ITexture *tex16; + irr::u8 *image; + +private: + void setGlyphTextureFlags(irr::video::IVideoDriver* driver_); + void restoreTextureFlags(irr::video::IVideoDriver* driver_); + + static bool mTexFlag16; + static bool mTexFlag32; + static bool mTexFlagMip; +}; + +class CGUIFreetypeFont : public irr::gui::IGUIFont +{ + friend class CGUITTGlyph; + +public: + + //! constructor + CGUIFreetypeFont(irr::video::IVideoDriver* Driver); + + //! destructor + virtual ~CGUIFreetypeFont(); + + //! loads a truetype font file + bool attach(CGUITTFace *Face,irr::u32 size); + + //! draws an text and clips it to the specified rectangle if wanted + virtual void draw(const irr::core::stringw& text, const irr::core::rect& position, irr::video::SColor color, bool hcenter=false, bool vcenter=false, const irr::core::rect* clip=0); + + //! returns the dimension of a text + virtual irr::core::dimension2d getDimension(const wchar_t* text) const; + + //! Calculates the index of the character in the text which is on a specific position. + virtual irr::s32 getCharacterFromPos(const wchar_t* text, irr::s32 pixel_x) const; + + //! Not yet supported + virtual void setKerningWidth (irr::s32 kerning) {} + + //! Not yet supported + virtual void setKerningHeight (irr::s32 kerning) {} + + //! Not yet supported + virtual irr::s32 getKerningWidth(const wchar_t* thisLetter=0, const wchar_t* previousLetter=0) const { return 0; } + + //! Not yet supported + virtual irr::s32 getKerningHeight() const { return 0; } + + //! Not yet supported + virtual void setInvisibleCharacters( const wchar_t *s ) {} + + + bool AntiAlias; + bool Transparency; + +protected: + void clearGlyphs(); + +private: + irr::u32 getWidthFromCharacter(wchar_t c) const; + irr::u32 getGlyphByChar(wchar_t c) const; + irr::video::IVideoDriver* Driver; + irr::core::array< CGUITTGlyph* > Glyphs; + CGUITTFace * TrueTypeFace; + mutable irr::core::dimension2d LargestGlyph; +}; + +#endif // #if COMPILE_WITH_FREETYPE + +#endif // _GUI_FREETYPE_FONT_H + diff --git a/rcbasic_runtime/irr_gfx/rc_font.h b/rcbasic_runtime/irr_gfx/rc_font.h new file mode 100644 index 0000000..5d1d81f --- /dev/null +++ b/rcbasic_runtime/irr_gfx/rc_font.h @@ -0,0 +1,6 @@ +#ifndef RC_FONT_H_INCLUDED +#define RC_FONT_H_INCLUDED + + + +#endif // RC_FONT_H_INCLUDED diff --git a/rcbasic_runtime/irr_gfx/rc_gfx.h b/rcbasic_runtime/irr_gfx/rc_gfx.h new file mode 100644 index 0000000..5a7675b --- /dev/null +++ b/rcbasic_runtime/irr_gfx/rc_gfx.h @@ -0,0 +1,3171 @@ +#ifndef RC_GFX_INCLUDED +#define RC_GFX_INCLUDED + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "gui_freetype_font.h" +#include "rc_utf8.h" + +using namespace irr; + +using namespace core; +using namespace video; +using namespace scene; + + +#define MAX_JOYSTICKS 8 + +#define MAX_FINGERS 10 + +#define MAX_ACCELS 20 +#define MAX_GYROS 20 + +SDL_Joystick * rc_joystick[MAX_JOYSTICKS]; +int rc_joy_axis[MAX_JOYSTICKS][100]; +int rc_numJoysticks = 0; +int rc_joybutton[MAX_JOYSTICKS][100]; +SDL_JoystickID rc_joyID[MAX_JOYSTICKS]; + +SDL_Joystick * tmp_joy; +SDL_JoystickID tmp_joy_id; +int tmp_joy_flag = 0; + +SDL_Haptic * rc_haptic[MAX_JOYSTICKS]; //1 for each joystick + +double rc_pressure = 0; +int rc_touchX = 0; +int rc_touchY = 0; +int rc_motionX = 0; +int rc_motionY = 0; +int rc_touch = 0; +int rc_mt_status = 0; +int rc_mt_x = 0; +int rc_mt_y = 0; +int rc_mt_numFingers = 0; +double rc_mt_theta = 0; +double rc_mt_dist = 0; +SDL_TouchID rc_touchDevice; +SDL_Finger rc_finger[MAX_FINGERS]; +set rc_fingers_pressed; + +SDL_Sensor * rc_accel[MAX_ACCELS]; +int num_accels = 0; + +SDL_Sensor * rc_gyro[MAX_GYROS]; +int num_gyros = 0; + + +struct SDLKeyMap +{ + SDLKeyMap() {} + SDLKeyMap(s32 x11, s32 win32) + : SDLKey(x11), Win32Key(win32) + { + } + + s32 SDLKey; + s32 Win32Key; + + bool operator<(const SDLKeyMap& o) const + { + return SDLKey KeyMap; + +void createKeyMap() +{ + // I don't know if this is the best method to create + // the lookuptable, but I'll leave it like that until + // I find a better version. + + KeyMap.reallocate(105); + + // buttons missing + + KeyMap.push_back(SDLKeyMap(SDLK_BACKSPACE, irr::EKEY_CODE::KEY_BACK)); + KeyMap.push_back(SDLKeyMap(SDLK_TAB, irr::EKEY_CODE::KEY_TAB)); + KeyMap.push_back(SDLKeyMap(SDLK_CLEAR, irr::EKEY_CODE::KEY_CLEAR)); + KeyMap.push_back(SDLKeyMap(SDLK_RETURN, irr::EKEY_CODE::KEY_RETURN)); + + // combined modifiers missing + + KeyMap.push_back(SDLKeyMap(SDLK_PAUSE, irr::EKEY_CODE::KEY_PAUSE)); + KeyMap.push_back(SDLKeyMap(SDLK_CAPSLOCK, irr::EKEY_CODE::KEY_CAPITAL)); + + // asian letter keys missing + + KeyMap.push_back(SDLKeyMap(SDLK_ESCAPE, irr::EKEY_CODE::KEY_ESCAPE)); + + // asian letter keys missing + + KeyMap.push_back(SDLKeyMap(SDLK_SPACE, irr::EKEY_CODE::KEY_SPACE)); + KeyMap.push_back(SDLKeyMap(SDLK_PAGEUP, irr::EKEY_CODE::KEY_PRIOR)); + KeyMap.push_back(SDLKeyMap(SDLK_PAGEDOWN, irr::EKEY_CODE::KEY_NEXT)); + KeyMap.push_back(SDLKeyMap(SDLK_END, irr::EKEY_CODE::KEY_END)); + KeyMap.push_back(SDLKeyMap(SDLK_HOME, irr::EKEY_CODE::KEY_HOME)); + KeyMap.push_back(SDLKeyMap(SDLK_LEFT, irr::EKEY_CODE::KEY_LEFT)); + KeyMap.push_back(SDLKeyMap(SDLK_UP, irr::EKEY_CODE::KEY_UP)); + KeyMap.push_back(SDLKeyMap(SDLK_RIGHT, irr::EKEY_CODE::KEY_RIGHT)); + KeyMap.push_back(SDLKeyMap(SDLK_DOWN, irr::EKEY_CODE::KEY_DOWN)); + + // select missing + KeyMap.push_back(SDLKeyMap(SDLK_PRINTSCREEN, irr::EKEY_CODE::KEY_PRINT)); + // execute missing + KeyMap.push_back(SDLKeyMap(SDLK_PRINTSCREEN, irr::EKEY_CODE::KEY_SNAPSHOT)); + + KeyMap.push_back(SDLKeyMap(SDLK_INSERT, irr::EKEY_CODE::KEY_INSERT)); + KeyMap.push_back(SDLKeyMap(SDLK_DELETE, irr::EKEY_CODE::KEY_DELETE)); + KeyMap.push_back(SDLKeyMap(SDLK_HELP, irr::EKEY_CODE::KEY_HELP)); + + KeyMap.push_back(SDLKeyMap(SDLK_0, irr::EKEY_CODE::KEY_KEY_0)); + KeyMap.push_back(SDLKeyMap(SDLK_1, irr::EKEY_CODE::KEY_KEY_1)); + KeyMap.push_back(SDLKeyMap(SDLK_2, irr::EKEY_CODE::KEY_KEY_2)); + KeyMap.push_back(SDLKeyMap(SDLK_3, irr::EKEY_CODE::KEY_KEY_3)); + KeyMap.push_back(SDLKeyMap(SDLK_4, irr::EKEY_CODE::KEY_KEY_4)); + KeyMap.push_back(SDLKeyMap(SDLK_5, irr::EKEY_CODE::KEY_KEY_5)); + KeyMap.push_back(SDLKeyMap(SDLK_6, irr::EKEY_CODE::KEY_KEY_6)); + KeyMap.push_back(SDLKeyMap(SDLK_7, irr::EKEY_CODE::KEY_KEY_7)); + KeyMap.push_back(SDLKeyMap(SDLK_8, irr::EKEY_CODE::KEY_KEY_8)); + KeyMap.push_back(SDLKeyMap(SDLK_9, irr::EKEY_CODE::KEY_KEY_9)); + + KeyMap.push_back(SDLKeyMap(SDLK_a, irr::EKEY_CODE::KEY_KEY_A)); + KeyMap.push_back(SDLKeyMap(SDLK_b, irr::EKEY_CODE::KEY_KEY_B)); + KeyMap.push_back(SDLKeyMap(SDLK_c, irr::EKEY_CODE::KEY_KEY_C)); + KeyMap.push_back(SDLKeyMap(SDLK_d, irr::EKEY_CODE::KEY_KEY_D)); + KeyMap.push_back(SDLKeyMap(SDLK_e, irr::EKEY_CODE::KEY_KEY_E)); + KeyMap.push_back(SDLKeyMap(SDLK_f, irr::EKEY_CODE::KEY_KEY_F)); + KeyMap.push_back(SDLKeyMap(SDLK_g, irr::EKEY_CODE::KEY_KEY_G)); + KeyMap.push_back(SDLKeyMap(SDLK_h, irr::EKEY_CODE::KEY_KEY_H)); + KeyMap.push_back(SDLKeyMap(SDLK_i, irr::EKEY_CODE::KEY_KEY_I)); + KeyMap.push_back(SDLKeyMap(SDLK_j, irr::EKEY_CODE::KEY_KEY_J)); + KeyMap.push_back(SDLKeyMap(SDLK_k, irr::EKEY_CODE::KEY_KEY_K)); + KeyMap.push_back(SDLKeyMap(SDLK_l, irr::EKEY_CODE::KEY_KEY_L)); + KeyMap.push_back(SDLKeyMap(SDLK_m, irr::EKEY_CODE::KEY_KEY_M)); + KeyMap.push_back(SDLKeyMap(SDLK_n, irr::EKEY_CODE::KEY_KEY_N)); + KeyMap.push_back(SDLKeyMap(SDLK_o, irr::EKEY_CODE::KEY_KEY_O)); + KeyMap.push_back(SDLKeyMap(SDLK_p, irr::EKEY_CODE::KEY_KEY_P)); + KeyMap.push_back(SDLKeyMap(SDLK_q, irr::EKEY_CODE::KEY_KEY_Q)); + KeyMap.push_back(SDLKeyMap(SDLK_r, irr::EKEY_CODE::KEY_KEY_R)); + KeyMap.push_back(SDLKeyMap(SDLK_s, irr::EKEY_CODE::KEY_KEY_S)); + KeyMap.push_back(SDLKeyMap(SDLK_t, irr::EKEY_CODE::KEY_KEY_T)); + KeyMap.push_back(SDLKeyMap(SDLK_u, irr::EKEY_CODE::KEY_KEY_U)); + KeyMap.push_back(SDLKeyMap(SDLK_v, irr::EKEY_CODE::KEY_KEY_V)); + KeyMap.push_back(SDLKeyMap(SDLK_w, irr::EKEY_CODE::KEY_KEY_W)); + KeyMap.push_back(SDLKeyMap(SDLK_x, irr::EKEY_CODE::KEY_KEY_X)); + KeyMap.push_back(SDLKeyMap(SDLK_y, irr::EKEY_CODE::KEY_KEY_Y)); + KeyMap.push_back(SDLKeyMap(SDLK_z, irr::EKEY_CODE::KEY_KEY_Z)); + + // TODO: + //KeyMap.push_back(SDLKeyMap(SDLK_LSUPER, KEY_LWIN)); + // TODO: + //KeyMap.push_back(SDLKeyMap(SDLK_RSUPER, KEY_RWIN)); + // apps missing + KeyMap.push_back(SDLKeyMap(SDLK_POWER, irr::EKEY_CODE::KEY_SLEEP)); //?? + + KeyMap.push_back(SDLKeyMap(SDLK_KP_0, irr::EKEY_CODE::KEY_NUMPAD0)); + KeyMap.push_back(SDLKeyMap(SDLK_KP_1, irr::EKEY_CODE::KEY_NUMPAD1)); + KeyMap.push_back(SDLKeyMap(SDLK_KP_2, irr::EKEY_CODE::KEY_NUMPAD2)); + KeyMap.push_back(SDLKeyMap(SDLK_KP_3, irr::EKEY_CODE::KEY_NUMPAD3)); + KeyMap.push_back(SDLKeyMap(SDLK_KP_4, irr::EKEY_CODE::KEY_NUMPAD4)); + KeyMap.push_back(SDLKeyMap(SDLK_KP_5, irr::EKEY_CODE::KEY_NUMPAD5)); + KeyMap.push_back(SDLKeyMap(SDLK_KP_6, irr::EKEY_CODE::KEY_NUMPAD6)); + KeyMap.push_back(SDLKeyMap(SDLK_KP_7, irr::EKEY_CODE::KEY_NUMPAD7)); + KeyMap.push_back(SDLKeyMap(SDLK_KP_8, irr::EKEY_CODE::KEY_NUMPAD8)); + KeyMap.push_back(SDLKeyMap(SDLK_KP_9, irr::EKEY_CODE::KEY_NUMPAD9)); + KeyMap.push_back(SDLKeyMap(SDLK_KP_MULTIPLY, irr::EKEY_CODE::KEY_MULTIPLY)); + KeyMap.push_back(SDLKeyMap(SDLK_KP_PLUS, irr::EKEY_CODE::KEY_ADD)); +// KeyMap.push_back(SDLKeyMap(SDLK_KP_, KEY_SEPARATOR)); + KeyMap.push_back(SDLKeyMap(SDLK_KP_MINUS, irr::EKEY_CODE::KEY_SUBTRACT)); + KeyMap.push_back(SDLKeyMap(SDLK_KP_PERIOD, irr::EKEY_CODE::KEY_DECIMAL)); + KeyMap.push_back(SDLKeyMap(SDLK_KP_DIVIDE, irr::EKEY_CODE::KEY_DIVIDE)); + + KeyMap.push_back(SDLKeyMap(SDLK_F1, irr::EKEY_CODE::KEY_F1)); + KeyMap.push_back(SDLKeyMap(SDLK_F2, irr::EKEY_CODE::KEY_F2)); + KeyMap.push_back(SDLKeyMap(SDLK_F3, irr::EKEY_CODE::KEY_F3)); + KeyMap.push_back(SDLKeyMap(SDLK_F4, irr::EKEY_CODE::KEY_F4)); + KeyMap.push_back(SDLKeyMap(SDLK_F5, irr::EKEY_CODE::KEY_F5)); + KeyMap.push_back(SDLKeyMap(SDLK_F6, irr::EKEY_CODE::KEY_F6)); + KeyMap.push_back(SDLKeyMap(SDLK_F7, irr::EKEY_CODE::KEY_F7)); + KeyMap.push_back(SDLKeyMap(SDLK_F8, irr::EKEY_CODE::KEY_F8)); + KeyMap.push_back(SDLKeyMap(SDLK_F9, irr::EKEY_CODE::KEY_F9)); + KeyMap.push_back(SDLKeyMap(SDLK_F10, irr::EKEY_CODE::KEY_F10)); + KeyMap.push_back(SDLKeyMap(SDLK_F11, irr::EKEY_CODE::KEY_F11)); + KeyMap.push_back(SDLKeyMap(SDLK_F12, irr::EKEY_CODE::KEY_F12)); + KeyMap.push_back(SDLKeyMap(SDLK_F13, irr::EKEY_CODE::KEY_F13)); + KeyMap.push_back(SDLKeyMap(SDLK_F14, irr::EKEY_CODE::KEY_F14)); + KeyMap.push_back(SDLKeyMap(SDLK_F15, irr::EKEY_CODE::KEY_F15)); + // no higher F-keys + + // TODO: + //KeyMap.push_back(SDLKeyMap(SDLK_NUMLOCK, KEY_NUMLOCK)); + KeyMap.push_back(SDLKeyMap(SDLK_SCROLLLOCK, irr::EKEY_CODE::KEY_SCROLL)); + KeyMap.push_back(SDLKeyMap(SDLK_LSHIFT, irr::EKEY_CODE::KEY_LSHIFT)); + KeyMap.push_back(SDLKeyMap(SDLK_RSHIFT, irr::EKEY_CODE::KEY_RSHIFT)); + KeyMap.push_back(SDLKeyMap(SDLK_LCTRL, irr::EKEY_CODE::KEY_LCONTROL)); + KeyMap.push_back(SDLKeyMap(SDLK_RCTRL, irr::EKEY_CODE::KEY_RCONTROL)); + KeyMap.push_back(SDLKeyMap(SDLK_LALT, irr::EKEY_CODE::KEY_LMENU)); + KeyMap.push_back(SDLKeyMap(SDLK_RALT, irr::EKEY_CODE::KEY_RMENU)); + + KeyMap.push_back(SDLKeyMap(SDLK_PLUS, irr::EKEY_CODE::KEY_PLUS)); + KeyMap.push_back(SDLKeyMap(SDLK_COMMA, irr::EKEY_CODE::KEY_COMMA)); + KeyMap.push_back(SDLKeyMap(SDLK_MINUS, irr::EKEY_CODE::KEY_MINUS)); + KeyMap.push_back(SDLKeyMap(SDLK_PERIOD, irr::EKEY_CODE::KEY_PERIOD)); + + // some special keys missing + + KeyMap.sort(); +} + +IrrlichtDevice* device; +irr::video::IVideoDriver * VideoDriver; +SDL_Window* rc_window; +irr::core::dimension2d rc_window_size; + + +//Canvases +struct rc_canvas_obj +{ + irr::video::ITexture* texture; + + irr::core::dimension2d dimension; + + struct rc_canvas_viewport + { + irr::core::vector2d position; + irr::core::dimension2d dimension; + } viewport; + + irr::core::vector2d offset; + + int mode; + + bool visible = true; + int z = 0; + + irr::u8 alpha; + + irr::u32 color_mod; +}; + +irr::core::array rc_canvas; +irr::core::array rc_canvas_zOrder; +int rc_active_canvas = -1; + +irr::video::SColor rc_active_color(0,0,0,0); +irr::video::SColor rc_clear_color(0,0,0,0); + +bool rc_init_events = false; +bool rc_init_timer = false; +bool rc_init_video = false; +bool rc_init_joystick = false; +bool rc_init_haptic = false; +bool rc_init_sensor = false; +bool rc_init_noparachute = false; +bool rc_init_audio = false; + + +irr::s32 MouseX, MouseY, MouseXRel, MouseYRel; +irr::u32 MouseButtonStates; + + +int rc_win_event = -1; +#define RC_WIN_EVENT_CLOSE 1 +#define RC_WIN_EVENT_MINIMIZE 2 +#define RC_WIN_EVENT_MAXIMIZE 3 +#define RC_WIN_EVENT_RESIZE 4 + +bool rc_win_exitOnClose = true; + +std::string rc_textinput_string = ""; +std::string rc_textinput_char = ""; +int rc_textinput_timer = 0; +int rc_textinput_delay = 100; +bool rc_textinput_flag = true; +bool rc_textinput_isActive = false; +int rc_textinput_waitHold = 800; +bool rc_textinput_hold = false; +bool rc_toggleBackspace = true; + + +static Uint32 baseticks = 0; + +int rc_inkey_val = 0; + +const Uint8 * keyState = NULL; + + + +std::wstring_convert> converter; + +struct rc_font_obj +{ + CGUITTFace* face; + CGUIFreetypeFont* font; + int font_size; +}; + +irr::core::array rc_font; + +int rc_active_font = -1; + + +bool mobile_active_window_flag = true; + +void rc_setTouchFingerEvent(SDL_FingerID fingerID, double x, double y, double pressure) +{ + for(int i = 0; i < MAX_FINGERS; i++) + { + if(rc_finger[i].id == -1 || rc_finger[i].id == fingerID) + { + rc_finger[i].id = fingerID; + rc_finger[i].x = x; + rc_finger[i].y = y; + rc_finger[i].pressure = pressure; + if(rc_finger[i].pressure > 0) + { + rc_fingers_pressed.insert(i); + } + return; + } + } +} + +int mobile_event_filter(void* userdata, SDL_Event* evt) +{ + SDL_Event event = evt[0]; + + int rc_win_width = 0; + int rc_win_height = 0; + + if(rc_window) + SDL_GetWindowSize(rc_window, &rc_win_width, &rc_win_height); + + switch(evt->type) + { + case SDL_APP_WILLENTERBACKGROUND: + mobile_active_window_flag = false; + break; + case SDL_APP_DIDENTERFOREGROUND: + if(!mobile_active_window_flag) + { + //rc_win_renderer[0] = SDL_GetRenderer(rc_win[0]); + } + mobile_active_window_flag = true; + break; + + case SDL_FINGERDOWN: + rc_touch = 1; + rc_touchX = event.tfinger.x * rc_win_width; + rc_touchY = event.tfinger.y * rc_win_height; +#ifdef RC_IOS + rc_pressure = 1; //FIXME: On IOS pressure is always getting reported as 0 on finger down so I am just setting it to 1 until I figure this out +#else + rc_pressure = event.tfinger.pressure; +#endif + rc_setTouchFingerEvent(event.tfinger.fingerId, rc_touchX, rc_touchY, rc_pressure); + break; + case SDL_FINGERUP: + rc_touch = 0; + rc_mt_status = 0; + rc_touchX = event.tfinger.x * rc_win_width; + rc_touchY = event.tfinger.y * rc_win_height; + rc_pressure = event.tfinger.pressure; + rc_setTouchFingerEvent(event.tfinger.fingerId, -1, -1, 0); + break; + case SDL_FINGERMOTION: + rc_touch = 1; + rc_touchX = event.tfinger.x * rc_win_width; + rc_touchY = event.tfinger.y * rc_win_height; + rc_motionX = event.tfinger.dx * rc_win_width; + rc_motionY = event.tfinger.dy * rc_win_height; +#ifdef RC_IOS + rc_pressure = 1; +#else + rc_pressure = event.tfinger.pressure; +#endif + rc_setTouchFingerEvent(event.tfinger.fingerId, rc_touchX, rc_touchY, rc_pressure); + break; + case SDL_MULTIGESTURE: + rc_touch = 2; + rc_mt_status = 1; + rc_mt_x = event.mgesture.x; + rc_mt_y = event.mgesture.y; + rc_mt_numFingers = event.mgesture.numFingers; + rc_mt_dist = event.mgesture.dDist; + rc_mt_theta = event.mgesture.dTheta; +#ifdef RC_IOS + rc_pressure = 1; +#else + rc_pressure = event.tfinger.pressure; +#endif + break; + + } + return 0; +} + + +bool rcbasic_init() +{ + if(SDL_Init(SDL_INIT_EVENTS | SDL_INIT_TIMER | SDL_INIT_VIDEO | SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC | SDL_INIT_SENSOR | SDL_INIT_NOPARACHUTE) < 0) //Audio causes init to fail on Fedora40 so I am leaving it out for now + { + bool rc_init_events = true; + bool rc_init_timer = true; + bool rc_init_video = true; + bool rc_init_joystick = true; + bool rc_init_haptic = true; + bool rc_init_sensor = true; + bool rc_init_noparachute = true; + //os::Printer::log("SDL_Init Error: ", SDL_GetError()); + std::cout << "SDL_Init Error: " << SDL_GetError() << std::endl; + return false; + } + + if(SDL_Init(SDL_INIT_AUDIO) < 0) + { + std::cout << "SDL_Init Error: " << SDL_GetError() << std::endl; + rc_init_audio = false; + } + + #ifdef RC_MOBILE + SDL_SetEventFilter(mobile_event_filter, NULL); + #endif // RC_MOBILE + + device = NULL; + VideoDriver = NULL; + rc_window = NULL; + + keyState = SDL_GetKeyboardState(NULL); + createKeyMap(); + + + for(int i = 0; i < MAX_FINGERS; i++) + { + rc_finger[i].id = -1; + rc_finger[i].x = -1; + rc_finger[i].y = -1; + rc_finger[i].pressure = 0; + } + + for(int i = 0; i < SDL_NumSensors(); i++) + { + rc_accel[num_accels] = NULL; + rc_gyro[num_gyros] = NULL; + switch(SDL_SensorGetDeviceType(i)) + { + case SDL_SENSOR_ACCEL: + rc_accel[num_accels] = SDL_SensorOpen(i); + num_accels++; + break; + case SDL_SENSOR_GYRO: + rc_gyro[num_gyros] = SDL_SensorOpen(i); + num_gyros++; + break; + } + } + + for(int i = 0; i < MAX_JOYSTICKS; i++) + { + if(i < SDL_NumJoysticks()) + { + rc_joystick[i] = SDL_JoystickOpen(i); + if(rc_joystick[i]==NULL) + { + cout << "Joystick " << i << " could not be opened: " << SDL_GetError() << endl; + } + rc_joyID[i] = SDL_JoystickInstanceID(rc_joystick[i]); + #ifdef RC_WEB + rc_haptic[i] = NULL; + #else + rc_haptic[i] = SDL_HapticOpenFromJoystick(rc_joystick[i]); + SDL_HapticRumbleInit(rc_haptic[i]); + #endif + //if(rc_haptic[i] == NULL){ cout << "HAP NULL: " << SDL_GetError() << endl; } + rc_numJoysticks++; + } + else + { + rc_joystick[i] = NULL; + rc_haptic[i] = NULL; + rc_joyID[i] = -1; + } + } + SDL_SetHint("SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS", "1"); + + return true; + +} + +bool rc_windowOpenEx(std::string title, int x, int y, int w, int h, uint32_t window_flags, irr::u8 AntiAlias, bool stencil_buffer, bool vsync) +{ + if(rc_window) + { + return false; + } + + bool fullscreen = (window_flags & SDL_WINDOW_FULLSCREEN_DESKTOP) || (window_flags & SDL_WINDOW_FULLSCREEN); + bool high_dpi = window_flags & SDL_WINDOW_ALLOW_HIGHDPI; + bool borderless = window_flags & SDL_WINDOW_BORDERLESS; + bool resizable = window_flags & SDL_WINDOW_RESIZABLE; + bool visible = window_flags & SDL_WINDOW_SHOWN; + + uint32_t flags = SDL_WINDOW_OPENGL; + flags |= (fullscreen ? SDL_WINDOW_FULLSCREEN_DESKTOP : 0); + flags |= (high_dpi ? SDL_WINDOW_ALLOW_HIGHDPI : 0); + flags |= (borderless ? SDL_WINDOW_BORDERLESS : 0); + flags |= (resizable ? SDL_WINDOW_RESIZABLE : 0); + flags |= (visible ? SDL_WINDOW_SHOWN : SDL_WINDOW_HIDDEN); + + //This size is used for virtual resolution + rc_window_size.Width = w; + rc_window_size.Height = h; + + rc_window = SDL_CreateWindow(title.c_str(), x, y, w, h, flags); + + //Get the actual size of the window to set the dimensions of the device + if(rc_window) + SDL_GetWindowSize(rc_window, &w, &h); + + SIrrlichtCreationParameters irr_creation_params; + irr_creation_params.DeviceType = EIDT_SDL; + irr_creation_params.DriverType = video::EDT_OPENGL; + irr_creation_params.WindowId = rc_window; + irr_creation_params.WindowSize = dimension2d((u32)w, (u32)h); + irr_creation_params.Bits = 16; + irr_creation_params.Fullscreen = fullscreen; + irr_creation_params.Stencilbuffer = stencil_buffer; + irr_creation_params.Vsync = vsync; + irr_creation_params.EventReceiver = 0; + irr_creation_params.WindowPosition = position2d(x, y); + irr_creation_params.AntiAlias = AntiAlias; + + device = createDeviceEx(irr_creation_params); + + + if (!device) + { + std::cout << "WindowOpen Error: Failed to Create Renderer" << std::endl; + return false; + } + + VideoDriver = device->getVideoDriver(); + + rc_canvas.clear(); + rc_canvas_zOrder.clear(); + rc_font.clear(); + + rc_canvas_obj back_buffer; + back_buffer.texture = VideoDriver->addRenderTargetTexture(irr::core::dimension2d((irr::u32)w, (irr::u32)h), "rt", ECF_A8R8G8B8); + back_buffer.dimension.Width = w; + back_buffer.dimension.Height = h; + back_buffer.viewport.position.set(0,0); + back_buffer.viewport.dimension.set(w,h); + VideoDriver->setRenderTarget(back_buffer.texture, true, true); + rc_canvas.push_back(back_buffer); + + return true; +} + +bool rc_windowOpen(std::string title, int w, int h, bool fullscreen, bool vsync) +{ + uint32_t flags = SDL_WINDOW_SHOWN | (fullscreen ? SDL_WINDOW_FULLSCREEN_DESKTOP : 0); + if(!rc_windowOpenEx(title, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, w, h, flags, 0, false, vsync)) + { + return false; + } + + return true; +} + +void rc_closeWindow_hw() +{ + if(rc_window!=NULL) + SDL_DestroyWindow(rc_window); + rc_window = NULL; + + rc_canvas.clear(); + rc_canvas_zOrder.clear(); + rc_font.clear(); + + device->drop(); +} + +Uint32 rc_windowMode(int visible_flag, int fullscreen_flag, int resizable_flag, int borderless_flag, int highDPI_flag) +{ + Uint32 window_mode = ( visible_flag == 0 ? SDL_WINDOW_HIDDEN : SDL_WINDOW_SHOWN ) | + ( fullscreen_flag == 0 ? 0 : SDL_WINDOW_FULLSCREEN_DESKTOP ) | + ( resizable_flag == 0 ? 0 : SDL_WINDOW_RESIZABLE ) | + ( borderless_flag == 0 ? 0 : SDL_WINDOW_BORDERLESS ) | + ( highDPI_flag == 0 ? 0 : SDL_WINDOW_ALLOW_HIGHDPI ); + return window_mode; +} + +Uint32 rc_getWindowMode() +{ + if(rc_window == NULL) + { + return 0; + } + return SDL_GetWindowFlags(rc_window); +} + +void rc_raiseWindow() +{ + if(rc_window==NULL) + { + return; + } + SDL_RaiseWindow(rc_window); +} + +void rc_showWindow() +{ + if(rc_window==NULL) + { + return; + } + SDL_ShowWindow(rc_window); +} + +void rc_hideWindow() +{ + if(rc_window==NULL) + { + return; + } + SDL_HideWindow(rc_window); +} + +void rc_getDesktopDisplayMode(int index, double * w, double * h, double * freq) +{ + SDL_DisplayMode dm; + SDL_GetDesktopDisplayMode(index, &dm); + *w = (double)dm.w; + *h = (double)dm.h; + *freq = (double)dm.refresh_rate; +} + +void rc_setWindowTitle(std::string title) +{ + if(rc_window) + { + SDL_SetWindowTitle(rc_window, title.c_str()); + } +} + +std::string rc_getWindowTitle() +{ + if(rc_window) + { + return SDL_GetWindowTitle(rc_window); + } + return ""; +} + +void rc_setWindowPosition(int x, int y) +{ + if(rc_window) + SDL_SetWindowPosition(rc_window, x, y); +} + +void rc_getWindowPosition(double * x, double * y) +{ + int x_data=0, y_data=0; + if(rc_window) + SDL_GetWindowPosition(rc_window,&x_data,&y_data); + *x = x_data; + *y = y_data; +} + +void rc_setWindowSize(int w, int h) +{ + if(rc_window) + { + SDL_SetWindowSize(rc_window, w, h); + + irr::core::dimension2d win_size; + int w, h; + SDL_GetWindowSize(rc_window, &w, &h); + win_size.Width = w; + win_size.Height = h; + + device->setWindowSize(win_size); + + rc_window_size.Width = w; + rc_window_size.Height = h; + + } +} + +void rc_getWindowSize(double * w, double * h) +{ + int w_data = -1, h_data = -1; + if(rc_window) + SDL_GetWindowSize(rc_window, &w_data, &h_data); + *w = w_data; + *h = h_data; +} + +void rc_setWindowMinSize(int w, int h) +{ + if(rc_window) + SDL_SetWindowMinimumSize(rc_window, w, h); +} + +void rc_getWindowMinSize(double * w, double * h) +{ + int w_data=0, h_data=0; + if(rc_window) + SDL_GetWindowMinimumSize(rc_window, &w_data, &h_data); + *w = w_data; + *h = h_data; +} + +void rc_setWindowMaxSize(int w, int h) +{ + if(rc_window) + SDL_SetWindowMaximumSize(rc_window, w, h); +} + +void rc_getWindowMaxSize(double * w, double * h) +{ + int w_data=0, h_data=0; + if(rc_window) + SDL_GetWindowMaximumSize(rc_window, &w_data, &h_data); + *w = w_data; + *h = h_data; +} + +bool rc_windowIsFullscreen() +{ + if(rc_window) + { + Uint32 wflags = SDL_GetWindowFlags(rc_window); + Uint32 wflags_cmp1 = wflags & SDL_WINDOW_FULLSCREEN; + Uint32 wflags_cmp2 = wflags & SDL_WINDOW_FULLSCREEN_DESKTOP; + + if(wflags_cmp1 || wflags_cmp2) + return true; + else + return false; + } + + return false; + +} + +bool rc_windowIsVisible() +{ + if(rc_window) + { + Uint32 wflags = SDL_GetWindowFlags(rc_window); + if(wflags & SDL_WINDOW_SHOWN) + return true; + else + return false; + } + + return false; +} + +bool rc_windowHasMouseFocus() +{ + if(rc_window) + { + Uint32 wflags = SDL_GetWindowFlags(rc_window); + if(wflags & SDL_WINDOW_MOUSE_FOCUS) + return true; + else + return false; + } + + return false; +} + +bool rc_windowHasInputFocus() +{ + if(rc_window) + { + Uint32 wflags = SDL_GetWindowFlags(rc_window); + if(wflags & SDL_WINDOW_INPUT_FOCUS) + return true; + else + return false; + } + + return false; +} + +bool rc_windowIsBordered() +{ + if(rc_window) + { + Uint32 wflags = SDL_GetWindowFlags(rc_window); + if(wflags & SDL_WINDOW_BORDERLESS) + return false; + else + return true; + } + + return false; +} + +bool rc_windowIsResizable() +{ + if(rc_window) + { + Uint32 wflags = SDL_GetWindowFlags(rc_window); + if(wflags & SDL_WINDOW_RESIZABLE) + return true; + else + return false; + } + + return false; +} + +bool rc_windowIsMinimized() +{ + if(rc_window) + { + Uint32 wflags = SDL_GetWindowFlags(rc_window); + if(wflags & SDL_WINDOW_MINIMIZED) + return true; + else + return false; + } + + return false; +} + +bool rc_windowIsMaximized() +{ + if(rc_window) + { + Uint32 wflags = SDL_GetWindowFlags(rc_window); + if(wflags & SDL_WINDOW_MAXIMIZED) + return true; + else + return false; + } + + return false; +} + +bool rc_setWindowFullscreen(int flag) +{ + if(rc_window) + { + switch(flag) + { + case 0: + flag = 0; + break; + default: + flag = SDL_WINDOW_FULLSCREEN_DESKTOP; + break; + } + + Uint32 wflags_preOp = SDL_GetWindowFlags(rc_window); + if( flag != 0 && ( (wflags_preOp & SDL_WINDOW_FULLSCREEN_DESKTOP) || (wflags_preOp & SDL_WINDOW_FULLSCREEN) ) ) + return true; + else if( flag == 0 && !((wflags_preOp & SDL_WINDOW_FULLSCREEN_DESKTOP) || (wflags_preOp & SDL_WINDOW_FULLSCREEN))) + return true; + + if(SDL_SetWindowFullscreen(rc_window, flag) < 0) + { + return false; + } + + + int w, h; + SDL_GetWindowSize(rc_window, &w, &h); + + irr::core::dimension2d win_size(w, h); + device->setWindowSize(win_size); + + if(!(w==rc_window_size.Width && h==rc_window_size.Height)) + { + //TODO: change mouse scale adjust + } + + SDL_PumpEvents(); + SDL_FlushEvents(SDL_FIRSTEVENT, SDL_LASTEVENT); + + return true; + } + + return false; +} + +bool rc_maximizeWindow() +{ + if(rc_window) + { + SDL_MaximizeWindow(rc_window); + + SDL_DisplayMode mode; + SDL_GetWindowDisplayMode(rc_window, &mode); + + irr::core::dimension2d win_size(mode.w, mode.h); + device->setWindowSize(win_size); + + return true; + } + + return false; +} + +bool rc_minimizeWindow() +{ + if(rc_window) + { + SDL_MinimizeWindow(rc_window); + + SDL_DisplayMode mode; + SDL_GetWindowDisplayMode(rc_window, &mode); + + irr::core::dimension2d win_size(mode.w, mode.h); + device->setWindowSize(win_size); + + return true; + } + + return false; +} + +void rc_setWindowBordered(bool b) +{ + SDL_bool bswitch = SDL_FALSE; + if(b) + bswitch = SDL_TRUE; + if(rc_window) + SDL_SetWindowBordered(rc_window, bswitch); +} + +void rc_setWindowResizable(bool b) +{ + SDL_bool bswitch = SDL_FALSE; + if(b) + bswitch = SDL_TRUE; + if(rc_window) + { + SDL_SetWindowResizable(rc_window, bswitch); + device->setResizable(true); + } +} + +bool rc_media_windowExists() +{ + return (rc_window!=NULL); +} + +bool rc_restoreWindow() +{ + if(rc_window) + { + SDL_RestoreWindow(rc_window); + + SDL_DisplayMode mode; + SDL_GetWindowDisplayMode(rc_window, &mode); + + irr::core::dimension2d win_size(mode.w, mode.h); + device->setWindowSize(win_size); + + return true; + } + + return false; +} + +void rc_setWindowIcon(int slot) +{ + SDL_Rect img_rect; + img_rect.x = 0; + img_rect.y = 0; + //img_rect.w = rc_image_width[slot]; + //img_rect.h = rc_image_height[slot]; + /* + if(rc_himage[slot][win_num] != NULL) + { + //SDL_RendererFlip rf = (SDL_RendererFlip)(SDL_FLIP_VERTICAL); + + SDL_Surface * tmp_surf = SDL_CreateRGBSurface(0, rc_image_width[slot], rc_image_height[slot], 32, 0, 0, 0, 0); + SDL_Texture * tmp_tex = SDL_CreateTexture(rc_win_renderer[rc_active_window], rc_pformat->format, SDL_TEXTUREACCESS_TARGET, rc_image_width[slot], rc_image_height[slot]); + SDL_SetRenderTarget(rc_win_renderer[rc_active_window],NULL); + SDL_RenderCopy(rc_win_renderer[rc_active_window],rc_himage[slot][rc_active_window],NULL,&img_rect); + //SDL_RenderCopyEx(rc_win_renderer[rc_active_window],rc_himage[slot][rc_active_window],NULL,NULL,0,NULL,rf); + + SDL_RenderReadPixels(rc_win_renderer[rc_active_window], &img_rect, rc_pformat->format,tmp_surf->pixels,tmp_surf->pitch); + + SDL_SetColorKey(tmp_surf,SDL_TRUE,rc_image_colorKey[slot]); + + SDL_SetWindowIcon(rc_win[rc_active_window], tmp_surf); + + + if(rc_active_screen >= 0) + SDL_SetRenderTarget(rc_win_renderer[rc_active_window], rc_hscreen[rc_active_window][rc_active_screen]); + + SDL_DestroyTexture(tmp_tex); + SDL_FreeSurface(tmp_surf); + } + */ +} + +std::string rc_getClipboardText() +{ + return (std::string) SDL_GetClipboardText(); +} + +void rc_setClipboardText(std::string txt) +{ + SDL_SetClipboardText(txt.c_str()); +} + +int rc_hasClipboardText() +{ + return (int)SDL_HasClipboardText(); +} + + + + +Uint32 rc_canvasOpen(int w, int h, int vx, int vy, int vw, int vh, int mode) +{ + if(!VideoDriver) + return -1; + + rc_canvas_obj canvas; + canvas.texture = VideoDriver->addRenderTargetTexture(irr::core::dimension2d(w,h), "rt", ECF_A8R8G8B8); + + //std::cout << "texture format = " << canvas.texture->getColorFormat() << std::endl; + + canvas.dimension.Width = w; + canvas.dimension.Height = h; + + canvas.viewport.position.X = vx; + canvas.viewport.position.Y = vy; + canvas.viewport.dimension.Width = vw; + canvas.viewport.dimension.Height = vh; + + canvas.offset.X = 0; + canvas.offset.Y = 0; + + canvas.mode = mode; + + switch(mode) + { + case 0: + break; + case 1: + VideoDriver->makeColorKeyTexture(canvas.texture, irr::video::SColor(0,0,0,0)); + break; + } + + int canvas_id = -1; + + for(int i = 0; i < rc_canvas.size(); i++) + { + if(!rc_canvas[i].texture) + { + canvas_id = i; + break; + } + } + + if(canvas_id < 0) + { + canvas_id = rc_canvas.size(); + rc_canvas.push_back(canvas); + } + + if(rc_active_canvas < 0) + rc_active_canvas = canvas_id; + + for(int i = 0; i < rc_canvas_zOrder.size(); i++) + { + if(rc_canvas_zOrder[i] == canvas_id) + { + rc_canvas_zOrder.erase(i); + i--; + } + } + + rc_canvas_zOrder.push_back(canvas_id); + + + return canvas_id; +} + + +void rc_canvasClose(int canvas_id) +{ + if(canvas_id <= 0 || canvas_id >= rc_canvas.size()) //canvas 0 is being excluded because its the back buffer + return; + + if(rc_canvas[canvas_id].texture != NULL) + VideoDriver->removeTexture(rc_canvas[canvas_id].texture); + + rc_canvas[canvas_id].texture = NULL; + + if(rc_active_canvas == canvas_id) + rc_active_canvas = -1; + + for(int i = 0; i < rc_canvas_zOrder.size(); i++) + { + if(rc_canvas_zOrder[i] == canvas_id) + { + rc_canvas_zOrder.erase(i); + break; + } + } +} + +void rc_setActiveCanvas(int canvas_id) +{ + rc_active_canvas = canvas_id; + + if(rc_active_canvas >= 0 && rc_active_canvas < rc_canvas.size()) + { + if(rc_canvas[rc_active_canvas].texture) + VideoDriver->setRenderTarget(rc_canvas[rc_active_canvas].texture, false, false); + } +} + +int rc_getActiveCanvas() +{ + return rc_active_canvas; +} + +void rc_clearCanvas() +{ + if(rc_active_canvas >= 0 && rc_active_canvas < rc_canvas.size()) + { + if(rc_canvas[rc_active_canvas].texture) + VideoDriver->clearBuffers(true, true, true, rc_clear_color); + } +} + +void rc_setClearColor(Uint32 color) +{ + rc_clear_color.set(color); +} + + + +Uint32 rc_rgba(Uint32 r, Uint32 g, Uint32 b, Uint32 a) +{ + irr::video::SColor color(a, r, g, b); + return color.color; +} + +Uint32 rc_rgb(Uint32 r, Uint32 g, Uint32 b) +{ + irr::video::SColor color(255, r, g, b); + return color.color; +} + + +void rc_setColor(Uint32 color) +{ + rc_active_color.set(color); +} + +Uint32 rc_getPixel(int x, int y) +{ + if(!rc_canvas[0].texture) + { + return 0; + } + + if(x < 0 || x >= rc_window_size.Width) + x = 0; + + if(y < 0 || y >= rc_window_size.Height) + y = 0; + + + irr::video::ITexture* texture = rc_canvas[0].texture; + + video::ECOLOR_FORMAT format = texture->getColorFormat(); //std::cout << "format = " << (int) format << std::endl; + + Uint32 color = 0; + + //this if statement is unnessesary since right now ECF_A8R8G8B8 is the only color format supported. + //I am leaving it here since I may want to support more color formats in the future + if(video::ECF_A8R8G8B8 == format) + { + u8 * texels = (u8 *)texture->lock(irr::video::ETLM_READ_ONLY); + + u32 pitch = texture->getPitch(); + + irr::video::SColor * texel = (SColor *)(texels + ((y * pitch) + (x * sizeof(SColor)))); + + irr::video::SColor c = texel[0]; + + texture->unlock(); + + //std::cout << "color(" << x << ", " << y << ") = " << c.getRed() << ", " << c.getGreen() << ", " << c.getBlue() << std::endl; + } + + return color; + +} + +void rc_drawRect(int x, int y, int w, int h) +{ + irr::core::vector2d r_pos(x,y); + irr::core::dimension2d r_dim(w,h); + irr::core::rect r(r_pos, r_dim); + //std::cout << "drawRect: color=" << rc_active_color.color << " ( " << x << ", " << y << ", " << w << ", " << h << " ) " << std::endl; + VideoDriver->draw2DRectangleOutline(r, rc_active_color); +} + +void rc_drawRectFill(int x, int y, int w, int h) +{ + irr::core::vector2d r_pos(x,y); + irr::core::dimension2d r_dim(w,h); + irr::core::rect r(r_pos, r_dim); + //std::cout << "drawRect: color=" << rc_active_color.color << " ( " << x << ", " << y << ", " << w << ", " << h << " ) " << std::endl; + VideoDriver->draw2DRectangle(rc_active_color, r); +} + +void rc_drawCircle(int x, int y, double r) +{ + irr::core::vector2d r_pos(x,y); + + VideoDriver->draw2DPolygon(r_pos, r, rc_active_color, 30); +} + + + +//Filled Circle Code from CuteAlien on Irrlicht forum +struct CircleSettings +{ + vector2di center; // in screen coordinates + f32 radius; // in pixels + f32 radius2; + video::SColor color; + u32 numVertices = 21; // including center +}; + +void makeCircle(irr::core::array& vertices, irr::core::array& indices, const CircleSettings& settings) +{ + const f64 stepSize = 360.0 / (f64)(settings.numVertices-1); // degree angles between vertex points on circle + indices.set_used(settings.numVertices+1); // one more as first and last vertex in circle is identical + for ( u32 i=0; i r_pos(x,y); + + // create the circle + irr::core::array verticesCircle; + irr::core::array indicesCircle; + CircleSettings circle; + circle.center = r_pos; + circle.radius = r; + circle.color = rc_active_color; + makeCircle(verticesCircle, indicesCircle, circle); + + VideoDriver->draw2DVertexPrimitiveList(verticesCircle.pointer(), verticesCircle.size(), + indicesCircle.pointer(), indicesCircle.size()-2, video::EVT_STANDARD, scene::EPT_TRIANGLE_FAN, + video::EIT_16BIT); +} + +void rc_drawLine(int x1, int y1, int x2, int y2) +{ + irr::core::vector2d r_pos_start(x1,y1); + irr::core::vector2d r_pos_end(x2,y2); + + VideoDriver->draw2DLine(r_pos_start, r_pos_end, rc_active_color); +} + +void rc_poly(Uint32 n, double* vx_d, double* vy_d) +{ + if(n <= 0) + return; + + for(int i = 1; i < n; i++) + { + rc_drawLine((int)vx_d[i-1], (int)vy_d[i-1], (int)vx_d[i], (int)vy_d[i]); + } + + rc_drawLine((int)vx_d[n-1], (int)vy_d[n-1], (int)vx_d[0], (int)vy_d[0]); +} + +void rc_drawPixel(int x, int y) +{ + VideoDriver->drawPixel(x, y, rc_active_color); +} + + +double radians(double degree) +{ + double pi = 3.14159265359; + return (degree * (pi / 180)); +} + +void makeEllipse(irr::core::array& vertices, irr::core::array& indices, const CircleSettings& settings) +{ + const f64 stepSize = 360.0 / (f64)(settings.numVertices-1); // degree angles between vertex points on circle + indices.set_used(settings.numVertices+1); // one more as first and last vertex in circle is identical + for ( u32 i=0; i r_pos(x,y); + + // create the circle + irr::core::array verticesCircle; + irr::core::array indicesCircle; + CircleSettings circle; + circle.center = r_pos; + circle.radius = ry; + circle.radius2 = rx; + circle.color = rc_active_color; + circle.numVertices = 21; + makeEllipse(verticesCircle, indicesCircle, circle); + + for(int i = 2; i < verticesCircle.size(); i++) + { + rc_drawLine(verticesCircle[i-1].Pos.X, verticesCircle[i-1].Pos.Y, verticesCircle[i].Pos.X, verticesCircle[i].Pos.Y); + } + + int n = verticesCircle.size()-1; + rc_drawLine(verticesCircle[n].Pos.X, verticesCircle[n].Pos.Y, verticesCircle[1].Pos.X, verticesCircle[1].Pos.Y); +} + +void rc_drawEllipseFill(int x, int y, int rx, int ry) +{ + irr::core::vector2d r_pos(x,y); + + // create the circle + irr::core::array verticesCircle; + irr::core::array indicesCircle; + CircleSettings circle; + circle.center = r_pos; + circle.radius = ry; + circle.radius2 = rx; + circle.color = rc_active_color; + circle.numVertices = 21; + makeEllipse(verticesCircle, indicesCircle, circle); + + VideoDriver->draw2DVertexPrimitiveList(verticesCircle.pointer(), verticesCircle.size(), + indicesCircle.pointer(), indicesCircle.size()-2, video::EVT_STANDARD, scene::EPT_TRIANGLE_FAN, + video::EIT_16BIT); +} + + + +int rc_loadFont(irr::io::path file_path, int font_size) +{ + int font_id = -1; + for(int i = 0; i < rc_font.size(); i++) + { + if(rc_font[i]!=NULL) + { + font_id = i; + break; + } + } + + CGUITTFace* Face; + CGUIFreetypeFont* dfont; + + Face = new CGUITTFace(); + Face->load(file_path); + + dfont = new CGUIFreetypeFont(VideoDriver); + dfont->attach(Face, font_size); + + + if(font_id < 0) + { + font_id = rc_font.size(); + + rc_font_obj* f = new rc_font_obj(); + + f->face = Face; + f->font = dfont; + f->font_size = font_size; + + rc_font.push_back(f); + + rc_active_font = font_id; + } + else + { + rc_font[font_id]->face = Face; + rc_font[font_id]->font = dfont; + rc_font[font_id]->font_size = font_size; + } + + return font_id; +} + +bool rc_fontExists(int font_id) +{ + if(font_id >= 0 && font_id < rc_font.size()) + { + if(rc_font[font_id]->font != NULL) + return true; + } + return false; +} + +void rc_deleteFont(int font_id) +{ + if(rc_fontExists(font_id)) + { + delete rc_font[font_id]->font; + delete rc_font[font_id]->face; + rc_font[font_id]->font = NULL; + rc_font[font_id]->face = NULL; + rc_font[font_id]->font_size = 0; + } +} + +void rc_setFont(int font_id) +{ + if(rc_fontExists(font_id)) + rc_active_font = font_id; +} + +void rc_drawText(std::string txt, int x, int y) +{ + if(rc_fontExists(rc_active_font)) + { + std::wstring text = utf8_to_wstring(txt); + irr::core::dimension2d text_dim = rc_font[rc_active_font]->font->getDimension(text.c_str()); + irr::core::rect tpos(x, y, text_dim.Width, rc_font[rc_active_font]->font_size); + + //std::cout << "Start drawing text: " << tpos.getWidth() << ", " << tpos.getHeight() << std::endl; + rc_font[rc_active_font]->font->draw(text.c_str(), tpos, rc_active_color); + //std::cout << "------------------" << std::endl; + } +} + +Uint32 rc_getTextWidth(const std::string txt) +{ + if(rc_fontExists(rc_active_font)) + { + std::wstring text = utf8_to_wstring(txt); + irr::core::dimension2d text_dim = rc_font[rc_active_font]->font->getDimension(text.c_str()); + return text_dim.Width; + } + return 0; +} + +Uint32 rc_getTextHeight(const std::string txt) +{ + if(rc_fontExists(rc_active_font)) + { + std::wstring text = utf8_to_wstring(txt); + //std::wstring wide = converter.from_bytes(txt); + //irr::core::dimension2d text_dim = rc_font[rc_active_font]->getDimension(wide.c_str()); + return rc_font[rc_active_font]->font_size; + } + return 0; +} + +void rc_getTextSize(const std::string txt, double* w, double* h) +{ + if(rc_fontExists(rc_active_font)) + { + std::wstring text = utf8_to_wstring(txt); + irr::core::dimension2d text_dim = rc_font[rc_active_font]->font->getDimension(text.c_str()); + *w = text_dim.Width; + *h = rc_font[rc_active_font]->font_size; + } + else + { + *w = 0; + *h = 0; + } +} + + +#define RC_MOUSE_BUTTON_LEFT 0 +#define RC_MOUSE_BUTTON_MIDDLE 1 +#define RC_MOUSE_BUTTON_RIGHT 2 + +int rc_mwheelx = -1; +int rc_mwheely = -1; + +bool rc_cursor_visible = true; + + +bool rc_mouseButton(int b) +{ + bool button_state = false; + switch(b) + { + case 0: + button_state = ((MouseButtonStates & irr::EMBSM_LEFT)!=0); + break; + case 1: + button_state = ((MouseButtonStates & irr::EMBSM_MIDDLE)!=0); + break; + case 2: + button_state = ((MouseButtonStates & irr::EMBSM_RIGHT)!=0); + break; + } + return button_state; +} + +int rc_mouseX() +{ + int x, y; + SDL_GetMouseState(&x, &y); + return x; +} + +int rc_mouseY() +{ + int x, y; + SDL_GetMouseState(&x, &y); + return y; +} + +void rc_getMouse(double* x, double* y) +{ + int ix, iy; + SDL_GetMouseState(&ix, &iy); + *x = ix; + *y = iy; +} + +int rc_mouseWheelX() +{ + return rc_mwheelx; +} + +int rc_mouseWheelY() +{ + return rc_mwheely; +} + +int rc_globalMouseX() +{ + int x, y; + SDL_GetGlobalMouseState(&x,&y); + return x; +} + +int rc_globalMouseY() +{ + int x, y; + SDL_GetGlobalMouseState(&x,&y); + return y; +} + +void rc_globalMouse(double * x, double* y) +{ + int ix, iy; + SDL_GetGlobalMouseState(&ix,&iy); + *x = ix; + *y = iy; +} + +void rc_getMouseWheel(double* x, double* y) +{ + *x = rc_mwheelx; + *y = rc_mwheely; +} + +void rc_hideMouse() +{ + SDL_ShowCursor(0); + rc_cursor_visible = false; +} + +void rc_showMouse() +{ + SDL_ShowCursor(1); + rc_cursor_visible = true; +} + +bool rc_mouseIsVisible() +{ + return rc_cursor_visible; +} + + +int rc_inkey() +{ + return rc_inkey_val; +} + +int rc_key(int check_Key) +{ + return keyState[SDL_GetScancodeFromKey(check_Key)]; +} + +int rc_waitKey() +{ + bool wk_loop = true; + SDL_Event e; + while(wk_loop) + { + while(SDL_WaitEvent(&e)) + { + if(e.type == SDL_KEYDOWN) + return (int)e.key.keysym.sym; + } + } + return 0; +} + +void rc_wait(Uint32 ms) +{ + SDL_Delay(ms); +} + + + +void rc_grabInput(bool flag) +{ + SDL_SetWindowGrab(rc_window, flag ? SDL_TRUE : SDL_FALSE); +} + +int rc_windowIsGrabbed() +{ + return SDL_GetWindowGrab(rc_window); +} + +void rc_warpMouse(int x, int y) +{ + SDL_WarpMouseInWindow(rc_window, x, y); +} + +void rc_warpMouseGlobal(int x, int y) +{ + SDL_WarpMouseGlobal(x, y); +} + +void rc_setMouseZone(int x, int y, int w, int h) +{ + SDL_Rect r; + r.x = x; + r.y = y; + r.w = w; + r.h = h; + SDL_SetWindowMouseRect(rc_window, &r); +} + +void rc_clearMouseZone() +{ + SDL_SetWindowMouseRect(rc_window, NULL); +} + +void rc_setWindowAlwaysOnTop(bool flag) +{ + SDL_SetWindowAlwaysOnTop(rc_window, flag ? SDL_TRUE : SDL_FALSE); +} + +void rc_setMouseRelative(bool flag) +{ + SDL_SetRelativeMouseMode(flag ? SDL_TRUE : SDL_FALSE); +} + +void rc_setWindowVSync(bool flag) +{ + //TODO +} + +int rc_openURL(std::string url) +{ + return SDL_OpenURL(url.c_str()); +} + +std::string rc_SDLVersion() +{ + SDL_version version; + SDL_GetVersion(&version); + + std::stringstream ss; + ss << (uint32_t)version.major << "." << (uint32_t)version.minor << "." << (uint32_t)version.patch; + return ss.str(); + +} + +int rc_flashWindow(int flag) +{ + switch(flag) + { + case 0: + return SDL_FlashWindow(rc_window, SDL_FLASH_CANCEL); + case 1: + return SDL_FlashWindow(rc_window, SDL_FLASH_BRIEFLY); + case 2: + return SDL_FlashWindow(rc_window, SDL_FLASH_UNTIL_FOCUSED); + } + + return -1; +} + +int rc_messageBox(std::string title, std::string msg) +{ + return SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_INFORMATION, title.c_str(), msg.c_str(), NULL); +} + +int rc_FPS() +{ + return VideoDriver->getFPS(); +} + + + + +int rc_getNumJoysticks() +{ + return SDL_NumJoysticks(); +} + +int rc_joyAxis(int joy_num, int axis) +{ + if(joy_num >= 0 && joy_num < MAX_JOYSTICKS) + return SDL_JoystickGetAxis(rc_joystick[joy_num], axis); + return 0; +} + +int rc_joyButton(int joy_num, int jbutton) +{ + if(joy_num >= 0 && joy_num < MAX_JOYSTICKS) + return SDL_JoystickGetButton(rc_joystick[joy_num], jbutton); + return 0; +} + +std::string rc_joystickName(int joy_num) +{ + if(joy_num >= 0 && joy_num < MAX_JOYSTICKS) + return (std::string)SDL_JoystickName(rc_joystick[joy_num]); + return ""; +} + +int rc_numJoyButtons(int joy_num) +{ + if(joy_num >= 0 && joy_num < MAX_JOYSTICKS) + return SDL_JoystickNumButtons(rc_joystick[joy_num]); + return 0; +} + +int rc_numJoyAxes(int joy_num) +{ + if(joy_num >= 0 && joy_num < MAX_JOYSTICKS) + return SDL_JoystickNumAxes(rc_joystick[joy_num]); + return 0; +} + +int rc_numJoyHats(int joy_num) +{ + if(joy_num >= 0 && joy_num < MAX_JOYSTICKS) + return SDL_JoystickNumHats(rc_joystick[joy_num]); + return 0; +} + +int rc_joyHat(int joy_num, int hat) +{ + if(joy_num >= 0 && joy_num < MAX_JOYSTICKS) + return SDL_JoystickGetHat(rc_joystick[joy_num], hat); + return 0; +} + +int rc_numJoyTrackBalls(int joy_num) +{ + if(joy_num >= 0 && joy_num < MAX_JOYSTICKS) + return SDL_JoystickNumBalls(rc_joystick[joy_num]); + return 0; +} + +void rc_getJoyTrackBall(int joy_num, int ball, double * dx, double * dy) +{ + int x = 0; + int y = 0; + if(joy_num >= 0 && joy_num < MAX_JOYSTICKS) + SDL_JoystickGetBall(rc_joystick[joy_num], ball, &x, &y); + *dx = x; + *dy = y; +} + +bool rc_joystickIsConnected( int joy_num ) +{ + if(joy_num >= 0 && joy_num < MAX_JOYSTICKS) + { + if(rc_joystick[joy_num]) + return true; + return false; + } + return false; +} + +void rc_joyRumblePlay(int joy_num, double strength, double duration) +{ + if(joy_num >= 0 && joy_num < MAX_JOYSTICKS) + { + SDL_HapticRumblePlay(rc_haptic[joy_num], strength, (Uint32)duration); + } +} + +void rc_joyRumbleStop(int joy_num) +{ + if(joy_num >= 0 && joy_num < MAX_JOYSTICKS) + SDL_HapticRumbleStop(rc_haptic[joy_num]); +} + +int rc_joystickIsHaptic( int joy_num ) +{ + if(joy_num >= 0 && joy_num < MAX_JOYSTICKS) + { + if(rc_haptic[joy_num]) + return 1; + } + return 0; +} + + + + + +void rc_getTouchFinger(int finger, double * x, double * y, double * pressure) +{ + if(finger < MAX_FINGERS) + { + *x = rc_finger[finger].x; + *y = rc_finger[finger].y; + *pressure = rc_finger[finger].pressure; + } +} + +int rc_numFingers() +{ + return rc_fingers_pressed.size(); +} + +double rc_touchPressure() +{ + return rc_pressure; +} + +void rc_getTouch(double * status, double * x, double * y, double * distX, double * distY) +{ + *status = (double)rc_touch; + *x = (double)rc_touchX; + *y = (double)rc_touchY; + *distX = (double)rc_motionX; + *distY = (double)rc_motionY; + return; +} + +void rc_getMultiTouch(double * status, double * x, double * y, double * numFingers, double * dist, double * theta) +{ + *status = (double)rc_mt_status; + *x = (double)rc_mt_x; + *y = (double)rc_mt_y; + *numFingers = (double)rc_mt_numFingers; + *dist = rc_mt_dist; + *theta = rc_mt_theta; + return; +} + +void rc_getAccel(uint32_t accel_num, double * x, double * y, double * z) +{ + float sensor_data[4]; + if(accel_num < num_accels) + SDL_SensorGetData(rc_accel[accel_num], &sensor_data[0], 3); + *x = sensor_data[0]; + *y = sensor_data[1]; + *z = sensor_data[2]; +} + +std::string rc_accelName(uint32_t accel_num) +{ + if(accel_num < num_accels) + return (std::string)SDL_SensorGetName(rc_accel[accel_num]); + return ""; +} + +int rc_numAccels() +{ + return num_accels; +} + +void rc_getGyro(uint32_t gyro_num, double * x, double * y, double * z) +{ + float sensor_data[4]; + if(gyro_num < num_gyros) + SDL_SensorGetData(rc_gyro[gyro_num], &sensor_data[0], 3); + *x = sensor_data[0]; + *y = sensor_data[1]; + *z = sensor_data[2]; +} + +std::string rc_gyroName(uint32_t gyro_num) +{ + if(gyro_num < num_gyros) + return (std::string)SDL_SensorGetName(rc_gyro[gyro_num]); + return ""; +} + +int rc_numGyros() +{ + return num_gyros; +} + +void rc_readInput_Start() +{ + SDL_StartTextInput(); + rc_textinput_isActive = true; + rc_textinput_string = ""; + rc_textinput_timer = clock() / (double)(CLOCKS_PER_SEC / 1000); +} + +void rc_readInput_Stop() +{ + rc_textinput_isActive = false; + rc_textinput_timer = 0; + rc_textinput_string = ""; + SDL_StopTextInput(); +} + +std::string rc_readInput_Text() +{ + return rc_textinput_string; +} + +void rc_readInput_SetText(std::string txt) +{ + rc_textinput_string = txt; +} + +void rc_readInput_ToggleBackspace(bool flag) +{ + rc_toggleBackspace = flag; +} + + +struct rc_image_obj +{ + irr::video::ITexture* image; + Uint8 alpha = 255; + irr::video::SColor color_mod = irr::video::SColor(255,255,255,255); +}; +irr::core::array rc_image; + +irr::video::E_BLEND_OPERATION rc_blend_mode = irr::video::EBO_ADD; +bool rc_bilinear_filter = false; + + +int rc_loadImageEx(std::string img_file, Uint32 color_key = 0, bool use_color_key = false) +{ + rc_image_obj img; + img.image = VideoDriver->getTexture(img_file.c_str()); + + if(img.image == NULL) + return -1; + + if(use_color_key) + VideoDriver->makeColorKeyTexture(img.image, irr::video::SColor(color_key), false); + + int img_id = -1; + + for(int i = 0; i < rc_image.size(); i++) + { + if(rc_image[i].image == NULL) + { + img_id = i; + break; + } + } + + if(img_id < 0) + { + img_id = rc_image.size(); + rc_image.push_back(img); + } + else + { + rc_image[img_id] = img; + } + + return img_id; +} + +int rc_loadImage(std::string img_file) +{ + return rc_loadImageEx(img_file); +} + +void rc_deleteImage(int img_id) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + rc_image[img_id].image->drop(); + rc_image[img_id].image = NULL; + rc_image[img_id].alpha = 255; + } +} + +int rc_createImageEx(int w, int h, double * pdata, Uint32 colorkey, bool use_color_key=false) +{ + if(w <= 0 || h <=0) + return -1; + + irr::video::IImage* image = VideoDriver->createImage(irr::video::ECF_A8R8G8B8, irr::core::dimension2d((irr::u32)w,(irr::u32)h)); + if(!image) + return -1; + + Uint32 * img_pixels = (Uint32*)image->getData(); + for(int i = 0; i < (w*h); i++) + { + img_pixels[i] = (Uint32)pdata[i]; + } + + irr::video::ITexture* texture = VideoDriver->addTexture("buffer_image", image); + image->drop(); + + if(!texture) + return -1; + + if(use_color_key) + VideoDriver->makeColorKeyTexture(texture, irr::video::SColor(colorkey)); + + int img_id = -1; + rc_image_obj img; + img.image = texture; + img.alpha = 255; + + for(int i = 0; i < rc_image.size(); i++) + { + if(rc_image[i].image == NULL) + { + img_id = i; + break; + } + } + + if(img_id < 0) + { + img_id = rc_image.size(); + rc_image.push_back(img); + } + else + { + rc_image[img_id] = img; + } + + return img_id; +} + +int rc_createImage(int w, int h, double* pdata) +{ + return rc_createImageEx(w, h, pdata, 0); +} + + +void rc_getImageBuffer(int img_id, double * pdata) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(!rc_image[img_id].image) + return; + + Uint32* img_pixels = (Uint32*)rc_image[img_id].image->lock(); + + int image_size = rc_image[img_id].image->getSize().Width * rc_image[img_id].image->getSize().Height; + + for(int i = 0; i < image_size; i++) + pdata[i] = (double)img_pixels[i]; + + rc_image[img_id].image->unlock(); +} + +void rc_setBilinearFilter(bool flag) +{ + rc_bilinear_filter = flag; +} + +bool rc_getBilinearFilter() +{ + return rc_bilinear_filter; +} + +void rc_setColorMod(int img_id, Uint32 color) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + rc_image[img_id].color_mod = irr::video::SColor(color); + } +} + +Uint32 rc_getColorMod(int img_id) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return 0; + + if(rc_image[img_id].image) + { + return rc_image[img_id].color_mod.color; + } + + return 0; +} + + +void rc_setBlendMode(int blend_mode) +{ + switch(blend_mode) + { + case 0: rc_blend_mode = EBO_NONE; break; + case 1: rc_blend_mode = EBO_ADD; break; + case 2: rc_blend_mode = EBO_SUBTRACT; break; + case 3: rc_blend_mode = EBO_REVSUBTRACT; break; + case 4: rc_blend_mode = EBO_MIN; break; + case 5: rc_blend_mode = EBO_MAX; break; + case 6: rc_blend_mode = EBO_MIN_FACTOR; break; + case 7: rc_blend_mode = EBO_MAX_FACTOR; break; + case 8: rc_blend_mode = EBO_MIN_ALPHA; break; + case 9: rc_blend_mode = EBO_MAX_ALPHA; break; + } +} + +int rc_getBlendMode() +{ + return (int)rc_blend_mode; +} + +void draw2DImage(irr::video::IVideoDriver *driver, irr::video::ITexture* texture, irr::core::rect sourceRect, irr::core::position2d position, irr::core::position2d rotationPoint, irr::f32 rotation, irr::core::vector2df scale, bool useAlphaChannel, irr::video::SColor color, irr::core::vector2d screenSize) +{ + if(rc_active_canvas < 0 || rc_active_canvas >= rc_canvas.size()) + return; + + // Store and clear the projection matrix + irr::core::matrix4 oldProjMat = driver->getTransform(irr::video::ETS_PROJECTION); + driver->setTransform(irr::video::ETS_PROJECTION,irr::core::matrix4()); + + // Store and clear the view matrix + irr::core::matrix4 oldViewMat = driver->getTransform(irr::video::ETS_VIEW); + driver->setTransform(irr::video::ETS_VIEW,irr::core::matrix4()); + + // Store and clear the world matrix + irr::core::matrix4 oldWorldMat = driver->getTransform(irr::video::ETS_WORLD); + driver->setTransform(irr::video::ETS_WORLD,irr::core::matrix4()); + + // Find horizontal and vertical axes after rotation + irr::f32 c = cos(-rotation*irr::core::DEGTORAD); + irr::f32 s = sin(-rotation*irr::core::DEGTORAD); + irr::core::vector2df horizontalAxis(c,s); + irr::core::vector2df verticalAxis(s,-c); + + // First, we'll find the offset of the center and then where the center would be after rotation + irr::core::vector2df centerOffset(position.X+sourceRect.getWidth()/2.0f*scale.X-rotationPoint.X,position.Y+sourceRect.getHeight()/2.0f*scale.Y-rotationPoint.Y); + irr::core::vector2df center = centerOffset.X*horizontalAxis - centerOffset.Y*verticalAxis; + center.X += rotationPoint.X; + center.Y += rotationPoint.Y; + + // Now find the corners based off the center + irr::core::vector2df cornerOffset(sourceRect.getWidth()*scale.X/2.0f,sourceRect.getHeight()*scale.Y/2.0f); + verticalAxis *= cornerOffset.Y; + horizontalAxis *= cornerOffset.X; + irr::core::vector2df corner[4]; + corner[0] = center + verticalAxis - horizontalAxis; + corner[1] = center + verticalAxis + horizontalAxis; + corner[2] = center - verticalAxis - horizontalAxis; + corner[3] = center - verticalAxis + horizontalAxis; + + // Find the uv coordinates of the sourceRect + irr::core::vector2df textureSize(texture->getSize().Width, texture->getSize().Height); + irr::core::vector2df uvCorner[4]; + uvCorner[0] = irr::core::vector2df(sourceRect.UpperLeftCorner.X,sourceRect.UpperLeftCorner.Y); + uvCorner[1] = irr::core::vector2df(sourceRect.LowerRightCorner.X,sourceRect.UpperLeftCorner.Y); + uvCorner[2] = irr::core::vector2df(sourceRect.UpperLeftCorner.X,sourceRect.LowerRightCorner.Y); + uvCorner[3] = irr::core::vector2df(sourceRect.LowerRightCorner.X,sourceRect.LowerRightCorner.Y); + for (irr::s32 i = 0; i < 4; i++) + uvCorner[i] /= textureSize; + + // Vertices for the image + irr::video::S3DVertex vertices[4]; + irr::u16 indices[6] = { 0, 1, 2, 3 ,2 ,1 }; + + // Convert pixels to world coordinates + //irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height); + + for (irr::s32 i = 0; i < 4; i++) { + vertices[i].Pos = irr::core::vector3df(((corner[i].X/screenSize.X)-0.5f)*2.0f,((corner[i].Y/screenSize.Y)-0.5f)*-2.0f,1); + vertices[i].TCoords = uvCorner[i]; + vertices[i].Color = color; + } + + // Create the material + // IMPORTANT: For irrlicht 1.8 and above you MUST ADD THIS LINE: + // material.BlendOperation = irr::video::EBO_ADD; + irr::video::SMaterial material; + material.Lighting = false; + material.ZWriteEnable = irr::video::EZW_OFF; + material.ZBuffer = false; + material.BackfaceCulling = false; + material.TextureLayer[0].Texture = texture; + material.TextureLayer[0].BilinearFilter = rc_bilinear_filter; + material.MaterialTypeParam = irr::video::pack_textureBlendFunc(irr::video::EBF_SRC_ALPHA, irr::video::EBF_ONE_MINUS_SRC_ALPHA, irr::video::EMFN_MODULATE_1X, irr::video::EAS_TEXTURE | irr::video::EAS_VERTEX_COLOR); + material.BlendOperation = rc_blend_mode; + //material.BlendOperation = irr::video::EBO_ADD; + + if (useAlphaChannel) + material.MaterialType = irr::video::EMT_ONETEXTURE_BLEND; + else + material.MaterialType = irr::video::EMT_SOLID; + + driver->setMaterial(material); + driver->drawIndexedTriangleList(&vertices[0],4,&indices[0],2); + + // Restore projection, world, and view matrices + driver->setTransform(irr::video::ETS_PROJECTION,oldProjMat); + driver->setTransform(irr::video::ETS_VIEW,oldViewMat); + driver->setTransform(irr::video::ETS_WORLD,oldWorldMat); +} + +void draw2DImage2(irr::video::IVideoDriver *driver, irr::video::ITexture* texture, irr::core::rect sourceRect, irr::core::rect destRect, irr::core::position2d rotationPoint, irr::f32 rotation, bool useAlphaChannel, irr::video::SColor color, irr::core::vector2d screenSize ) +{ + if(rc_active_canvas < 0 || rc_active_canvas >= rc_canvas.size()) + return; + + // Store and clear the projection matrix + irr::core::matrix4 oldProjMat = driver->getTransform(irr::video::ETS_PROJECTION); + driver->setTransform(irr::video::ETS_PROJECTION,irr::core::matrix4()); + + // Store and clear the view matrix + irr::core::matrix4 oldViewMat = driver->getTransform(irr::video::ETS_VIEW); + driver->setTransform(irr::video::ETS_VIEW,irr::core::matrix4()); + + // Store and clear the world matrix + irr::core::matrix4 oldWorldMat = driver->getTransform(irr::video::ETS_WORLD); + driver->setTransform(irr::video::ETS_WORLD,irr::core::matrix4()); + + // Find horizontal and vertical axes after rotation + irr::f32 c = cos(-rotation*irr::core::DEGTORAD); + irr::f32 s = sin(-rotation*irr::core::DEGTORAD); + irr::core::vector2df horizontalAxis(c,s); + irr::core::vector2df verticalAxis(s,-c); + + // First, we'll find the offset of the center and then where the center would be after rotation + irr::core::vector2df centerOffset(destRect.UpperLeftCorner.X+destRect.getWidth()/2.0f-rotationPoint.X,destRect.UpperLeftCorner.Y+destRect.getHeight()/2.0f-rotationPoint.Y); + irr::core::vector2df center = centerOffset.X*horizontalAxis - centerOffset.Y*verticalAxis; + center.X += rotationPoint.X; + center.Y += rotationPoint.Y; + + // Now find the corners based off the center + irr::core::vector2df cornerOffset(destRect.getWidth()/2.0f,destRect.getHeight()/2.0f); + verticalAxis *= cornerOffset.Y; + horizontalAxis *= cornerOffset.X; + irr::core::vector2df corner[4]; + corner[0] = center + verticalAxis - horizontalAxis; + corner[1] = center + verticalAxis + horizontalAxis; + corner[2] = center - verticalAxis - horizontalAxis; + corner[3] = center - verticalAxis + horizontalAxis; + + // Find the uv coordinates of the sourceRect + irr::core::vector2df textureSize(texture->getSize().Width, texture->getSize().Height); + irr::core::vector2df uvCorner[4]; + uvCorner[0] = irr::core::vector2df(sourceRect.UpperLeftCorner.X,sourceRect.UpperLeftCorner.Y); + uvCorner[1] = irr::core::vector2df(sourceRect.LowerRightCorner.X,sourceRect.UpperLeftCorner.Y); + uvCorner[2] = irr::core::vector2df(sourceRect.UpperLeftCorner.X,sourceRect.LowerRightCorner.Y); + uvCorner[3] = irr::core::vector2df(sourceRect.LowerRightCorner.X,sourceRect.LowerRightCorner.Y); + for (irr::s32 i = 0; i < 4; i++) + uvCorner[i] /= textureSize; + + // Vertices for the image + irr::video::S3DVertex vertices[4]; + irr::u16 indices[6] = { 0, 1, 2, 3 ,2 ,1 }; + + // Convert pixels to world coordinates + //irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height); + + for (irr::s32 i = 0; i < 4; i++) { + vertices[i].Pos = irr::core::vector3df(((corner[i].X/screenSize.X)-0.5f)*2.0f,((corner[i].Y/screenSize.Y)-0.5f)*-2.0f,1); + vertices[i].TCoords = uvCorner[i]; + vertices[i].Color = color; + } + + // Create the material + // IMPORTANT: For irrlicht 1.8 and above you MUST ADD THIS LINE: + // material.BlendOperation = irr::video::EBO_ADD; + irr::video::SMaterial material; + material.Lighting = false; + material.ZWriteEnable = irr::video::EZW_OFF; + material.ZBuffer = false; + material.BackfaceCulling = false; + material.TextureLayer[0].Texture = texture; + material.TextureLayer[0].BilinearFilter = rc_bilinear_filter; //TODO: Add option to switch this on/off + material.BlendOperation = rc_blend_mode; + material.MaterialTypeParam = irr::video::pack_textureBlendFunc(irr::video::EBF_SRC_ALPHA, irr::video::EBF_ONE_MINUS_SRC_ALPHA, irr::video::EMFN_MODULATE_1X, irr::video::EAS_TEXTURE | irr::video::EAS_VERTEX_COLOR); + //material.AntiAliasing = irr::video::EAAM_OFF; + + if (useAlphaChannel) + material.MaterialType = irr::video::EMT_ONETEXTURE_BLEND; + else + material.MaterialType = irr::video::EMT_SOLID; + + driver->setMaterial(material); + driver->drawIndexedTriangleList(&vertices[0],4,&indices[0],2); + + // Restore projection, world, and view matrices + driver->setTransform(irr::video::ETS_PROJECTION,oldProjMat); + driver->setTransform(irr::video::ETS_VIEW,oldViewMat); + driver->setTransform(irr::video::ETS_WORLD,oldWorldMat); +} + + +void rc_drawImage(int img_id, int x, int y) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + irr::core::dimension2d src_size = rc_image[img_id].image->getSize(); + irr::core::rect sourceRect( irr::core::vector2d(0, 0), src_size); + + irr::core::position2d position(x, y); + + irr::core::position2d rotationPoint(0, 0); //since we are not rotating it doesn't matter + + irr::f32 rotation = 0; + irr::core::vector2df scale(1.0, 1.0); + bool useAlphaChannel = true; + irr::video::SColor color(rc_image[img_id].alpha, + rc_image[img_id].color_mod.getRed(), + rc_image[img_id].color_mod.getGreen(), + rc_image[img_id].color_mod.getBlue()); + + //irr::core::rect dest( irr::core::vector2d(x, y), irr::core::dimension2d(src_w, src_h));; + + irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height); + + draw2DImage(VideoDriver, rc_image[img_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize); + } +} + +int rc_copyImage(int src_id) +{ + if(src_id < 0 || src_id >= rc_image.size()) + return -1; + + if(!rc_image[src_id].image) + return -1; + + irr::video::ITexture* texture = VideoDriver->addRenderTargetTexture(rc_image[src_id].image->getSize(), "img_copy", irr::video::ECF_A8R8G8B8); + + if(!texture) + return -1; + + VideoDriver->setRenderTarget(texture, true, false, irr::video::SColor(0)); + + + irr::core::dimension2d src_size = rc_image[src_id].image->getSize(); + irr::core::rect sourceRect( irr::core::vector2d(0, 0), src_size); + irr::core::position2d position(0, 0); + irr::core::position2d rotationPoint(0, 0); //since we are not rotating it doesn't matter + irr::f32 rotation = 0; + irr::core::vector2df scale(1.0, 1.0); + bool useAlphaChannel = true; + irr::video::SColor color(rc_image[src_id].alpha, + rc_image[src_id].color_mod.getRed(), + rc_image[src_id].color_mod.getGreen(), + rc_image[src_id].color_mod.getBlue()); + irr::core::vector2df screenSize(src_size.Width, src_size.Height); + + draw2DImage(VideoDriver, rc_image[src_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize); + + rc_setActiveCanvas(rc_active_canvas); + + int img_id = -1; + rc_image_obj img; + img.image = texture; + img.alpha = 255; + + for(int i = 0; i < rc_image.size(); i++) + { + if(rc_image[i].image == NULL) + { + img_id = i; + break; + } + } + + if(img_id < 0) + { + img_id = rc_image.size(); + rc_image.push_back(img); + } + else + { + rc_image[img_id] = img; + } + + return img_id; +} + + +void rc_drawImage_rotate(int img_id, int x, int y, double angle) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + irr::core::dimension2d src_size = rc_image[img_id].image->getSize(); + irr::core::rect sourceRect(0, 0, src_size.Width, src_size.Height); + + irr::core::position2d position(x, y); + + irr::core::position2d rotationPoint(x + (src_size.Width/2), y + (src_size.Height/2)); + + irr::f32 rotation = -1*angle; + irr::core::vector2df scale(1.0, 1.0); + bool useAlphaChannel = true; + irr::video::SColor color(rc_image[img_id].alpha, + rc_image[img_id].color_mod.getRed(), + rc_image[img_id].color_mod.getGreen(), + rc_image[img_id].color_mod.getBlue()); + + irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height); + + draw2DImage(VideoDriver, rc_image[img_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize); + } +} + +void rc_drawImage_zoom(int img_id, int x, int y, double zx, double zy) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + irr::core::dimension2d src_size = rc_image[img_id].image->getSize(); + irr::core::rect sourceRect(0, 0, src_size.Width, src_size.Height); + + irr::core::position2d position(x, y); + + irr::core::position2d rotationPoint(x + (src_size.Width/2), y + (src_size.Height/2)); + + irr::f32 rotation = 0; + irr::core::vector2df scale((irr::f32)zx, (irr::f32)zy); + bool useAlphaChannel = true; + irr::video::SColor color(rc_image[img_id].alpha, + rc_image[img_id].color_mod.getRed(), + rc_image[img_id].color_mod.getGreen(), + rc_image[img_id].color_mod.getBlue()); + + irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height); + + draw2DImage(VideoDriver, rc_image[img_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize); + } +} + +void rc_drawImage_zoomEx(int img_id, int x, int y, int src_x, int src_y, int src_w, int src_h, double zx, double zy) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + //irr::core::dimension2d src_size = rc_image[img_id].image->getSize(); + irr::core::rect sourceRect( irr::core::vector2d(src_x, src_y), irr::core::dimension2d(src_w, src_h)); + + irr::core::position2d position(x, y); + + irr::core::position2d rotationPoint(x + (src_w/2), y + (src_h/2)); + + irr::f32 rotation = 0; + irr::core::vector2df scale((irr::f32)zx, (irr::f32)zy); + bool useAlphaChannel = true; + irr::video::SColor color(rc_image[img_id].alpha, + rc_image[img_id].color_mod.getRed(), + rc_image[img_id].color_mod.getGreen(), + rc_image[img_id].color_mod.getBlue()); + + irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height); + + draw2DImage(VideoDriver, rc_image[img_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize); + } +} + +void rc_drawImage_rotozoom(int img_id, int x, int y, double angle, double zx, double zy) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + irr::core::dimension2d src_size = rc_image[img_id].image->getSize(); + irr::core::rect sourceRect(0, 0, src_size.Width, src_size.Height); + + irr::core::position2d position(x, y); + + irr::core::position2d rotationPoint(x + (src_size.Width/2)*zx, y + (src_size.Height/2)*zy); + + irr::f32 rotation = -1*angle; + irr::core::vector2df scale((irr::f32)zx, (irr::f32)zy); + bool useAlphaChannel = true; + irr::video::SColor color(rc_image[img_id].alpha, + rc_image[img_id].color_mod.getRed(), + rc_image[img_id].color_mod.getGreen(), + rc_image[img_id].color_mod.getBlue()); + + irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height); + + draw2DImage(VideoDriver, rc_image[img_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize); + } +} + +void rc_drawImage_rotozoomEx(int img_id, int x, int y, int src_x, int src_y, int src_w, int src_h, double angle, double zx, double zy) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + //irr::core::dimension2d src_size = rc_image[img_id].image->getSize(); + irr::core::rect sourceRect( irr::core::vector2d(src_x, src_y), irr::core::dimension2d(src_w, src_h)); + + irr::core::position2d position(x, y); + + irr::core::position2d rotationPoint(x + (src_w/2)*zx, y + (src_h/2)*zy); + + irr::f32 rotation = -1*angle; + irr::core::vector2df scale((irr::f32)zx, (irr::f32)zy); + bool useAlphaChannel = true; + irr::video::SColor color(rc_image[img_id].alpha, + rc_image[img_id].color_mod.getRed(), + rc_image[img_id].color_mod.getGreen(), + rc_image[img_id].color_mod.getBlue()); + + irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height); + + draw2DImage(VideoDriver, rc_image[img_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize); + } +} + + +void rc_drawImage_flip(int img_id, int x, int y, bool h, bool v) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + irr::core::dimension2d src_size = rc_image[img_id].image->getSize(); + irr::core::rect sourceRect(0, 0, src_size.Width, src_size.Height); + + irr::core::position2d rotationPoint(x + (src_size.Width/2), y + (src_size.Height/2)); + + irr::f32 rotation = 0; + irr::core::vector2df scale((irr::f32)(h ? -1 : 1), (irr::f32) (v ? -1 : 1)); + + irr::core::position2d position( (h ? x+src_size.Width : x), (v ? y+src_size.Height : y)); + + bool useAlphaChannel = true; + irr::video::SColor color(rc_image[img_id].alpha, + rc_image[img_id].color_mod.getRed(), + rc_image[img_id].color_mod.getGreen(), + rc_image[img_id].color_mod.getBlue()); + + irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height); + + draw2DImage(VideoDriver, rc_image[img_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize); + } +} + +void rc_drawImage_flipEx(int img_id, int x, int y, int src_x, int src_y, int src_w, int src_h, bool h, bool v) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + //irr::core::dimension2d src_size = rc_image[img_id].image->getSize(); + irr::core::rect sourceRect( irr::core::vector2d(src_x, src_y), irr::core::dimension2d(src_w, src_h)); + + irr::core::position2d rotationPoint(x + (src_w/2), y + (src_h/2)); + + irr::f32 rotation = 0; + irr::core::vector2df scale((irr::f32)(h ? -1 : 1), (irr::f32) (v ? -1 : 1)); + + irr::core::position2d position( (h ? x+src_w : x), (v ? y+src_h : y)); + + bool useAlphaChannel = true; + irr::video::SColor color(rc_image[img_id].alpha, + rc_image[img_id].color_mod.getRed(), + rc_image[img_id].color_mod.getGreen(), + rc_image[img_id].color_mod.getBlue()); + + irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height); + + draw2DImage(VideoDriver, rc_image[img_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize); + } +} + + +void rc_drawImage_blit(int img_id, int x, int y, int src_x, int src_y, int src_w, int src_h) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + //irr::core::dimension2d src_size = rc_image[img_id].image->getSize(); + irr::core::rect sourceRect( irr::core::vector2d(src_x, src_y), irr::core::dimension2d(src_w, src_h)); + + irr::core::position2d position(x, y); + + irr::core::position2d rotationPoint(0, 0); //since we are not rotating it doesn't matter + + irr::f32 rotation = 0; + irr::core::vector2df scale(1.0, 1.0); + bool useAlphaChannel = true; + irr::video::SColor color(rc_image[img_id].alpha, + rc_image[img_id].color_mod.getRed(), + rc_image[img_id].color_mod.getGreen(), + rc_image[img_id].color_mod.getBlue()); + + irr::core::rect dest( irr::core::vector2d(x, y), irr::core::dimension2d(src_w, src_h)); + + irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height); + + draw2DImage(VideoDriver, rc_image[img_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize); + } +} + + +void rc_drawImage_rotateEx(int img_id, int x, int y, int src_x, int src_y, int src_w, int src_h, int angle) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + //irr::core::dimension2d src_size = rc_image[img_id].image->getSize(); + irr::core::rect sourceRect( irr::core::vector2d(src_x, src_y), irr::core::dimension2d(src_w, src_h)); + + //irr::core::position2d position(x, y); + + irr::core::vector2d rotationPoint(x + (src_w/2), y + (src_h/2)); + + irr::f32 rotation = -1*angle; + //irr::core::vector2df scale(1.0, 1.0); + bool useAlphaChannel = true; + irr::video::SColor color(rc_image[img_id].alpha, + rc_image[img_id].color_mod.getRed(), + rc_image[img_id].color_mod.getGreen(), + rc_image[img_id].color_mod.getBlue()); + + irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height); + + irr::core::rect dest( irr::core::vector2d(x, y), irr::core::dimension2d(src_w, src_h)); + + draw2DImage2(VideoDriver, rc_image[img_id].image, sourceRect, dest, rotationPoint, rotation, useAlphaChannel, color, screenSize); + } +} + +void rc_drawImage_blitEx(int img_id, int x, int y, int w, int h, int src_x, int src_y, int src_w, int src_h) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + //irr::core::dimension2d src_size = rc_image[img_id].image->getSize(); + irr::core::rect sourceRect( irr::core::vector2d(src_x, src_y), irr::core::dimension2d(src_w, src_h)); + + //irr::core::position2d position(x, y); + + irr::core::position2d rotationPoint(0, 0); //since we are not rotating it doesn't matter + + irr::f32 rotation = 0; + irr::core::vector2df scale(1.0, 1.0); + bool useAlphaChannel = true; + irr::video::SColor color(rc_image[img_id].alpha, + rc_image[img_id].color_mod.getRed(), + rc_image[img_id].color_mod.getGreen(), + rc_image[img_id].color_mod.getBlue()); + + irr::core::rect dest( irr::core::vector2d(x, y), irr::core::dimension2d(w, h)); + + irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height); + + draw2DImage2(VideoDriver, rc_image[img_id].image, sourceRect, dest, rotationPoint, rotation, useAlphaChannel, color, screenSize ); + } +} + +void rc_setImageAlpha(int img_id, Uint8 alpha) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + rc_image[img_id].alpha = alpha; + } +} + +Uint32 rc_getImageAlpha(int img_id) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return 0; + + if(rc_image[img_id].image) + { + return rc_image[img_id].alpha; + } + + return 0; +} + +bool rc_imageExists(int img_id) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return false; + + if(rc_image[img_id].image) + return true; + + return false; +} + +void rc_getImageSize(int img_id, double* w, double* h) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + *w = (double)rc_image[img_id].image->getSize().Width; + *h = (double)rc_image[img_id].image->getSize().Height; + } +} + +void rc_setColorKey(int img_id, Uint32 colorkey) +{ + if(!rc_imageExists(img_id)) + return; + + VideoDriver->makeColorKeyTexture(rc_image[img_id].image, irr::video::SColor(colorkey)); +} + + + + + +bool rc_update() +{ + if(!device->run()) + return false; + + int win_w = 0, win_h = 0; + int w_scale = 1, h_scale = 1; + + if(rc_window) + { + SDL_GetWindowSize(rc_window, &win_w, &win_h); + //std::cout << "size = " << win_w << ", " << win_h << std::endl; + } + + SEvent irrevent; + SDL_Event SDL_event; + bool Close = false; + + while ( !Close && SDL_PollEvent( &SDL_event ) ) + { + // os::Printer::log("event: ", core::stringc((int)SDL_event.type).c_str(), ELL_INFORMATION); // just for debugging + + switch ( SDL_event.type ) + { + case SDL_QUIT: + SDL_PumpEvents(); + Close = true; + break; + case SDL_MOUSEMOTION: + irrevent.EventType = irr::EET_MOUSE_INPUT_EVENT; + irrevent.MouseInput.Event = irr::EMIE_MOUSE_MOVED; + MouseX = irrevent.MouseInput.X = SDL_event.motion.x; + MouseY = irrevent.MouseInput.Y = SDL_event.motion.y; + MouseXRel = SDL_event.motion.xrel; + MouseYRel = SDL_event.motion.yrel; + irrevent.MouseInput.ButtonStates = MouseButtonStates; + + device->postEventFromUser(irrevent); + break; + + case SDL_MOUSEBUTTONDOWN: + case SDL_MOUSEBUTTONUP: + + irrevent.EventType = irr::EET_MOUSE_INPUT_EVENT; + irrevent.MouseInput.X = SDL_event.button.x; + irrevent.MouseInput.Y = SDL_event.button.y; + + irrevent.MouseInput.Event = irr::EMIE_MOUSE_MOVED; + + switch(SDL_event.button.button) + { + case SDL_BUTTON_LEFT: + if (SDL_event.type == SDL_MOUSEBUTTONDOWN) + { + irrevent.MouseInput.Event = irr::EMIE_LMOUSE_PRESSED_DOWN; + MouseButtonStates |= irr::EMBSM_LEFT; + } + else + { + irrevent.MouseInput.Event = irr::EMIE_LMOUSE_LEFT_UP; + MouseButtonStates &= !irr::EMBSM_LEFT; + } + + //std::cout << "Position = " << SDL_event.button.x << ", " << SDL_event.button.y << std::endl; + //rc_canvas[0].offset.X++; + break; + + case SDL_BUTTON_RIGHT: + if (SDL_event.type == SDL_MOUSEBUTTONDOWN) + { + irrevent.MouseInput.Event = irr::EMIE_RMOUSE_PRESSED_DOWN; + MouseButtonStates |= irr::EMBSM_RIGHT; + } + else + { + irrevent.MouseInput.Event = irr::EMIE_RMOUSE_LEFT_UP; + MouseButtonStates &= !irr::EMBSM_RIGHT; + } + + //rc_setWindowFullscreen(1); + //rc_canvas[0].offset.X--; + break; + + case SDL_BUTTON_MIDDLE: + if (SDL_event.type == SDL_MOUSEBUTTONDOWN) + { + irrevent.MouseInput.Event = irr::EMIE_MMOUSE_PRESSED_DOWN; + MouseButtonStates |= irr::EMBSM_MIDDLE; + } + else + { + irrevent.MouseInput.Event = irr::EMIE_MMOUSE_LEFT_UP; + MouseButtonStates &= !irr::EMBSM_MIDDLE; + } + break; + + } + + irrevent.MouseInput.ButtonStates = MouseButtonStates; + + if (irrevent.MouseInput.Event != irr::EMIE_MOUSE_MOVED) + { + device->postEventFromUser(irrevent); + + if ( irrevent.MouseInput.Event >= EMIE_LMOUSE_PRESSED_DOWN && irrevent.MouseInput.Event <= EMIE_MMOUSE_PRESSED_DOWN ) + { + u32 clicks = device->checkSuccessiveClicks(irrevent.MouseInput.X, irrevent.MouseInput.Y, irrevent.MouseInput.Event); + if ( clicks == 2 ) + { + irrevent.MouseInput.Event = (EMOUSE_INPUT_EVENT)(EMIE_LMOUSE_DOUBLE_CLICK + irrevent.MouseInput.Event-EMIE_LMOUSE_PRESSED_DOWN); + device->postEventFromUser(irrevent); + } + else if ( clicks == 3 ) + { + irrevent.MouseInput.Event = (EMOUSE_INPUT_EVENT)(EMIE_LMOUSE_TRIPLE_CLICK + irrevent.MouseInput.Event-EMIE_LMOUSE_PRESSED_DOWN); + device->postEventFromUser(irrevent); + } + } + } + break; + + case SDL_MOUSEWHEEL: + irrevent.MouseInput.Event = irr::EMIE_MOUSE_WHEEL; + irrevent.MouseInput.Wheel = SDL_event.wheel.y; + rc_mwheelx = SDL_event.wheel.x; + rc_mwheely = SDL_event.wheel.y; + break; + + case SDL_TEXTINPUT: + if(rc_textinput_flag == true) + { + rc_textinput_string += SDL_event.text.text; + } + break; + + case SDL_KEYUP: + case SDL_KEYDOWN: + { + SDLKeyMap mp; + mp.SDLKey = SDL_event.key.keysym.sym; + s32 idx = KeyMap.binary_search(mp); + + EKEY_CODE key; + if (idx == -1) + key = (EKEY_CODE)0; + else + key = (EKEY_CODE)KeyMap[idx].Win32Key; + + irrevent.EventType = irr::EET_KEY_INPUT_EVENT; + irrevent.KeyInput.Char = SDL_event.key.keysym.sym; + irrevent.KeyInput.Key = key; + irrevent.KeyInput.PressedDown = (SDL_event.type == SDL_KEYDOWN); + irrevent.KeyInput.Shift = (SDL_event.key.keysym.mod & KMOD_SHIFT) != 0; + irrevent.KeyInput.Control = (SDL_event.key.keysym.mod & KMOD_CTRL ) != 0; + device->postEventFromUser(irrevent); + } + + if(SDL_event.type == SDL_KEYDOWN) + { + if(rc_textinput_flag && SDL_event.key.keysym.sym == SDLK_BACKSPACE && rc_textinput_string.length() > 0 + && rc_toggleBackspace) + { + rc_textinput_string = rc_utf8_substr(rc_textinput_string, 0, rc_utf8_length(rc_textinput_string)-1); + } + + rc_inkey_val = SDL_event.key.keysym.sym; + } + break; + + + case SDL_WINDOWEVENT: + if (SDL_event.window.event == SDL_WINDOWEVENT_SIZE_CHANGED) + { + // FIXME: Implement more precise window control + // FIXME: Check if the window is game window + s32 Width = SDL_event.window.data1; + s32 Height = SDL_event.window.data2; + + rc_win_event = RC_WIN_EVENT_RESIZE; + + //resizeWindow(Width, Height); + if (VideoDriver) + VideoDriver->OnResize(core::dimension2d(Width, Height)); + + } + else if(SDL_event.window.event == SDL_WINDOWEVENT_CLOSE) + { + if(rc_window) + { + rc_win_event = RC_WIN_EVENT_CLOSE; + + if(SDL_QuitRequested() != 0) + { + SDL_FlushEvent(SDL_QUIT); + } + if(rc_win_exitOnClose) + { + rc_closeWindow_hw(); + Close = true; + } + + } + } + else if(SDL_event.window.event == SDL_WINDOWEVENT_MINIMIZED) + { + if(rc_window) + { + rc_win_event = RC_WIN_EVENT_MINIMIZE; + } + } + else if(SDL_event.window.event == SDL_WINDOWEVENT_MAXIMIZED) + { + if(rc_window) + { + rc_win_event = RC_WIN_EVENT_MAXIMIZE; + } + } + + break; + + case SDL_JOYDEVICEREMOVED: + //cout << "Joystick Removed: Instance " << event.jdevice.which << endl; + for(int i = 0; i < 8; i++) + { + if(SDL_event.jdevice.which == rc_joyID[i] && rc_joystick[i]) + { + //cout << "Joystick [" << i << "] was removed" << endl; + SDL_HapticClose(rc_haptic[i]); + SDL_JoystickClose(rc_joystick[i]); + rc_joystick[i] = NULL; + rc_haptic[i] = NULL; + rc_joyID[i] = -1; + rc_numJoysticks--; + break; + } + } + break; + case SDL_JOYDEVICEADDED: + //cout << "Joystick Added: " << event.jdevice.which << endl; + tmp_joy = SDL_JoystickOpen(SDL_event.jdevice.which); + tmp_joy_id = SDL_JoystickInstanceID(tmp_joy); + tmp_joy_flag = 0; + + for(int i = 0; i < 8; i++) + { + if(tmp_joy_id == rc_joyID[i]) + { + tmp_joy_flag = 1; + break; + } + } + + if(SDL_event.jdevice.which >= 0 && tmp_joy_flag == 0) + { + for(int i = 0; i < 8; i++) + { + if(rc_joystick[i] == NULL) + { + //cout << "Assigned " << i << endl; + rc_joystick[i] = tmp_joy; + rc_haptic[i] = SDL_HapticOpenFromJoystick(rc_joystick[i]); + SDL_HapticRumbleInit(rc_haptic[i]); + rc_joyID[i] = tmp_joy_id; + rc_numJoysticks++; + break; + } + } + } + break; + +#ifndef RC_MOBILE //This block handles touch events for non-mobile devices, Just in case it has a touch screen that SDL2 can get events for + case SDL_FINGERDOWN: + rc_touch = 1; + rc_touchX = SDL_event.tfinger.x * win_w; + rc_touchY = SDL_event.tfinger.y * win_h; +#ifdef RC_IOS + rc_pressure = 1; //FIXME: On IOS pressure is always getting reported as 0 on finger down so I am just setting it to 1 until I figure this out +#else + rc_pressure = SDL_event.tfinger.pressure; +#endif + rc_setTouchFingerEvent(SDL_event.tfinger.fingerId, rc_touchX, rc_touchY, rc_pressure); + break; + case SDL_FINGERUP: + rc_touch = 0; + rc_mt_status = 0; + rc_touchX = SDL_event.tfinger.x * win_w; + rc_touchY = SDL_event.tfinger.y * win_h; + rc_pressure = SDL_event.tfinger.pressure; + rc_setTouchFingerEvent(SDL_event.tfinger.fingerId, -1, -1, 0); + break; + case SDL_FINGERMOTION: + rc_touch = 1; + rc_touchX = SDL_event.tfinger.x * win_w; + rc_touchY = SDL_event.tfinger.y * win_h; + rc_motionX = SDL_event.tfinger.dx * win_w; + rc_motionY = SDL_event.tfinger.dy * win_h; +#ifdef RC_IOS + rc_pressure = 1; +#else + rc_pressure = SDL_event.tfinger.pressure; +#endif + rc_setTouchFingerEvent(SDL_event.tfinger.fingerId, rc_touchX, rc_touchY, rc_pressure); + break; + case SDL_MULTIGESTURE: + rc_touch = 2; + rc_mt_status = 1; + rc_mt_x = SDL_event.mgesture.x; + rc_mt_y = SDL_event.mgesture.y; + rc_mt_numFingers = SDL_event.mgesture.numFingers; + rc_mt_dist = SDL_event.mgesture.dDist; + rc_mt_theta = SDL_event.mgesture.dTheta; +#ifdef RC_IOS + rc_pressure = 1; +#else + rc_pressure = SDL_event.tfinger.pressure; +#endif + break; +#endif + + case SDL_USEREVENT: + irrevent.EventType = irr::EET_USER_EVENT; + irrevent.UserEvent.UserData1 = reinterpret_cast(SDL_event.user.data1); + irrevent.UserEvent.UserData2 = reinterpret_cast(SDL_event.user.data2); + + device->postEventFromUser(irrevent); + break; + + default: + break; + } // end switch + + } // end while + + if(!Close) + { + VideoDriver->setRenderTarget(rc_canvas[0].texture); + + for(int cz = 0; cz < rc_canvas_zOrder.size(); cz++) + { + int canvas_id = rc_canvas_zOrder[cz]; + + if(rc_canvas[canvas_id].texture) + { + irr::core::rect dest(rc_canvas[canvas_id].viewport.position, rc_canvas[canvas_id].viewport.dimension); + irr::core::rect src(rc_canvas[canvas_id].offset, rc_canvas[canvas_id].viewport.dimension); + + //std::cout << "draw canvas[" << canvas_id << "]" << std::endl; + + VideoDriver->draw2DImage(rc_canvas[canvas_id].texture, dest, src); + } + } + + //env->drawAll(); + + VideoDriver->setRenderTarget(0); + VideoDriver->beginScene(true, true); + VideoDriver->draw2DImage(rc_canvas[0].texture, irr::core::vector2d(0,0)); + //device->getGUIEnvironment()->drawAll(); + VideoDriver->endScene(); + + rc_setActiveCanvas(rc_active_canvas); + } + + return (!Close); +} + +#endif // RC_GFX_INCLUDED diff --git a/rcbasic_runtime/irr_gfx/rc_utf8.h b/rcbasic_runtime/irr_gfx/rc_utf8.h new file mode 100644 index 0000000..796e49e --- /dev/null +++ b/rcbasic_runtime/irr_gfx/rc_utf8.h @@ -0,0 +1,45 @@ +#ifndef RC_UTF8_H_INCLUDED +#define RC_UTF8_H_INCLUDED + +#include +#include + +std::string rc_utf8_substr(const std::string& str, unsigned int start, unsigned int leng) +{ + if (leng==0) { return ""; } + unsigned int c, i, ix, q, min=std::string::npos, max=std::string::npos; + for (q=0, i=0, ix=str.length(); i < ix; i++, q++) + { + if (q==start){ min=i; } + if (q<=start+leng || leng==std::string::npos){ max=i; } + + c = (unsigned char) str[i]; + if ( + //c>=0 && + c<=127) i+=0; + else if ((c & 0xE0) == 0xC0) i+=1; + else if ((c & 0xF0) == 0xE0) i+=2; + else if ((c & 0xF8) == 0xF0) i+=3; + //else if (($c & 0xFC) == 0xF8) i+=4; // 111110bb //byte 5, unnecessary in 4 byte UTF-8 + //else if (($c & 0xFE) == 0xFC) i+=5; // 1111110b //byte 6, unnecessary in 4 byte UTF-8 + else return "";//invalid utf8 + } + if (q<=start+leng || leng==std::string::npos){ max=i; } + if (min==std::string::npos || max==std::string::npos) { return ""; } + return str.substr(min,max-min); +} + +std::size_t rc_utf8_length(std::string const &s) +{ + return std::count_if(s.begin(), s.end(), + [](char c) { return (static_cast(c) & 0xC0) != 0x80; } ); +} + +// convert UTF-8 string to wstring +std::wstring utf8_to_wstring (const std::string& str) +{ + std::wstring_convert> myconv; + return myconv.from_bytes(str); +} + +#endif // RC_UTF8_H_INCLUDED diff --git a/rcbasic_runtime/main.cpp b/rcbasic_runtime/main.cpp old mode 100644 new mode 100755 index 9edb8b7..c6f32cb --- a/rcbasic_runtime/main.cpp +++ b/rcbasic_runtime/main.cpp @@ -47,13 +47,17 @@ #include #include #include "rc_defines.h" -#include "rc_stdlib.h" -#include "rc_media.h" +#include "rc_stdlib.h" +#include "rc_gfx.h" +#include "rc_gfx3D.h" #include "rc_matrix.h" -#include "rc_process.h" -#include "rc_geometry.h" +#include "rc_geometry.h" +#include "rc_audio.h" +#include "rc_net.h" +#include "rc_video.h" +#include "rc_test.h" +#include -using namespace std; #define LESS_FLAG 0 #define LESS_EQUAL_FLAG 1 @@ -77,7 +81,7 @@ bool CMP_FLAG_GREATER = false; bool CMP_FLAG_GREATER_EQUAL = false; bool CMP_FLAG_NOT_EQUAL = false; -string rcbasic_runtime_path = ""; +std::string rcbasic_runtime_path = ""; struct n_value { @@ -87,7 +91,7 @@ struct n_value struct s_value { - vector value; + vector value; void * ref_parent; // This will be set by the obj_get instructions (ie. obj_get and obj_usr_get) }; @@ -104,7 +108,7 @@ struct rc_vm_n struct rc_vm_s { - string value; + std::string value; s_value * r; uint64_t r_index; @@ -317,7 +321,7 @@ struct rcbasic_debug_access_status int dimensions; int dim[3]; double num_val; - string str_val; + std::string str_val; int reg; bool is_error = false; }; @@ -325,14 +329,14 @@ struct rcbasic_debug_access_status struct rcbasic_debug_vars { int type; - string scope; - string name; + std::string scope; + std::string name; int index; vector usage_data; }; vector dbg_vars; -vector dbg_files; +vector dbg_files; uint64_t current_src_line = 1; uint64_t current_src_file = 0; @@ -344,16 +348,16 @@ uint64_t current_src_file = 0; #define DBG_REDIM_LEQ_ZERO "Array Size must be greater than Zero" bool dbg_error_found = false; -string dbg_error_message = ""; +std::string dbg_error_message = ""; -void loadDebugData(string sym_file, string inc_file) +void loadDebugData(std::string sym_file, std::string inc_file) { fstream f(sym_file, fstream::in); - string f_line; + std::string f_line; - string type_str = ""; + std::string type_str = ""; rcbasic_debug_vars tmp; while(!f.eof()) @@ -422,16 +426,16 @@ void loadDebugData(string sym_file, string inc_file) while(!f.eof()) { getline(f, f_line); - if(f_line.find_first_not_of(" ")!=string::npos) + if(f_line.find_first_not_of(" ")!=std::string::npos) dbg_files.push_back(f_line); } f.close(); } -string dbg_format_string(string dbg_str_val) +std::string dbg_format_string(std::string dbg_str_val) { - string rtn = dbg_str_val; + std::string rtn = dbg_str_val; rtn = rc_intern_replace(rtn, "\n", "\\n"); rtn = rc_intern_replace(rtn, "\r", "\\r"); rtn = rc_intern_replace(rtn, "\t", "\\t"); @@ -527,7 +531,7 @@ uint64_t rcbasic_readInt() } -bool rcbasic_load(string filename) +bool rcbasic_load(std::string filename) { char rc[5]; @@ -545,7 +549,7 @@ bool rcbasic_load(string filename) if(! (rc[0]=='R' && rc[1] =='C' && rc[2]=='4') ) { - string rcs = rc; + std::string rcs = rc; cout << "This program was not built for this version of the runtime: " << rcs << endl; return false; } @@ -655,42 +659,6 @@ bool rcbasic_load(string filename) return true; } -bool rc_checkEvent() -{ - for(int i = 0; i < MAX_WINDOWS; i++) - if(rc_win[i]!=NULL) - return true; - return false; -} - -void rc_events() -{ - //rc_textinput_flag = false; - cycleVideo(); - if(rc_checkEvent()) - { - rc_fingers_pressed.clear(); - rc_inkey = 0; - rc_mouseX = -1; - rc_mouseY = -1; - rc_global_mouseX = -1; - rc_global_mouseY = -1; - rc_mwheelx = 0; - rc_mwheely = 0; - for(int i = 0; i < MAX_WINDOWS; i++) - rc_win_event[i] = 0; - while(rc_getEvents()){} - keyState = SDL_GetKeyboardState(NULL); - SDL_GetMouseState(&rc_mouseX, &rc_mouseY); - SDL_GetGlobalMouseState(&rc_global_mouseX, &rc_global_mouseY); - //rc_getEvents(); - #ifndef RC_WINDOWS - SDL_PumpEvents(); - #endif // RC_WINDOWS - //SDL_FlushEvents(SDL_FIRSTEVENT, SDL_LASTEVENT);// - } -} - uint64_t readInt() { for(int i = 0; i < sizeof(uint64_t); i++) @@ -2176,9 +2144,9 @@ void rc_print_num(double n) { stringstream s; s << fixed << n; - string s_out = s.str(); + std::string s_out = s.str(); int s_decimal = s_out.find_first_of("."); - if(s_decimal != string::npos) + if(s_decimal != std::string::npos) { int trail_end = s_out.length(); for(int i = s_decimal; i < s_out.length(); i++) @@ -2211,7 +2179,7 @@ void rc_push_num(double n_val) //current_n_stack_count++; } -void rc_push_str(string s_val) +void rc_push_str(std::string s_val) { rc_vm_s s; s.value = s_val; @@ -2522,7 +2490,7 @@ void rc_number_array_fill(rc_numId* n_var, double n) } -void rc_string_array_fill(rc_strId* s_var, string s) +void rc_string_array_fill(rc_strId* s_var, std::string s) { uint64_t src_dim, src_dim_size[3]; rc_strId* src = (rc_strId*)s_var->sid_value.ref_parent; @@ -2559,1696 +2527,7 @@ void func_130(uint64_t fn) //need to setup a switch statement for all buitlin fucntions here switch(fn) { - case FN_FPrint: - //cout << "gosub addr size: " << gosub_return_addr.size() << endl; - //cout << "for stack size: " << loop_stack.size() << endl; - //cout << "byref addr table: " << byref_addr_table.size() << endl << endl; - rc_fprint( FPRINT_TXT$ ); - break; - case FN_Input$: - rc_push_str( rc_input(INPUT$_PROMPT$) ); - break; - case FN_StringArrayDim: - rc_push_num( rc_string_array_dim( (rc_strId*) str_var[0].sid_value.ref_parent ) ); - arr_ref_id.clear(); - break; - case FN_NumberArrayDim: - rc_push_num( rc_number_array_dim( (rc_numId*)num_var[0].nid_value.ref_parent ) ); - arr_ref_id.clear(); - break; - case FN_StringArraySize: - 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: - 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_Abs: - rc_push_num( rc_intern_abs( ABS_N ) ); - break; - case FN_ACos: - rc_push_num( rc_intern_aCos( ACOS_N ) ); - break; - case FN_AndBit: - rc_push_num( rc_intern_andBit( ANDBIT_A, ANDBIT_B ) ); - break; - case FN_ASin: - rc_push_num( rc_intern_aSin( ASIN_N ) ); - break; - case FN_ATan: - rc_push_num( rc_intern_aTan( ATAN_N ) ); - break; - case FN_Bin$: - rc_push_str( rc_intern_bin( BIN$_N ) ); - break; - case FN_CInt32: - rc_push_num( rc_intern_cint32( CINT32_I )); - break; - case FN_CInt64: - rc_push_num( rc_intern_cint64( CINT64_I )); - break; - case FN_Cos: - rc_push_num( rc_intern_cos( COS_N ) ); - break; - case FN_Degrees: - rc_push_num( rc_intern_degrees(DEGREES_R)); - break; - case FN_Exp: - rc_push_num( rc_intern_exp( EXP_N ) ); - break; - case FN_Frac: - rc_push_num( rc_intern_frac( FRAC_N ) ); - break; - case FN_Hex$: - rc_push_str( rc_intern_hex( HEX$_N ) ); - break; - case FN_HexVal: - rc_push_num( rc_intern_hexInt( HEXVAL_N$ ) ); - break; - case FN_Int: - rc_push_num( rc_intern_int( INT_N ) ); - break; - case FN_Log: - rc_push_num( rc_intern_log( LOG_N ) ); - break; - case FN_Max: - rc_push_num( rc_intern_max( MAX_A, MAX_B ) ); - break; - case FN_Min: - rc_push_num( rc_intern_min( MIN_A, MIN_B ) ); - break; - case FN_OrBit: - rc_push_num( rc_intern_orBit( ORBIT_A, ORBIT_B ) ); - break; - case FN_Radians: - rc_push_num( rc_intern_radians(RADIANS_D)); - break; - case FN_Randomize: - rc_push_num( rc_intern_randomize( RANDOMIZE_N ) ); - break; - case FN_Rand: - rc_push_num( rc_intern_rand( RAND_N ) ); - break; - case FN_Round: - rc_push_num( rc_intern_round( ROUND_N ) ); - break; - case FN_Sign: - rc_push_num( rc_intern_sign( SIGN_N ) ); - break; - case FN_Sin: - rc_push_num( rc_intern_sin( SIN_N ) ); - break; - case FN_Sqrt: - rc_push_num( rc_intern_sqrt( SQRT_N ) ); - break; - case FN_Tan: - rc_push_num( rc_intern_tan( TAN_N ) ); - break; - case FN_XOrBit: - rc_push_num( rc_intern_xorbit( XORBIT_A, XORBIT_B ) ); - break; - case FN_Asc: - rc_push_num( rc_intern_asc( ASC_C$ ) ); - break; - case FN_Chr$: - rc_push_str( rc_intern_chr( CHR$_N ) ); - break; - case FN_Insert$: - rc_push_str( rc_intern_insert( INSERT$_SRC$, INSERT$_TGT$, INSERT$_POS ) ); - break; - case FN_InStr: - rc_push_num( rc_intern_instr( INSTR_SRC$, INSTR_SUBSTR$ ) ); - break; - case FN_LCase$: - rc_push_str( rc_intern_lcase( LCASE$_SRC$ ) ); - break; - case FN_Left$: - rc_push_str( rc_intern_left( LEFT$_SRC$, LEFT$_N ) ); - break; - case FN_Len: - rc_push_num( rc_intern_length( LEN_SRC$ ) ); - break; - case FN_Length: - rc_push_num( rc_intern_length( LENGTH_SRC$ ) ); - break; - case FN_LTrim$: - rc_push_str( rc_intern_ltrim( LTRIM$_SRC$ ) ); - break; - case FN_Mid$: - rc_push_str( rc_intern_mid( MID$_SRC$, MID$_START, MID$_N ) ); - break; - case FN_ReplaceSubstr$: - rc_push_str( rc_intern_replaceSubstr( REPLACESUBSTR$_SRC$, REPLACESUBSTR$_RPC$, REPLACESUBSTR$_POS) ); - break; - case FN_Replace$: - rc_push_str( rc_intern_replace( REPLACE$_SRC$, REPLACE$_TGT$, REPLACE$_RPC$ ) ); - break; - case FN_Reverse$: - rc_push_str( rc_intern_reverse( REVERSE$_SRC$ ) ); - break; - case FN_Right$: - rc_push_str( rc_intern_right( RIGHT$_SRC$, RIGHT$_N ) ); - break; - case FN_RTrim$: - rc_push_str( rc_intern_rtrim( RTRIM$_SRC$ ) ); - break; - case FN_StringFill$: - rc_push_str( rc_intern_stringfill( STRINGFILL$_SRC$, STRINGFILL$_N ) ); - break; - case FN_Str$: - rc_push_str( rc_intern_str( STR$_N ) ); - break; - case FN_Str_F$: - rc_push_str( rc_intern_str_f( STR_F$_N ) ); - break; - case FN_Str_S$: - rc_push_str( rc_intern_str_s( STR_S$_N ) ); - break; - case FN_Tally: - rc_push_num( rc_intern_tally( TALLY_SRC$, TALLY_SUBSTR$ ) ); - break; - case FN_Trim$: - rc_push_str( rc_intern_trim( TRIM$_SRC$ ) ); - break; - case FN_UCase$: - rc_push_str( rc_intern_ucase( UCASE$_SRC$ ) ); - break; - case FN_Val: - rc_push_num( rc_intern_val( VAL_N$ ) ); - break; - case FN_Stack_N: //Sub Procedure - if(STACK_N_N >= 0 && STACK_N_N <= (MAX_USER_STACKS-1)) - rc_user_active_n_stack = STACK_N_N; - else - cout << "Stack_N Error: Exceeds available stacks" << endl; - break; - case FN_Stack_S: //Sub Procedure - if(STACK_S_N >= 0 && STACK_S_N <= (MAX_USER_STACKS-1)) - rc_user_active_s_stack = STACK_S_N; - else - cout << "Stack_S Error: Exceeds available stacks" << endl; - break; - case FN_Push_N: - rc_intern_push_n( PUSH_N_N ); - break; - case FN_Pop_N: - rc_push_num( rc_intern_pop_n() ); - break; - case FN_Push_S: - rc_intern_push_s( PUSH_S_S$ ); - break; - case FN_Pop_S$: - rc_push_str( rc_intern_pop_s() ); - break; - case FN_Stack_Size_N: - rc_push_num( rc_intern_n_stack_size() ); - break; - case FN_Stack_Size_S: - rc_push_num( rc_intern_s_stack_size() ); - break; - case FN_FileOpen: - rc_push_num( rc_intern_fileOpen( FILEOPEN_STREAM, FILEOPEN_FILENAME$, FILEOPEN_MODE ) ); - break; - case FN_FileClose: - rc_intern_fileClose( FILECLOSE_STREAM ); - break; - case FN_ReadByte: - rc_push_num( rc_intern_fileReadByte( READBYTE_STREAM ) ); - break; - case FN_WriteByte: - rc_intern_fileWriteByte( WRITEBYTE_STREAM, WRITEBYTE_BYTE ); - break; - case FN_ReadLine$: - rc_push_str( rc_intern_fileReadLine( READLINE$_STREAM ) ); - break; - case FN_Write: - rc_intern_fileWrite( WRITE_STREAM, WRITE_TXT$ ); - break; - case FN_WriteLine: - rc_intern_fileWriteLine( WRITELINE_STREAM, WRITELINE_TXT$ ); - break; - case FN_CopyFile: - rc_intern_fileCopy( COPYFILE_SRC$, COPYFILE_DST$ ); - break; - case FN_RemoveFile: - rc_push_num( rc_intern_fileDelete( REMOVEFILE_FILENAME$ ) ); - break; - case FN_FileExists: - rc_push_num( rc_intern_fileExist( FILEEXISTS_FILENAME$ ) ); - break; - case FN_MoveFile: - rc_push_num( rc_intern_fileMove( MOVEFILE_SRC$, MOVEFILE_DST$ ) ); - break; - case FN_RenameFile: - rc_push_num( rc_intern_fileRename( RENAMEFILE_SRC$, RENAMEFILE_DST$ ) ); - break; - case FN_FileLength: - rc_push_num( rc_intern_fileLength( FILELENGTH_FILENAME$ ) ); - break; - case FN_Tell: - rc_push_num( rc_intern_fileTell( TELL_STREAM ) ); - break; - case FN_Seek: - rc_push_num( rc_intern_fileSeek( SEEK_STREAM, SEEK_POS ) ); - break; - case FN_EOF: - rc_push_num( rc_intern_eof( EOF_STREAM ) ); - break; - case FN_FreeFile: - rc_push_num( rc_intern_freeFile() ); - break; - case FN_ChangeDir: - rc_intern_dirChange( CHANGEDIR_P$ ); - break; - case FN_DirExists: - rc_push_num( rc_intern_dirExist( DIREXISTS_P$ ) ); - break; - case FN_DirFirst$: - rc_push_str( rc_intern_dirFirst() ); - break; - case FN_Dir$: - rc_push_str( rc_intern_dir() ); - break; - case FN_DirNext$: - rc_push_str( rc_intern_dirNext() ); - break; - case FN_MakeDir: - rc_push_num( rc_intern_dirCreate( MAKEDIR_P$ ) ); - break; - case FN_RemoveDir: - rc_push_num( rc_intern_dirDelete( REMOVEDIR_P$ ) ); - break; - case FN_Date$: - rc_push_str( rc_intern_date() ); - break; - case FN_Easter$: - rc_push_str( rc_intern_easter(EASTER$_YEAR) ); - break; - case FN_Ticks: - rc_push_num( rc_intern_ticks() ); - break; - case FN_Time$: - rc_push_str( rc_intern_time() ); - break; - case FN_Timer: - rc_push_num( rc_intern_timer() ); - break; - case FN_Wait: - rc_intern_wait( WAIT_M_SEC ); - break; - case FN_WindowOpen: //Sub Procedure - rc_media_openWindow_hw( WINDOWOPEN_WIN, WINDOWOPEN_TITLE$, WINDOWOPEN_X, WINDOWOPEN_Y, WINDOWOPEN_W, WINDOWOPEN_H, WINDOWOPEN_FLAG, WINDOWOPEN_VSYNC); - break; - case FN_WindowClose: //Sub Procedure - rc_media_closeWindow_hw( WINDOWCLOSE_WIN ); - break; - case FN_RaiseWindow: //Sub Procedure - rc_media_raiseWindow( RAISEWINDOW_WIN ); - break; - case FN_Window: //Sub Procedure - rc_media_setActiveWindow( WINDOW_WIN ); - break; - case FN_Update: //Sub Procedure - //cout << "update call" << endl; - rc_events(); - rc_media_updateWindow_hw(); - #ifdef RC_WEB - emscripten_sleep(0); - #else - SDL_Delay(0); - #endif // RC_WEB - break; - case FN_Cls: //Sub Procedure - rc_media_cls(); - break; - case FN_SetClearColor: - rc_media_setClearColor( SETCLEARCOLOR_C ); - break; - case FN_ShowWindow: //Sub Procedure - rc_media_showWindow( SHOWWINDOW_WIN ); - break; - case FN_HideWindow: //Sub Procedure - rc_media_hideWindow( HIDEWINDOW_WIN ); - break; - case FN_SetWindowTitle: //Sub Procedure - rc_media_setWindowTitle( SETWINDOWTITLE_WIN, SETWINDOWTITLE_TITLE$ ); - break; - case FN_WindowTitle$: //String Function - rc_push_str( rc_media_getWindowTitle( WINDOWTITLE$_WIN )); - break; - case FN_SetWindowPosition: //Sub Procedure - rc_media_setWindowPosition( SETWINDOWPOSITION_WIN, SETWINDOWPOSITION_X, SETWINDOWPOSITION_Y ); - break; - case FN_GetWindowPosition: //Sub Procedure - rc_media_getWindowPosition( SETWINDOWPOSITION_WIN, &SETWINDOWPOSITION_X, &SETWINDOWPOSITION_Y ); - break; - case FN_SetWindowSize: //Sub Procedure - rc_media_setWindowSize( SETWINDOWSIZE_WIN, SETWINDOWSIZE_W, SETWINDOWSIZE_H ); - break; - case FN_GetWindowSize: //Sub Procedure - rc_media_getWindowSize( GETWINDOWSIZE_WIN, &GETWINDOWSIZE_W, &GETWINDOWSIZE_H); - break; - case FN_SetWindowMinSize: //Sub Procedure - rc_media_setWindowMinSize( SETWINDOWMINSIZE_WIN, SETWINDOWMINSIZE_W, SETWINDOWMINSIZE_H ); - break; - case FN_GetWindowMinSize: //Sub Procedure - rc_media_getWindowMinSize( GETWINDOWMINSIZE_WIN, &GETWINDOWMINSIZE_W, &GETWINDOWMINSIZE_H ); - break; - case FN_SetWindowMaxSize: //Sub Procedure - rc_media_setWindowMaxSize( SETWINDOWMAXSIZE_WIN, SETWINDOWMAXSIZE_W, SETWINDOWMAXSIZE_H ); - break; - case FN_GetWindowMaxSize: //Sub Procedure - rc_media_getWindowMaxSize( GETWINDOWMAXSIZE_WIN, &GETWINDOWMAXSIZE_W, &GETWINDOWMAXSIZE_H ); - break; - case FN_WindowIsFullscreen: //Number Function - rc_push_num( rc_media_windowIsFullscreen( WINDOWISFULLSCREEN_WIN ) ); - break; - case FN_WindowIsVisible: //Number Function - rc_push_num( rc_media_windowIsVisible( WINDOWISVISIBLE_WIN ) ); - break; - case FN_WindowIsBordered: //Number Function - rc_push_num( rc_media_windowIsBordered( WINDOWISBORDERED_WIN ) ); - break; - case FN_WindowIsResizable: //Number Function - rc_push_num( rc_media_windowIsResizable( WINDOWISRESIZABLE_WIN ) ); - break; - case FN_WindowIsMinimized: //Number Function - rc_push_num( rc_media_windowIsMinimized( WINDOWISMINIMIZED_WIN ) ); - break; - case FN_WindowIsMaximized: //Number Function - rc_push_num( rc_media_windowIsMaximized( WINDOWISMAXIMIZED_WIN ) ); - break; - case FN_WindowHasInputFocus: //Number Function - rc_push_num( rc_media_windowHasInputFocus( WINDOWHASINPUTFOCUS_WIN ) ); - break; - case FN_WindowHasMouseFocus: //Number Function - rc_push_num( rc_media_windowHasMouseFocus( WINDOWHASMOUSEFOCUS_WIN ) ); - break; - case FN_SetWindowFullscreen: //Sub Procedure - rc_media_setWindowFullscreen( SETWINDOWFULLSCREEN_WIN, SETWINDOWFULLSCREEN_FLAG ); - rc_media_cls(); - break; - case FN_MaximizeWindow: //Sub Procedure - rc_media_maximizeWindow( MAXIMIZEWINDOW_WIN ); - break; - case FN_MinimizeWindow: //Sub Procedure - rc_media_minimizeWindow( MINIMIZEWINDOW_WIN ); - break; - case FN_SetWindowBorder: //Sub Procedure - rc_media_setWindowBordered( SETWINDOWBORDER_WIN, SETWINDOWBORDER_FLAG ); - break; - case FN_WindowClip: //Sub Procedure - rc_media_getWindowClip_hw( WINDOWCLIP_SLOT, WINDOWCLIP_X, WINDOWCLIP_Y, WINDOWCLIP_W, WINDOWCLIP_H ); - break; - case FN_WindowExists: //Number Function - rc_push_num( rc_media_windowExists( WINDOWEXISTS_WIN ) ); - break; - case FN_NumWindows: //Number Function - rc_push_num( rc_media_numWindows() ); - break; - case FN_WindowEvent_Close: //Number Function - rc_push_num( rc_media_windowEvent_Close( WINDOWEVENT_CLOSE_WIN ) ); - break; - case FN_WindowEvent_Maximize: //Number Function - rc_push_num( rc_media_windowEvent_Maximize( WINDOWEVENT_MAXIMIZE_WIN ) ); - break; - case FN_WindowEvent_Minimize: //Number Function - rc_push_num( rc_media_windowEvent_Minimize( WINDOWEVENT_MINIMIZE_WIN ) ); - break; - case FN_ActiveWindow: - rc_push_num(rc_active_window); - break; - case FN_SetWindowIcon: - rc_media_setWindowIcon( SETWINDOWICON_WIN, SETWINDOWICON_SLOT ); - break; - case FN_FPS: - rc_push_num(rc_fps[rc_active_window]); - break; - case FN_CanvasOpen: //Sub Procedure - rc_media_openScreen_hw( CANVASOPEN_C_NUM, CANVASOPEN_W, CANVASOPEN_H, CANVASOPEN_VIEWPORT_X, CANVASOPEN_VIEWPORT_Y, CANVASOPEN_VIEWPORT_W, CANVASOPEN_VIEWPORT_H, CANVASOPEN_MODE); - break; - case FN_CanvasClose: //Sub Procedure - rc_media_closeScreen_hw( CANVASCLOSE_C_NUM ); - break; - case FN_SetCanvasVisible: //Sub Procedure - rc_media_setScreenVisible( SETCANVASVISIBLE_C_NUM, SETCANVASVISIBLE_FLAG ); - break; - case FN_CanvasIsVisible: //Number Function - rc_push_num( rc_media_screenIsVisible( CANVASISVISIBLE_C_NUM ) ); - break; - case FN_SetCanvasViewport: //Sub Procedure - rc_media_setScreenViewport( SETCANVASVIEWPORT_CNUM, SETCANVASVIEWPORT_X, SETCANVASVIEWPORT_Y, SETCANVASVIEWPORT_W, SETCANVASVIEWPORT_H ); - break; - case FN_GetCanvasViewport: //Sub Procedure - rc_media_getScreenViewport( GETCANVASVIEWPORT_C_NUM, &GETCANVASVIEWPORT_X, &GETCANVASVIEWPORT_Y, &GETCANVASVIEWPORT_W, &GETCANVASVIEWPORT_H ); - break; - case FN_Canvas: //Sub Procedure - rc_media_screen_hw( CANVAS_C_NUM ); - break; - case FN_SetCanvasOffset: //Sub Procedure - rc_media_screenOffset( SETCANVASOFFSET_C_NUM, SETCANVASOFFSET_X, SETCANVASOFFSET_Y ); - break; - case FN_GetCanvasOffset: //Sub Procedure - rc_media_getScreenOffset( GETCANVASOFFSET_C_NUM, &GETCANVASOFFSET_X, &GETCANVASOFFSET_Y ); - break; - case FN_GetCanvasSize: //Sub Procedure - rc_media_getScreenSize( GETCANVASSIZE_C_NUM, &GETCANVASSIZE_W, &GETCANVASSIZE_H ); - break; - case FN_ClearCanvas: //Sub Procedure - rc_media_clearScreen_hw(); - break; - case FN_SetCanvasAlpha: //Sub Procedure - rc_media_setScreenAlpha_hw( SETCANVASALPHA_C_NUM, SETCANVASALPHA_A ); - break; - case FN_CanvasAlpha: - rc_push_num(rc_media_ScreenAlpha_hw(CANVASALPHA_C_NUM)); - break; - case FN_SetCanvasBlendMode: - rc_push_num(rc_media_setScreenBlendMode_hw(SETCANVASBLENDMODE_C_NUM, SETCANVASBLENDMODE_BLEND_MODE)); - break; - case FN_CanvasBlendMode: - rc_push_num(rc_media_screenBlendMode_hw(CANVASBLENDMODE_C_NUM)); - break; - case FN_SetCanvasColorMod: - rc_push_num(rc_media_setScreenColorMod_hw(SETCANVASCOLORMOD_C_NUM, SETCANVASCOLORMOD_C)); - break; - case FN_CanvasColorMod: - rc_push_num(rc_media_screenColorMod_hw(CANVASCOLORMOD_C_NUM)); - break; - case FN_CopyCanvas: //Sub Procedure - rc_media_copyScreen_hw( COPYCANVAS_SRC, COPYCANVAS_X, COPYCANVAS_Y, COPYCANVAS_W, COPYCANVAS_H, COPYCANVAS_DST, COPYCANVAS_DX, COPYCANVAS_DY ); - break; - case FN_CloneCanvas: //Sub Procedure - rc_media_cloneScreen_hw( CLONECANVAS_SRC, CLONECANVAS_DST ); - break; - case FN_SetCanvasZ: //Sub Procedure - rc_media_setScreenZ( SETCANVASZ_C_NUM, SETCANVASZ_Z ); - break; - case FN_CanvasZ: - rc_push_num( rc_media_screenZ( CANVASZ_C_NUM) ); - break; - case FN_CanvasClip: //Sub Procedure - rc_media_getScreenClip2_hw( CANVASCLIP_SLOT, CANVASCLIP_X, CANVASCLIP_Y, CANVASCLIP_W, CANVASCLIP_H, CANVASCLIP_FLAG ); - break; - case FN_ActiveCanvas: - rc_push_num(rc_active_screen); - break; - case FN_Box: //Sub Procedure - rc_media_box_hw( BOX_X1, BOX_Y1, BOX_X2, BOX_Y2 ); - break; - case FN_BoxFill: //Sub Procedure - rc_media_boxFill_hw( BOXFILL_X1, BOXFILL_Y1, BOXFILL_X2, BOXFILL_Y2 ); - break; - case FN_Circle: //Sub Procedure - rc_media_circle_hw( CIRCLE_X, CIRCLE_Y, CIRCLE_RADIUS ); - break; - case FN_CircleFill: //Sub Procedure - rc_media_circleFill_hw( CIRCLEFILL_X, CIRCLEFILL_Y, CIRCLEFILL_RADIUS ); - break; - case FN_Ellipse: //Sub Procedure - rc_media_ellipse_hw( ELLIPSE_X, ELLIPSE_Y, ELLIPSE_RX, ELLIPSE_RY ); - break; - case FN_EllipseFill: //Sub Procedure - rc_media_ellipseFill_hw( ELLIPSEFILL_X, ELLIPSEFILL_Y, ELLIPSEFILL_RX, ELLIPSEFILL_RY ); - break; - case FN_FloodFill: //Sub Procedure - //cout << "FLOOD_X = " << FLOODFILL_X << endl; - rc_media_floodFill_hw( FLOODFILL_X, FLOODFILL_Y ); - break; - case FN_GetPixel: //Number Function - rc_push_num( rc_media_getPixel_hw( GETPIXEL_X, GETPIXEL_Y ) ); - break; - case FN_SetColor: //Sub Procedure - rc_media_ink( SETCOLOR_C ); - break; - case FN_Line: //Sub Procedure - rc_media_line_hw( LINE_X1, LINE_Y1, LINE_X2, LINE_Y2 ); - break; - case FN_Poly: //Sub Procedure - rc_media_poly( POLY_N, &POLY_X, &POLY_Y ); - break; - case FN_PolyFill: //Sub Procedure - rc_media_polyfill( POLYFILL_N, &POLYFILL_X, &POLYFILL_Y ); - break; - case FN_Rect: //Sub Procedure - rc_media_rectangle( RECT_X, RECT_Y, RECT_W, RECT_H ); - break; - case FN_RectFill: //Sub Procedure - rc_media_rectangleFill( RECTFILL_X, RECTFILL_Y, RECTFILL_W, RECTFILL_H ); - break; - case FN_RoundRect: //Sub Procedure - rc_media_roundRect( ROUNDRECT_X, ROUNDRECT_Y, ROUNDRECT_W, ROUNDRECT_H, ROUNDRECT_R); - break; - case FN_RoundRectFill: //Sub Procedure - rc_media_roundRectFill( ROUNDRECTFILL_X, ROUNDRECTFILL_Y, ROUNDRECTFILL_W, ROUNDRECTFILL_H, ROUNDRECTFILL_R ); - break; - case FN_RGB: //Sub Procedure - rc_push_num( rc_media_rgb( RGB_R, RGB_G, RGB_B ) ); - break; - case FN_RGBA: //Sub Procedure - rc_push_num( rc_media_rgba( RGBA_R, RGBA_G, RGBA_B, RGBA_A ) ); - break; - case FN_PSet: //Sub Procedure - rc_media_drawPixel_hw( PSET_X, PSET_Y ); - break; - case FN_LoadImage: //Sub Procedure - rc_media_loadImage_hw( LOADIMAGE_SLOT, LOADIMAGE_IMG$ ); - break; - case FN_LoadImage_Ex: //Sub Procedure - rc_media_loadImage_ex_hw( LOADIMAGE_EX_SLOT, LOADIMAGE_EX_IMG$, LOADIMAGE_EX_COLKEY ); - break; - case FN_ImageFromBuffer: //Sub Procedure - rc_media_createImage_hw( IMAGEFROMBUFFER_SLOT, IMAGEFROMBUFFER_W, IMAGEFROMBUFFER_H, &IMAGEFROMBUFFER_BUFFER ); - break; - case FN_ImageFromBuffer_Ex: //Sub Procedure - rc_media_createImage_Ex_hw( IMAGEFROMBUFFER_EX_SLOT, IMAGEFROMBUFFER_EX_W, IMAGEFROMBUFFER_EX_H, &IMAGEFROMBUFFER_EX_BUFFER, IMAGEFROMBUFFER_EX_COLKEY ); - break; - case FN_BufferFromImage: - rc_media_bufferFromImage(BUFFERFROMIMAGE_SLOT, &BUFFERFROMIMAGE_BUFFER); - break; - case FN_ImageExists: //Number Function - rc_push_num( rc_media_imageExist_hw( IMAGEEXISTS_SLOT ) ); - break; - case FN_ColorKey: //Sub Procedure - rc_media_colorKey_hw( COLORKEY_SLOT, COLORKEY_C ); - break; - case FN_CopyImage: //Sub Procedure - rc_media_copyImage_hw( COPYIMAGE_SRC, COPYIMAGE_DST ); - break; - case FN_DeleteImage: //Sub Procedure - rc_media_deleteImage_hw( DELETEIMAGE_SLOT ); - break; - case FN_SetImageAlpha: //Sub Procedure - rc_media_setImageAlpha_hw( SETIMAGEALPHA_SLOT, SETIMAGEALPHA_A ); - break; - case FN_ImageAlpha: //Number Function - rc_push_num( rc_media_getImageAlpha_hw( IMAGEALPHA_SLOT ) ); - break; - case FN_GetImageSize: //Sub Procedure - rc_media_getImageSize_hw( GETIMAGESIZE_SLOT, &GETIMAGESIZE_W, &GETIMAGESIZE_H ); - break; - case FN_SetImageBlendMode: - rc_push_num(rc_media_setImageBlendMode_hw(SETIMAGEBLENDMODE_SLOT, SETIMAGEBLENDMODE_BLEND_MODE)); - break; - case FN_ImageBlendMode: - rc_push_num(rc_media_imageBlendMode_hw(IMAGEBLENDMODE_SLOT)); - break; - case FN_SetImageColorMod: - rc_push_num(rc_media_setImageColorMod_hw(SETIMAGECOLORMOD_SLOT, SETIMAGECOLORMOD_C)); - break; - case FN_ImageColorMod: - rc_push_num(rc_media_imageColorMod_hw(IMAGECOLORMOD_SLOT)); - break; - case FN_DrawImage: //Sub Procedure - rc_media_drawImage_hw( DRAWIMAGE_SLOT, DRAWIMAGE_X, DRAWIMAGE_Y ); - break; - case FN_DrawImage_Blit: //Sub Procedure - rc_media_drawImage_Clip_hw( 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_Blit_Ex: //Sub Procedure - rc_media_drawImage_Blit_hw( DRAWIMAGE_BLIT_EX_SLOT, DRAWIMAGE_BLIT_EX_X, DRAWIMAGE_BLIT_EX_Y, DRAWIMAGE_BLIT_EX_W, DRAWIMAGE_BLIT_EX_H, - DRAWIMAGE_BLIT_EX_SRC_X, DRAWIMAGE_BLIT_EX_SRC_Y, DRAWIMAGE_BLIT_EX_SRC_W, DRAWIMAGE_BLIT_EX_SRC_H ); - break; - case FN_DrawImage_Rotate: //Sub Procedure - rc_media_rotateImage_hw( DRAWIMAGE_ROTATE_SLOT, DRAWIMAGE_ROTATE_X, DRAWIMAGE_ROTATE_Y, DRAWIMAGE_ROTATE_ANGLE ); - break; - case FN_DrawImage_Rotate_Ex: //Sub Procedure - rc_media_rotateImageEX_hw( DRAWIMAGE_ROTATE_EX_SLOT, DRAWIMAGE_ROTATE_EX_X, DRAWIMAGE_ROTATE_EX_Y, DRAWIMAGE_ROTATE_EX_SRC_X, DRAWIMAGE_ROTATE_EX_SRC_Y, - DRAWIMAGE_ROTATE_EX_SRC_W, DRAWIMAGE_ROTATE_EX_SRC_H, DRAWIMAGE_ROTATE_EX_ANGLE ); - break; - case FN_DrawImage_Zoom: //Sub Procedure - rc_media_zoomImage_hw( DRAWIMAGE_ZOOM_SLOT, DRAWIMAGE_ZOOM_X, DRAWIMAGE_ZOOM_Y, DRAWIMAGE_ZOOM_ZX, DRAWIMAGE_ZOOM_ZY ); - break; - case FN_DrawImage_Zoom_Ex: //Sub Procedure - rc_media_zoomImageEX_hw( DRAWIMAGE_ZOOM_EX_SLOT, DRAWIMAGE_ZOOM_EX_X, DRAWIMAGE_ZOOM_EX_Y, DRAWIMAGE_ZOOM_EX_SRC_X, DRAWIMAGE_ZOOM_EX_SRC_Y, - DRAWIMAGE_ZOOM_EX_SRC_W, DRAWIMAGE_ZOOM_EX_SRC_H, DRAWIMAGE_ZOOM_EX_ZX, DRAWIMAGE_ZOOM_EX_ZY ); - break; - case FN_DrawImage_Rotozoom: //Sub Procedure - rc_media_rotozoomImage_hw( DRAWIMAGE_ROTOZOOM_SLOT, DRAWIMAGE_ROTOZOOM_X, DRAWIMAGE_ROTOZOOM_Y, DRAWIMAGE_ROTOZOOM_ANGLE, - DRAWIMAGE_ROTOZOOM_ZX, DRAWIMAGE_ROTOZOOM_ZY ); - break; - case FN_DrawImage_Rotozoom_Ex: //Sub Procedure - rc_media_rotozoomImageEX_hw( DRAWIMAGE_ROTOZOOM_EX_SLOT, DRAWIMAGE_ROTOZOOM_EX_X, DRAWIMAGE_ROTOZOOM_EX_Y, DRAWIMAGE_ROTOZOOM_EX_SRC_X, DRAWIMAGE_ROTOZOOM_EX_SRC_Y, - DRAWIMAGE_ROTOZOOM_EX_SRC_W, DRAWIMAGE_ROTOZOOM_EX_SRC_H, DRAWIMAGE_ROTOZOOM_EX_ANGLE, DRAWIMAGE_ROTOZOOM_EX_ZX, DRAWIMAGE_ROTOZOOM_EX_ZY ); - break; - case FN_DrawImage_Flip: - rc_media_drawImage_Flip( DRAWIMAGE_FLIP_SLOT, DRAWIMAGE_FLIP_X, DRAWIMAGE_FLIP_Y, DRAWIMAGE_FLIP_H, DRAWIMAGE_FLIP_V ); - break; - case FN_DrawImage_Flip_Ex: - rc_media_drawImage_Flip_Ex(DRAWIMAGE_FLIP_EX_SLOT, DRAWIMAGE_FLIP_EX_X, DRAWIMAGE_FLIP_EX_Y, DRAWIMAGE_FLIP_EX_SRC_X, DRAWIMAGE_FLIP_EX_SRC_Y, DRAWIMAGE_FLIP_EX_SRC_W, - DRAWIMAGE_FLIP_EX_SRC_H, DRAWIMAGE_FLIP_EX_H, DRAWIMAGE_FLIP_EX_V); - break; - case FN_InKey: //Number Function - rc_push_num( rc_media_inkey() ); - break; - case FN_Key: //Number Function - rc_push_num( rc_media_key( KEY_KEY_CODE ) ); - break; - case FN_WaitKey: //Number Function - rc_push_num( rc_media_waitKey() ); - break; - case FN_HideMouse: //Sub Procedure - rc_media_hideMouse(); - break; - case FN_ShowMouse: //Sub Procedure - rc_media_showMouse(); - break; - case FN_MouseIsVisible: //Number Function - rc_push_num( rc_media_mouseIsVisible() ); - break; - case FN_GetMouse: //Sub Procedure - rc_media_getMouse( &GETMOUSE_X, &GETMOUSE_Y, &GETMOUSE_MB1, &GETMOUSE_MB2, &GETMOUSE_MB3 ); - break; - case FN_MouseX: //Number Function - rc_push_num( rc_media_mouseX() ); - break; - case FN_MouseY: //Number Function - rc_push_num( rc_media_mouseY() ); - break; - case FN_MouseButton: //Number Function - rc_push_num( rc_media_mouseButton( MOUSEBUTTON_MB ) ); - break; - case FN_GetMouseWheel: //Sub Procedure - rc_media_getMouseWheel( &GETMOUSEWHEEL_X_AXIS, &GETMOUSEWHEEL_Y_AXIS ); - break; - case FN_MouseWheelX: //Number Function - rc_push_num( rc_media_mouseWheelX() ); - break; - case FN_MouseWheelY: //Number Function - rc_push_num( rc_media_mouseWheelY() ); - break; - case FN_SoundFromBuffer: //Sub Procedure - rc_media_createSound( SOUNDFROMBUFFER_SLOT, &SOUNDFROMBUFFER_BUFFER, SOUNDFROMBUFFER_BUFFER_SIZE, SOUNDFROMBUFFER_VOL ); - break; - case FN_LoadSound: //Sub Procedure - rc_media_loadSound( LOADSOUND_SLOT, LOADSOUND_SND_FILE$ ); - break; - case FN_LoadMusic: //Sub Procedure - rc_media_loadMusic( LOADMUSIC_MUSIC_FILE$ ); - break; - case FN_PlaySound: //Sub Procedure - rc_media_playSound( PLAYSOUND_SLOT, PLAYSOUND_CHANNEL, PLAYSOUND_LOOPS ); - break; - case FN_PlaySoundTimed: //Sub Procedure - rc_media_playSoundTimed( PLAYSOUNDTIMED_SLOT, PLAYSOUNDTIMED_CHANNEL, PLAYSOUNDTIMED_LOOPS, PLAYSOUNDTIMED_MS ); - break; - case FN_PlayMusic: //Sub Procedure - rc_media_playMusic( PLAYMUSIC_MLOOPS ); - break; - case FN_PauseSound: //Sub Procedure - rc_media_pauseSound( PAUSESOUND_CHANNEL ); - break; - case FN_ResumeSound: //Sub Procedure - rc_media_resumeSound( RESUMESOUND_CHANNEL ); - break; - case FN_PauseMusic: //Sub Procedure - rc_media_pauseMusic(); - break; - case FN_ResumeMusic: //Sub Procedure - rc_media_resumeMusic(); - break; - case FN_DeleteSound: //Sub Procedure - rc_media_deleteSound( DELETESOUND_SLOT ); - break; - case FN_DeleteMusic: //Sub Procedure - rc_media_deleteMusic(); - break; - case FN_FadeMusicIn: //Sub Procedure - rc_media_fadeMusicIn( FADEMUSICIN_FADE_TIME, FADEMUSICIN_LOOPS ); - break; - case FN_FadeMusicOut: //Sub Procedure - rc_media_fadeMusicOut( FADEMUSICOUT_FADE_TIME ); - break; - case FN_MusicExists: //Number Function - rc_push_num( rc_media_musicExists() ); - break; - case FN_SetMusicVolume: //Sub Procedure - rc_media_setMusicVolume( SETMUSICVOLUME_VOL ); - break; - case FN_MusicVolume: //Number Function - rc_push_num( rc_media_getMusicVolume() ); - break; - case FN_SetMusicPosition: //Sub Procedure - rc_media_setMusicPosition( SETMUSICPOSITION_POS ); - break; - case FN_MusicPosition: //Number Function - rc_push_num( rc_media_getMusicPosition() ); - break; - case FN_RewindMusic: //Sub Procedure - rc_media_rewindMusic(); - break; - case FN_SetSoundChannels: //Sub Procedure - rc_media_setSoundChannels( SETSOUNDCHANNELS_MAX_CHANNELS ); - break; - case FN_NumSoundChannels: //Number Function - rc_push_num( rc_media_getSoundChannels() ); - break; - case FN_SoundIsEnabled: //Number Function - rc_push_num( rc_media_soundIsEnabled() ); - break; - case FN_SoundExists: //Number Function - rc_push_num( rc_media_soundExists( SOUNDEXISTS_SLOT ) ); - break; - case FN_SetChannelVolume: //Sub Procedure - rc_media_setChannelVolume( SETCHANNELVOLUME_CHANNEL, SETCHANNELVOLUME_VOL ); - break; - case FN_ChannelVolume: //Number Function - rc_push_num( rc_media_getChannelVolume( CHANNELVOLUME_CHANNEL ) ); - break; - case FN_SetSoundVolume: //Sub Procedure - rc_media_setSoundVolume( SETSOUNDVOLUME_SLOT, SETSOUNDVOLUME_VOL ); - break; - case FN_SoundVolume: //Number Function - rc_push_num( rc_media_getSoundVolume( SOUNDVOLUME_SLOT ) ); - break; - case FN_StopMusic: //Sub Procedure - rc_media_stopMusic(); - break; - case FN_StopSound: //Sub Procedure - rc_media_stopSound( STOPSOUND_CHANNEL ); - break; - case FN_ChannelIsPlaying: - rc_push_num( rc_media_channelIsPlaying( CHANNELISPLAYING_CHANNEL )); - break; - case FN_ChannelIsPaused: - rc_push_num( rc_media_channelIsPaused( CHANNELISPAUSED_CHANNEL )); - break; - case FN_SetChannelDistance: - rc_push_num( rc_media_setChannelDistance( SETCHANNELDISTANCE_CHANNEL, SETCHANNELDISTANCE_DIST_VALUE ) ); - break; - case FN_SetChannelPanning: - rc_push_num( rc_media_setChannelPanning( SETCHANNELPANNING_CHANNEL, SETCHANNELPANNING_LEFT_VALUE, SETCHANNELPANNING_RIGHT_VALUE ) ); - break; - case FN_NumJoysticks: //Number Function - rc_push_num( rc_media_numJoysticks() ); - break; - case FN_NumJoyAxes: //Number Function - rc_push_num( rc_media_numJoyAxes( NUMJOYAXES_JOY_NUM ) ); - break; - case FN_NumJoyButtons: //Number Function - rc_push_num( rc_media_numJoyButtons( NUMJOYBUTTONS_JOY_NUM ) ); - break; - case FN_NumJoyHats: //Number Function - rc_push_num( rc_media_numJoyHats( NUMJOYHATS_JOY_NUM ) ); - break; - case FN_NumJoyTrackBalls: //Number Function - rc_push_num( rc_media_numJoyTrackBalls( NUMJOYTRACKBALLS_JOY_NUM ) ); - break; - case FN_JoyAxis: //Number Function - rc_push_num( rc_media_joyAxis( JOYAXIS_JOY_NUM, JOYAXIS_JOY_AXIS ) ); - break; - case FN_JoyButton: //Number Function - rc_push_num( rc_media_joyButton( JOYBUTTON_JOY_NUM, JOYBUTTON_JOY_BUTTON ) ); - break; - case FN_JoyHat: //Number Function - rc_push_num( rc_media_joyHat( JOYHAT_JOY_NUM, JOYHAT_JOY_HAT ) ); - break; - case FN_GetJoyTrackBall: //Sub Procedure - rc_media_getJoyTrackBall( GETJOYTRACKBALL_JOY_NUM, GETJOYTRACKBALL_BALL, &GETJOYTRACKBALL_DX, &GETJOYTRACKBALL_DY ); - break; - case FN_JoyName$: //String Function - rc_push_str( rc_media_joystickName( JOYNAME$_JOY_NUM ) ); - break; - case FN_JoystickIsConnected: //Number Function - rc_push_num( rc_media_joystickIsConnected( JOYSTICKISCONNECTED_JOY_NUM ) ); - break; - case FN_GetCursor: //Sub Procedure - rc_media_getCursor( &GETCURSOR_X, &GETCURSOR_Y ); - break; - case FN_PrintS: //Sub Procedure - rc_media_printS_hw( PRINTS_TXT$ ); - break; - case FN_InputS$: //String Function - rc_push_str( rc_media_inputS_hw( INPUTS$_PROMPT$ ) ); - break; - case FN_ZoneInputS$: //String Function - rc_push_str( rc_media_ZoneInputS_hw( ZONEINPUTS$_X, ZONEINPUTS$_Y, ZONEINPUTS$_W, ZONEINPUTS$_H ) ); - break; - case FN_Locate: //Sub Procedure - rc_media_locate( LOCATE_X, LOCATE_Y ); - break; - case FN_ReadInput_Start: //Sub Procedure - rc_media_ReadInput_Start(); - break; - case FN_ReadInput_Stop: //Sub Procedure - rc_media_ReadInput_Stop(); - break; - case FN_ReadInput_Text$: //String Function - rc_push_str( rc_media_ReadInput_Text() ); - break; - case FN_ReadInput_SetText: //Sub Procedure - rc_media_ReadInput_SetText( READINPUT_SETTEXT_TXT$ ); - break; - case FN_ReadInput_ToggleBackspace: //Sub Procedure - rc_media_ReadInput_ToggleBackspace( READINPUT_TOGGLEBACKSPACE_FLAG ); - break; - case FN_LoadFont: //Sub Procedure - rc_media_LoadFont( LOADFONT_SLOT, LOADFONT_FNT_FILE$, LOADFONT_SIZE ); - break; - case FN_DeleteFont: //Sub Procedure - rc_media_DeleteFont( DELETEFONT_SLOT ); - break; - case FN_FontIsLoaded: //Number Function - rc_push_num( rc_media_fontIsLoaded( FONTISLOADED_SLOT ) ); - break; - case FN_Font: //Sub Procedure - rc_media_font( FONT_SLOT ); - break; - case FN_SetFontStyle: //Sub Procedure - rc_media_setFontStyle( SETFONTSTYLE_SLOT, SETFONTSTYLE_STYLE ); - break; - case FN_DrawText: //Sub Procedure - rc_media_drawText_hw( DRAWTEXT_TXT$, DRAWTEXT_X, DRAWTEXT_Y ); - break; - case FN_DrawText_Shaded: //Sub Procedure - rc_media_drawText_shaded_hw( DRAWTEXT_SHADED_TXT$, DRAWTEXT_SHADED_X, DRAWTEXT_SHADED_Y, DRAWTEXT_SHADED_FG_COLOR, DRAWTEXT_SHADED_BG_COLOR ); - break; - case FN_DrawText_Blended: //Sub Procedure - rc_media_drawText_blended_hw( DRAWTEXT_BLENDED_TXT$, DRAWTEXT_BLENDED_X, DRAWTEXT_BLENDED_Y ); - break; - case FN_RenderText: //Sub Procedure - rc_media_GetRenderedText_hw( RENDERTEXT_SLOT, RENDERTEXT_TXT$ ); - break; - case FN_GetTextSize: //Sub Procedure - rc_media_getTextSize( GETTEXTSIZE_SLOT, GETTEXTSIZE_TXT$, &GETTEXTSIZE_W, &GETTEXTSIZE_H ); - break; - case FN_TouchPressure: //Number Function - rc_push_num( rc_media_touchPressure() ); - break; - case FN_GetTouch: //Sub Procedure - rc_media_getTouch( &GETTOUCH_STATUS, &GETTOUCH_X, &GETTOUCH_Y, &GETTOUCH_DX, &GETTOUCH_DY ); - break; - case FN_GetMultiTouch: //Sub Procedure - rc_media_getMultiTouch( &GETMULTITOUCH_STATUS, &GETMULTITOUCH_X, &GETMULTITOUCH_Y, &GETMULTITOUCH_FINGERS, &GETMULTITOUCH_DIST, &GETMULTITOUCH_THETA ); - break; - case FN_GetTouchFinger: //Sub Procedure - rc_media_getTouchFinger( GETTOUCHFINGER_FINGER, &GETTOUCHFINGER_X, &GETTOUCHFINGER_Y, &GETTOUCHFINGER_PRESSURE ); - break; - case FN_NumFingers: //Number Function - rc_push_num( rc_media_numFingers() ); - break; - case FN_CheckSockets: - rc_push_num( rc_net_checkSockets( CHECKSOCKETS_TIMEOUT_MS ) ); - break; - case FN_TCP_SocketReady: - rc_push_num( rc_net_tcp_socketReady( TCP_SOCKETREADY_SOCKET ) ); - break; - case FN_UDP_SocketReady: - rc_push_num( rc_net_udp_socketReady( UDP_SOCKETREADY_SOCKET ) ); - break; - case FN_TCP_SocketOpen: //Number Function - rc_push_num( rc_net_tcp_openSocket(TCP_SOCKETOPEN_SOCKET, TCP_SOCKETOPEN_HOST$, TCP_SOCKETOPEN_PORT ) ); - break; - case FN_TCP_SocketClose: //Sub Procedure - rc_net_tcp_closeSocket( TCP_SOCKETCLOSE_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_SDATA$, TCP_GETDATA_NUMBYTES ) ); - break; - case FN_TCP_SendData: //Sub Procedure - rc_net_tcp_sendData( TCP_SENDDATA_SOCKET, TCP_SENDDATA_SDATA$.c_str(), TCP_SENDDATA_SDATA$.length() ); - break; - case FN_TCP_AcceptSocket: //Number Function - rc_push_num( rc_net_tcp_acceptSocket( TCP_ACCEPTSOCKET_SERVER, TCP_ACCEPTSOCKET_CLIENT ) ); - break; - case FN_UDP_SocketOpen: //Number Function - rc_push_num( rc_net_udp_openSocket( UDP_SOCKETOPEN_SOCKET, UDP_SOCKETOPEN_PORT ) ); - break; - case FN_UDP_SocketClose: //Sub Procedure - rc_push_num(rc_net_udp_closeSocket( UDP_SOCKETCLOSE_SOCKET )); - break; - case FN_UDP_GetData: //Number Function - rc_push_num( rc_net_udp_readStream( UDP_GETDATA_SOCKET, &UDP_GETDATA_SDATA$, &UDP_GETDATA_HOST$, &UDP_GETDATA_PORT ) ); - 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_media_loadVideo( LOADVIDEO_VID$ ); - break; - case FN_PlayVideo: //Sub Procedure - rc_media_playVideo( PLAYVIDEO_VLOOPS ); - break; - case FN_PauseVideo: //Sub Procedure - rc_media_pauseVideo(); - break; - case FN_StopVideo: //Sub Procedure - rc_media_stopVideo(); - break; - case FN_SetVideoPosition: //Sub Procedure - rc_media_setVideoPosition( SETVIDEOPOSITION_POS ); - break; - case FN_ResumeVideo: //Sub Procedure - rc_media_resumeVideo(); - break; - case FN_VideoPosition: //Number Function - rc_push_num( rc_media_videoPosition() ); - break; - case FN_DeleteVideo: //Sub Procedure - rc_media_deleteVideo(); - break; - case FN_VideoIsPlaying: //Number Function - rc_push_num( rc_media_videoIsPlaying() ); - break; - case FN_VideoEnd: //Number Function - rc_push_num( rc_media_videoEnd() ); - break; - case FN_GetVideoStats: //Sub Procedure - rc_media_getVideoStats( GETVIDEOSTATS_VFILE$, &GETVIDEOSTATS_VLEN, &GETVIDEOSTATS_VFPS, &GETVIDEOSTATS_FRAME_W, &GETVIDEOSTATS_FRAME_H ); - break; - case FN_SetVideoDrawRect: //Sub Procedure - rc_media_setVideoDrawRect( SETVIDEODRAWRECT_X, SETVIDEODRAWRECT_Y, SETVIDEODRAWRECT_W, SETVIDEODRAWRECT_H ); - break; - case FN_GetVideoDrawRect: //Sub Procedure - rc_media_getVideoDrawRect( &GETVIDEODRAWRECT_X, &GETVIDEODRAWRECT_Y, &GETVIDEODRAWRECT_W, &GETVIDEODRAWRECT_H ); - break; - case FN_GetVideoSize: //Sub Procedure - rc_media_getVideoSize( &GETVIDEOSIZE_W, &GETVIDEOSIZE_H ); - break; - case FN_VideoExists: //Number Function - rc_push_num( rc_media_videoExists() ); - break; - case FN_SetVideoAlpha: //Sub Procedure - rc_media_setVideoAlpha( SETVIDEOALPHA_A ); - 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$, SETENV_OVERWRITE ); - break; - case FN_PrefPath$: //String Function - rc_push_str( rc_intern_prefPath( PREFPATH$_ORG_NAME$, PREFPATH$_APP_NAME$ ) ); - break; - case FN_ClipboardText$: - rc_push_str( rc_media_getClipboardText() ); - break; - case FN_SetClipboardText: - rc_media_setClipboardText( SETCLIPBOARDTEXT_TXT$ ); - break; - case FN_HasClipboardText: - rc_push_num( rc_media_hasClipboardText() ); - break; - case FN_Android_GetExternalStoragePath$: - rc_push_str( rc_intern_android_getExternalStoragePath() ); - break; - case FN_Android_GetExternalStorageState: - rc_push_num( rc_intern_android_getExternalStorageState() ); - break; - case FN_Android_GetInternalStoragePath$: - rc_push_str( rc_intern_android_getInternalStoragePath() ); - break; - case FN_Android_JNI_Message$: - rc_push_str( rc_intern_android_jni_message( ANDROID_JNI_MESSAGE$_ARG$ )); - break; - case FN_Runtime_Utility_Message$: - rc_push_str( rc_intern_runtime_utility( RUNTIME_UTILITY_MESSAGE$_ARG$ )); - break; - case FN_GetDesktopDisplayMode: //Sub Procedure - rc_media_getDesktopDisplayMode( GETDESKTOPDISPLAYMODE_INDEX, &GETDESKTOPDISPLAYMODE_W, &GETDESKTOPDISPLAYMODE_H, &GETDESKTOPDISPLAYMODE_FREQ); - break; - case FN_DrawImage_Transform: //Sub Procedure - rc_media_drawImage_Transform(DRAWIMAGE_TRANSFORM_SLOT, DRAWIMAGE_TRANSFORM_X, DRAWIMAGE_TRANSFORM_Y, DRAWIMAGE_TRANSFORM_W, DRAWIMAGE_TRANSFORM_H, - DRAWIMAGE_TRANSFORM_SRC_X, DRAWIMAGE_TRANSFORM_SRC_Y, DRAWIMAGE_TRANSFORM_W, DRAWIMAGE_TRANSFORM_H, DRAWIMAGE_TRANSFORM_ANGLE, - DRAWIMAGE_TRANSFORM_CENTER_X, DRAWIMAGE_TRANSFORM_CENTER_Y, DRAWIMAGE_TRANSFORM_FLIP_H, DRAWIMAGE_TRANSFORM_FLIP_V); - break; - case FN_GetPowerInfo: //Sub Procedure - rc_intern_getPowerInfo(&GETPOWERINFO_STATUS, &GETPOWERINFO_SECS, &GETPOWERINFO_PCT); - break; - case FN_SystemRam: //Number Function - rc_push_num( rc_intern_systemRam() ); - break; - case FN_SetRenderScaleQuality: //Number Function - rc_push_num( rc_media_setRenderScaleQuality((int)SETRENDERSCALEQUALITY_N) ); - break; - case FN_EvalJS$: //String Function - rc_push_str( rc_intern_evalJS( EVALJS$_JS_CODE$) ); - break; - case FN_GetRenderScaleQuality: //Number Function - rc_push_num( rc_media_getRenderScaleQuality() ); - break; - case FN_GetGlobalMouse: //Sub Procedure - rc_media_getGlobalMouse(&GETGLOBALMOUSE_X, &GETGLOBALMOUSE_Y, &GETGLOBALMOUSE_MB1, &GETGLOBALMOUSE_MB2, &GETGLOBALMOUSE_MB3); - break; - case FN_GlobalMouseX: //Number Function - rc_push_num( rc_media_globalMouseX() ); - break; - case FN_GlobalMouseY: //Number Function - rc_push_num( rc_media_globalMouseY() ); - break; - case FN_GetAccel: //Sub Procedure - rc_media_getAccel( GETACCEL_ACCEL_NUM, &GETACCEL_X, &GETACCEL_Y, &GETACCEL_Z ); - break; - case FN_AccelName$: //String Function - rc_push_str( rc_media_accelName( ACCELNAME$_ACCEL_NUM ) ); - break; - case FN_NumAccels: //Number Function - rc_push_num( rc_media_numAccels() ); - break; - case FN_GetGyro: //Sub Procedure - rc_media_getGyro( GETGYRO_GYRO_NUM, &GETGYRO_X, &GETGYRO_Y, &GETGYRO_Z ); - break; - case FN_GyroName$: //String Function - rc_push_str( rc_media_gyroName( GYRONAME$_GYRO_NUM )); - break; - case FN_NumGyros: //Number Function - rc_push_num( rc_media_numGyros() ); - break; - case FN_JoyRumblePlay: //Sub Procedure - rc_media_joyRumblePlay( JOYRUMBLEPLAY_JOY_NUM, JOYRUMBLEPLAY_STRENGTH, JOYRUMBLEPLAY_DURATION ); - break; - case FN_JoyRumbleStop: //Sub Procedure - rc_media_joyRumbleStop( JOYRUMBLESTOP_JOY_NUM ); - break; - case FN_JoystickIsHaptic: //Number Function - rc_push_num( rc_media_joystickIsHaptic( JOYSTICKISHAPTIC_JOY_NUM ) ); - 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_WindowEvent_Resize: //Number Function - rc_push_num( rc_media_windowEvent_Resize( WINDOWEVENT_RESIZE_WIN ) ); - break; - case FN_SetWindowAutoClose: //Sub Procedure - rc_media_windowEvent_setExitOnClose( SETWINDOWAUTOCLOSE_WIN, SETWINDOWAUTOCLOSE_EXIT_ON_CLOSE ); - break; - case FN_SetWindowResizable: - rc_media_setWindowResizable(SETWINDOWRESIZABLE_WIN, SETWINDOWRESIZABLE_FLAG); - break; - case FN_SystemReturnStdOut$: - rc_push_str( rc_intern_sysReturnOutput(SYSTEMRETURNSTDOUT$_CMD$) ); - break; - case FN_WindowMode: - rc_push_num( rc_media_windowMode(WINDOWMODE_VISIBLE, WINDOWMODE_FULLSCREEN, WINDOWMODE_RESIZABLE, WINDOWMODE_BORDERLESS, WINDOWMODE_HIGHDPI) ); - break; - case FN_WindowFlags: - rc_push_num( rc_media_windowFlags(WINDOWFLAGS_WIN) ); - break; - case FN_RestoreWindow: - rc_media_restoreWindow(RESTOREWINDOW_WIN); - break; - case FN_UpdateAllWindows: - rc_events(); - rc_media_updateAllWindow_hw(); - #ifdef RC_WEB - emscripten_sleep(0); - #else - SDL_Delay(0); - #endif // RC_WEB - break; - case FN_QueryAudioSpec: - rc_push_num( rc_media_queryAudioSpec(&QUERYAUDIOSPEC_FREQ, &QUERYAUDIOSPEC_FORMAT, &QUERYAUDIOSPEC_CHANNELS) ); - break; - case FN_MusicIsPlaying: - rc_push_num( rc_media_musicIsPlaying() ); - break; - case FN_DrawGeometry: //Number Function - #ifdef RC_WEB - rc_push_num(0); - #else - rc_push_num( rc_media_drawGeometry(DRAWGEOMETRY_SLOT, DRAWGEOMETRY_NUM_VERTICES, &DRAWGEOMETRY_VERTICES, DRAWGEOMETRY_NUM_INDICES, &DRAWGEOMETRY_INDICES) ); - #endif // RC_WEB - 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_GrabInput: //Sub Procedure - rc_media_grabInput(GRABINPUT_FLAG); - break; - case FN_GrabbedWindow: //Number Function - rc_push_num( rc_media_grabbedWindow() ); - break; - case FN_WarpMouse: //Sub Procedure - rc_media_warpMouse(WARPMOUSE_X, WARPMOUSEGLOBAL_Y); - break; - case FN_WarpMouseGlobal: //Sub Procedure - rc_media_warpMouseGlobal(WARPMOUSEGLOBAL_X, WARPMOUSEGLOBAL_Y); - break; - case FN_SetMouseZone: //Sub Procedure - rc_media_setMouseZone(SETMOUSEZONE_X, SETMOUSEZONE_Y, SETMOUSEZONE_W, SETMOUSEZONE_H); - break; - case FN_ClearMouseZone: //Sub Procedure - rc_media_clearMouseZone(); - break; - case FN_SetWindowAlwaysOnTop: //Sub Procedure - rc_media_setWindowAlwaysOnTop(SETWINDOWALWAYSONTOP_WIN, SETWINDOWALWAYSONTOP_FLAG); - break; - case FN_SetMouseRelative: //Sub Procedure - rc_media_setMouseRelative(SETMOUSERELATIVE_FLAG); - break; - case FN_SetWindowVSync: //Sub Procedure - rc_media_setWindowVSync(SETWINDOWVSYNC_WIN, SETWINDOWVSYNC_FLAG); - break; - case FN_OpenURL: //Number Function - rc_push_num( rc_media_openURL(OPENURL_URL$)); - break; - case FN_APIVersion$: //String Function - rc_push_str( rc_media_APIVersion() ); - break; - case FN_FlashWindow: //Number Function - rc_push_num( rc_media_flashWindow(FLASHWINDOW_WIN)); - break; - case FN_MessageBox: //Number Function - rc_push_num( rc_media_messageBox(MESSAGEBOX_TITLE$, MESSAGEBOX_MSG$)); - 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_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_Runtime$: //String Function - rc_push_str( rcbasic_runtime_path ); - break; - - - case FN_DimMatrix: //Sub Procedure - if(rc_active_matrix_process < 0) - DimMatrix(DIMMATRIX_M, DIMMATRIX_M_ROWS, DIMMATRIX_M_COLS, DIMMATRIX_PRESERVE_FLAG); - else - ProcessQueueMatrixOp(FN_DimMatrix, DIMMATRIX_M, DIMMATRIX_M_ROWS, DIMMATRIX_M_COLS, DIMMATRIX_PRESERVE_FLAG); - break; - case FN_AddMatrix: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(AddMatrix(ADDMATRIX_MA, ADDMATRIX_MB, ADDMATRIX_MC)); - else - { - ProcessQueueMatrixOp(FN_AddMatrix, ADDMATRIX_MA, ADDMATRIX_MB, ADDMATRIX_MC); - rc_push_num(1); - } - break; - case FN_AugmentMatrix: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(AugmentMatrix(AUGMENTMATRIX_MA, AUGMENTMATRIX_MB, AUGMENTMATRIX_MC)); - else - { - ProcessQueueMatrixOp(FN_AugmentMatrix, AUGMENTMATRIX_MA, AUGMENTMATRIX_MB, AUGMENTMATRIX_MC); - rc_push_num(1); - } - break; - case FN_CopyMatrix: //Sub Procedure - if(rc_active_matrix_process < 0) - CopyMatrix(COPYMATRIX_MA, COPYMATRIX_MB); - else - ProcessQueueMatrixOp(FN_CopyMatrix, COPYMATRIX_MA, COPYMATRIX_MB); - break; - case FN_InsertMatrixColumns: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(InsertMatrixColumn(INSERTMATRIXCOLUMNS_MA, INSERTMATRIXCOLUMNS_C, INSERTMATRIXCOLUMNS_NUM_COLS)); - else - { - ProcessQueueMatrixOp(FN_InsertMatrixColumns, INSERTMATRIXCOLUMNS_MA, INSERTMATRIXCOLUMNS_C, INSERTMATRIXCOLUMNS_NUM_COLS); - rc_push_num(1); - } - break; - case FN_InsertMatrixRows: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(InsertMatrixRow(INSERTMATRIXROWS_MA, INSERTMATRIXROWS_R, INSERTMATRIXROWS_NUM_ROWS)); - else - { - ProcessQueueMatrixOp(FN_InsertMatrixRows, INSERTMATRIXROWS_MA, INSERTMATRIXROWS_R, INSERTMATRIXROWS_NUM_ROWS); - rc_push_num(1); - } - break; - case FN_MultiplyMatrix: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(MultiplyMatrix(MULTIPLYMATRIX_MA, MULTIPLYMATRIX_MB, MULTIPLYMATRIX_MC)); - else - { - ProcessQueueMatrixOp(FN_MultiplyMatrix, MULTIPLYMATRIX_MA, MULTIPLYMATRIX_MB, MULTIPLYMATRIX_MC); - rc_push_num(1); - } - break; - case FN_CubeMatrix: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(CubeMatrix(CUBEMATRIX_MA, CUBEMATRIX_MB, rc_active_matrix_process)); - else - { - ProcessQueueMatrixOp(FN_CubeMatrix, CUBEMATRIX_MA, CUBEMATRIX_MB); - rc_push_num(1); - } - break; - case FN_DeleteMatrixColumns: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(DeleteMatrixColumns(DELETEMATRIXCOLUMNS_MA, DELETEMATRIXCOLUMNS_C, DELETEMATRIXCOLUMNS_NUM_COLS, rc_active_matrix_process)); - else - { - ProcessQueueMatrixOp(FN_DeleteMatrixColumns, DELETEMATRIXCOLUMNS_MA, DELETEMATRIXCOLUMNS_C, DELETEMATRIXCOLUMNS_NUM_COLS); - rc_push_num(1); - } - break; - case FN_DeleteMatrixRows: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(DeleteMatrixRows(DELETEMATRIXROWS_MA, DELETEMATRIXROWS_R, DELETEMATRIXROWS_NUM_ROWS)); - else - { - ProcessQueueMatrixOp(FN_DeleteMatrixRows, DELETEMATRIXROWS_MA, DELETEMATRIXROWS_R, DELETEMATRIXROWS_NUM_ROWS); - rc_push_num(1); - } - break; - case FN_ClearMatrix: //Sub Procedure - if(rc_active_matrix_process < 0) - ClearMatrix(CLEARMATRIX_MA); - else - ProcessQueueMatrixOp(FN_ClearMatrix, CLEARMATRIX_MA); - break; - case FN_ClearMatrixColumns: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(ClearMatrixColumns(CLEARMATRIXCOLUMNS_MA, CLEARMATRIXCOLUMNS_C, CLEARMATRIXCOLUMNS_NUM_COLS)); - else - { - ProcessQueueMatrixOp(FN_ClearMatrixColumns, CLEARMATRIXCOLUMNS_MA, CLEARMATRIXCOLUMNS_C, CLEARMATRIXCOLUMNS_NUM_COLS); - rc_push_num(1); - } - break; - case FN_ClearMatrixRows: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(ClearMatrixRows(CLEARMATRIXROWS_MA, CLEARMATRIXROWS_R, CLEARMATRIXROWS_NUM_ROWS)); - else - { - ProcessQueueMatrixOp(FN_ClearMatrixRows, CLEARMATRIXROWS_MA, CLEARMATRIXROWS_R, CLEARMATRIXROWS_NUM_ROWS); - rc_push_num(1); - } - break; - case FN_FillMatrix: //Sub Procedure - if(rc_active_matrix_process < 0) - FillMatrix(FILLMATRIX_MA, FILLMATRIX_V); - else - ProcessQueueMatrixOp(FN_FillMatrix, FILLMATRIX_MA, FILLMATRIX_V); - break; - case FN_FillMatrixColumns: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(FillMatrixColumns(FILLMATRIXCOLUMNS_MA, FILLMATRIXCOLUMNS_C, FILLMATRIXCOLUMNS_NUM_COLS, FILLMATRIXCOLUMNS_V)); - else - { - ProcessQueueMatrixOp(FN_FillMatrixColumns, FILLMATRIXCOLUMNS_MA, FILLMATRIXCOLUMNS_C, FILLMATRIXCOLUMNS_NUM_COLS, FILLMATRIXCOLUMNS_V); - rc_push_num(1); - } - break; - case FN_FillMatrixRows: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(FillMatrixRows(FILLMATRIXROWS_MA, FILLMATRIXROWS_R, FILLMATRIXROWS_NUM_ROWS, FILLMATRIXROWS_V)); - else - { - ProcessQueueMatrixOp(FN_FillMatrixRows, FILLMATRIXROWS_MA, FILLMATRIXROWS_R, FILLMATRIXROWS_NUM_ROWS, FILLMATRIXROWS_V); - rc_push_num(1); - } - break; - case FN_CopyMatrixColumns: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(GetMatrixColumns(COPYMATRIXCOLUMNS_MA, COPYMATRIXCOLUMNS_MB, COPYMATRIXCOLUMNS_C, COPYMATRIXCOLUMNS_NUM_COLS)); - else - { - ProcessQueueMatrixOp(FN_CopyMatrixColumns, COPYMATRIXCOLUMNS_MA, COPYMATRIXCOLUMNS_MB, COPYMATRIXCOLUMNS_C, COPYMATRIXCOLUMNS_NUM_COLS); - rc_push_num(1); - } - break; - case FN_CopyMatrixRows: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(GetMatrixRows(COPYMATRIXROWS_MA, COPYMATRIXROWS_MB, COPYMATRIXROWS_R, COPYMATRIXROWS_NUM_ROWS)); - else - { - ProcessQueueMatrixOp(FN_CopyMatrixRows, COPYMATRIXROWS_MA, COPYMATRIXROWS_MB, COPYMATRIXROWS_R, COPYMATRIXROWS_NUM_ROWS); - rc_push_num(1); - } - break; - case FN_IdentityMatrix: //Sub Procedure - if(rc_active_matrix_process < 0) - IdentityMatrix(IDENTITYMATRIX_MA, IDENTITYMATRIX_N); - else - ProcessQueueMatrixOp(FN_IdentityMatrix, IDENTITYMATRIX_MA, IDENTITYMATRIX_N); - break; - case FN_SolveMatrix: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(SolveMatrix(SOLVEMATRIX_MA, SOLVEMATRIX_MB, SOLVEMATRIX_MC)); - else - { - ProcessQueueMatrixOp(FN_SolveMatrix, SOLVEMATRIX_MA, SOLVEMATRIX_MB, SOLVEMATRIX_MC); - rc_push_num(1); - } - break; - - //MAIN THREAD ONLY - case FN_IsEqualMatrix: //Number Function - rc_push_num(IsEqualMatrix(ISEQUALMATRIX_MA, ISEQUALMATRIX_MB, ISEQUALMATRIX_TOLERANCE)); - break; - - //MAIN THREAD ONLY - case FN_Determinant: //Number Function - rc_push_num(Determinant(DETERMINANT_MA)); - break; - - case FN_AdjointMatrix: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(AdjointMatrix(ADJOINTMATRIX_MA, ADJOINTMATRIX_MB)); - else - { - ProcessQueueMatrixOp(FN_AdjointMatrix, ADJOINTMATRIX_MA, ADJOINTMATRIX_MB); - rc_push_num(1); - } - break; - case FN_InvertMatrix: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(InvertMatrix(INVERTMATRIX_MA, INVERTMATRIX_MB)); - else - { - ProcessQueueMatrixOp(FN_InvertMatrix, INVERTMATRIX_MA, INVERTMATRIX_MB); - rc_push_num(1); - } - break; - - //MAIN THREAD ONLY - case FN_MatrixFromBuffer: //Sub Procedure - MatrixFromBuffer(MATRIXFROMBUFFER_MA, MATRIXFROMBUFFER_R, MATRIXFROMBUFFER_C, &MATRIXFROMBUFFER_BUFFER); - break; - - //MAIN THREAD ONLY - case FN_GetMatrix: //Sub Procedure - BufferFromMatrix(&GETMATRIX_BUFFER, GETMATRIX_MA); - break; - - case FN_RandomizeMatrix: //Sub Procedure - if(rc_active_matrix_process < 0) - RandomizeMatrix(RANDOMIZEMATRIX_MA, RANDOMIZEMATRIX_VMIN, RANDOMIZEMATRIX_VMAX); - else - ProcessQueueMatrixOp(FN_RandomizeMatrix, RANDOMIZEMATRIX_MA, RANDOMIZEMATRIX_VMIN, RANDOMIZEMATRIX_VMAX); - break; - - //MAIN THREAD ONLY - case FN_MatrixValue: //Number Function - rc_push_num(MatrixValue(MATRIXVALUE_MA, MATRIXVALUE_R, MATRIXVALUE_C)); - break; - - case FN_SetMatrixValue: //Sub Procedure - if(rc_active_matrix_process < 0) - SetMatrixValue(SETMATRIXVALUE_MA, SETMATRIXVALUE_R, SETMATRIXVALUE_C, SETMATRIXVALUE_V); - else - ProcessQueueMatrixOp(FN_SetMatrixValue, SETMATRIXVALUE_MA, SETMATRIXVALUE_R, SETMATRIXVALUE_C, SETMATRIXVALUE_V); - break; - case FN_ScalarMatrix: //Sub Procedure - if(rc_active_matrix_process < 0) - ScalarMatrix(SCALARMATRIX_MA, SCALARMATRIX_MB, SCALARMATRIX_S_VALUE); - else - ProcessQueueMatrixOp(FN_ScalarMatrix, SCALARMATRIX_MA, SCALARMATRIX_MB, SCALARMATRIX_S_VALUE); - break; - case FN_ScalarMatrixColumns: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(ScalarMatrixColumns(SCALARMATRIXCOLUMNS_MA, SCALARMATRIXCOLUMNS_MB, SCALARMATRIXCOLUMNS_C, SCALARMATRIXCOLUMNS_NUM_COLS, SCALARMATRIXCOLUMNS_S_VALUE)); - else - { - ProcessQueueMatrixOp(FN_ScalarMatrixColumns, SCALARMATRIXCOLUMNS_MA, SCALARMATRIXCOLUMNS_MB, SCALARMATRIXCOLUMNS_C, SCALARMATRIXCOLUMNS_NUM_COLS, SCALARMATRIXCOLUMNS_S_VALUE); - rc_push_num(1); - } - break; - case FN_ScalarMatrixRows: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(ScalarMatrixRows(SCALARMATRIXROWS_MA, SCALARMATRIXROWS_MB, SCALARMATRIXROWS_R, SCALARMATRIXROWS_NUM_ROWS, SCALARMATRIXROWS_S_VALUE)); - else - { - ProcessQueueMatrixOp(FN_ScalarMatrixRows, SCALARMATRIXROWS_MA, SCALARMATRIXROWS_MB, SCALARMATRIXROWS_R, SCALARMATRIXROWS_NUM_ROWS, SCALARMATRIXROWS_S_VALUE); - rc_push_num(1); - } - break; - case FN_SquareMatrix: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(SquareMatrix(SQUAREMATRIX_MA, SQUAREMATRIX_MB)); - else - { - ProcessQueueMatrixOp(FN_SquareMatrix, SQUAREMATRIX_MA, SQUAREMATRIX_MB); - rc_push_num(1); - } - break; - case FN_SubMatrix: //Sub Procedure - if(rc_active_matrix_process < 0) - SubMatrix(SUBMATRIX_MA, SUBMATRIX_R, SUBMATRIX_C); - else - ProcessQueueMatrixOp(FN_SubMatrix, SUBMATRIX_MA, SUBMATRIX_R, SUBMATRIX_C); - break; - case FN_SubtractMatrix: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(SubtractMatrix(SUBTRACTMATRIX_MA, SUBTRACTMATRIX_MB, SUBTRACTMATRIX_MC)); - else - { - ProcessQueueMatrixOp(FN_SubtractMatrix, SUBTRACTMATRIX_MA, SUBTRACTMATRIX_MB, SUBTRACTMATRIX_MC); - rc_push_num(1); - } - break; - case FN_SwapMatrix: //Sub Procedure - if(rc_active_matrix_process < 0) - SwapMatrix(SWAPMATRIX_MA, SWAPMATRIX_MB, rc_active_matrix_process); - else - ProcessQueueMatrixOp(FN_SwapMatrix, SWAPMATRIX_MA, SWAPMATRIX_MB); - break; - case FN_SwapMatrixColumn: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(SwapMatrixColumn(SWAPMATRIXCOLUMN_MA, SWAPMATRIXCOLUMN_C1, SWAPMATRIXCOLUMN_C2)); - else - { - ProcessQueueMatrixOp(FN_SwapMatrixColumn, SWAPMATRIXCOLUMN_MA, SWAPMATRIXCOLUMN_C1, SWAPMATRIXCOLUMN_C2); - rc_push_num(1); - } - break; - case FN_SwapMatrixRow: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(SwapMatrixRow(SWAPMATRIXROW_MA, SWAPMATRIXROW_R1, SWAPMATRIXROW_R2)); - else - { - ProcessQueueMatrixOp(FN_SwapMatrixRow, SWAPMATRIXROW_MA, SWAPMATRIXROW_R1, SWAPMATRIXROW_R2); - rc_push_num(1); - } - break; - case FN_TransposeMatrix: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(TransposeMatrix(TRANSPOSEMATRIX_MA, TRANSPOSEMATRIX_MB)); - else - { - ProcessQueueMatrixOp(FN_TransposeMatrix, TRANSPOSEMATRIX_MA, TRANSPOSEMATRIX_MB); - rc_push_num(1); - } - break; - case FN_UnAugmentMatrix: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(UnAugmentMatrix(UNAUGMENTMATRIX_MA, UNAUGMENTMATRIX_MB, UNAUGMENTMATRIX_MC)); - else - { - ProcessQueueMatrixOp(FN_UnAugmentMatrix, UNAUGMENTMATRIX_MA, UNAUGMENTMATRIX_MB, UNAUGMENTMATRIX_MC); - rc_push_num(1); - } - break; - case FN_ZeroMatrix: //Sub Procedure - if(rc_active_matrix_process < 0) - ZeroMatrix(ZEROMATRIX_MA); - else - ProcessQueueMatrixOp(FN_ZeroMatrix, ZEROMATRIX_MA); - break; - - //MAIN THREAD ONLY - case FN_GetMatrixSize: //Sub Procedure - GetMatrixSize(GETMATRIXSIZE_MA, &GETMATRIXSIZE_R, &GETMATRIXSIZE_C); - break; - - case FN_SetMatrixProcess: //Number Function - rc_push_num(rc_setMatrixProcess(SETMATRIXPROCESS_P_NUM)); - break; - case FN_ProcessOpen: //Number Function - rc_push_num(rc_processOpen(PROCESSOPEN_P_NUM)); - break; - case FN_SetProcessErrorMode: //Sub Procedure - rc_setProcessErrorMode(SETPROCESSERRORMODE_P_NUM, SETPROCESSERRORMODE_ERROR_MODE); - break; - case FN_ProcessError: //Number Function - rc_push_num(ProcessError(PROCESSERROR_P_NUM)); - break; - case FN_ProcessWait: //Sub Procedure - ProcessWait(PROCESSWAIT_P_NUM); - break; - case FN_ProcessWaitAll: //Sub Procedure - ProcessWaitAll(); - break; - case FN_ProcessContinue: //Sub Procedure - ProcessContinue(PROCESSCONTINUE_P_NUM); - break; - case FN_ProcessStop: //Sub Procedure - ProcessStop(PROCESSSTOP_P_NUM); - break; - case FN_ProcessClear: //Sub Procedure - ProcessClear(PROCESSCLEAR_P_NUM); - break; - case FN_ProcessClose: //Number Function - rc_push_num(ProcessClose(PROCESSCLOSE_P_NUM)); - break; - case FN_ProcessErrorMode: //Number Function - rc_push_num(ProcessErrorMode(PROCESSERRORMODE_P_NUM)); - break; - case FN_ProcessSleep: //Sub Procedure - ProcessSleep(PROCESSSLEEP_P_NUM, PROCESSSLEEP_MSEC); - break; - case FN_ProcessExists: //Number Function - rc_push_num(ProcessExists(PROCESSEXISTS_P_NUM)); - break; - case FN_ProcessStopAll: //Sub Procedure - ProcessStopAll(); - break; - case FN_ProcessContinueAll: //Sub Procedure - ProcessContinueAll(); - break; - case FN_ProcessQueueSize: //Number Function - rc_push_num(ProcessQueueSize(PROCESSQUEUESIZE_P_NUM)); - break; - case FN_NumCPUs: //Number Function - rc_push_num(NumCPUs()); - break; - case FN_GetProjectionGeometry: //Sub Procedure - rc_GetProjectionGeometry(GETPROJECTIONGEOMETRY_CAM_DIST, GETPROJECTIONGEOMETRY_MA, GETPROJECTIONGEOMETRY_F_VERTEX_COUNT, &GETPROJECTIONGEOMETRY_COLUMNS, &GETPROJECTIONGEOMETRY_UV, - GETPROJECTIONGEOMETRY_GRAPH_OFFSET_X, GETPROJECTIONGEOMETRY_GRAPH_OFFSET_Y, GETPROJECTIONGEOMETRY_V_COLOR, - &GETPROJECTIONGEOMETRY_VERTEX_COUNT, &GETPROJECTIONGEOMETRY_VERTEX2D, &GETPROJECTIONGEOMETRY_INDEX_COUNT, &GETPROJECTIONGEOMETRY_INDEX, - &GETPROJECTIONGEOMETRY_CLIP_DIST, &GETPROJECTIONGEOMETRY_MIN_X, &GETPROJECTIONGEOMETRY_MIN_Y, &GETPROJECTIONGEOMETRY_MAX_X, &GETPROJECTIONGEOMETRY_MAX_Y); - break; - case FN_CalculateFaceZ: //Number Function - rc_push_num( CalculateFaceZ(CALCULATEFACEZ_CAM_DIST, CALCULATEFACEZ_GRAPH_OFFSET_X, CALCULATEFACEZ_GRAPH_OFFSET_Y, CALCULATEFACEZ_VIEW_W, CALCULATEFACEZ_VIEW_H, CALCULATEFACEZ_VIEW_DEPTH, - CALCULATEFACEZ_MA, CALCULATEFACEZ_F_VERTEX_COUNT, &CALCULATEFACEZ_COLUMNS, &CALCULATEFACEZ_FACE_MIN_Z, &CALCULATEFACEZ_FACE_MAX_Z, &CALCULATEFACEZ_Z_AVG)); - break; - case FN_SetChannelSpacePosition: //Number Function - rc_push_num(rc_media_setChannelSpacePosition(SETCHANNELSPACEPOSITION_CHANNEL, SETCHANNELSPACEPOSITION_ANGLE, SETCHANNELSPACEPOSITION_DISTANCE)); - break; - case FN_SaveBMP: //Number Function - rc_push_num(SaveBMP(SAVEBMP_IMG, SAVEBMP_FILE$)); - break; - case FN_SavePNG: //Number Function - rc_push_num(SavePNG(SAVEPNG_IMG, SAVEPNG_FILE$)); - break; - case FN_SaveJPG: //Number Function - rc_push_num(SaveJPG(SAVEJPG_IMG, SAVEJPG_FILE$)); - 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_IncrementMatrixRows: //Sub Procedure - IncrementMatrixRows(INCREMENTMATRIXROWS_MA, INCREMENTMATRIXROWS_MB, INCREMENTMATRIXROWS_R, INCREMENTMATRIXROWS_NUM_ROWS, INCREMENTMATRIXROWS_VALUE); - break; - case FN_IncrementMatrixColumns: //Sub Procedure - IncrementMatrixColumns(INCREMENTMATRIXCOLUMNS_MA, INCREMENTMATRIXCOLUMNS_MB, INCREMENTMATRIXCOLUMNS_C, INCREMENTMATRIXCOLUMNS_NUM_COLS, INCREMENTMATRIXCOLUMNS_VALUE); - break; - case FN_JoinMatrixRows: //Sub Procedure - JoinMatrixRows(JOINMATRIXROWS_MA, JOINMATRIXROWS_MB, JOINMATRIXROWS_MC); - break; - case FN_JoinMatrixColumns: //Sub Procedure - JoinMatrixColumns(JOINMATRIXCOLUMNS_MA, JOINMATRIXCOLUMNS_MB, JOINMATRIXCOLUMNS_MC); - 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 - //cout << "TAS: " << TYPEARRAYCOPY_SRC->uid_value.size() << endl; - //cout << "TAD: " << TYPEARRAYCOPY_DST->uid_value.size() << endl; - rc_free_type(TYPEARRAYCOPY_DST); //cout << "TA[2]: " << TYPEARRAYCOPY_DST->uid_value.size() << endl; - rc_type_array_copy( TYPEARRAYCOPY_SRC, TYPEARRAYCOPY_DST ); - break; - case FN_TypeArrayFill: //Sub Procedure - //cout << "test type fill" << endl; - rc_type_array_fill( TYPEARRAYFILL_SRC, &TYPEARRAYFILL_FDATA ); - break; - - + #include "rc_func130_cases.h" } } @@ -6036,16 +4315,18 @@ bool rcbasic_run() } void rcbasic_init() -{ - for(int i = 0; i < RC_MAX_FILES; i++) - rc_fstream[i] = NULL; - rc_media_init(); +{ + rc_audio_init(); + rc_gfx_init(); + rc_net_init(); arr_ref_id.clear(); } void rcbasic_clean() -{ - rc_media_quit(); +{ + rc_audio_quit(); + rc_net_quit(); + rc_gfx_quit(); byref_addr_table.empty(); loop_stack.empty(); n_stack.empty(); @@ -6091,13 +4372,13 @@ int main(int argc, char * argv[]) #ifdef RC_GETCWD char buf[2048]; getcwd(buf, 2048); - rc_dir_path = (string)buf; + rc_dir_path = (std::string)buf; #else rc_dir_path = get_current_dir_name(); #endif #endif // RC_WINDOWS - string rc_filename = "main.cbc"; + std::string rc_filename = "main.cbc"; if(argc > 1) rc_filename = argv[1]; @@ -6131,13 +4412,13 @@ int main(int argc, char * argv[]) if(argc >1) { rc_cmd_count = argc - 1; - rc_cmd_args = new string[rc_cmd_count]; + rc_cmd_args = new std::string[rc_cmd_count]; for(int i = 1; i < argc; i++) rc_cmd_args[i-1] = argv[i]; } rcbasic_init(); - rc_initSubprocessSystem(); + //rc_initSubprocessSystem(); if(rc_filename.length()>=4) { @@ -6191,8 +4472,10 @@ int main(int argc, char * argv[]) else cout << "++Could not load rcbasic program" << endl; - rc_cleanSubprocessSystem(); - rcbasic_clean(); + //rc_cleanSubprocessSystem(); + + rcbasic_clean(); + exit(rcbasic_exit_code); //cout << "Hello world!" << endl; diff --git a/rcbasic_runtime/rc_audio.h b/rcbasic_runtime/rc_audio.h new file mode 100644 index 0000000..cd72cdb --- /dev/null +++ b/rcbasic_runtime/rc_audio.h @@ -0,0 +1,391 @@ +#ifndef RC_AUDIO_H_INCLUDED +#define RC_AUDIO_H_INCLUDED + +#include +#include "rc_os_defines.h" + +#ifdef RC_ANDROID +#define RC_MOBILE +#endif + +#ifdef RC_IOS +#define RC_MOBILE +#endif + + +#ifdef RC_ANDROID + +#include +//Using SDL and standard IO +#include +#include +#include +#include "SDL.h" +#include "SDL_mixer.h" + +#else + +#ifdef RC_IOS + +//Using SDL and standard IO +#include +#include +#include +#include "SDL2/SDL.h" +#include "SDL2/SDL_mixer.h" + +#else +//Using SDL and standard IO +#include +#include +#include +#include +#include +#include + +#endif //RC_IOS + +#endif // RC_ANDROID + +using namespace std; + +#ifdef RC_MOBILE +//Screen dimension constants +const int MAX_SOUNDS = 1024; +const int MAX_MUSIC = 1; +#else +//Screen dimension constants +const int MAX_SOUNDS = 1024; +const int MAX_MUSIC = 1; +#endif // RC_MOBILE + +struct rc_sound_obj +{ + Mix_Chunk * sound; + bool active = false; +}; + +std::vector rc_sound; + +Mix_Music * rc_music; + + +bool rc_audio_init() +{ + if(Mix_OpenAudio(MIX_DEFAULT_FREQUENCY, MIX_DEFAULT_FORMAT, 2, 2048) < 0) + { + cout << "OpenAudio Error: " << Mix_GetError() << endl; + return false; + } + return true; +} + +void rc_audio_quit() +{ + for(int i = 0; i < rc_sound.size(); i++) + { + if(rc_sound[i].sound != NULL) + Mix_FreeChunk(rc_sound[i].sound); + rc_sound[i].sound = NULL; + } + if(rc_music != NULL) + Mix_FreeMusic(rc_music); + rc_music = NULL; + Mix_Quit(); +} + +int rc_queryAudioSpec(double * freq, double * format, double * channels) +{ + //need to do something here + int qa_freq = 0; + Uint16 qa_format = 0; + int qa_channels = 0; + int result = Mix_QuerySpec(&qa_freq, &qa_format, &qa_channels); + *freq = (double)qa_freq; + *format = (double)qa_format; + *channels = (double)qa_channels; + return result; +} + +int rc_loadSound(std::string fname) +{ + int id = -1; + for(int i = 0; i < rc_sound.size(); i++) + { + if(!rc_sound[i].active) + { + id = i; + break; + } + } + + if(id < 0) + { + rc_sound_obj obj; + id = rc_sound.size(); + rc_sound.push_back(obj); + } + + + rc_sound[id].sound = Mix_LoadWAV(fname.c_str()); + if(rc_sound[id].sound == NULL) + { + std::cout << "Could not load sound: " << Mix_GetError() << std::endl; + return -1; + } + + rc_sound[id].active = true; + + return id; +} + +int rc_createSound(double * abuf, Uint32 alen, Uint8 volume) +{ + int id = -1; + for(int i = 0; i < rc_sound.size(); i++) + { + if(!rc_sound[i].active) + { + id = i; + break; + } + } + + if(id < 0) + { + rc_sound_obj obj; + id = rc_sound.size(); + rc_sound.push_back(obj); + } + rc_sound[id].sound = (Mix_Chunk*)SDL_malloc(sizeof(Mix_Chunk)); + rc_sound[id].sound->allocated = 1; + rc_sound[id].sound->abuf = (Uint8*)SDL_malloc(sizeof(Uint8)*alen); + + for(int i = 0; i < alen; i++) + rc_sound[id].sound->abuf[i] = (Uint8)abuf[i]; + + rc_sound[id].sound->alen = alen; + rc_sound[id].sound->volume = volume; + + rc_sound[id].active = true; + return id; +} + +void rc_loadMusic(std::string fname) +{ + if(rc_music != NULL) + { + Mix_FreeMusic(rc_music); + } + rc_music = Mix_LoadMUS(fname.c_str()); + if(rc_music == NULL) + { + std::cout << "Could not load music: " << Mix_GetError() << std::endl; + return; + } +} + +void rc_deleteMusic() +{ + if(rc_music) + { + Mix_FreeMusic(rc_music); + rc_music = NULL; + } +} + +void rc_playSound(int slot, int channel, int loops) +{ + if(rc_sound[slot].sound != NULL) + { + Mix_PlayChannel(channel, rc_sound[slot].sound, loops); + } +} + +void rc_playSoundTimed(int slot, int channel, int loops, int ms) +{ + if(rc_sound[slot].sound != NULL) + { + Mix_PlayChannelTimed(channel, rc_sound[slot].sound, loops, ms); + } +} + +void rc_playMusic(int loops) +{ + if(rc_music != NULL) + { + Mix_PlayMusic(rc_music, loops); + } +} + +int rc_musicIsPlaying() +{ + if(rc_music != NULL) + { + return Mix_PlayingMusic(); + } + return 0; +} + +void rc_pauseSound(int channel) +{ + if(Mix_Playing(channel)) + { + Mix_Pause(channel); + } +} + +void rc_resumeSound(int channel) +{ + if(!Mix_Playing(channel)) + { + Mix_Resume(channel); + } +} + +void rc_pauseMusic() +{ + if(Mix_PlayingMusic()) + { + Mix_PauseMusic(); + } +} + +void rc_resumeMusic() +{ + if(!Mix_PlayingMusic()) + { + Mix_ResumeMusic(); + } +} + +void rc_deleteSound(int slot) +{ + if(rc_sound[slot].sound != NULL) + { + Mix_FreeChunk(rc_sound[slot].sound); + rc_sound[slot].sound = NULL; + } + rc_sound[slot].active = false; +} + +void rc_fadeMusicIn(int time, int loops) +{ + Mix_FadeInMusic(rc_music, loops, time); +} + +void rc_fadeMusicOut(int time) +{ + Mix_FadeOutMusic(time); +} + +bool rc_musicExists() +{ + if(rc_music != NULL) + return true; + return false; +} + +void rc_setMusicVolume(int volume) +{ + Mix_VolumeMusic(volume); +} + +int rc_getMusicVolume() +{ + return Mix_VolumeMusic(-1); +} + +void rc_setMusicPosition(double position) +{ + Mix_SetMusicPosition(position); +} + +double rc_getMusicPosition() +{ + return Mix_SetMusicPosition(-1); +} + +void rc_rewindMusic() +{ + Mix_RewindMusic(); +} + +void rc_setSoundChannels(int max_channels) +{ + Mix_AllocateChannels(max_channels); +} + +int rc_getSoundChannels() +{ + return Mix_AllocateChannels(-1); +} + +bool rc_soundIsEnabled() +{ + return (bool) Mix_Init(0); +} + +bool rc_soundExists(int slot) +{ + return rc_sound[slot].active; +} + +void rc_setChannelVolume(int channel, int volume) +{ + Mix_Volume(channel, volume); +} + +int rc_getChannelVolume(int channel) +{ + return Mix_Volume(channel, -1); +} + +void rc_setSoundVolume(int slot, int volume) +{ + Mix_VolumeChunk(rc_sound[slot].sound, volume); +} + +int rc_getSoundVolume(int slot) +{ + return Mix_VolumeChunk(rc_sound[slot].sound, -1); +} + +void rc_stopMusic() +{ + Mix_HaltMusic(); +} + +void rc_stopSound(int channel) +{ + Mix_HaltChannel(channel); +} + +int rc_channelIsPlaying(int channel) +{ + return Mix_Playing(channel); +} + +int rc_channelIsPaused(int channel) +{ + return Mix_Paused(channel); +} + +int rc_setChannelDistance(int channel, Uint8 dist) +{ + return Mix_SetDistance(channel, dist); +} + +int rc_setChannelPanning(int channel, Uint8 l, Uint8 r) +{ + return Mix_SetPanning(channel, l, r); +} + + +int rc_setChannelSpacePosition(int channel, double angle, double distance) +{ + return Mix_SetPosition(channel, (Sint16)angle, (Uint8) distance); +} + + +#endif // RC_AUDIO_H_INCLUDED diff --git a/rcbasic_runtime/rc_defines.h b/rcbasic_runtime/rc_defines.h old mode 100644 new mode 100755 index c3f29dd..c827232 --- a/rcbasic_runtime/rc_defines.h +++ b/rcbasic_runtime/rc_defines.h @@ -1,1428 +1,2512 @@ -#define FN_FPrint 0 -#define FPRINT_TXT$ str_var[0].sid_value.value[ str_var[0].byref_offset ] +#ifndef RC_DEFINES_H_INCLUDED +#define RC_DEFINES_H_INCLUDED + +#define FN_Fprint 0 +#define FPRINT_TXT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] #define FN_Input$ 1 -#define INPUT$_PROMPT$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_ArrayDim 2 -#define ARRAYDIM_ID num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_StringArrayDim 3 -#define STRINGARRAYDIM_ID$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_NumberArrayDim 4 -#define NUMBERARRAYDIM_ID num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ArraySize 5 -#define ARRAYSIZE_ID num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define ARRAYSIZE_ARRAY_DIM num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_StringArraySize 6 -#define STRINGARRAYSIZE_ID$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define STRINGARRAYSIZE_ARRAY_DIM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_NumberArraySize 7 -#define NUMBERARRAYSIZE_ID num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define NUMBERARRAYSIZE_ARRAY_DIM num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_Abs 8 -#define ABS_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ACos 9 -#define ACOS_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_AndBit 10 -#define ANDBIT_A num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define ANDBIT_B num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_ASin 11 -#define ASIN_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ATan 12 -#define ATAN_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Bin$ 13 -#define BIN$_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_CInt32 14 -#define CINT32_I num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_CInt64 15 -#define CINT64_I num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Cos 16 -#define COS_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Degrees 17 -#define DEGREES_R num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Exp 18 -#define EXP_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Frac 19 -#define FRAC_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Hex$ 20 -#define HEX$_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_HexVal 21 -#define HEXVAL_N$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_Int 22 -#define INT_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Log 23 -#define LOG_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Max 24 -#define MAX_A num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define MAX_B num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_Min 25 -#define MIN_A num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define MIN_B num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_OrBit 26 -#define ORBIT_A num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define ORBIT_B num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_Radians 27 -#define RADIANS_D num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Randomize 28 -#define RANDOMIZE_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Rand 29 -#define RAND_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Round 30 -#define ROUND_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Sign 31 -#define SIGN_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Sin 32 -#define SIN_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Sqrt 33 -#define SQRT_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Tan 34 -#define TAN_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_XOrBit 35 -#define XORBIT_A num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define XORBIT_B num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_Asc 36 -#define ASC_C$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_Chr$ 37 -#define CHR$_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Insert$ 38 -#define INSERT$_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define INSERT$_TGT$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define INSERT$_POS num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_InStr 39 -#define INSTR_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define INSTR_SUBSTR$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define FN_LCase$ 40 -#define LCASE$_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_Left$ 41 -#define LEFT$_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define LEFT$_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Length 42 -#define LENGTH_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_Len 43 -#define LEN_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_LTrim$ 44 -#define LTRIM$_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_Mid$ 45 -#define MID$_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define MID$_START num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define MID$_N num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_ReplaceSubstr$ 46 -#define REPLACESUBSTR$_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define REPLACESUBSTR$_RPC$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define REPLACESUBSTR$_POS num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Replace$ 47 -#define REPLACE$_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define REPLACE$_TGT$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define REPLACE$_RPC$ str_var[2].sid_value.value[ str_var[2].byref_offset ] -#define FN_Reverse$ 48 -#define REVERSE$_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_Right$ 49 -#define RIGHT$_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define RIGHT$_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_RTrim$ 50 -#define RTRIM$_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_StringFill$ 51 -#define STRINGFILL$_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define STRINGFILL$_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Str$ 52 -#define STR$_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Str_F$ 53 -#define STR_F$_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Str_S$ 54 -#define STR_S$_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Tally 55 -#define TALLY_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define TALLY_SUBSTR$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define FN_Trim$ 56 -#define TRIM$_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_UCase$ 57 -#define UCASE$_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_Val 58 -#define VAL_N$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_Stack_N 59 -#define STACK_N_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Stack_S 60 -#define STACK_S_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Push_N 61 -#define PUSH_N_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Pop_N 62 -#define FN_Push_S 63 -#define PUSH_S_S$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_Pop_S$ 64 -#define FN_Stack_Size_N 65 -#define FN_Stack_Size_S 66 -#define FN_FileOpen 67 -#define FILEOPEN_STREAM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FILEOPEN_FILENAME$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FILEOPEN_MODE num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_FileClose 68 -#define FILECLOSE_STREAM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ReadByte 69 -#define READBYTE_STREAM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_WriteByte 70 -#define WRITEBYTE_STREAM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define WRITEBYTE_BYTE num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_ReadLine$ 71 -#define READLINE$_STREAM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Write 72 -#define WRITE_STREAM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define WRITE_TXT$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_WriteLine 73 -#define WRITELINE_STREAM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define WRITELINE_TXT$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_CopyFile 74 -#define COPYFILE_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define COPYFILE_DST$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define FN_RemoveFile 75 -#define REMOVEFILE_FILENAME$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_FileExists 76 -#define FILEEXISTS_FILENAME$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_MoveFile 77 -#define MOVEFILE_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define MOVEFILE_DST$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define FN_RenameFile 78 -#define RENAMEFILE_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define RENAMEFILE_DST$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define FN_FileLength 79 -#define FILELENGTH_FILENAME$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_Tell 80 -#define TELL_STREAM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Seek 81 -#define SEEK_STREAM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SEEK_POS num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_EOF 82 -#define EOF_STREAM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_FreeFile 83 -#define FN_ChangeDir 84 -#define CHANGEDIR_P$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_DirExists 85 -#define DIREXISTS_P$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_DirFirst$ 86 -#define FN_Dir$ 87 -#define FN_DirNext$ 88 -#define FN_MakeDir 89 -#define MAKEDIR_P$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_RemoveDir 90 -#define REMOVEDIR_P$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_Date$ 91 -#define FN_Easter$ 92 -#define EASTER$_YEAR num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Ticks 93 -#define FN_Time$ 94 -#define FN_Timer 95 -#define FN_Wait 96 -#define WAIT_M_SEC num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_WindowOpen 97 -#define WINDOWOPEN_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define WINDOWOPEN_TITLE$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define WINDOWOPEN_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define WINDOWOPEN_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define WINDOWOPEN_W num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define WINDOWOPEN_H num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define WINDOWOPEN_FLAG num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define WINDOWOPEN_VSYNC num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define FN_WindowClose 98 -#define WINDOWCLOSE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_RaiseWindow 99 -#define RAISEWINDOW_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Window 100 -#define WINDOW_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Update 101 -#define FN_Cls 102 -#define FN_SetClearColor 103 -#define SETCLEARCOLOR_C num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ShowWindow 104 -#define SHOWWINDOW_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_HideWindow 105 -#define HIDEWINDOW_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetWindowTitle 106 -#define SETWINDOWTITLE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETWINDOWTITLE_TITLE$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_WindowTitle$ 107 -#define WINDOWTITLE$_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetWindowPosition 108 -#define SETWINDOWPOSITION_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETWINDOWPOSITION_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SETWINDOWPOSITION_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_GetWindowPosition 109 -#define GETWINDOWPOSITION_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETWINDOWPOSITION_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETWINDOWPOSITION_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_SetWindowSize 110 -#define SETWINDOWSIZE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETWINDOWSIZE_W num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SETWINDOWSIZE_H num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_GetWindowSize 111 -#define GETWINDOWSIZE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETWINDOWSIZE_W num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETWINDOWSIZE_H num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_SetWindowMinSize 112 -#define SETWINDOWMINSIZE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETWINDOWMINSIZE_W num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SETWINDOWMINSIZE_H num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_GetWindowMinSize 113 -#define GETWINDOWMINSIZE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETWINDOWMINSIZE_W num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETWINDOWMINSIZE_H num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_SetWindowMaxSize 114 -#define SETWINDOWMAXSIZE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETWINDOWMAXSIZE_W num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SETWINDOWMAXSIZE_H num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_GetWindowMaxSize 115 -#define GETWINDOWMAXSIZE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETWINDOWMAXSIZE_W num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETWINDOWMAXSIZE_H num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_WindowIsFullscreen 116 -#define WINDOWISFULLSCREEN_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_WindowIsVisible 117 -#define WINDOWISVISIBLE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_WindowIsBordered 118 -#define WINDOWISBORDERED_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_WindowIsResizable 119 -#define WINDOWISRESIZABLE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_WindowIsMinimized 120 -#define WINDOWISMINIMIZED_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_WindowIsMaximized 121 -#define WINDOWISMAXIMIZED_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_WindowHasInputFocus 122 -#define WINDOWHASINPUTFOCUS_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_WindowHasMouseFocus 123 -#define WINDOWHASMOUSEFOCUS_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetWindowFullscreen 124 -#define SETWINDOWFULLSCREEN_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETWINDOWFULLSCREEN_FLAG num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_MaximizeWindow 125 -#define MAXIMIZEWINDOW_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_MinimizeWindow 126 -#define MINIMIZEWINDOW_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetWindowBorder 127 -#define SETWINDOWBORDER_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETWINDOWBORDER_FLAG num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_WindowClip 128 -#define WINDOWCLIP_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define WINDOWCLIP_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define WINDOWCLIP_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define WINDOWCLIP_W num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define WINDOWCLIP_H num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_WindowExists 129 -#define WINDOWEXISTS_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_NumWindows 130 -#define FN_WindowEvent_Close 131 -#define WINDOWEVENT_CLOSE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_WindowEvent_Maximize 132 -#define WINDOWEVENT_MAXIMIZE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_WindowEvent_Minimize 133 -#define WINDOWEVENT_MINIMIZE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ActiveWindow 134 -#define FN_FPS 135 -#define FN_SetWindowIcon 136 -#define SETWINDOWICON_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETWINDOWICON_SLOT num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_CanvasOpen 137 -#define CANVASOPEN_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define CANVASOPEN_W num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define CANVASOPEN_H num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define CANVASOPEN_VIEWPORT_X num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define CANVASOPEN_VIEWPORT_Y num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define CANVASOPEN_VIEWPORT_W num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define CANVASOPEN_VIEWPORT_H num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define CANVASOPEN_MODE num_var[7].nid_value.value[ num_var[7].byref_offset ] -#define FN_CanvasClose 138 -#define CANVASCLOSE_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetCanvasVisible 139 -#define SETCANVASVISIBLE_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETCANVASVISIBLE_FLAG num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_CanvasIsVisible 140 -#define CANVASISVISIBLE_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetCanvasViewport 141 -#define SETCANVASVIEWPORT_CNUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETCANVASVIEWPORT_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SETCANVASVIEWPORT_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define SETCANVASVIEWPORT_W num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define SETCANVASVIEWPORT_H num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_GetCanvasViewport 142 -#define GETCANVASVIEWPORT_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETCANVASVIEWPORT_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETCANVASVIEWPORT_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETCANVASVIEWPORT_W num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define GETCANVASVIEWPORT_H num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_Canvas 143 -#define CANVAS_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetCanvasOffset 144 -#define SETCANVASOFFSET_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETCANVASOFFSET_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SETCANVASOFFSET_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_GetCanvasOffset 145 -#define GETCANVASOFFSET_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETCANVASOFFSET_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETCANVASOFFSET_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_GetCanvasSize 146 -#define GETCANVASSIZE_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETCANVASSIZE_W num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETCANVASSIZE_H num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_ClearCanvas 147 -#define FN_SetCanvasAlpha 148 -#define SETCANVASALPHA_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETCANVASALPHA_A num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_CanvasAlpha 149 -#define CANVASALPHA_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetCanvasBlendMode 150 -#define SETCANVASBLENDMODE_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETCANVASBLENDMODE_BLEND_MODE num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_CanvasBlendMode 151 -#define CANVASBLENDMODE_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetCanvasColorMod 152 -#define SETCANVASCOLORMOD_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETCANVASCOLORMOD_C num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_CanvasColorMod 153 -#define CANVASCOLORMOD_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_CopyCanvas 154 -#define COPYCANVAS_SRC num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define COPYCANVAS_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define COPYCANVAS_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define COPYCANVAS_W num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define COPYCANVAS_H num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define COPYCANVAS_DST num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define COPYCANVAS_DX num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define COPYCANVAS_DY num_var[7].nid_value.value[ num_var[7].byref_offset ] -#define FN_CloneCanvas 155 -#define CLONECANVAS_SRC num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define CLONECANVAS_DST num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_SetCanvasZ 156 -#define SETCANVASZ_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETCANVASZ_Z num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_CanvasZ 157 -#define CANVASZ_C_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_CanvasClip 158 -#define CANVASCLIP_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define CANVASCLIP_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define CANVASCLIP_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define CANVASCLIP_W num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define CANVASCLIP_H num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define CANVASCLIP_FLAG num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define FN_ActiveCanvas 159 -#define FN_Box 160 -#define BOX_X1 num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define BOX_Y1 num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define BOX_X2 num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define BOX_Y2 num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_BoxFill 161 -#define BOXFILL_X1 num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define BOXFILL_Y1 num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define BOXFILL_X2 num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define BOXFILL_Y2 num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_Circle 162 -#define CIRCLE_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define CIRCLE_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define CIRCLE_RADIUS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_CircleFill 163 -#define CIRCLEFILL_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define CIRCLEFILL_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define CIRCLEFILL_RADIUS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_Ellipse 164 -#define ELLIPSE_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define ELLIPSE_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define ELLIPSE_RX num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define ELLIPSE_RY num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_EllipseFill 165 -#define ELLIPSEFILL_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define ELLIPSEFILL_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define ELLIPSEFILL_RX num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define ELLIPSEFILL_RY num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_FloodFill 166 -#define FLOODFILL_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FLOODFILL_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_GetPixel 167 -#define GETPIXEL_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETPIXEL_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_SetColor 168 -#define SETCOLOR_C num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Line 169 -#define LINE_X1 num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define LINE_Y1 num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define LINE_X2 num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define LINE_Y2 num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_Poly 170 -#define POLY_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define POLY_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define POLY_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_PolyFill 171 -#define POLYFILL_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define POLYFILL_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define POLYFILL_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_Rect 172 -#define RECT_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define RECT_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define RECT_W num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define RECT_H num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_RectFill 173 -#define RECTFILL_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define RECTFILL_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define RECTFILL_W num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define RECTFILL_H num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_RoundRect 174 -#define ROUNDRECT_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define ROUNDRECT_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define ROUNDRECT_W num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define ROUNDRECT_H num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define ROUNDRECT_R num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_RoundRectFill 175 -#define ROUNDRECTFILL_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define ROUNDRECTFILL_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define ROUNDRECTFILL_W num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define ROUNDRECTFILL_H num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define ROUNDRECTFILL_R num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_RGB 176 -#define RGB_R num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define RGB_G num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define RGB_B num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_RGBA 177 -#define RGBA_R num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define RGBA_G num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define RGBA_B num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define RGBA_A num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_PSet 178 -#define PSET_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define PSET_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_LoadImage 179 -#define LOADIMAGE_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define LOADIMAGE_IMG$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_LoadImage_Ex 180 -#define LOADIMAGE_EX_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define LOADIMAGE_EX_IMG$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define LOADIMAGE_EX_COLKEY num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_ImageFromBuffer 181 -#define IMAGEFROMBUFFER_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define IMAGEFROMBUFFER_W num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define IMAGEFROMBUFFER_H num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define IMAGEFROMBUFFER_BUFFER num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_ImageFromBuffer_Ex 182 -#define IMAGEFROMBUFFER_EX_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define IMAGEFROMBUFFER_EX_W num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define IMAGEFROMBUFFER_EX_H num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define IMAGEFROMBUFFER_EX_BUFFER num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define IMAGEFROMBUFFER_EX_COLKEY num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_BufferFromImage 183 -#define BUFFERFROMIMAGE_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define BUFFERFROMIMAGE_BUFFER num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_ImageExists 184 -#define IMAGEEXISTS_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ColorKey 185 -#define COLORKEY_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define COLORKEY_C num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_CopyImage 186 -#define COPYIMAGE_SRC num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define COPYIMAGE_DST num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_DeleteImage 187 -#define DELETEIMAGE_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetImageAlpha 188 -#define SETIMAGEALPHA_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETIMAGEALPHA_A num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_ImageAlpha 189 -#define IMAGEALPHA_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_GetImageSize 190 -#define GETIMAGESIZE_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETIMAGESIZE_W num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETIMAGESIZE_H num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_SetImageBlendMode 191 -#define SETIMAGEBLENDMODE_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETIMAGEBLENDMODE_BLEND_MODE num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_ImageBlendMode 192 -#define IMAGEBLENDMODE_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetImageColorMod 193 -#define SETIMAGECOLORMOD_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETIMAGECOLORMOD_C num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_ImageColorMod 194 -#define IMAGECOLORMOD_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_DrawImage 195 -#define DRAWIMAGE_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWIMAGE_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DRAWIMAGE_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_DrawImage_Blit 196 -#define DRAWIMAGE_BLIT_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWIMAGE_BLIT_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DRAWIMAGE_BLIT_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DRAWIMAGE_BLIT_SRC_X num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define DRAWIMAGE_BLIT_SRC_Y num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define DRAWIMAGE_BLIT_SRC_W num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define DRAWIMAGE_BLIT_SRC_H num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define FN_DrawImage_Blit_Ex 197 -#define DRAWIMAGE_BLIT_EX_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWIMAGE_BLIT_EX_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DRAWIMAGE_BLIT_EX_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DRAWIMAGE_BLIT_EX_W num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define DRAWIMAGE_BLIT_EX_H num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define DRAWIMAGE_BLIT_EX_SRC_X num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define DRAWIMAGE_BLIT_EX_SRC_Y num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define DRAWIMAGE_BLIT_EX_SRC_W num_var[7].nid_value.value[ num_var[7].byref_offset ] -#define DRAWIMAGE_BLIT_EX_SRC_H num_var[8].nid_value.value[ num_var[8].byref_offset ] -#define FN_DrawImage_Rotate 198 -#define DRAWIMAGE_ROTATE_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWIMAGE_ROTATE_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DRAWIMAGE_ROTATE_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DRAWIMAGE_ROTATE_ANGLE num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_DrawImage_Rotate_Ex 199 -#define DRAWIMAGE_ROTATE_EX_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWIMAGE_ROTATE_EX_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DRAWIMAGE_ROTATE_EX_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DRAWIMAGE_ROTATE_EX_SRC_X num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define DRAWIMAGE_ROTATE_EX_SRC_Y num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define DRAWIMAGE_ROTATE_EX_SRC_W num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define DRAWIMAGE_ROTATE_EX_SRC_H num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define DRAWIMAGE_ROTATE_EX_ANGLE num_var[7].nid_value.value[ num_var[7].byref_offset ] -#define FN_DrawImage_Zoom 200 -#define DRAWIMAGE_ZOOM_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWIMAGE_ZOOM_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DRAWIMAGE_ZOOM_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DRAWIMAGE_ZOOM_ZX num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define DRAWIMAGE_ZOOM_ZY num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_DrawImage_Zoom_Ex 201 -#define DRAWIMAGE_ZOOM_EX_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWIMAGE_ZOOM_EX_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DRAWIMAGE_ZOOM_EX_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DRAWIMAGE_ZOOM_EX_SRC_X num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define DRAWIMAGE_ZOOM_EX_SRC_Y num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define DRAWIMAGE_ZOOM_EX_SRC_W num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define DRAWIMAGE_ZOOM_EX_SRC_H num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define DRAWIMAGE_ZOOM_EX_ZX num_var[7].nid_value.value[ num_var[7].byref_offset ] -#define DRAWIMAGE_ZOOM_EX_ZY num_var[8].nid_value.value[ num_var[8].byref_offset ] -#define FN_DrawImage_Rotozoom 202 -#define DRAWIMAGE_ROTOZOOM_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWIMAGE_ROTOZOOM_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DRAWIMAGE_ROTOZOOM_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DRAWIMAGE_ROTOZOOM_ANGLE num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define DRAWIMAGE_ROTOZOOM_ZX num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define DRAWIMAGE_ROTOZOOM_ZY num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define FN_DrawImage_Rotozoom_Ex 203 -#define DRAWIMAGE_ROTOZOOM_EX_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWIMAGE_ROTOZOOM_EX_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DRAWIMAGE_ROTOZOOM_EX_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DRAWIMAGE_ROTOZOOM_EX_SRC_X num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define DRAWIMAGE_ROTOZOOM_EX_SRC_Y num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define DRAWIMAGE_ROTOZOOM_EX_SRC_W num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define DRAWIMAGE_ROTOZOOM_EX_SRC_H num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define DRAWIMAGE_ROTOZOOM_EX_ANGLE num_var[7].nid_value.value[ num_var[7].byref_offset ] -#define DRAWIMAGE_ROTOZOOM_EX_ZX num_var[8].nid_value.value[ num_var[8].byref_offset ] -#define DRAWIMAGE_ROTOZOOM_EX_ZY num_var[9].nid_value.value[ num_var[9].byref_offset ] -#define FN_DrawImage_Flip 204 -#define DRAWIMAGE_FLIP_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWIMAGE_FLIP_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DRAWIMAGE_FLIP_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DRAWIMAGE_FLIP_H num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define DRAWIMAGE_FLIP_V num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_DrawImage_Flip_Ex 205 -#define DRAWIMAGE_FLIP_EX_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWIMAGE_FLIP_EX_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DRAWIMAGE_FLIP_EX_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DRAWIMAGE_FLIP_EX_SRC_X num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define DRAWIMAGE_FLIP_EX_SRC_Y num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define DRAWIMAGE_FLIP_EX_SRC_W num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define DRAWIMAGE_FLIP_EX_SRC_H num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define DRAWIMAGE_FLIP_EX_H num_var[7].nid_value.value[ num_var[7].byref_offset ] -#define DRAWIMAGE_FLIP_EX_V num_var[8].nid_value.value[ num_var[8].byref_offset ] -#define FN_InKey 206 -#define FN_Key 207 -#define KEY_KEY_CODE num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_WaitKey 208 -#define FN_HideMouse 209 -#define FN_ShowMouse 210 -#define FN_MouseIsVisible 211 -#define FN_GetMouse 212 -#define GETMOUSE_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETMOUSE_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETMOUSE_MB1 num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETMOUSE_MB2 num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define GETMOUSE_MB3 num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_MouseX 213 -#define FN_MouseY 214 -#define FN_MouseButton 215 -#define MOUSEBUTTON_MB num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_GetMouseWheel 216 -#define GETMOUSEWHEEL_X_AXIS num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETMOUSEWHEEL_Y_AXIS num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_MouseWheelX 217 -#define FN_MouseWheelY 218 -#define FN_SoundFromBuffer 219 -#define SOUNDFROMBUFFER_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SOUNDFROMBUFFER_BUFFER num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SOUNDFROMBUFFER_BUFFER_SIZE num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define SOUNDFROMBUFFER_VOL num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_LoadSound 220 -#define LOADSOUND_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define LOADSOUND_SND_FILE$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_LoadMusic 221 -#define LOADMUSIC_MUSIC_FILE$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_PlaySound 222 -#define PLAYSOUND_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define PLAYSOUND_CHANNEL num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define PLAYSOUND_LOOPS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_PlaySoundTimed 223 -#define PLAYSOUNDTIMED_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define PLAYSOUNDTIMED_CHANNEL num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define PLAYSOUNDTIMED_LOOPS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define PLAYSOUNDTIMED_MS num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_PlayMusic 224 -#define PLAYMUSIC_MLOOPS num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_PauseSound 225 -#define PAUSESOUND_CHANNEL num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ResumeSound 226 -#define RESUMESOUND_CHANNEL num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_PauseMusic 227 -#define FN_ResumeMusic 228 -#define FN_DeleteSound 229 -#define DELETESOUND_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_DeleteMusic 230 -#define FN_FadeMusicIn 231 -#define FADEMUSICIN_FADE_TIME num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FADEMUSICIN_LOOPS num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_FadeMusicOut 232 -#define FADEMUSICOUT_FADE_TIME num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_MusicExists 233 -#define FN_SetMusicVolume 234 -#define SETMUSICVOLUME_VOL num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_MusicVolume 235 -#define FN_SetMusicPosition 236 -#define SETMUSICPOSITION_POS num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_MusicPosition 237 -#define FN_RewindMusic 238 -#define FN_SetSoundChannels 239 -#define SETSOUNDCHANNELS_MAX_CHANNELS num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_NumSoundChannels 240 -#define FN_SoundIsEnabled 241 -#define FN_SoundExists 242 -#define SOUNDEXISTS_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetChannelVolume 243 -#define SETCHANNELVOLUME_CHANNEL num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETCHANNELVOLUME_VOL num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_ChannelVolume 244 -#define CHANNELVOLUME_CHANNEL num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetSoundVolume 245 -#define SETSOUNDVOLUME_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETSOUNDVOLUME_VOL num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_SoundVolume 246 -#define SOUNDVOLUME_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_StopMusic 247 -#define FN_StopSound 248 -#define STOPSOUND_CHANNEL num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetChannelPanning 249 -#define SETCHANNELPANNING_CHANNEL num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETCHANNELPANNING_LEFT_VALUE num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SETCHANNELPANNING_RIGHT_VALUE num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_SetChannelDistance 250 -#define SETCHANNELDISTANCE_CHANNEL num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETCHANNELDISTANCE_DIST_VALUE num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_ChannelIsPlaying 251 -#define CHANNELISPLAYING_CHANNEL num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ChannelIsPaused 252 -#define CHANNELISPAUSED_CHANNEL num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_NumJoysticks 253 -#define FN_NumJoyAxes 254 -#define NUMJOYAXES_JOY_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_NumJoyButtons 255 -#define NUMJOYBUTTONS_JOY_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_NumJoyHats 256 -#define NUMJOYHATS_JOY_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_NumJoyTrackBalls 257 -#define NUMJOYTRACKBALLS_JOY_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_JoyAxis 258 -#define JOYAXIS_JOY_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define JOYAXIS_JOY_AXIS num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_JoyButton 259 -#define JOYBUTTON_JOY_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define JOYBUTTON_JOY_BUTTON num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_JoyHat 260 -#define JOYHAT_JOY_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define JOYHAT_JOY_HAT num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_GetJoyTrackBall 261 -#define GETJOYTRACKBALL_JOY_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETJOYTRACKBALL_BALL num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETJOYTRACKBALL_DX num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETJOYTRACKBALL_DY num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_JoyName$ 262 -#define JOYNAME$_JOY_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_JoystickIsConnected 263 -#define JOYSTICKISCONNECTED_JOY_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_GetCursor 264 -#define GETCURSOR_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETCURSOR_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_PrintS 265 -#define PRINTS_TXT$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_InputS$ 266 -#define INPUTS$_PROMPT$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_ZoneInputS$ 267 -#define ZONEINPUTS$_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define ZONEINPUTS$_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define ZONEINPUTS$_W num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define ZONEINPUTS$_H num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_Locate 268 -#define LOCATE_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define LOCATE_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_ReadInput_Start 269 -#define FN_ReadInput_Stop 270 -#define FN_ReadInput_Text$ 271 -#define FN_ReadInput_SetText 272 -#define READINPUT_SETTEXT_TXT$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_ReadInput_ToggleBackspace 273 -#define READINPUT_TOGGLEBACKSPACE_FLAG num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_LoadFont 274 -#define LOADFONT_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define LOADFONT_FNT_FILE$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define LOADFONT_SIZE num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_DeleteFont 275 -#define DELETEFONT_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_FontIsLoaded 276 -#define FONTISLOADED_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_Font 277 -#define FONT_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetFontStyle 278 -#define SETFONTSTYLE_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETFONTSTYLE_STYLE num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_DrawText 279 -#define DRAWTEXT_TXT$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define DRAWTEXT_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWTEXT_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_DrawText_Shaded 280 -#define DRAWTEXT_SHADED_TXT$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define DRAWTEXT_SHADED_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWTEXT_SHADED_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DRAWTEXT_SHADED_FG_COLOR num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DRAWTEXT_SHADED_BG_COLOR num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_DrawText_Blended 281 -#define DRAWTEXT_BLENDED_TXT$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define DRAWTEXT_BLENDED_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWTEXT_BLENDED_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_RenderText 282 -#define RENDERTEXT_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define RENDERTEXT_TXT$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_GetTextSize 283 -#define GETTEXTSIZE_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETTEXTSIZE_TXT$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define GETTEXTSIZE_W num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETTEXTSIZE_H num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_TouchPressure 284 -#define FN_GetTouch 285 -#define GETTOUCH_STATUS num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETTOUCH_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETTOUCH_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETTOUCH_DX num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define GETTOUCH_DY num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_GetMultiTouch 286 -#define GETMULTITOUCH_STATUS num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETMULTITOUCH_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETMULTITOUCH_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETMULTITOUCH_FINGERS num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define GETMULTITOUCH_DIST num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define GETMULTITOUCH_THETA num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define FN_GetTouchFinger 287 -#define GETTOUCHFINGER_FINGER num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETTOUCHFINGER_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETTOUCHFINGER_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETTOUCHFINGER_PRESSURE num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_NumFingers 288 -#define FN_CheckSockets 289 -#define CHECKSOCKETS_TIMEOUT_MS num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_TCP_SocketReady 290 -#define TCP_SOCKETREADY_SOCKET num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_UDP_SocketReady 291 -#define UDP_SOCKETREADY_SOCKET num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_TCP_SocketOpen 292 -#define TCP_SOCKETOPEN_SOCKET num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define TCP_SOCKETOPEN_HOST$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define TCP_SOCKETOPEN_PORT num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_TCP_SocketClose 293 -#define TCP_SOCKETCLOSE_SOCKET num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_TCP_RemoteHost 294 -#define TCP_REMOTEHOST_SOCKET num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_TCP_RemotePort 295 -#define TCP_REMOTEPORT_SOCKET num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_TCP_GetData 296 -#define TCP_GETDATA_SOCKET num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define TCP_GETDATA_SDATA$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define TCP_GETDATA_NUMBYTES num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_TCP_SendData 297 -#define TCP_SENDDATA_SOCKET num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define TCP_SENDDATA_SDATA$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_TCP_AcceptSocket 298 -#define TCP_ACCEPTSOCKET_SERVER num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define TCP_ACCEPTSOCKET_CLIENT num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_UDP_SocketOpen 299 -#define UDP_SOCKETOPEN_SOCKET num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define UDP_SOCKETOPEN_PORT num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_UDP_SocketClose 300 -#define UDP_SOCKETCLOSE_SOCKET num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_UDP_GetData 301 -#define UDP_GETDATA_SOCKET num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define UDP_GETDATA_SDATA$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define UDP_GETDATA_HOST$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define UDP_GETDATA_PORT num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_UDP_Length 302 -#define FN_UDP_MaxLength 303 -#define FN_UDP_RemoteHost$ 304 -#define UDP_REMOTEHOST$_SOCKET num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_UDP_RemotePort 305 -#define UDP_REMOTEPORT_SOCKET num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_UDP_SendData 306 -#define UDP_SENDDATA_SOCKET num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define UDP_SENDDATA_SDATA$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define UDP_SENDDATA_HOST$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define UDP_SENDDATA_PORT num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_LoadVideo 307 -#define LOADVIDEO_VID$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_PlayVideo 308 -#define PLAYVIDEO_VLOOPS num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_PauseVideo 309 -#define FN_StopVideo 310 -#define FN_SetVideoPosition 311 -#define SETVIDEOPOSITION_POS num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ResumeVideo 312 -#define FN_VideoPosition 313 -#define FN_DeleteVideo 314 -#define FN_VideoIsPlaying 315 -#define FN_VideoEnd 316 -#define FN_GetVideoStats 317 -#define GETVIDEOSTATS_VFILE$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define GETVIDEOSTATS_VLEN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETVIDEOSTATS_VFPS num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETVIDEOSTATS_FRAME_W num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETVIDEOSTATS_FRAME_H num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_SetVideoDrawRect 318 -#define SETVIDEODRAWRECT_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETVIDEODRAWRECT_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SETVIDEODRAWRECT_W num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define SETVIDEODRAWRECT_H num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_GetVideoDrawRect 319 -#define GETVIDEODRAWRECT_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETVIDEODRAWRECT_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETVIDEODRAWRECT_W num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETVIDEODRAWRECT_H num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_GetVideoSize 320 -#define GETVIDEOSIZE_W num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETVIDEOSIZE_H num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_VideoExists 321 -#define FN_SetVideoAlpha 322 -#define SETVIDEOALPHA_A num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_System 323 -#define SYSTEM_CMD$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_OS$ 324 -#define FN_Command$ 325 -#define COMMAND$_ARG num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_NumCommands 326 -#define FN_Env$ 327 -#define ENV$_V$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_SetEnv 328 -#define SETENV_VAR$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define SETENV_VALUE$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define SETENV_OVERWRITE num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_PrefPath$ 329 -#define PREFPATH$_ORG_NAME$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define PREFPATH$_APP_NAME$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define FN_Android_GetExternalStoragePath$ 330 -#define FN_Android_GetExternalStorageState 331 -#define FN_Android_GetInternalStoragePath$ 332 -#define FN_Android_JNI_Message$ 333 -#define ANDROID_JNI_MESSAGE$_ARG$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_Runtime_Utility_Message$ 334 -#define RUNTIME_UTILITY_MESSAGE$_ARG$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_ClipboardText$ 335 -#define FN_SetClipboardText 336 -#define SETCLIPBOARDTEXT_TXT$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_HasClipboardText 337 -#define FN_GetDesktopDisplayMode 338 -#define GETDESKTOPDISPLAYMODE_INDEX num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETDESKTOPDISPLAYMODE_W num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETDESKTOPDISPLAYMODE_H num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETDESKTOPDISPLAYMODE_FREQ num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_DrawImage_Transform 339 -#define DRAWIMAGE_TRANSFORM_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWIMAGE_TRANSFORM_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DRAWIMAGE_TRANSFORM_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DRAWIMAGE_TRANSFORM_W num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define DRAWIMAGE_TRANSFORM_H num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define DRAWIMAGE_TRANSFORM_SRC_X num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define DRAWIMAGE_TRANSFORM_SRC_Y num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define DRAWIMAGE_TRANSFORM_SRC_W num_var[7].nid_value.value[ num_var[7].byref_offset ] -#define DRAWIMAGE_TRANSFORM_SRC_H num_var[8].nid_value.value[ num_var[8].byref_offset ] -#define DRAWIMAGE_TRANSFORM_ANGLE num_var[9].nid_value.value[ num_var[9].byref_offset ] -#define DRAWIMAGE_TRANSFORM_CENTER_X num_var[10].nid_value.value[ num_var[10].byref_offset ] -#define DRAWIMAGE_TRANSFORM_CENTER_Y num_var[11].nid_value.value[ num_var[11].byref_offset ] -#define DRAWIMAGE_TRANSFORM_FLIP_H num_var[12].nid_value.value[ num_var[12].byref_offset ] -#define DRAWIMAGE_TRANSFORM_FLIP_V num_var[13].nid_value.value[ num_var[13].byref_offset ] -#define FN_GetPowerInfo 340 -#define GETPOWERINFO_STATUS num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETPOWERINFO_SECS num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETPOWERINFO_PCT num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_SystemRam 341 -#define FN_SetRenderScaleQuality 342 -#define SETRENDERSCALEQUALITY_N num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_EvalJS$ 343 -#define EVALJS$_JS_CODE$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_GetRenderScaleQuality 344 -#define FN_GetGlobalMouse 345 -#define GETGLOBALMOUSE_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETGLOBALMOUSE_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETGLOBALMOUSE_MB1 num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETGLOBALMOUSE_MB2 num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define GETGLOBALMOUSE_MB3 num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_GlobalMouseX 346 -#define FN_GlobalMouseY 347 -#define FN_GetAccel 348 -#define GETACCEL_ACCEL_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETACCEL_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETACCEL_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETACCEL_Z num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_AccelName$ 349 -#define ACCELNAME$_ACCEL_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_NumAccels 350 -#define FN_GetGyro 351 -#define GETGYRO_GYRO_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETGYRO_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETGYRO_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETGYRO_Z num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_GyroName$ 352 -#define GYRONAME$_GYRO_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_NumGyros 353 -#define FN_JoyRumblePlay 354 -#define JOYRUMBLEPLAY_JOY_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define JOYRUMBLEPLAY_STRENGTH num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define JOYRUMBLEPLAY_DURATION num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_JoyRumbleStop 355 -#define JOYRUMBLESTOP_JOY_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_JoystickIsHaptic 356 -#define JOYSTICKISHAPTIC_JOY_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_WriteByteBuffer 357 -#define WRITEBYTEBUFFER_STREAM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define WRITEBYTEBUFFER_BUF num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define WRITEBYTEBUFFER_BUF_SIZE num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_ReadByteBuffer 358 -#define READBYTEBUFFER_STREAM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define READBYTEBUFFER_BUF num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define READBYTEBUFFER_BUF_SIZE num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_WindowEvent_Resize 359 -#define WINDOWEVENT_RESIZE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetWindowAutoClose 360 -#define SETWINDOWAUTOCLOSE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETWINDOWAUTOCLOSE_EXIT_ON_CLOSE num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_SetWindowResizable 361 -#define SETWINDOWRESIZABLE_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETWINDOWRESIZABLE_FLAG num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_SystemReturnStdOut$ 362 -#define SYSTEMRETURNSTDOUT$_CMD$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_WindowMode 363 -#define WINDOWMODE_VISIBLE num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define WINDOWMODE_FULLSCREEN num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define WINDOWMODE_RESIZABLE num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define WINDOWMODE_BORDERLESS num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define WINDOWMODE_HIGHDPI num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_WindowFlags 364 -#define WINDOWFLAGS_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_RestoreWindow 365 -#define RESTOREWINDOW_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_UpdateAllWindows 366 -#define FN_QueryAudioSpec 367 -#define QUERYAUDIOSPEC_FREQ num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define QUERYAUDIOSPEC_FORMAT num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define QUERYAUDIOSPEC_CHANNELS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_MusicIsPlaying 368 -#define FN_DrawGeometry 369 -#define DRAWGEOMETRY_SLOT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DRAWGEOMETRY_NUM_VERTICES num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DRAWGEOMETRY_VERTICES num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DRAWGEOMETRY_NUM_INDICES num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define DRAWGEOMETRY_INDICES num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_Size 370 -#define SIZE_S$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_BufferFromString 371 -#define BUFFERFROMSTRING_S$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define BUFFERFROMSTRING_BUFFER num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_StringFromBuffer$ 372 -#define STRINGFROMBUFFER$_BUFFER num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define STRINGFROMBUFFER$_BUFFER_SIZE num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_GrabInput 373 -#define GRABINPUT_FLAG num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_GrabbedWindow 374 -#define FN_WarpMouse 375 -#define WARPMOUSE_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define WARPMOUSE_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_WarpMouseGlobal 376 -#define WARPMOUSEGLOBAL_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define WARPMOUSEGLOBAL_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_SetMouseZone 377 -#define SETMOUSEZONE_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETMOUSEZONE_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SETMOUSEZONE_W num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define SETMOUSEZONE_H num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_ClearMouseZone 378 -#define FN_SetWindowAlwaysOnTop 379 -#define SETWINDOWALWAYSONTOP_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETWINDOWALWAYSONTOP_FLAG num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_SetMouseRelative 380 -#define SETMOUSERELATIVE_FLAG num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetWindowVSync 381 -#define SETWINDOWVSYNC_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETWINDOWVSYNC_FLAG num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_OpenURL 382 -#define OPENURL_URL$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_APIVersion$ 383 -#define FN_FlashWindow 384 -#define FLASHWINDOW_WIN num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_MessageBox 385 -#define MESSAGEBOX_TITLE$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define MESSAGEBOX_MSG$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define FN_NumberArrayCopy 386 -#define NUMBERARRAYCOPY_SRC num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define NUMBERARRAYCOPY_DST num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_StringArrayCopy 387 -#define STRINGARRAYCOPY_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define STRINGARRAYCOPY_DST$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define FN_ArrayCopy 388 -#define ARRAYCOPY_SRC num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define ARRAYCOPY_DST num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_NumberArrayFill 389 -#define NUMBERARRAYFILL_SRC num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define NUMBERARRAYFILL_FDATA num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_StringArrayFill 390 -#define STRINGARRAYFILL_SRC$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define STRINGARRAYFILL_FDATA$ str_var[1].sid_value.value[ str_var[1].byref_offset ] -#define FN_ArrayFill 391 -#define ARRAYFILL_SRC num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define ARRAYFILL_FDATA num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_Runtime$ 392 -#define FN_DimMatrix 393 -#define DIMMATRIX_M num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DIMMATRIX_M_ROWS num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DIMMATRIX_M_COLS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DIMMATRIX_PRESERVE_FLAG num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_AddMatrix 394 -#define ADDMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define ADDMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define ADDMATRIX_MC num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_AugmentMatrix 395 -#define AUGMENTMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define AUGMENTMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define AUGMENTMATRIX_MC num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_CopyMatrix 396 -#define COPYMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define COPYMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_InsertMatrixColumns 397 -#define INSERTMATRIXCOLUMNS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define INSERTMATRIXCOLUMNS_C num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define INSERTMATRIXCOLUMNS_NUM_COLS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_InsertMatrixRows 398 -#define INSERTMATRIXROWS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define INSERTMATRIXROWS_R num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define INSERTMATRIXROWS_NUM_ROWS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_MultiplyMatrix 399 -#define MULTIPLYMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define MULTIPLYMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define MULTIPLYMATRIX_MC num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_CubeMatrix 400 -#define CUBEMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define CUBEMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_DeleteMatrixColumns 401 -#define DELETEMATRIXCOLUMNS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DELETEMATRIXCOLUMNS_C num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DELETEMATRIXCOLUMNS_NUM_COLS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_DeleteMatrixRows 402 -#define DELETEMATRIXROWS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DELETEMATRIXROWS_R num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DELETEMATRIXROWS_NUM_ROWS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_ClearMatrix 403 -#define CLEARMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ClearMatrixColumns 404 -#define CLEARMATRIXCOLUMNS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define CLEARMATRIXCOLUMNS_C num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define CLEARMATRIXCOLUMNS_NUM_COLS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_ClearMatrixRows 405 -#define CLEARMATRIXROWS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define CLEARMATRIXROWS_R num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define CLEARMATRIXROWS_NUM_ROWS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_FillMatrix 406 -#define FILLMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FILLMATRIX_V num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_FillMatrixColumns 407 -#define FILLMATRIXCOLUMNS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FILLMATRIXCOLUMNS_C num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FILLMATRIXCOLUMNS_NUM_COLS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FILLMATRIXCOLUMNS_V num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_FillMatrixRows 408 -#define FILLMATRIXROWS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FILLMATRIXROWS_R num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FILLMATRIXROWS_NUM_ROWS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FILLMATRIXROWS_V num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_CopyMatrixColumns 409 -#define COPYMATRIXCOLUMNS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define COPYMATRIXCOLUMNS_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define COPYMATRIXCOLUMNS_C num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define COPYMATRIXCOLUMNS_NUM_COLS num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_CopyMatrixRows 410 -#define COPYMATRIXROWS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define COPYMATRIXROWS_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define COPYMATRIXROWS_R num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define COPYMATRIXROWS_NUM_ROWS num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_IdentityMatrix 411 -#define IDENTITYMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define IDENTITYMATRIX_N num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_SolveMatrix 412 -#define SOLVEMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SOLVEMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SOLVEMATRIX_MC num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_IsEqualMatrix 413 -#define ISEQUALMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define ISEQUALMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define ISEQUALMATRIX_TOLERANCE num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_Determinant 414 -#define DETERMINANT_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_AdjointMatrix 415 -#define ADJOINTMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define ADJOINTMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_InvertMatrix 416 -#define INVERTMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define INVERTMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_MatrixFromBuffer 417 -#define MATRIXFROMBUFFER_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define MATRIXFROMBUFFER_R num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define MATRIXFROMBUFFER_C num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define MATRIXFROMBUFFER_BUFFER num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_GetMatrix 418 -#define GETMATRIX_BUFFER num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETMATRIX_MA num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_RandomizeMatrix 419 -#define RANDOMIZEMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define RANDOMIZEMATRIX_VMIN num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define RANDOMIZEMATRIX_VMAX num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_MatrixValue 420 -#define MATRIXVALUE_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define MATRIXVALUE_R num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define MATRIXVALUE_C num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_SetMatrixValue 421 -#define SETMATRIXVALUE_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETMATRIXVALUE_R num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SETMATRIXVALUE_C num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define SETMATRIXVALUE_V num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_ScalarMatrix 422 -#define SCALARMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SCALARMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SCALARMATRIX_S_VALUE num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_ScalarMatrixColumns 423 -#define SCALARMATRIXCOLUMNS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SCALARMATRIXCOLUMNS_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SCALARMATRIXCOLUMNS_C num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define SCALARMATRIXCOLUMNS_NUM_COLS num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define SCALARMATRIXCOLUMNS_S_VALUE num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_ScalarMatrixRows 424 -#define SCALARMATRIXROWS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SCALARMATRIXROWS_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SCALARMATRIXROWS_R num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define SCALARMATRIXROWS_NUM_ROWS num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define SCALARMATRIXROWS_S_VALUE num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_SquareMatrix 425 -#define SQUAREMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SQUAREMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_SubMatrix 426 -#define SUBMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SUBMATRIX_R num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SUBMATRIX_C num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_SubtractMatrix 427 -#define SUBTRACTMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SUBTRACTMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SUBTRACTMATRIX_MC num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_SwapMatrix 428 -#define SWAPMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SWAPMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_SwapMatrixColumn 429 -#define SWAPMATRIXCOLUMN_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SWAPMATRIXCOLUMN_C1 num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SWAPMATRIXCOLUMN_C2 num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_SwapMatrixRow 430 -#define SWAPMATRIXROW_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SWAPMATRIXROW_R1 num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SWAPMATRIXROW_R2 num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_TransposeMatrix 431 -#define TRANSPOSEMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define TRANSPOSEMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_UnAugmentMatrix 432 -#define UNAUGMENTMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define UNAUGMENTMATRIX_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define UNAUGMENTMATRIX_MC num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_ZeroMatrix 433 -#define ZEROMATRIX_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_GetMatrixSize 434 -#define GETMATRIXSIZE_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETMATRIXSIZE_R num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETMATRIXSIZE_C num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_SetMatrixProcess 435 -#define SETMATRIXPROCESS_P_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ProcessOpen 436 -#define PROCESSOPEN_P_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_SetProcessErrorMode 437 -#define SETPROCESSERRORMODE_P_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETPROCESSERRORMODE_ERROR_MODE num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_ProcessError 438 -#define PROCESSERROR_P_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ProcessWait 439 -#define PROCESSWAIT_P_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ProcessWaitAll 440 -#define FN_ProcessContinue 441 -#define PROCESSCONTINUE_P_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ProcessStop 442 -#define PROCESSSTOP_P_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ProcessClear 443 -#define PROCESSCLEAR_P_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ProcessClose 444 -#define PROCESSCLOSE_P_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ProcessErrorMode 445 -#define PROCESSERRORMODE_P_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ProcessSleep 446 -#define PROCESSSLEEP_P_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define PROCESSSLEEP_MSEC num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_ProcessExists 447 -#define PROCESSEXISTS_P_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_ProcessStopAll 448 -#define FN_ProcessContinueAll 449 -#define FN_ProcessQueueSize 450 -#define PROCESSQUEUESIZE_P_NUM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_NumCPUs 451 -#define FN_GetProjectionGeometry 452 -#define GETPROJECTIONGEOMETRY_CAM_DIST num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETPROJECTIONGEOMETRY_MA num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETPROJECTIONGEOMETRY_F_VERTEX_COUNT num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETPROJECTIONGEOMETRY_COLUMNS num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define GETPROJECTIONGEOMETRY_UV num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define GETPROJECTIONGEOMETRY_GRAPH_OFFSET_X num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define GETPROJECTIONGEOMETRY_GRAPH_OFFSET_Y num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define GETPROJECTIONGEOMETRY_V_COLOR num_var[7].nid_value.value[ num_var[7].byref_offset ] -#define GETPROJECTIONGEOMETRY_VERTEX_COUNT num_var[8].nid_value.value[ num_var[8].byref_offset ] -#define GETPROJECTIONGEOMETRY_VERTEX2D num_var[9].nid_value.value[ num_var[9].byref_offset ] -#define GETPROJECTIONGEOMETRY_INDEX_COUNT num_var[10].nid_value.value[ num_var[10].byref_offset ] -#define GETPROJECTIONGEOMETRY_INDEX num_var[11].nid_value.value[ num_var[11].byref_offset ] -#define GETPROJECTIONGEOMETRY_CLIP_DIST num_var[12].nid_value.value[ num_var[12].byref_offset ] -#define GETPROJECTIONGEOMETRY_MIN_X num_var[13].nid_value.value[ num_var[13].byref_offset ] -#define GETPROJECTIONGEOMETRY_MIN_Y num_var[14].nid_value.value[ num_var[14].byref_offset ] -#define GETPROJECTIONGEOMETRY_MAX_X num_var[15].nid_value.value[ num_var[15].byref_offset ] -#define GETPROJECTIONGEOMETRY_MAX_Y num_var[16].nid_value.value[ num_var[16].byref_offset ] -#define FN_CalculateFaceZ 453 -#define CALCULATEFACEZ_CAM_DIST num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define CALCULATEFACEZ_GRAPH_OFFSET_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define CALCULATEFACEZ_GRAPH_OFFSET_Y num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define CALCULATEFACEZ_VIEW_W num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define CALCULATEFACEZ_VIEW_H num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define CALCULATEFACEZ_VIEW_DEPTH num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define CALCULATEFACEZ_MA num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define CALCULATEFACEZ_F_VERTEX_COUNT num_var[7].nid_value.value[ num_var[7].byref_offset ] -#define CALCULATEFACEZ_COLUMNS num_var[8].nid_value.value[ num_var[8].byref_offset ] -#define CALCULATEFACEZ_FACE_MIN_Z num_var[9].nid_value.value[ num_var[9].byref_offset ] -#define CALCULATEFACEZ_FACE_MAX_Z num_var[10].nid_value.value[ num_var[10].byref_offset ] -#define CALCULATEFACEZ_Z_AVG num_var[11].nid_value.value[ num_var[11].byref_offset ] -#define FN_SetChannelSpacePosition 454 -#define SETCHANNELSPACEPOSITION_CHANNEL num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SETCHANNELSPACEPOSITION_ANGLE num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define SETCHANNELSPACEPOSITION_DISTANCE num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_SaveBMP 455 -#define SAVEBMP_IMG num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SAVEBMP_FILE$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_SavePNG 456 -#define SAVEPNG_IMG num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SAVEPNG_FILE$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_SaveJPG 457 -#define SAVEJPG_IMG num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define SAVEJPG_FILE$ str_var[0].sid_value.value[ str_var[0].byref_offset ] -#define FN_GetLineIntersection 458 -#define GETLINEINTERSECTION_P0_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETLINEINTERSECTION_P0_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETLINEINTERSECTION_P1_X num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETLINEINTERSECTION_P1_Y num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define GETLINEINTERSECTION_P2_X num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define GETLINEINTERSECTION_P2_Y num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define GETLINEINTERSECTION_P3_X num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define GETLINEINTERSECTION_P3_Y num_var[7].nid_value.value[ num_var[7].byref_offset ] -#define GETLINEINTERSECTION_I_X num_var[8].nid_value.value[ num_var[8].byref_offset ] -#define GETLINEINTERSECTION_I_Y num_var[9].nid_value.value[ num_var[9].byref_offset ] -#define FN_Interpolate 459 -#define INTERPOLATE_MIN_A num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define INTERPOLATE_MAX_A num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define INTERPOLATE_MID_A num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define INTERPOLATE_MIN_B num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define INTERPOLATE_MAX_B num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_ATan2 460 -#define ATAN2_Y num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define ATAN2_X num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define FN_PointInQuad 461 -#define POINTINQUAD_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define POINTINQUAD_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define POINTINQUAD_X1 num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define POINTINQUAD_Y1 num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define POINTINQUAD_X2 num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define POINTINQUAD_Y2 num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define POINTINQUAD_X3 num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define POINTINQUAD_Y3 num_var[7].nid_value.value[ num_var[7].byref_offset ] -#define POINTINQUAD_X4 num_var[8].nid_value.value[ num_var[8].byref_offset ] -#define POINTINQUAD_Y4 num_var[9].nid_value.value[ num_var[9].byref_offset ] -#define FN_PointInTri 462 -#define POINTINTRI_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define POINTINTRI_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define POINTINTRI_X1 num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define POINTINTRI_Y1 num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define POINTINTRI_X2 num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define POINTINTRI_Y2 num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define POINTINTRI_X3 num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define POINTINTRI_Y3 num_var[7].nid_value.value[ num_var[7].byref_offset ] -#define FN_Distance2D 463 -#define DISTANCE2D_X1 num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DISTANCE2D_Y1 num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DISTANCE2D_X2 num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DISTANCE2D_Y2 num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define FN_Distance3D 464 -#define DISTANCE3D_X1 num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define DISTANCE3D_Y1 num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define DISTANCE3D_Z1 num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define DISTANCE3D_X2 num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define DISTANCE3D_Y2 num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define DISTANCE3D_Z2 num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define FN_GetCircleLineIntersection 465 -#define GETCIRCLELINEINTERSECTION_CIRCLE_X num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETCIRCLELINEINTERSECTION_CIRCLE_Y num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETCIRCLELINEINTERSECTION_RADIUS num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETCIRCLELINEINTERSECTION_X1 num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define GETCIRCLELINEINTERSECTION_Y1 num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define GETCIRCLELINEINTERSECTION_X2 num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define GETCIRCLELINEINTERSECTION_Y2 num_var[6].nid_value.value[ num_var[6].byref_offset ] -#define GETCIRCLELINEINTERSECTION_IX1 num_var[7].nid_value.value[ num_var[7].byref_offset ] -#define GETCIRCLELINEINTERSECTION_IY1 num_var[8].nid_value.value[ num_var[8].byref_offset ] -#define GETCIRCLELINEINTERSECTION_IX2 num_var[9].nid_value.value[ num_var[9].byref_offset ] -#define GETCIRCLELINEINTERSECTION_IY2 num_var[10].nid_value.value[ num_var[10].byref_offset ] -#define FN_GetLinePlaneIntersection 466 -#define GETLINEPLANEINTERSECTION_LINE_POINT num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define GETLINEPLANEINTERSECTION_LINE_DIRECTION num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define GETLINEPLANEINTERSECTION_PLANE_POINT_1 num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define GETLINEPLANEINTERSECTION_PLANE_POINT_2 num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define GETLINEPLANEINTERSECTION_PLANE_POINT_3 num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define GETLINEPLANEINTERSECTION_INTERSECTION num_var[5].nid_value.value[ num_var[5].byref_offset ] -#define FN_IncrementMatrixRows 467 -#define INCREMENTMATRIXROWS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define INCREMENTMATRIXROWS_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define INCREMENTMATRIXROWS_R num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define INCREMENTMATRIXROWS_NUM_ROWS num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define INCREMENTMATRIXROWS_VALUE num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_IncrementMatrixColumns 468 -#define INCREMENTMATRIXCOLUMNS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define INCREMENTMATRIXCOLUMNS_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define INCREMENTMATRIXCOLUMNS_C num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define INCREMENTMATRIXCOLUMNS_NUM_COLS num_var[3].nid_value.value[ num_var[3].byref_offset ] -#define INCREMENTMATRIXCOLUMNS_VALUE num_var[4].nid_value.value[ num_var[4].byref_offset ] -#define FN_JoinMatrixRows 469 -#define JOINMATRIXROWS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define JOINMATRIXROWS_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define JOINMATRIXROWS_MC num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_JoinMatrixColumns 470 -#define JOINMATRIXCOLUMNS_MA num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define JOINMATRIXCOLUMNS_MB num_var[1].nid_value.value[ num_var[1].byref_offset ] -#define JOINMATRIXCOLUMNS_MC num_var[2].nid_value.value[ num_var[2].byref_offset ] -#define FN_TypeArrayDim 471 +#define INPUT$_PROMPT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_tst 2 +#define TST_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_ArrayDim 3 +#define ARRAYDIM_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_StringArrayDim 4 +#define STRINGARRAYDIM_ID$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_NumberArrayDim 5 +#define NUMBERARRAYDIM_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_ArraySize 6 +#define ARRAYSIZE_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ARRAYSIZE_ARRAY_DIM num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_StringArraySize 7 +#define STRINGARRAYSIZE_ID$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define STRINGARRAYSIZE_ARRAY_DIM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_NumberArraySize 8 +#define NUMBERARRAYSIZE_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define NUMBERARRAYSIZE_ARRAY_DIM num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_NumberArrayCopy 9 +#define NUMBERARRAYCOPY_SRC num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define NUMBERARRAYCOPY_DST num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_StringArrayCopy 10 +#define STRINGARRAYCOPY_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define STRINGARRAYCOPY_DST$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define FN_ArrayCopy 11 +#define ARRAYCOPY_SRC num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ARRAYCOPY_DST num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_NumberArrayFill 12 +#define NUMBERARRAYFILL_SRC num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define NUMBERARRAYFILL_FDATA num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_StringArrayFill 13 +#define STRINGARRAYFILL_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define STRINGARRAYFILL_FDATA$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define FN_ArrayFill 14 +#define ARRAYFILL_SRC num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ARRAYFILL_FDATA num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_TypeArrayDim 15 #define TYPEARRAYDIM_ID usr_var[0].var_ref -#define FN_TypeArraySize 472 +#define FN_TypeArraySize 16 #define TYPEARRAYSIZE_ID usr_var[0].var_ref -#define TYPEARRAYSIZE_ARRAY_DIM num_var[0].nid_value.value[ num_var[0].byref_offset ] -#define FN_TypeArrayCopy 473 +#define TYPEARRAYSIZE_ARRAY_DIM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_TypeArrayCopy 17 #define TYPEARRAYCOPY_SRC usr_var[0].var_ref #define TYPEARRAYCOPY_DST usr_var[1].var_ref -#define FN_TypeArrayFill 474 +#define FN_TypeArrayFill 18 #define TYPEARRAYFILL_SRC usr_var[0].var_ref #define TYPEARRAYFILL_FDATA usr_var[1].var_ref->uid_value[0] +#define FN_Abs 19 +#define ABS_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Acos 20 +#define ACOS_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_AndBit 21 +#define ANDBIT_A num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ANDBIT_B num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_Asin 22 +#define ASIN_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Atan 23 +#define ATAN_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Bin$ 24 +#define BIN$_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_CInt32 25 +#define CINT32_I num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_CInt64 26 +#define CINT64_I num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Cos 27 +#define COS_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Degrees 28 +#define DEGREES_R num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Exp 29 +#define EXP_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Frac 30 +#define FRAC_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Hex$ 31 +#define HEX$_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_HexVal 32 +#define HEXVAL_N$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_Int 33 +#define INT_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Log 34 +#define LOG_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Max 35 +#define MAX_A num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define MAX_B num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_Min 36 +#define MIN_A num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define MIN_B num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_OrBit 37 +#define ORBIT_A num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ORBIT_B num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_Radians 38 +#define RADIANS_D num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Randomize 39 +#define RANDOMIZE_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Rand 40 +#define RAND_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Round 41 +#define ROUND_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Sign 42 +#define SIGN_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Sin 43 +#define SIN_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Sqrt 44 +#define SQRT_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Tan 45 +#define TAN_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_XOrBit 46 +#define XORBIT_A num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define XORBIT_B num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetLineIntersection 47 +#define GETLINEINTERSECTION_P0_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETLINEINTERSECTION_P0_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETLINEINTERSECTION_P1_X num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETLINEINTERSECTION_P1_Y num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETLINEINTERSECTION_P2_X num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define GETLINEINTERSECTION_P2_Y num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define GETLINEINTERSECTION_P3_X num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define GETLINEINTERSECTION_P3_Y num_var[7].nref[0].value[ num_var[7].byref_offset ] +#define GETLINEINTERSECTION_I_X num_var[8].nref[0].value[ num_var[8].byref_offset ] +#define GETLINEINTERSECTION_I_Y num_var[9].nref[0].value[ num_var[9].byref_offset ] +#define FN_Interpolate 48 +#define INTERPOLATE_MIN_A num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define INTERPOLATE_MAX_A num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define INTERPOLATE_MID_A num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define INTERPOLATE_MIN_B num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define INTERPOLATE_MAX_B num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_ATan2 49 +#define ATAN2_Y num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ATAN2_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_PointInQuad 50 +#define POINTINQUAD_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define POINTINQUAD_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define POINTINQUAD_X1 num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define POINTINQUAD_Y1 num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define POINTINQUAD_X2 num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define POINTINQUAD_Y2 num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define POINTINQUAD_X3 num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define POINTINQUAD_Y3 num_var[7].nref[0].value[ num_var[7].byref_offset ] +#define POINTINQUAD_X4 num_var[8].nref[0].value[ num_var[8].byref_offset ] +#define POINTINQUAD_Y4 num_var[9].nref[0].value[ num_var[9].byref_offset ] +#define FN_PointInTri 51 +#define POINTINTRI_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define POINTINTRI_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define POINTINTRI_X1 num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define POINTINTRI_Y1 num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define POINTINTRI_X2 num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define POINTINTRI_Y2 num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define POINTINTRI_X3 num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define POINTINTRI_Y3 num_var[7].nref[0].value[ num_var[7].byref_offset ] +#define FN_Distance2D 52 +#define DISTANCE2D_X1 num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DISTANCE2D_Y1 num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DISTANCE2D_X2 num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define DISTANCE2D_Y2 num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_Distance3D 53 +#define DISTANCE3D_X1 num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DISTANCE3D_Y1 num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DISTANCE3D_Z1 num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define DISTANCE3D_X2 num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define DISTANCE3D_Y2 num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define DISTANCE3D_Z2 num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define FN_GetCircleLineIntersection 54 +#define GETCIRCLELINEINTERSECTION_CIRCLE_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCIRCLELINEINTERSECTION_CIRCLE_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETCIRCLELINEINTERSECTION_RADIUS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETCIRCLELINEINTERSECTION_X1 num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETCIRCLELINEINTERSECTION_Y1 num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define GETCIRCLELINEINTERSECTION_X2 num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define GETCIRCLELINEINTERSECTION_Y2 num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define GETCIRCLELINEINTERSECTION_IX1 num_var[7].nref[0].value[ num_var[7].byref_offset ] +#define GETCIRCLELINEINTERSECTION_IY1 num_var[8].nref[0].value[ num_var[8].byref_offset ] +#define GETCIRCLELINEINTERSECTION_IX2 num_var[9].nref[0].value[ num_var[9].byref_offset ] +#define GETCIRCLELINEINTERSECTION_IY2 num_var[10].nref[0].value[ num_var[10].byref_offset ] +#define FN_GetLinePlaneIntersection 55 +#define GETLINEPLANEINTERSECTION_LINE_POINT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETLINEPLANEINTERSECTION_LINE_DIRECTION num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETLINEPLANEINTERSECTION_PLANE_POINT_1 num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETLINEPLANEINTERSECTION_PLANE_POINT_2 num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETLINEPLANEINTERSECTION_PLANE_POINT_3 num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define GETLINEPLANEINTERSECTION_INTERSECTION num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define FN_Asc 56 +#define ASC_C$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_Chr$ 57 +#define CHR$_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Insert$ 58 +#define INSERT$_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define INSERT$_TGT$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define INSERT$_POS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_InStr 59 +#define INSTR_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define INSTR_SUBSTR$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define FN_Lcase$ 60 +#define LCASE$_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_Left$ 61 +#define LEFT$_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define LEFT$_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Length 62 +#define LENGTH_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_Len 63 +#define LEN_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_Ltrim$ 64 +#define LTRIM$_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_Mid$ 65 +#define MID$_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define MID$_START num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define MID$_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_ReplaceSubstr$ 66 +#define REPLACESUBSTR$_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define REPLACESUBSTR$_RPC$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define REPLACESUBSTR$_POS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Replace$ 67 +#define REPLACE$_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define REPLACE$_TGT$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define REPLACE$_RPC$ str_var[2].sref[0].value[ str_var[2].byref_offset ] +#define FN_Reverse$ 68 +#define REVERSE$_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_Right$ 69 +#define RIGHT$_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define RIGHT$_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Rtrim$ 70 +#define RTRIM$_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_StringFill$ 71 +#define STRINGFILL$_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define STRINGFILL$_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Str$ 72 +#define STR$_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Str_F$ 73 +#define STR_F$_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Str_S$ 74 +#define STR_S$_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Tally 75 +#define TALLY_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define TALLY_SUBSTR$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define FN_Trim$ 76 +#define TRIM$_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_Ucase$ 77 +#define UCASE$_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_Val 78 +#define VAL_N$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_Size 79 +#define SIZE_S$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_BufferFromString 80 +#define BUFFERFROMSTRING_S$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define BUFFERFROMSTRING_BUFFER num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_StringFromBuffer$ 81 +#define STRINGFROMBUFFER$_BUFFER num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define STRINGFROMBUFFER$_BUFFER_SIZE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_CreateStack_N 82 +#define FN_CreateStack_S 83 +#define FN_ClearStack_N 84 +#define CLEARSTACK_N_NUM_STACK num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_ClearStack_S 85 +#define CLEARSTACK_S_STR_STACK num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_DeleteStack_N 86 +#define DELETESTACK_N_NUM_STACK num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_DeleteStack_S 87 +#define DELETESTACK_S_STR_STACK num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Push_N 88 +#define PUSH_N_NUM_STACK num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define PUSH_N_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_Pop_N 89 +#define POP_N_NUM_STACK num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Push_S 90 +#define PUSH_S_STR_STACK num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define PUSH_S_S$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_Pop_S$ 91 +#define POP_S$_STR_STACK num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Stack_Size_N 92 +#define STACK_SIZE_N_NUM_STACK num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Stack_Size_S 93 +#define STACK_SIZE_S_STR_STACK num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_OpenFile 94 +#define OPENFILE_FILENAME$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define OPENFILE_MODE num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_CloseFile 95 +#define CLOSEFILE_STREAM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_ReadByte 96 +#define READBYTE_STREAM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_WriteByte 97 +#define WRITEBYTE_STREAM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define WRITEBYTE_BYTE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_ReadLine$ 98 +#define READLINE$_STREAM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Write 99 +#define WRITE_STREAM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define WRITE_TXT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_WriteLine 100 +#define WRITELINE_STREAM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define WRITELINE_TXT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_CopyFile 101 +#define COPYFILE_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define COPYFILE_DST$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define FN_RemoveFile 102 +#define REMOVEFILE_FILENAME$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_FileExists 103 +#define FILEEXISTS_FILENAME$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_MoveFile 104 +#define MOVEFILE_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define MOVEFILE_DST$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define FN_RenameFile 105 +#define RENAMEFILE_SRC$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define RENAMEFILE_DST$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define FN_FileLength 106 +#define FILELENGTH_FILENAME$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_Tell 107 +#define TELL_STREAM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Seek 108 +#define SEEK_STREAM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SEEK_POS num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_EOF 109 +#define EOF_STREAM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_WriteByteBuffer 110 +#define WRITEBYTEBUFFER_STREAM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define WRITEBYTEBUFFER_BUF num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define WRITEBYTEBUFFER_BUF_SIZE num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_ReadByteBuffer 111 +#define READBYTEBUFFER_STREAM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define READBYTEBUFFER_BUF num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define READBYTEBUFFER_BUF_SIZE num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_ChangeDir 112 +#define CHANGEDIR_P$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_DirExists 113 +#define DIREXISTS_P$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_DirFirst$ 114 +#define FN_Dir$ 115 +#define FN_DirNext$ 116 +#define FN_MakeDir 117 +#define MAKEDIR_P$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_RemoveDir 118 +#define REMOVEDIR_P$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_Date$ 119 +#define FN_Easter$ 120 +#define EASTER$_YEAR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Ticks 121 +#define FN_Time$ 122 +#define FN_Timer 123 +#define FN_Wait 124 +#define WAIT_M_SEC num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_OpenWindow 125 +#define OPENWINDOW_TITLE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define OPENWINDOW_W num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define OPENWINDOW_H num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define OPENWINDOW_FULLSCREEN num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define OPENWINDOW_VSYNC num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_OpenWindowEx 126 +#define OPENWINDOWEX_TITLE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define OPENWINDOWEX_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define OPENWINDOWEX_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define OPENWINDOWEX_W num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define OPENWINDOWEX_H num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define OPENWINDOWEX_MODE num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define OPENWINDOWEX_AA num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define OPENWINDOWEX_STENCIL_BUFFER num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define OPENWINDOWEX_VSYNC num_var[7].nref[0].value[ num_var[7].byref_offset ] +#define FN_CloseWindow 127 +#define FN_RaiseWindow 128 +#define FN_Update 129 +#define FN_Cls 130 +#define FN_SetClearColor 131 +#define SETCLEARCOLOR_C num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_ShowWindow 132 +#define FN_HideWindow 133 +#define FN_SetWindowTitle 134 +#define SETWINDOWTITLE_TITLE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_WindowTitle$ 135 +#define FN_SetWindowPosition 136 +#define SETWINDOWPOSITION_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETWINDOWPOSITION_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetWindowPosition 137 +#define GETWINDOWPOSITION_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETWINDOWPOSITION_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetWindowSize 138 +#define SETWINDOWSIZE_W num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETWINDOWSIZE_H num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetWindowSize 139 +#define GETWINDOWSIZE_W num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETWINDOWSIZE_H num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetWindowMinSize 140 +#define SETWINDOWMINSIZE_W num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETWINDOWMINSIZE_H num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetWindowMinSize 141 +#define GETWINDOWMINSIZE_W num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETWINDOWMINSIZE_H num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetWindowMaxSize 142 +#define SETWINDOWMAXSIZE_W num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETWINDOWMAXSIZE_H num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetWindowMaxSize 143 +#define GETWINDOWMAXSIZE_W num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETWINDOWMAXSIZE_H num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_WindowIsFullscreen 144 +#define FN_WindowIsVisible 145 +#define FN_WindowIsBordered 146 +#define FN_WindowIsResizable 147 +#define FN_WindowIsMinimized 148 +#define FN_WindowIsMaximized 149 +#define FN_WindowHasInputFocus 150 +#define FN_WindowHasMouseFocus 151 +#define FN_SetWindowFullscreen 152 +#define SETWINDOWFULLSCREEN_FLAG num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_MaximizeWindow 153 +#define FN_MinimizeWindow 154 +#define FN_SetWindowBordered 155 +#define SETWINDOWBORDERED_FLAG num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_WindowClip 156 +#define WINDOWCLIP_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define WINDOWCLIP_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define WINDOWCLIP_W num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define WINDOWCLIP_H num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_WindowExists 157 +#define FN_WindowEvent_Close 158 +#define FN_WindowEvent_Maximize 159 +#define FN_WindowEvent_Minimize 160 +#define FN_FPS 161 +#define FN_SetWindowIcon 162 +#define SETWINDOWICON_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_WindowEvent_Resize 163 +#define FN_SetWindowAutoClose 164 +#define SETWINDOWAUTOCLOSE_EXIT_ON_CLOSE num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetWindowResizable 165 +#define SETWINDOWRESIZABLE_FLAG num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_WindowMode 166 +#define WINDOWMODE_VISIBLE num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define WINDOWMODE_FULLSCREEN num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define WINDOWMODE_RESIZABLE num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define WINDOWMODE_BORDERLESS num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define WINDOWMODE_HIGHDPI num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_getWindowMode 167 +#define FN_RestoreWindow 168 +#define FN_GrabInput 169 +#define GRABINPUT_FLAG num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetWindowAlwaysOnTop 170 +#define SETWINDOWALWAYSONTOP_FLAG num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetMouseRelative 171 +#define SETMOUSERELATIVE_FLAG num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetWindowVSync 172 +#define SETWINDOWVSYNC_FLAG num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_FlashWindow 173 +#define FLASHWINDOW_FLAG num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_WindowIsGrabbed 174 +#define FN_OpenCanvas 175 +#define OPENCANVAS_W num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define OPENCANVAS_H num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define OPENCANVAS_VIEWPORT_X num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define OPENCANVAS_VIEWPORT_Y num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define OPENCANVAS_VIEWPORT_W num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define OPENCANVAS_VIEWPORT_H num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define OPENCANVAS_MODE num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_CloseCanvas 176 +#define CLOSECANVAS_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetCanvas3D 177 +#define SETCANVAS3D_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCANVAS3D_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetCanvasVisible 178 +#define SETCANVASVISIBLE_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCANVASVISIBLE_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_CanvasIsVisible 179 +#define CANVASISVISIBLE_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetCanvasViewport 180 +#define SETCANVASVIEWPORT_CNUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCANVASVIEWPORT_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETCANVASVIEWPORT_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETCANVASVIEWPORT_W num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define SETCANVASVIEWPORT_H num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_GetCanvasViewport 181 +#define GETCANVASVIEWPORT_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCANVASVIEWPORT_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETCANVASVIEWPORT_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETCANVASVIEWPORT_W num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETCANVASVIEWPORT_H num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_Canvas 182 +#define CANVAS_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetCanvasOffset 183 +#define SETCANVASOFFSET_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCANVASOFFSET_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETCANVASOFFSET_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_GetCanvasOffset 184 +#define GETCANVASOFFSET_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCANVASOFFSET_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETCANVASOFFSET_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_GetCanvasSize 185 +#define GETCANVASSIZE_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCANVASSIZE_W num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETCANVASSIZE_H num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_ClearCanvas 186 +#define FN_SetCanvasAlpha 187 +#define SETCANVASALPHA_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCANVASALPHA_A num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetCanvasAlpha 188 +#define GETCANVASALPHA_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetCanvasColorMod 189 +#define SETCANVASCOLORMOD_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCANVASCOLORMOD_C num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetCanvasColorMod 190 +#define GETCANVASCOLORMOD_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_CloneCanvas 191 +#define CLONECANVAS_SRC num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CLONECANVAS_DST num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetCanvasZ 192 +#define SETCANVASZ_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCANVASZ_Z num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetCanvasZ 193 +#define GETCANVASZ_C_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_CanvasClip 194 +#define CANVASCLIP_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CANVASCLIP_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CANVASCLIP_W num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define CANVASCLIP_H num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_ActiveCanvas 195 +#define FN_Circle 196 +#define CIRCLE_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CIRCLE_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CIRCLE_RADIUS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_CircleFill 197 +#define CIRCLEFILL_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CIRCLEFILL_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CIRCLEFILL_RADIUS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_Ellipse 198 +#define ELLIPSE_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ELLIPSE_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define ELLIPSE_RX num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define ELLIPSE_RY num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_EllipseFill 199 +#define ELLIPSEFILL_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ELLIPSEFILL_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define ELLIPSEFILL_RX num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define ELLIPSEFILL_RY num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_FloodFill 200 +#define FLOODFILL_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FLOODFILL_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetPixel 201 +#define GETPIXEL_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETPIXEL_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetColor 202 +#define SETCOLOR_C num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_Line 203 +#define LINE_X1 num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define LINE_Y1 num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define LINE_X2 num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define LINE_Y2 num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_Poly 204 +#define POLY_N num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define POLY_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define POLY_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_Rect 205 +#define RECT_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define RECT_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define RECT_W num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define RECT_H num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_RectFill 206 +#define RECTFILL_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define RECTFILL_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define RECTFILL_W num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define RECTFILL_H num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_RGB 207 +#define RGB_R num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define RGB_G num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define RGB_B num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_RGBA 208 +#define RGBA_R num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define RGBA_G num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define RGBA_B num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define RGBA_A num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_Pset 209 +#define PSET_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define PSET_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_LoadImage 210 +#define LOADIMAGE_IMG$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_LoadImageEx 211 +#define LOADIMAGEEX_IMG$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define LOADIMAGEEX_COLKEY num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_createImage 212 +#define CREATEIMAGE_W num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CREATEIMAGE_H num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CREATEIMAGE_BUFFER num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_createImageEx 213 +#define CREATEIMAGEEX_W num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CREATEIMAGEEX_H num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CREATEIMAGEEX_BUFFER num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define CREATEIMAGEEX_COLOR num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getImageBuffer 214 +#define GETIMAGEBUFFER_IMG_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETIMAGEBUFFER_BUFFER num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_ImageExists 215 +#define IMAGEEXISTS_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_ColorKey 216 +#define COLORKEY_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define COLORKEY_C num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setBilinearFilter 217 +#define SETBILINEARFILTER_FLAG num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getBilinearFilter 218 +#define FN_CopyImage 219 +#define COPYIMAGE_IMG_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_DeleteImage 220 +#define DELETEIMAGE_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetImageAlpha 221 +#define SETIMAGEALPHA_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETIMAGEALPHA_A num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetImageAlpha 222 +#define GETIMAGEALPHA_IMG_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetImageSize 223 +#define GETIMAGESIZE_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETIMAGESIZE_W num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETIMAGESIZE_H num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_SetBlendMode 224 +#define SETBLENDMODE_BLEND_MODE num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetBlendMode 225 +#define FN_SetImageColorMod 226 +#define SETIMAGECOLORMOD_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETIMAGECOLORMOD_C num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetImageColorMod 227 +#define GETIMAGECOLORMOD_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_DrawImage 228 +#define DRAWIMAGE_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DRAWIMAGE_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DRAWIMAGE_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_DrawImage_Blit 229 +#define DRAWIMAGE_BLIT_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DRAWIMAGE_BLIT_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DRAWIMAGE_BLIT_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define DRAWIMAGE_BLIT_SRC_X num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define DRAWIMAGE_BLIT_SRC_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define DRAWIMAGE_BLIT_SRC_W num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define DRAWIMAGE_BLIT_SRC_H num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_DrawImage_BlitEx 230 +#define DRAWIMAGE_BLITEX_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DRAWIMAGE_BLITEX_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DRAWIMAGE_BLITEX_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define DRAWIMAGE_BLITEX_W num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define DRAWIMAGE_BLITEX_H num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define DRAWIMAGE_BLITEX_SRC_X num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define DRAWIMAGE_BLITEX_SRC_Y num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define DRAWIMAGE_BLITEX_SRC_W num_var[7].nref[0].value[ num_var[7].byref_offset ] +#define DRAWIMAGE_BLITEX_SRC_H num_var[8].nref[0].value[ num_var[8].byref_offset ] +#define FN_DrawImage_Rotate 231 +#define DRAWIMAGE_ROTATE_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DRAWIMAGE_ROTATE_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DRAWIMAGE_ROTATE_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define DRAWIMAGE_ROTATE_ANGLE num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_DrawImage_RotateEx 232 +#define DRAWIMAGE_ROTATEEX_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DRAWIMAGE_ROTATEEX_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DRAWIMAGE_ROTATEEX_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define DRAWIMAGE_ROTATEEX_SRC_X num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define DRAWIMAGE_ROTATEEX_SRC_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define DRAWIMAGE_ROTATEEX_SRC_W num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define DRAWIMAGE_ROTATEEX_SRC_H num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define DRAWIMAGE_ROTATEEX_ANGLE num_var[7].nref[0].value[ num_var[7].byref_offset ] +#define FN_DrawImage_Zoom 233 +#define DRAWIMAGE_ZOOM_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DRAWIMAGE_ZOOM_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DRAWIMAGE_ZOOM_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define DRAWIMAGE_ZOOM_ZX num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define DRAWIMAGE_ZOOM_ZY num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_DrawImage_ZoomEx 234 +#define DRAWIMAGE_ZOOMEX_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DRAWIMAGE_ZOOMEX_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DRAWIMAGE_ZOOMEX_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define DRAWIMAGE_ZOOMEX_SRC_X num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define DRAWIMAGE_ZOOMEX_SRC_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define DRAWIMAGE_ZOOMEX_SRC_W num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define DRAWIMAGE_ZOOMEX_SRC_H num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define DRAWIMAGE_ZOOMEX_ZX num_var[7].nref[0].value[ num_var[7].byref_offset ] +#define DRAWIMAGE_ZOOMEX_ZY num_var[8].nref[0].value[ num_var[8].byref_offset ] +#define FN_DrawImage_Rotozoom 235 +#define DRAWIMAGE_ROTOZOOM_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DRAWIMAGE_ROTOZOOM_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DRAWIMAGE_ROTOZOOM_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define DRAWIMAGE_ROTOZOOM_ANGLE num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define DRAWIMAGE_ROTOZOOM_ZX num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define DRAWIMAGE_ROTOZOOM_ZY num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define FN_DrawImage_RotozoomEx 236 +#define DRAWIMAGE_ROTOZOOMEX_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DRAWIMAGE_ROTOZOOMEX_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DRAWIMAGE_ROTOZOOMEX_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define DRAWIMAGE_ROTOZOOMEX_SRC_X num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define DRAWIMAGE_ROTOZOOMEX_SRC_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define DRAWIMAGE_ROTOZOOMEX_SRC_W num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define DRAWIMAGE_ROTOZOOMEX_SRC_H num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define DRAWIMAGE_ROTOZOOMEX_ANGLE num_var[7].nref[0].value[ num_var[7].byref_offset ] +#define DRAWIMAGE_ROTOZOOMEX_ZX num_var[8].nref[0].value[ num_var[8].byref_offset ] +#define DRAWIMAGE_ROTOZOOMEX_ZY num_var[9].nref[0].value[ num_var[9].byref_offset ] +#define FN_DrawImage_Flip 237 +#define DRAWIMAGE_FLIP_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DRAWIMAGE_FLIP_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DRAWIMAGE_FLIP_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define DRAWIMAGE_FLIP_H num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define DRAWIMAGE_FLIP_V num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_DrawImage_FlipEx 238 +#define DRAWIMAGE_FLIPEX_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DRAWIMAGE_FLIPEX_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DRAWIMAGE_FLIPEX_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define DRAWIMAGE_FLIPEX_SRC_X num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define DRAWIMAGE_FLIPEX_SRC_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define DRAWIMAGE_FLIPEX_SRC_W num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define DRAWIMAGE_FLIPEX_SRC_H num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define DRAWIMAGE_FLIPEX_H num_var[7].nref[0].value[ num_var[7].byref_offset ] +#define DRAWIMAGE_FLIPEX_V num_var[8].nref[0].value[ num_var[8].byref_offset ] +#define FN_InKey 239 +#define FN_Key 240 +#define KEY_KEY_CODE num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_WaitKey 241 +#define FN_HideMouse 242 +#define FN_ShowMouse 243 +#define FN_MouseIsVisible 244 +#define FN_GetMouse 245 +#define GETMOUSE_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETMOUSE_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETMOUSE_MB1 num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETMOUSE_MB2 num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETMOUSE_MB3 num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_MouseX 246 +#define FN_MouseY 247 +#define FN_MouseButton 248 +#define MOUSEBUTTON_MB num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetMouseWheel 249 +#define GETMOUSEWHEEL_X_AXIS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETMOUSEWHEEL_Y_AXIS num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_MouseWheelX 250 +#define FN_MouseWheelY 251 +#define FN_GetGlobalMouse 252 +#define GETGLOBALMOUSE_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETGLOBALMOUSE_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETGLOBALMOUSE_MB1 num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETGLOBALMOUSE_MB2 num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETGLOBALMOUSE_MB3 num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_GlobalMouseX 253 +#define FN_GlobalMouseY 254 +#define FN_WarpMouse 255 +#define WARPMOUSE_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define WARPMOUSE_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_WarpMouseGlobal 256 +#define WARPMOUSEGLOBAL_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define WARPMOUSEGLOBAL_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetMouseZone 257 +#define SETMOUSEZONE_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMOUSEZONE_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETMOUSEZONE_W num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETMOUSEZONE_H num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_ClearMouseZone 258 +#define FN_CreateSound 259 +#define CREATESOUND_BUFFER num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CREATESOUND_BUFFER_SIZE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CREATESOUND_VOL num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_LoadSound 260 +#define LOADSOUND_SND_FILE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_LoadMusic 261 +#define LOADMUSIC_MUSIC_FILE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_PlaySound 262 +#define PLAYSOUND_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define PLAYSOUND_CHANNEL num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define PLAYSOUND_LOOPS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_PlaySoundTimed 263 +#define PLAYSOUNDTIMED_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define PLAYSOUNDTIMED_CHANNEL num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define PLAYSOUNDTIMED_LOOPS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define PLAYSOUNDTIMED_MS num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_PlayMusic 264 +#define PLAYMUSIC_MLOOPS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_PauseSound 265 +#define PAUSESOUND_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_ResumeSound 266 +#define RESUMESOUND_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_PauseMusic 267 +#define FN_ResumeMusic 268 +#define FN_DeleteSound 269 +#define DELETESOUND_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_DeleteMusic 270 +#define FN_FadeMusicIn 271 +#define FADEMUSICIN_FADE_TIME num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FADEMUSICIN_LOOPS num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_FadeMusicOut 272 +#define FADEMUSICOUT_FADE_TIME num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_MusicExists 273 +#define FN_SetMusicVolume 274 +#define SETMUSICVOLUME_VOL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetMusicVolume 275 +#define FN_SetMusicPosition 276 +#define SETMUSICPOSITION_POS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetMusicPosition 277 +#define FN_RewindMusic 278 +#define FN_SetSoundChannels 279 +#define SETSOUNDCHANNELS_MAX_CHANNELS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_NumSoundChannels 280 +#define FN_SoundIsEnabled 281 +#define FN_SoundExists 282 +#define SOUNDEXISTS_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetChannelVolume 283 +#define SETCHANNELVOLUME_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCHANNELVOLUME_VOL num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetChannelVolume 284 +#define GETCHANNELVOLUME_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetSoundVolume 285 +#define SETSOUNDVOLUME_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETSOUNDVOLUME_VOL num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetSoundVolume 286 +#define GETSOUNDVOLUME_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_StopMusic 287 +#define FN_StopSound 288 +#define STOPSOUND_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetChannelPanning 289 +#define SETCHANNELPANNING_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCHANNELPANNING_LEFT_VALUE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETCHANNELPANNING_RIGHT_VALUE num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_SetChannelDistance 290 +#define SETCHANNELDISTANCE_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCHANNELDISTANCE_DIST_VALUE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_ChannelIsPlaying 291 +#define CHANNELISPLAYING_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_ChannelIsPaused 292 +#define CHANNELISPAUSED_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_QueryAudioSpec 293 +#define QUERYAUDIOSPEC_FREQ num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define QUERYAUDIOSPEC_FORMAT num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define QUERYAUDIOSPEC_CHANNELS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_MusicIsPlaying 294 +#define FN_SetChannelSpacePosition 295 +#define SETCHANNELSPACEPOSITION_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCHANNELSPACEPOSITION_ANGLE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETCHANNELSPACEPOSITION_DISTANCE num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_NumJoysticks 296 +#define FN_NumJoyAxes 297 +#define NUMJOYAXES_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_NumJoyButtons 298 +#define NUMJOYBUTTONS_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_NumJoyHats 299 +#define NUMJOYHATS_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_NumJoyTrackBalls 300 +#define NUMJOYTRACKBALLS_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_JoyAxis 301 +#define JOYAXIS_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define JOYAXIS_JOY_AXIS num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_JoyButton 302 +#define JOYBUTTON_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define JOYBUTTON_JOY_BUTTON num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_JoyHat 303 +#define JOYHAT_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define JOYHAT_JOY_HAT num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetJoyTrackBall 304 +#define GETJOYTRACKBALL_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETJOYTRACKBALL_BALL num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETJOYTRACKBALL_DX num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETJOYTRACKBALL_DY num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_JoyName$ 305 +#define JOYNAME$_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_JoystickIsConnected 306 +#define JOYSTICKISCONNECTED_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_JoyRumblePlay 307 +#define JOYRUMBLEPLAY_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define JOYRUMBLEPLAY_STRENGTH num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define JOYRUMBLEPLAY_DURATION num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_JoyRumbleStop 308 +#define JOYRUMBLESTOP_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_JoystickIsHaptic 309 +#define JOYSTICKISHAPTIC_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_LoadFont 310 +#define LOADFONT_FNT_FILE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define LOADFONT_FONT_SIZE num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_DeleteFont 311 +#define DELETEFONT_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_FontExists 312 +#define FONTEXISTS_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetFont 313 +#define SETFONT_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_DrawText 314 +#define DRAWTEXT_TXT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define DRAWTEXT_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DRAWTEXT_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetTextSize 315 +#define GETTEXTSIZE_TXT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define GETTEXTSIZE_W num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETTEXTSIZE_H num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetTextWidth 316 +#define GETTEXTWIDTH_TXT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_GetTextHeight 317 +#define GETTEXTHEIGHT_TXT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_TouchPressure 318 +#define FN_GetTouch 319 +#define GETTOUCH_STATUS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETTOUCH_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETTOUCH_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETTOUCH_DX num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETTOUCH_DY num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_GetMultiTouch 320 +#define GETMULTITOUCH_STATUS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETMULTITOUCH_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETMULTITOUCH_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETMULTITOUCH_FINGERS num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETMULTITOUCH_DIST num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define GETMULTITOUCH_THETA num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define FN_GetTouchFinger 321 +#define GETTOUCHFINGER_FINGER num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETTOUCHFINGER_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETTOUCHFINGER_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETTOUCHFINGER_PRESSURE num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_NumFingers 322 +#define FN_GetAccel 323 +#define GETACCEL_ACCEL_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACCEL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACCEL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACCEL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_AccelName$ 324 +#define ACCELNAME$_ACCEL_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_NumAccels 325 +#define FN_GetGyro 326 +#define GETGYRO_GYRO_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETGYRO_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETGYRO_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETGYRO_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_GyroName$ 327 +#define GYRONAME$_GYRO_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_NumGyros 328 +#define FN_CheckSockets 329 +#define CHECKSOCKETS_TIMEOUT_MS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_TCP_SocketReady 330 +#define TCP_SOCKETREADY_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_UDP_SocketReady 331 +#define UDP_SOCKETREADY_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_TCP_OpenSocket 332 +#define TCP_OPENSOCKET_HOST$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define TCP_OPENSOCKET_PORT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_TCP_CloseSocket 333 +#define TCP_CLOSESOCKET_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_TCP_RemoteHost 334 +#define TCP_REMOTEHOST_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_TCP_RemotePort 335 +#define TCP_REMOTEPORT_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_TCP_GetData 336 +#define TCP_GETDATA_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define TCP_GETDATA_NUMBYTES num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define TCP_GETDATA_SDATA$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_TCP_SendData 337 +#define TCP_SENDDATA_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define TCP_SENDDATA_SDATA$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_TCP_AcceptSocket 338 +#define TCP_ACCEPTSOCKET_SERVER num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define TCP_ACCEPTSOCKET_CLIENT num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_UDP_OpenSocket 339 +#define UDP_OPENSOCKET_PORT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_UDP_CloseSocket 340 +#define UDP_CLOSESOCKET_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_UDP_GetData 341 +#define UDP_GETDATA_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define UDP_GETDATA_HOST$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define UDP_GETDATA_PORT num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define UDP_GETDATA_SDATA$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define FN_UDP_Length 342 +#define FN_UDP_MaxLength 343 +#define FN_UDP_RemoteHost$ 344 +#define UDP_REMOTEHOST$_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_UDP_RemotePort 345 +#define UDP_REMOTEPORT_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_UDP_SendData 346 +#define UDP_SENDDATA_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define UDP_SENDDATA_HOST$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define UDP_SENDDATA_PORT num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define UDP_SENDDATA_SDATA$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define FN_LoadVideo 347 +#define LOADVIDEO_VID$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_PlayVideo 348 +#define PLAYVIDEO_VLOOPS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_PauseVideo 349 +#define FN_StopVideo 350 +#define FN_SetVideoPosition 351 +#define SETVIDEOPOSITION_POS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_ResumeVideo 352 +#define FN_GetVideoPosition 353 +#define FN_DeleteVideo 354 +#define FN_VideoIsPlaying 355 +#define FN_VideoEnd 356 +#define FN_GetVideoStats 357 +#define GETVIDEOSTATS_VFILE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define GETVIDEOSTATS_VLEN num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETVIDEOSTATS_VFPS num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETVIDEOSTATS_FRAME_W num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETVIDEOSTATS_FRAME_H num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_SetVideoDrawRect 358 +#define SETVIDEODRAWRECT_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETVIDEODRAWRECT_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETVIDEODRAWRECT_W num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETVIDEODRAWRECT_H num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_GetVideoDrawRect 359 +#define GETVIDEODRAWRECT_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETVIDEODRAWRECT_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETVIDEODRAWRECT_W num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETVIDEODRAWRECT_H num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_GetVideoSize 360 +#define GETVIDEOSIZE_W num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETVIDEOSIZE_H num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_VideoExists 361 +#define FN_SetVideoVolume 362 +#define SETVIDEOVOLUME_VOL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetVideoVolume 363 +#define FN_System 364 +#define SYSTEM_CMD$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_OS$ 365 +#define FN_Command$ 366 +#define COMMAND$_ARG num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_NumCommands 367 +#define FN_Env$ 368 +#define ENV$_V$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_SetEnv 369 +#define SETENV_VAR$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define SETENV_VALUE$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define FN_PrefPath$ 370 +#define PREFPATH$_ORG_NAME$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define PREFPATH$_APP_NAME$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define FN_Android_GetExternalStoragePath$ 371 +#define FN_Android_GetExternalStorageState 372 +#define FN_Android_GetInternalStoragePath$ 373 +#define FN_Android_JNI_Message$ 374 +#define ANDROID_JNI_MESSAGE$_ARG$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_Runtime_Utility_Message$ 375 +#define RUNTIME_UTILITY_MESSAGE$_ARG$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_GetDesktopDisplayMode 376 +#define GETDESKTOPDISPLAYMODE_INDEX num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETDESKTOPDISPLAYMODE_W num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETDESKTOPDISPLAYMODE_H num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETDESKTOPDISPLAYMODE_FREQ num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_GetPowerInfo 377 +#define GETPOWERINFO_STATUS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETPOWERINFO_SECS num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETPOWERINFO_PCT num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_EvalJS$ 378 +#define EVALJS$_JS_CODE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_SystemReturnStdOut$ 379 +#define SYSTEMRETURNSTDOUT$_CMD$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_OpenURL 380 +#define OPENURL_URL$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_MessageBox 381 +#define MESSAGEBOX_TITLE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define MESSAGEBOX_MSG$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define FN_Runtime$ 382 +#define FN_NumCPUs 383 +#define FN_SystemRam 384 +#define FN_DimMatrix 385 +#define DIMMATRIX_M_ROWS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DIMMATRIX_M_COLS num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_DeleteMatrix 386 +#define DELETEMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_AddMatrix 387 +#define ADDMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ADDMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define ADDMATRIX_MC num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_AugmentMatrix 388 +#define AUGMENTMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define AUGMENTMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define AUGMENTMATRIX_MC num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_CopyMatrix 389 +#define COPYMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define COPYMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_InsertMatrixColumns 390 +#define INSERTMATRIXCOLUMNS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define INSERTMATRIXCOLUMNS_C num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define INSERTMATRIXCOLUMNS_NUM_COLS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_InsertMatrixRows 391 +#define INSERTMATRIXROWS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define INSERTMATRIXROWS_R num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define INSERTMATRIXROWS_NUM_ROWS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_MultiplyMatrix 392 +#define MULTIPLYMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define MULTIPLYMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define MULTIPLYMATRIX_MC num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_CubeMatrix 393 +#define CUBEMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CUBEMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_DeleteMatrixColumns 394 +#define DELETEMATRIXCOLUMNS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DELETEMATRIXCOLUMNS_C num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DELETEMATRIXCOLUMNS_NUM_COLS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_DeleteMatrixRows 395 +#define DELETEMATRIXROWS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define DELETEMATRIXROWS_R num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define DELETEMATRIXROWS_NUM_ROWS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_ClearMatrix 396 +#define CLEARMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_ClearMatrixColumns 397 +#define CLEARMATRIXCOLUMNS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CLEARMATRIXCOLUMNS_C num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CLEARMATRIXCOLUMNS_NUM_COLS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_ClearMatrixRows 398 +#define CLEARMATRIXROWS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CLEARMATRIXROWS_R num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CLEARMATRIXROWS_NUM_ROWS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_FillMatrix 399 +#define FILLMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FILLMATRIX_V num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_FillMatrixColumns 400 +#define FILLMATRIXCOLUMNS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FILLMATRIXCOLUMNS_C num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FILLMATRIXCOLUMNS_NUM_COLS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FILLMATRIXCOLUMNS_V num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_FillMatrixRows 401 +#define FILLMATRIXROWS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FILLMATRIXROWS_R num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FILLMATRIXROWS_NUM_ROWS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FILLMATRIXROWS_V num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_CopyMatrixColumns 402 +#define COPYMATRIXCOLUMNS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define COPYMATRIXCOLUMNS_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define COPYMATRIXCOLUMNS_C num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define COPYMATRIXCOLUMNS_NUM_COLS num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_CopyMatrixRows 403 +#define COPYMATRIXROWS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define COPYMATRIXROWS_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define COPYMATRIXROWS_R num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define COPYMATRIXROWS_NUM_ROWS num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_SetIdentityMatrix 404 +#define SETIDENTITYMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETIDENTITYMATRIX_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SolveMatrix 405 +#define SOLVEMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SOLVEMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SOLVEMATRIX_MC num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_IsEqualMatrix 406 +#define ISEQUALMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ISEQUALMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define ISEQUALMATRIX_TOLERANCE num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_Determinant 407 +#define DETERMINANT_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_AdjointMatrix 408 +#define ADJOINTMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ADJOINTMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_InvertMatrix 409 +#define INVERTMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define INVERTMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_MatrixFromBuffer 410 +#define MATRIXFROMBUFFER_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define MATRIXFROMBUFFER_R num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define MATRIXFROMBUFFER_C num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define MATRIXFROMBUFFER_BUFFER num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_BufferFromMatrix 411 +#define BUFFERFROMMATRIX_BUFFER num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define BUFFERFROMMATRIX_MA num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_RandomizeMatrix 412 +#define RANDOMIZEMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define RANDOMIZEMATRIX_VMIN num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define RANDOMIZEMATRIX_VMAX num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_MatrixValue 413 +#define MATRIXVALUE_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define MATRIXVALUE_R num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define MATRIXVALUE_C num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_SetMatrixValue 414 +#define SETMATRIXVALUE_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATRIXVALUE_R num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETMATRIXVALUE_C num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETMATRIXVALUE_V num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_ScalarMatrix 415 +#define SCALARMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SCALARMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SCALARMATRIX_S_VALUE num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_ScalarMatrixColumns 416 +#define SCALARMATRIXCOLUMNS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SCALARMATRIXCOLUMNS_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SCALARMATRIXCOLUMNS_C num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SCALARMATRIXCOLUMNS_NUM_COLS num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define SCALARMATRIXCOLUMNS_S_VALUE num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_ScalarMatrixRows 417 +#define SCALARMATRIXROWS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SCALARMATRIXROWS_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SCALARMATRIXROWS_R num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SCALARMATRIXROWS_NUM_ROWS num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define SCALARMATRIXROWS_S_VALUE num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_SquareMatrix 418 +#define SQUAREMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SQUAREMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_CofactorMatrix 419 +#define COFACTORMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define COFACTORMATRIX_R num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define COFACTORMATRIX_C num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_SubtractMatrix 420 +#define SUBTRACTMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SUBTRACTMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SUBTRACTMATRIX_MC num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_SwapMatrix 421 +#define SWAPMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SWAPMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SwapMatrixColumn 422 +#define SWAPMATRIXCOLUMN_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SWAPMATRIXCOLUMN_C1 num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SWAPMATRIXCOLUMN_C2 num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_SwapMatrixRow 423 +#define SWAPMATRIXROW_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SWAPMATRIXROW_R1 num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SWAPMATRIXROW_R2 num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_TransposeMatrix 424 +#define TRANSPOSEMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define TRANSPOSEMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_UnAugmentMatrix 425 +#define UNAUGMENTMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define UNAUGMENTMATRIX_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define UNAUGMENTMATRIX_MC num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_ZeroMatrix 426 +#define ZEROMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetMatrixSize 427 +#define GETMATRIXSIZE_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETMATRIXSIZE_R num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETMATRIXSIZE_C num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_IncrementMatrixRows 428 +#define INCREMENTMATRIXROWS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define INCREMENTMATRIXROWS_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define INCREMENTMATRIXROWS_R num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define INCREMENTMATRIXROWS_NUM_ROWS num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define INCREMENTMATRIXROWS_VALUE num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_IncrementMatrixColumns 429 +#define INCREMENTMATRIXCOLUMNS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define INCREMENTMATRIXCOLUMNS_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define INCREMENTMATRIXCOLUMNS_C num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define INCREMENTMATRIXCOLUMNS_NUM_COLS num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define INCREMENTMATRIXCOLUMNS_VALUE num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_JoinMatrixRows 430 +#define JOINMATRIXROWS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define JOINMATRIXROWS_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define JOINMATRIXROWS_MC num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_JoinMatrixColumns 431 +#define JOINMATRIXCOLUMNS_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define JOINMATRIXCOLUMNS_MB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define JOINMATRIXCOLUMNS_MC num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_ClipMatrix 432 +#define CLIPMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CLIPMATRIX_R num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CLIPMATRIX_C num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define CLIPMATRIX_NUM_ROWS num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define CLIPMATRIX_NUM_COLS num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define CLIPMATRIX_MB num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define FN_SetMatrixTranslation 433 +#define SETMATRIXTRANSLATION_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATRIXTRANSLATION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETMATRIXTRANSLATION_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETMATRIXTRANSLATION_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_SetMatrixRotation 434 +#define SETMATRIXROTATION_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATRIXROTATION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETMATRIXROTATION_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETMATRIXROTATION_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_SetMatrixScale 435 +#define SETMATRIXSCALE_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATRIXSCALE_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETMATRIXSCALE_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETMATRIXSCALE_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_GetMatrixTranslation 436 +#define GETMATRIXTRANSLATION_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETMATRIXTRANSLATION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETMATRIXTRANSLATION_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETMATRIXTRANSLATION_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_GetMatrixRotation 437 +#define GETMATRIXROTATION_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETMATRIXROTATION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETMATRIXROTATION_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETMATRIXROTATION_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_GetMatrixScale 438 +#define GETMATRIXSCALE_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETMATRIXSCALE_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETMATRIXSCALE_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETMATRIXSCALE_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_GetClipboardText$ 439 +#define FN_SetClipboardText 440 +#define SETCLIPBOARDTEXT_TXT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_HasClipboardText 441 +#define FN_ReadInput_Start 442 +#define FN_ReadInput_Stop 443 +#define FN_ReadInput_Text$ 444 +#define FN_ReadInput_SetText 445 +#define READINPUT_SETTEXT_TXT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_ReadInput_ToggleBackspace 446 +#define READINPUT_TOGGLEBACKSPACE_FLAG num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_CreateSprite 447 +#define CREATESPRITE_IMG num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_DeleteSprite 448 +#define DELETESPRITE_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetSpritePosition 449 +#define SETSPRITEPOSITION_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETSPRITEPOSITION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETSPRITEPOSITION_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_LoadMesh 450 +#define LOADMESH_MESH_FILE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_DeleteMesh 451 +#define DELETEMESH_MESH num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_CreateMesh 452 +#define FN_AddMeshBuffer 453 +#define ADDMESHBUFFER_MESH num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ADDMESHBUFFER_VERTEX_COUNT num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define ADDMESHBUFFER_VERTEX_DATA num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define ADDMESHBUFFER_NORMAL_DATA num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define ADDMESHBUFFER_UV_DATA num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define ADDMESHBUFFER_INDEX_COUNT num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define ADDMESHBUFFER_INDEX_DATA num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_LoadMeshFromArchive 454 +#define LOADMESHFROMARCHIVE_ARCHIVE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define LOADMESHFROMARCHIVE_MESH_FILE$ str_var[1].sref[0].value[ str_var[1].byref_offset ] +#define FN_CreateMeshActor 455 +#define CREATEMESHACTOR_MESH num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_CreateMeshOctreeActor 456 +#define CREATEMESHOCTREEACTOR_MESH num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_CreateCubeActor 457 +#define CREATECUBEACTOR_CUBE_SIZE num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_CreateSphereActor 458 +#define CREATESPHEREACTOR_RADIUS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_CreateWaterPlaneActor 459 +#define CREATEWATERPLANEACTOR_W num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CREATEWATERPLANEACTOR_H num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_CreateLightActor 460 +#define FN_CreateBillboardActor 461 +#define FN_CreateTerrainActor 462 +#define CREATETERRAINACTOR_HMAP_FILE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_DeleteActor 463 +#define DELETEACTOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetActorTransform 464 +#define GETACTORTRANSFORM_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORTRANSFORM_MATRIX num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetActorPosition 465 +#define SETACTORPOSITION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORPOSITION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORPOSITION_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETACTORPOSITION_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_TranslateActor 466 +#define TRANSLATEACTOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define TRANSLATEACTOR_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define TRANSLATEACTOR_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define TRANSLATEACTOR_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_TranslateActorWorld 467 +#define TRANSLATEACTORWORLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define TRANSLATEACTORWORLD_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define TRANSLATEACTORWORLD_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define TRANSLATEACTORWORLD_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_GetActorPosition 468 +#define GETACTORPOSITION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORPOSITION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORPOSITION_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORPOSITION_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_SetActorScale 469 +#define SETACTORSCALE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORSCALE_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORSCALE_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETACTORSCALE_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_ScaleActor 470 +#define SCALEACTOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SCALEACTOR_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SCALEACTOR_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SCALEACTOR_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_GetActorScale 471 +#define GETACTORSCALE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORSCALE_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORSCALE_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORSCALE_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_SetActorRotation 472 +#define SETACTORROTATION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORROTATION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORROTATION_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETACTORROTATION_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_RotateActor 473 +#define ROTATEACTOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ROTATEACTOR_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define ROTATEACTOR_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define ROTATEACTOR_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_GetActorRotation 474 +#define GETACTORROTATION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORROTATION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORROTATION_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORROTATION_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_SetActorVisible 475 +#define SETACTORVISIBLE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORVISIBLE_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_ActorIsVisible 476 +#define ACTORISVISIBLE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetActorAutoCulling 477 +#define SETACTORAUTOCULLING_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORAUTOCULLING_CULL_TYPE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetActorAutoCulling 478 +#define GETACTORAUTOCULLING_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_AddActorShadow 479 +#define ADDACTORSHADOW_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_RemoveActorShadow 480 +#define REMOVEACTORSHADOW_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetGravity3D 481 +#define SETGRAVITY3D_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETGRAVITY3D_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETGRAVITY3D_Z num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_GetGravity3D 482 +#define GETGRAVITY3D_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETGRAVITY3D_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETGRAVITY3D_Z num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_SetActorCollisionShape 483 +#define SETACTORCOLLISIONSHAPE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORCOLLISIONSHAPE_SHAPE_TYPE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORCOLLISIONSHAPE_MASS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_GetActorCollisionShape 484 +#define GETACTORCOLLISIONSHAPE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetActorSolid 485 +#define SETACTORSOLID_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORSOLID_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_ActorIsSolid 486 +#define ACTORISSOLID_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetActorCollision 487 +#define GETACTORCOLLISION_ACTOR1 num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORCOLLISION_ACTOR2 num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetActorGravity 488 +#define SETACTORGRAVITY_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORGRAVITY_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORGRAVITY_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETACTORGRAVITY_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_GetActorGravity 489 +#define GETACTORGRAVITY_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORGRAVITY_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORGRAVITY_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORGRAVITY_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_setActorDamping 490 +#define SETACTORDAMPING_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORDAMPING_LIN_DAMPING num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORDAMPING_ANG_DAMPING num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_getActorLinearDamping 491 +#define GETACTORLINEARDAMPING_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getActorAngularDamping 492 +#define GETACTORANGULARDAMPING_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getActorLinearSleepThreshold 493 +#define GETACTORLINEARSLEEPTHRESHOLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getActorAngularSleepThreshold 494 +#define GETACTORANGULARSLEEPTHRESHOLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_applyActorDamping 495 +#define APPLYACTORDAMPING_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define APPLYACTORDAMPING_TIMESTEP num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setActorMassProperties 496 +#define SETACTORMASSPROPERTIES_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORMASSPROPERTIES_MASS num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORMASSPROPERTIES_INERTIA_X num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETACTORMASSPROPERTIES_INERTIA_Y num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define SETACTORMASSPROPERTIES_INERTIA_Z num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_getActorLinearFactor 497 +#define GETACTORLINEARFACTOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORLINEARFACTOR_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORLINEARFACTOR_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORLINEARFACTOR_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_setActorLinearFactor 498 +#define SETACTORLINEARFACTOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORLINEARFACTOR_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORLINEARFACTOR_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETACTORLINEARFACTOR_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getActorInverseMass 499 +#define GETACTORINVERSEMASS_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_integrateActorVelocities 500 +#define INTEGRATEACTORVELOCITIES_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define INTEGRATEACTORVELOCITIES_V_STEP num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_applyActorCentralForceLocal 501 +#define APPLYACTORCENTRALFORCELOCAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define APPLYACTORCENTRALFORCELOCAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define APPLYACTORCENTRALFORCELOCAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define APPLYACTORCENTRALFORCELOCAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_applyActorCentralForceWorld 502 +#define APPLYACTORCENTRALFORCEWORLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define APPLYACTORCENTRALFORCEWORLD_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define APPLYACTORCENTRALFORCEWORLD_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define APPLYACTORCENTRALFORCEWORLD_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getActorTotalForce 503 +#define GETACTORTOTALFORCE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORTOTALFORCE_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORTOTALFORCE_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORTOTALFORCE_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getActorTotalTorque 504 +#define GETACTORTOTALTORQUE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORTOTALTORQUE_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORTOTALTORQUE_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORTOTALTORQUE_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getActorInverseInertiaDiagLocal 505 +#define GETACTORINVERSEINERTIADIAGLOCAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORINVERSEINERTIADIAGLOCAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORINVERSEINERTIADIAGLOCAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORINVERSEINERTIADIAGLOCAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_setActorInverseInertiaDiagLocal 506 +#define SETACTORINVERSEINERTIADIAGLOCAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORINVERSEINERTIADIAGLOCAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORINVERSEINERTIADIAGLOCAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETACTORINVERSEINERTIADIAGLOCAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_setActorSleepThresholds 507 +#define SETACTORSLEEPTHRESHOLDS_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORSLEEPTHRESHOLDS_LINEAR num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORSLEEPTHRESHOLDS_ANGULAR num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_applyActorTorqueLocal 508 +#define APPLYACTORTORQUELOCAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define APPLYACTORTORQUELOCAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define APPLYACTORTORQUELOCAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define APPLYACTORTORQUELOCAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_applyActorTorqueWorld 509 +#define APPLYACTORTORQUEWORLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define APPLYACTORTORQUEWORLD_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define APPLYACTORTORQUEWORLD_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define APPLYACTORTORQUEWORLD_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_applyActorForceLocal 510 +#define APPLYACTORFORCELOCAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define APPLYACTORFORCELOCAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define APPLYACTORFORCELOCAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define APPLYACTORFORCELOCAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define APPLYACTORFORCELOCAL_REL_X num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define APPLYACTORFORCELOCAL_REL_Y num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define APPLYACTORFORCELOCAL_REL_Z num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_applyActorForceWorld 511 +#define APPLYACTORFORCEWORLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define APPLYACTORFORCEWORLD_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define APPLYACTORFORCEWORLD_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define APPLYACTORFORCEWORLD_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define APPLYACTORFORCEWORLD_REL_X num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define APPLYACTORFORCEWORLD_REL_Y num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define APPLYACTORFORCEWORLD_REL_Z num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_applyActorCentralImpulseLocal 512 +#define APPLYACTORCENTRALIMPULSELOCAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define APPLYACTORCENTRALIMPULSELOCAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define APPLYACTORCENTRALIMPULSELOCAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define APPLYACTORCENTRALIMPULSELOCAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_applyActorCentralImpulseWorld 513 +#define APPLYACTORCENTRALIMPULSEWORLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define APPLYACTORCENTRALIMPULSEWORLD_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define APPLYACTORCENTRALIMPULSEWORLD_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define APPLYACTORCENTRALIMPULSEWORLD_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_applyActorTorqueImpulseLocal 514 +#define APPLYACTORTORQUEIMPULSELOCAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define APPLYACTORTORQUEIMPULSELOCAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define APPLYACTORTORQUEIMPULSELOCAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define APPLYACTORTORQUEIMPULSELOCAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_applyActorTorqueImpulseWorld 515 +#define APPLYACTORTORQUEIMPULSEWORLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define APPLYACTORTORQUEIMPULSEWORLD_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define APPLYACTORTORQUEIMPULSEWORLD_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define APPLYACTORTORQUEIMPULSEWORLD_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_applyActorImpulseLocal 516 +#define APPLYACTORIMPULSELOCAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define APPLYACTORIMPULSELOCAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define APPLYACTORIMPULSELOCAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define APPLYACTORIMPULSELOCAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define APPLYACTORIMPULSELOCAL_REL_X num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define APPLYACTORIMPULSELOCAL_REL_Y num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define APPLYACTORIMPULSELOCAL_REL_Z num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_applyActorImpulseWorld 517 +#define APPLYACTORIMPULSEWORLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define APPLYACTORIMPULSEWORLD_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define APPLYACTORIMPULSEWORLD_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define APPLYACTORIMPULSEWORLD_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define APPLYACTORIMPULSEWORLD_REL_X num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define APPLYACTORIMPULSEWORLD_REL_Y num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define APPLYACTORIMPULSEWORLD_REL_Z num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_clearActorForces 518 +#define CLEARACTORFORCES_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_updateActorInertiaTensor 519 +#define UPDATEACTORINERTIATENSOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getActorCOMPosition 520 +#define GETACTORCOMPOSITION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORCOMPOSITION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORCOMPOSITION_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORCOMPOSITION_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getActorRotationQ 521 +#define GETACTORROTATIONQ_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORROTATIONQ_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORROTATIONQ_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORROTATIONQ_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETACTORROTATIONQ_W num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_getActorLinearVelocity 522 +#define GETACTORLINEARVELOCITY_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORLINEARVELOCITY_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORLINEARVELOCITY_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORLINEARVELOCITY_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getActorAngularVelocity 523 +#define GETACTORANGULARVELOCITY_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORANGULARVELOCITY_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORANGULARVELOCITY_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORANGULARVELOCITY_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_setActorLinearVelocityLocal 524 +#define SETACTORLINEARVELOCITYLOCAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORLINEARVELOCITYLOCAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORLINEARVELOCITYLOCAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETACTORLINEARVELOCITYLOCAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_setActorLinearVelocityWorld 525 +#define SETACTORLINEARVELOCITYWORLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORLINEARVELOCITYWORLD_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORLINEARVELOCITYWORLD_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETACTORLINEARVELOCITYWORLD_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_setActorAngularVelocityLocal 526 +#define SETACTORANGULARVELOCITYLOCAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORANGULARVELOCITYLOCAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORANGULARVELOCITYLOCAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETACTORANGULARVELOCITYLOCAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_setActorAngularVelocityWorld 527 +#define SETACTORANGULARVELOCITYWORLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORANGULARVELOCITYWORLD_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORANGULARVELOCITYWORLD_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETACTORANGULARVELOCITYWORLD_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getActorLocalPointVelocity 528 +#define GETACTORLOCALPOINTVELOCITY_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORLOCALPOINTVELOCITY_REL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORLOCALPOINTVELOCITY_REL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORLOCALPOINTVELOCITY_REL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETACTORLOCALPOINTVELOCITY_X num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define GETACTORLOCALPOINTVELOCITY_Y num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define GETACTORLOCALPOINTVELOCITY_Z num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_getActorLinearVelocityLocal 529 +#define GETACTORLINEARVELOCITYLOCAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORLINEARVELOCITYLOCAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORLINEARVELOCITYLOCAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORLINEARVELOCITYLOCAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getActorAngularVelocityLocal 530 +#define GETACTORANGULARVELOCITYLOCAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORANGULARVELOCITYLOCAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORANGULARVELOCITYLOCAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORANGULARVELOCITYLOCAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getActorAABB 531 +#define GETACTORAABB_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORAABB_MIN_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORAABB_MIN_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORAABB_MIN_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETACTORAABB_MAX_X num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define GETACTORAABB_MAX_Y num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define GETACTORAABB_MAX_Z num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_computeActorImpulseDenominator 532 +#define COMPUTEACTORIMPULSEDENOMINATOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define COMPUTEACTORIMPULSEDENOMINATOR_POS_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define COMPUTEACTORIMPULSEDENOMINATOR_POS_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define COMPUTEACTORIMPULSEDENOMINATOR_POS_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define COMPUTEACTORIMPULSEDENOMINATOR_NORMAL_X num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define COMPUTEACTORIMPULSEDENOMINATOR_NORMAL_Y num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define COMPUTEACTORIMPULSEDENOMINATOR_NORMAL_Z num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_computeActorAngularImpulseDenominator 533 +#define COMPUTEACTORANGULARIMPULSEDENOMINATOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define COMPUTEACTORANGULARIMPULSEDENOMINATOR_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define COMPUTEACTORANGULARIMPULSEDENOMINATOR_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define COMPUTEACTORANGULARIMPULSEDENOMINATOR_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_setActorAngularFactor 534 +#define SETACTORANGULARFACTOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORANGULARFACTOR_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORANGULARFACTOR_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETACTORANGULARFACTOR_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getActorAngularFactor 535 +#define GETACTORANGULARFACTOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORANGULARFACTOR_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORANGULARFACTOR_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORANGULARFACTOR_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_computeActorGyroImpulseLocal 536 +#define COMPUTEACTORGYROIMPULSELOCAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define COMPUTEACTORGYROIMPULSELOCAL_DT num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define COMPUTEACTORGYROIMPULSELOCAL_X num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define COMPUTEACTORGYROIMPULSELOCAL_Y num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define COMPUTEACTORGYROIMPULSELOCAL_Z num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_computeActorGyroImpulseWorld 537 +#define COMPUTEACTORGYROIMPULSEWORLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define COMPUTEACTORGYROIMPULSEWORLD_DT num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define COMPUTEACTORGYROIMPULSEWORLD_X num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define COMPUTEACTORGYROIMPULSEWORLD_Y num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define COMPUTEACTORGYROIMPULSEWORLD_Z num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_getActorLocalInertia 538 +#define GETACTORLOCALINERTIA_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORLOCALINERTIA_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORLOCALINERTIA_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETACTORLOCALINERTIA_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_createPointConstraint 539 +#define CREATEPOINTCONSTRAINT_ACTORA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CREATEPOINTCONSTRAINT_PXA num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CREATEPOINTCONSTRAINT_PYA num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define CREATEPOINTCONSTRAINT_PZA num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_createPointConstraintEx 540 +#define CREATEPOINTCONSTRAINTEX_ACTORA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CREATEPOINTCONSTRAINTEX_ACTORB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CREATEPOINTCONSTRAINTEX_PXA num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define CREATEPOINTCONSTRAINTEX_PYA num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define CREATEPOINTCONSTRAINTEX_PZA num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define CREATEPOINTCONSTRAINTEX_PXB num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define CREATEPOINTCONSTRAINTEX_PYB num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define CREATEPOINTCONSTRAINTEX_PZB num_var[7].nref[0].value[ num_var[7].byref_offset ] +#define FN_setConstraintPivotA 541 +#define SETCONSTRAINTPIVOTA_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTPIVOTA_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETCONSTRAINTPIVOTA_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETCONSTRAINTPIVOTA_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_setConstraintPivotB 542 +#define SETCONSTRAINTPIVOTB_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTPIVOTB_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETCONSTRAINTPIVOTB_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETCONSTRAINTPIVOTB_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_createHingeConstraint 543 +#define CREATEHINGECONSTRAINT_ACTORA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CREATEHINGECONSTRAINT_PXA num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CREATEHINGECONSTRAINT_PYA num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define CREATEHINGECONSTRAINT_PZA num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define CREATEHINGECONSTRAINT_AXA num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define CREATEHINGECONSTRAINT_AYA num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define CREATEHINGECONSTRAINT_AZA num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_createHingeConstraintEx 544 +#define CREATEHINGECONSTRAINTEX_ACTORA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CREATEHINGECONSTRAINTEX_ACTORB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CREATEHINGECONSTRAINTEX_PXA num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define CREATEHINGECONSTRAINTEX_PYA num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define CREATEHINGECONSTRAINTEX_PZA num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define CREATEHINGECONSTRAINTEX_PXB num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define CREATEHINGECONSTRAINTEX_PYB num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define CREATEHINGECONSTRAINTEX_PZB num_var[7].nref[0].value[ num_var[7].byref_offset ] +#define CREATEHINGECONSTRAINTEX_AXA num_var[8].nref[0].value[ num_var[8].byref_offset ] +#define CREATEHINGECONSTRAINTEX_AYA num_var[9].nref[0].value[ num_var[9].byref_offset ] +#define CREATEHINGECONSTRAINTEX_AZA num_var[10].nref[0].value[ num_var[10].byref_offset ] +#define CREATEHINGECONSTRAINTEX_AXB num_var[11].nref[0].value[ num_var[11].byref_offset ] +#define CREATEHINGECONSTRAINTEX_AYB num_var[12].nref[0].value[ num_var[12].byref_offset ] +#define CREATEHINGECONSTRAINTEX_AZB num_var[13].nref[0].value[ num_var[13].byref_offset ] +#define FN_createSlideConstraint 545 +#define CREATESLIDECONSTRAINT_ACTORA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CREATESLIDECONSTRAINT_FRAMEINB_MATRIX num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CREATESLIDECONSTRAINT_USELINEARREFERENCEFRAMEA num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_createSlideConstraintEx 546 +#define CREATESLIDECONSTRAINTEX_ACTORA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CREATESLIDECONSTRAINTEX_ACTORB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CREATESLIDECONSTRAINTEX_FRAMEINA_MATRIX num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define CREATESLIDECONSTRAINTEX_FRAMEINB_MATRIX num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define CREATESLIDECONSTRAINTEX_USELINEARREFERENCEFRAMEA num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_createConeConstraint 547 +#define CREATECONECONSTRAINT_ACTORA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CREATECONECONSTRAINT_RBAFRAME_MATRIX num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_createConeConstraintEx 548 +#define CREATECONECONSTRAINTEX_ACTORA num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CREATECONECONSTRAINTEX_ACTORB num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define CREATECONECONSTRAINTEX_RBAFRAME_MATRIX num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define CREATECONECONSTRAINTEX_RBBFRAME_MATRIX num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_deleteConstraint 549 +#define DELETECONSTRAINT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintFrameOffsetA 550 +#define GETCONSTRAINTFRAMEOFFSETA_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCONSTRAINTFRAMEOFFSETA_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETCONSTRAINTFRAMEOFFSETA_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETCONSTRAINTFRAMEOFFSETA_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETCONSTRAINTFRAMEOFFSETA_RX num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define GETCONSTRAINTFRAMEOFFSETA_RY num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define GETCONSTRAINTFRAMEOFFSETA_RZ num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_getConstraintFrameOffsetB 551 +#define GETCONSTRAINTFRAMEOFFSETB_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCONSTRAINTFRAMEOFFSETB_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETCONSTRAINTFRAMEOFFSETB_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETCONSTRAINTFRAMEOFFSETB_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETCONSTRAINTFRAMEOFFSETB_RX num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define GETCONSTRAINTFRAMEOFFSETB_RY num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define GETCONSTRAINTFRAMEOFFSETB_RZ num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_useConstraintFrameOffset 552 +#define USECONSTRAINTFRAMEOFFSET_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define USECONSTRAINTFRAMEOFFSET_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getHingeAngle 553 +#define GETHINGEANGLE_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getHingeAngleEx 554 +#define GETHINGEANGLEEX_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETHINGEANGLEEX_T_MATRIXA num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETHINGEANGLEEX_T_MATRIXB num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_getConstraintBreakingImpulseThreshold 555 +#define GETCONSTRAINTBREAKINGIMPULSETHRESHOLD_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintAFrame 556 +#define GETCONSTRAINTAFRAME_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCONSTRAINTAFRAME_MA num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getConstraintBFrame 557 +#define GETCONSTRAINTBFRAME_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCONSTRAINTBFRAME_MA num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintAxis 558 +#define SETCONSTRAINTAXIS_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTAXIS_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETCONSTRAINTAXIS_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETCONSTRAINTAXIS_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_setConstraintBreakingImpulseThreshold 559 +#define SETCONSTRAINTBREAKINGIMPULSETHRESHOLD_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTBREAKINGIMPULSETHRESHOLD_THRESHOLD num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintFrames 560 +#define SETCONSTRAINTFRAMES_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTFRAMES_FRAMEA_MATRIX num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETCONSTRAINTFRAMES_FRAMEB_MATRIX num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_setHingeLimit 561 +#define SETHINGELIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETHINGELIMIT_LOW num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETHINGELIMIT_HIGH num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETHINGELIMIT_SOFTNESS num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define SETHINGELIMIT_BIAS_FACTOR num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define SETHINGELIMIT_RELAXATION_FACTOR num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define FN_setConeLimit 562 +#define SETCONELIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONELIMIT_SWINGSPAN1 num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETCONELIMIT_SWINGSPAN2 num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETCONELIMIT_TWISTSPAN num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define SETCONELIMIT_SOFTNESS num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define SETCONELIMIT_BIAS_FACTOR num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define SETCONELIMIT_RELAXATION_FACTOR num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_getConstraintLimitBiasFactor 563 +#define GETCONSTRAINTLIMITBIASFACTOR_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getLimitRelaxationFactor 564 +#define GETLIMITRELAXATIONFACTOR_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintLimitSign 565 +#define GETCONSTRAINTLIMITSIGN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getHingeSolveLimit 566 +#define GETHINGESOLVELIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_useHingeReferenceFrameA 567 +#define USEHINGEREFERENCEFRAMEA_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define USEHINGEREFERENCEFRAMEA_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getConstraintAppliedImpulse 568 +#define GETCONSTRAINTAPPLIEDIMPULSE_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintFixedActor 569 +#define GETCONSTRAINTFIXEDACTOR_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintPivotA 570 +#define GETCONSTRAINTPIVOTA_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCONSTRAINTPIVOTA_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETCONSTRAINTPIVOTA_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETCONSTRAINTPIVOTA_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getConstraintPivotB 571 +#define GETCONSTRAINTPIVOTB_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCONSTRAINTPIVOTB_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETCONSTRAINTPIVOTB_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETCONSTRAINTPIVOTB_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getConstraintActorA 572 +#define GETCONSTRAINTACTORA_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintActorB 573 +#define GETCONSTRAINTACTORB_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setConstraintSolverIterations 574 +#define SETCONSTRAINTSOLVERITERATIONS_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTSOLVERITERATIONS_NUM num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getConstraintBiasFactor 575 +#define GETCONSTRAINTBIASFACTOR_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintDamping 576 +#define GETCONSTRAINTDAMPING_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintFixThresh 577 +#define GETCONSTRAINTFIXTHRESH_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintLimit 578 +#define GETCONSTRAINTLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCONSTRAINTLIMIT_LIMIT_INDEX num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getConstraintLimitSoftness 579 +#define GETCONSTRAINTLIMITSOFTNESS_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintSolverIterations 580 +#define GETCONSTRAINTSOLVERITERATIONS_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintAnglePoint 581 +#define GETCONSTRAINTANGLEPOINT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCONSTRAINTANGLEPOINT_ANGLE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETCONSTRAINTANGLEPOINT_C_LEN num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETCONSTRAINTANGLEPOINT_X num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETCONSTRAINTANGLEPOINT_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define GETCONSTRAINTANGLEPOINT_Z num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define FN_getConstraintAngularOnly 582 +#define GETCONSTRAINTANGULARONLY_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintSolveSwingLimit 583 +#define GETCONSTRAINTSOLVESWINGLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintSolveTwistLimit 584 +#define GETCONSTRAINTSOLVETWISTLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintSolveLimit 585 +#define GETCONSTRAINTSOLVELIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintSwingSpan1 586 +#define GETCONSTRAINTSWINGSPAN1_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintSwingSpan2 587 +#define GETCONSTRAINTSWINGSPAN2_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintTwistAngle 588 +#define GETCONSTRAINTTWISTANGLE_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintTwistLimitSign 589 +#define GETCONSTRAINTTWISTLIMITSIGN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintTwistSpan 590 +#define GETCONSTRAINTTWISTSPAN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setConstraintAngularOnly 591 +#define SETCONSTRAINTANGULARONLY_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTANGULARONLY_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintDamping 592 +#define SETCONSTRAINTDAMPING_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTDAMPING_DAMPING num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintFixThresh 593 +#define SETCONSTRAINTFIXTHRESH_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTFIXTHRESH_FIXTHRESH num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getConstraintAnchorA 594 +#define GETCONSTRAINTANCHORA_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCONSTRAINTANCHORA_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETCONSTRAINTANCHORA_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETCONSTRAINTANCHORA_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getConstraintAnchorB 595 +#define GETCONSTRAINTANCHORB_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCONSTRAINTANCHORB_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETCONSTRAINTANCHORB_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETCONSTRAINTANCHORB_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getConstraintAngDepth 596 +#define GETCONSTRAINTANGDEPTH_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintAngularPos 597 +#define GETCONSTRAINTANGULARPOS_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintDampingDirAng 598 +#define GETCONSTRAINTDAMPINGDIRANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintDampingDirLin 599 +#define GETCONSTRAINTDAMPINGDIRLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintDampingLimAng 600 +#define GETCONSTRAINTDAMPINGLIMANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintDampingLimLin 601 +#define GETCONSTRAINTDAMPINGLIMLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintDampingOrthoAng 602 +#define GETCONSTRAINTDAMPINGORTHOANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintDampingOrthoLin 603 +#define GETCONSTRAINTDAMPINGORTHOLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintLinearPos 604 +#define GETCONSTRAINTLINEARPOS_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintLinDepth 605 +#define GETCONSTRAINTLINDEPTH_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintLowerAngLimit 606 +#define GETCONSTRAINTLOWERANGLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintLowerLinLimit 607 +#define GETCONSTRAINTLOWERLINLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintRestitutionDirAng 608 +#define GETCONSTRAINTRESTITUTIONDIRANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintRestitutionDirLin 609 +#define GETCONSTRAINTRESTITUTIONDIRLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintRestitutionLimAng 610 +#define GETCONSTRAINTRESTITUTIONLIMANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintRestitutionLimLin 611 +#define GETCONSTRAINTRESTITUTIONLIMLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintRestitutionOrthoAng 612 +#define GETCONSTRAINTRESTITUTIONORTHOANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintRestitutionOrthoLin 613 +#define GETCONSTRAINTRESTITUTIONORTHOLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintSoftnessDirAng 614 +#define GETCONSTRAINTSOFTNESSDIRANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintSoftnessDirLin 615 +#define GETCONSTRAINTSOFTNESSDIRLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintSoftnessLimAng 616 +#define GETCONSTRAINTSOFTNESSLIMANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintSoftnessLimLin 617 +#define GETCONSTRAINTSOFTNESSLIMLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintSoftnessOrthoAng 618 +#define GETCONSTRAINTSOFTNESSORTHOANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintSoftnessOrthoLin 619 +#define GETCONSTRAINTSOFTNESSORTHOLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintSolveAngLimit 620 +#define GETCONSTRAINTSOLVEANGLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintSolveLinLimit 621 +#define GETCONSTRAINTSOLVELINLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintUpperAngLimit 622 +#define GETCONSTRAINTUPPERANGLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintUpperLinLimit 623 +#define GETCONSTRAINTUPPERLINLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getConstraintUseFrameOffset 624 +#define GETCONSTRAINTUSEFRAMEOFFSET_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setConstraintDampingDirAng 625 +#define SETCONSTRAINTDAMPINGDIRANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTDAMPINGDIRANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintDampingDirLin 626 +#define SETCONSTRAINTDAMPINGDIRLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTDAMPINGDIRLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintDampingLimAng 627 +#define SETCONSTRAINTDAMPINGLIMANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTDAMPINGLIMANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintDampingLimLin 628 +#define SETCONSTRAINTDAMPINGLIMLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTDAMPINGLIMLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintDampingOrthoAng 629 +#define SETCONSTRAINTDAMPINGORTHOANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTDAMPINGORTHOANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintDampingOrthoLin 630 +#define SETCONSTRAINTDAMPINGORTHOLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTDAMPINGORTHOLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintLowerAngLimit 631 +#define SETCONSTRAINTLOWERANGLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTLOWERANGLIMIT_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintLowerLinLimit 632 +#define SETCONSTRAINTLOWERLINLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTLOWERLINLIMIT_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintRestitutionDirAng 633 +#define SETCONSTRAINTRESTITUTIONDIRANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTRESTITUTIONDIRANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintRestitutionDirLin 634 +#define SETCONSTRAINTRESTITUTIONDIRLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTRESTITUTIONDIRLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintRestitutionLimAng 635 +#define SETCONSTRAINTRESTITUTIONLIMANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTRESTITUTIONLIMANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintRestitutionLimLin 636 +#define SETCONSTRAINTRESTITUTIONLIMLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTRESTITUTIONLIMLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintRestitutionOrthoAng 637 +#define SETCONSTRAINTRESTITUTIONORTHOANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTRESTITUTIONORTHOANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintRestitutionOrthoLin 638 +#define SETCONSTRAINTRESTITUTIONORTHOLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTRESTITUTIONORTHOLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintSoftnessDirAng 639 +#define SETCONSTRAINTSOFTNESSDIRANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTSOFTNESSDIRANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintSoftnessDirLin 640 +#define SETCONSTRAINTSOFTNESSDIRLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTSOFTNESSDIRLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintSoftnessLimAng 641 +#define SETCONSTRAINTSOFTNESSLIMANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTSOFTNESSLIMANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintSoftnessLimLin 642 +#define SETCONSTRAINTSOFTNESSLIMLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTSOFTNESSLIMLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintSoftnessOrthoAng 643 +#define SETCONSTRAINTSOFTNESSORTHOANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTSOFTNESSORTHOANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintSoftnessOrthoLin 644 +#define SETCONSTRAINTSOFTNESSORTHOLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTSOFTNESSORTHOLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintUpperAngLimit 645 +#define SETCONSTRAINTUPPERANGLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTUPPERANGLIMIT_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setConstraintUpperLinLimit 646 +#define SETCONSTRAINTUPPERLINLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCONSTRAINTUPPERLINLIMIT_N num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetCameraPosition 647 +#define SETCAMERAPOSITION_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCAMERAPOSITION_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETCAMERAPOSITION_Z num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_GetCameraPosition 648 +#define GETCAMERAPOSITION_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCAMERAPOSITION_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETCAMERAPOSITION_Z num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_TranslateCamera 649 +#define TRANSLATECAMERA_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define TRANSLATECAMERA_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define TRANSLATECAMERA_Z num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_SetCameraRotation 650 +#define SETCAMERAROTATION_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETCAMERAROTATION_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETCAMERAROTATION_Z num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_GetCameraRotation 651 +#define GETCAMERAROTATION_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETCAMERAROTATION_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETCAMERAROTATION_Z num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_RotateCamera 652 +#define ROTATECAMERA_X num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ROTATECAMERA_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define ROTATECAMERA_Z num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_SetCameraFOV 653 +#define SETCAMERAFOV_FOV num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetCameraFOV 654 +#define FN_SetCameraAspectRatio 655 +#define SETCAMERAASPECTRATIO_ASPECT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetCameraAspectRatio 656 +#define FN_SetCameraFarValue 657 +#define SETCAMERAFARVALUE_ZF num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetCameraFarValue 658 +#define FN_SetCameraNearValue 659 +#define SETCAMERANEARVALUE_ZN num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetCameraNearValue 660 +#define FN_AddSceneSkyBox 661 +#define ADDSCENESKYBOX_IMG_TOP num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ADDSCENESKYBOX_IMG_BOTTOM num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define ADDSCENESKYBOX_IMG_LEFT num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define ADDSCENESKYBOX_IMG_RIGHT num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define ADDSCENESKYBOX_IMG_FRONT num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define ADDSCENESKYBOX_IMG_BACK num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define FN_AddSceneSkyDome 662 +#define ADDSCENESKYDOME_IMG num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_AddSceneSkyDomeEx 663 +#define ADDSCENESKYDOMEEX_IMG num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define ADDSCENESKYDOMEEX_HORIRES num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define ADDSCENESKYDOMEEX_VERTRES num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define ADDSCENESKYDOMEEX_TXPERCENTAGE num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define ADDSCENESKYDOMEEX_SPHEREPERCENTAGE num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define ADDSCENESKYDOMEEX_RADIUS num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define FN_RemoveSceneSky 664 +#define FN_SetWorld3DDeltaTime 665 +#define SETWORLD3DDELTATIME_DT num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetWorld3DMaxSubSteps 666 +#define SETWORLD3DMAXSUBSTEPS_STEPS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetWorld3DTimeStep 667 +#define SETWORLD3DTIMESTEP_TS num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_startParticleEmitter 668 +#define STARTPARTICLEEMITTER_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_stopParticleEmitter 669 +#define STOPPARTICLEEMITTER_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setParticleDirection 670 +#define SETPARTICLEDIRECTION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLEDIRECTION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETPARTICLEDIRECTION_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETPARTICLEDIRECTION_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getParticleDirection 671 +#define GETPARTICLEDIRECTION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETPARTICLEDIRECTION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETPARTICLEDIRECTION_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETPARTICLEDIRECTION_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_useParticleEveryMeshVertex 672 +#define USEPARTICLEEVERYMESHVERTEX_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define USEPARTICLEEVERYMESHVERTEX_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_particleIsUsingEveryMeshVertex 673 +#define PARTICLEISUSINGEVERYMESHVERTEX_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setParticleNormalDirectionMod 674 +#define SETPARTICLENORMALDIRECTIONMOD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLENORMALDIRECTIONMOD_ND_MOD num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getParticleNormalDirectionMod 675 +#define GETPARTICLENORMALDIRECTIONMOD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_useParticleNormalDirection 676 +#define USEPARTICLENORMALDIRECTION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define USEPARTICLENORMALDIRECTION_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_particleIsUsingNormalDirection 677 +#define PARTICLEISUSINGNORMALDIRECTION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setParticleMesh 678 +#define SETPARTICLEMESH_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLEMESH_MESH num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setParticleMinParticlesPerSecond 679 +#define SETPARTICLEMINPARTICLESPERSECOND_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLEMINPARTICLESPERSECOND_MINPARTICLESPERSECOND num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getParticleMinParticlesPerSecond 680 +#define GETPARTICLEMINPARTICLESPERSECOND_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setParticleMaxParticlesPerSecond 681 +#define SETPARTICLEMAXPARTICLESPERSECOND_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLEMAXPARTICLESPERSECOND_MAXPARTICLESPERSECOND num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getParticleMaxParticlesPerSecond 682 +#define GETPARTICLEMAXPARTICLESPERSECOND_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setParticleMinStartColor 683 +#define SETPARTICLEMINSTARTCOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLEMINSTARTCOLOR_COLOR num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getParticleMinStartColor 684 +#define GETPARTICLEMINSTARTCOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setParticleMaxStartColor 685 +#define SETPARTICLEMAXSTARTCOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLEMAXSTARTCOLOR_COLOR num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getParticleMaxStartColor 686 +#define GETPARTICLEMAXSTARTCOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setParticleMinLife 687 +#define SETPARTICLEMINLIFE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLEMINLIFE_MINLIFE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getParticleMinLife 688 +#define GETPARTICLEMINLIFE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setParticleMaxLife 689 +#define SETPARTICLEMAXLIFE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLEMAXLIFE_MAXLIFE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getParticleMaxLife 690 +#define GETPARTICLEMAXLIFE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setParticleMaxAngle 691 +#define SETPARTICLEMAXANGLE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLEMAXANGLE_MAXANGLE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getParticleMaxAngle 692 +#define GETPARTICLEMAXANGLE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setParticleMinStartSize 693 +#define SETPARTICLEMINSTARTSIZE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLEMINSTARTSIZE_W num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETPARTICLEMINSTARTSIZE_H num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_getParticleMinStartSize 694 +#define GETPARTICLEMINSTARTSIZE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETPARTICLEMINSTARTSIZE_W num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETPARTICLEMINSTARTSIZE_H num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_setParticleMaxStartSize 695 +#define SETPARTICLEMAXSTARTSIZE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLEMAXSTARTSIZE_W num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETPARTICLEMAXSTARTSIZE_H num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_getParticleMaxStartSize 696 +#define GETPARTICLEMAXSTARTSIZE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETPARTICLEMAXSTARTSIZE_W num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETPARTICLEMAXSTARTSIZE_H num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_setParticleCenter 697 +#define SETPARTICLECENTER_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLECENTER_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETPARTICLECENTER_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETPARTICLECENTER_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getParticleCenter 698 +#define GETPARTICLECENTER_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETPARTICLECENTER_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETPARTICLECENTER_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETPARTICLECENTER_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_setParticleRadius 699 +#define SETPARTICLERADIUS_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLERADIUS_RADIUS num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getParticleRadius 700 +#define GETPARTICLERADIUS_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setParticleRingThickness 701 +#define SETPARTICLERINGTHICKNESS_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLERINGTHICKNESS_RINGTHICKNESS num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getParticleRingThickness 702 +#define GETPARTICLERINGTHICKNESS_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setParticleBox 703 +#define SETPARTICLEBOX_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLEBOX_MIN_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETPARTICLEBOX_MIN_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETPARTICLEBOX_MIN_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define SETPARTICLEBOX_MAX_X num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define SETPARTICLEBOX_MAX_Y num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define SETPARTICLEBOX_MAX_Z num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_getParticleBox 704 +#define GETPARTICLEBOX_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETPARTICLEBOX_MIN_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETPARTICLEBOX_MIN_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETPARTICLEBOX_MIN_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETPARTICLEBOX_MAX_X num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define GETPARTICLEBOX_MAX_Y num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define GETPARTICLEBOX_MAX_Z num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define FN_setParticleNormal 705 +#define SETPARTICLENORMAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLENORMAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETPARTICLENORMAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETPARTICLENORMAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_getParticleNormal 706 +#define GETPARTICLENORMAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETPARTICLENORMAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETPARTICLENORMAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETPARTICLENORMAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_setParticleLength 707 +#define SETPARTICLELENGTH_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPARTICLELENGTH_P_LEN num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getParticleLength 708 +#define GETPARTICLELENGTH_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_useParticleOutlineOnly 709 +#define USEPARTICLEOUTLINEONLY_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define USEPARTICLEOUTLINEONLY_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_particleIsUsingOutlineOnly 710 +#define PARTICLEISUSINGOUTLINEONLY_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_lightIsCastingShadow 711 +#define LIGHTISCASTINGSHADOW_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getLightType 712 +#define GETLIGHTTYPE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_getLightRadius 713 +#define GETLIGHTRADIUS_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setLightType 714 +#define SETLIGHTTYPE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETLIGHTTYPE_LIGHT_TYPE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setLightRadius 715 +#define SETLIGHTRADIUS_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETLIGHTRADIUS_RADIUS num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setLightShadowCast 716 +#define SETLIGHTSHADOWCAST_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETLIGHTSHADOWCAST_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetLightAmbientColor 717 +#define SETLIGHTAMBIENTCOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETLIGHTAMBIENTCOLOR_COLOR num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetLightAmbientColor 718 +#define GETLIGHTAMBIENTCOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetLightAttenuation 719 +#define SETLIGHTATTENUATION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETLIGHTATTENUATION_L_CONSTANT num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETLIGHTATTENUATION_L_LINEAR num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETLIGHTATTENUATION_L_QUADRATIC num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_GetLightAttenuation 720 +#define GETLIGHTATTENUATION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETLIGHTATTENUATION_CONSTANT num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETLIGHTATTENUATION_LINEAR num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETLIGHTATTENUATION_QUADRATIC num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_SetLightDiffuseColor 721 +#define SETLIGHTDIFFUSECOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETLIGHTDIFFUSECOLOR_COLOR num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetLightDiffuseColor 722 +#define GETLIGHTDIFFUSECOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetLightFalloff 723 +#define SETLIGHTFALLOFF_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETLIGHTFALLOFF_FALLOFF num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetLightFalloff 724 +#define GETLIGHTFALLOFF_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetLightInnerCone 725 +#define SETLIGHTINNERCONE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETLIGHTINNERCONE_ANGLE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetLightInnerCone 726 +#define GETLIGHTINNERCONE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetLightOuterCone 727 +#define SETLIGHTOUTERCONE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETLIGHTOUTERCONE_ANGLE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetLightOuterCone 728 +#define GETLIGHTOUTERCONE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetLightSpecularColor 729 +#define SETLIGHTSPECULARCOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETLIGHTSPECULARCOLOR_COLOR num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetLightSpecularColor 730 +#define GETLIGHTSPECULARCOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetTerrainPatchAABB 731 +#define GETTERRAINPATCHAABB_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETTERRAINPATCHAABB_PATCHX num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETTERRAINPATCHAABB_PATCHZ num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETTERRAINPATCHAABB_MINX num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETTERRAINPATCHAABB_MINY num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define GETTERRAINPATCHAABB_MINZ num_var[5].nref[0].value[ num_var[5].byref_offset ] +#define GETTERRAINPATCHAABB_MAXX num_var[6].nref[0].value[ num_var[6].byref_offset ] +#define GETTERRAINPATCHAABB_MAXY num_var[7].nref[0].value[ num_var[7].byref_offset ] +#define GETTERRAINPATCHAABB_MAXZ num_var[8].nref[0].value[ num_var[8].byref_offset ] +#define FN_GetTerrainPatchLOD 732 +#define GETTERRAINPATCHLOD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETTERRAINPATCHLOD_PATCHX num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETTERRAINPATCHLOD_PATCHZ num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_GetTerrainHeight 733 +#define GETTERRAINHEIGHT_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETTERRAINHEIGHT_PATCHX num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETTERRAINHEIGHT_PATCHZ num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_GetTerrainCenter 734 +#define GETTERRAINCENTER_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETTERRAINCENTER_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETTERRAINCENTER_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETTERRAINCENTER_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_SetTerrainLODDistance 735 +#define SETTERRAINLODDISTANCE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETTERRAINLODDISTANCE_LOD num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETTERRAINLODDISTANCE_DISTANCE num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_ScaleTerrainTexture 736 +#define SCALETERRAINTEXTURE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SCALETERRAINTEXTURE_SCALE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SCALETERRAINTEXTURE_SCALE2 num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_SetTerrainCameraMovementDelta 737 +#define SETTERRAINCAMERAMOVEMENTDELTA_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETTERRAINCAMERAMOVEMENTDELTA_DELTA num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetTerrainCameraRotationDelta 738 +#define SETTERRAINCAMERAROTATIONDELTA_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETTERRAINCAMERAROTATIONDELTA_DELTA num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetTerrainPatchLOD 739 +#define SETTERRAINPATCHLOD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETTERRAINPATCHLOD_PATCHX num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETTERRAINPATCHLOD_PATCHZ num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETTERRAINPATCHLOD_LOD num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_setWaterWindForce 740 +#define SETWATERWINDFORCE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETWATERWINDFORCE_F num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getWaterWindForce 741 +#define GETWATERWINDFORCE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setWaterWaveHeight 742 +#define SETWATERWAVEHEIGHT_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETWATERWAVEHEIGHT_H num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getWaterWaveHeight 743 +#define GETWATERWAVEHEIGHT_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setWaterWindDirection 744 +#define SETWATERWINDDIRECTION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETWATERWINDDIRECTION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETWATERWINDDIRECTION_Z num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_getWaterWindDirection 745 +#define GETWATERWINDDIRECTION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETWATERWINDDIRECTION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETWATERWINDDIRECTION_Z num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_setWaterColor 746 +#define SETWATERCOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETWATERCOLOR_C num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getWaterColor 747 +#define GETWATERCOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setWaterColorBlendFactor 748 +#define SETWATERCOLORBLENDFACTOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETWATERCOLORBLENDFACTOR_CBFACTOR num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getWaterColorBlendFactor 749 +#define GETWATERCOLORBLENDFACTOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetActorAnimation 750 +#define SETACTORANIMATION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORANIMATION_START_FRAME num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORANIMATION_END_FRAME num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_SetActorAnimationSpeed 751 +#define SETACTORANIMATIONSPEED_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORANIMATIONSPEED_SPEED num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetActorFrame 752 +#define SETACTORFRAME_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORFRAME_FRAME num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetActorMD2Animation 753 +#define SETACTORMD2ANIMATION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORMD2ANIMATION_ANIM num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetActorMD2AnimationByName 754 +#define SETACTORMD2ANIMATIONBYNAME_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORMD2ANIMATIONBYNAME_ANIM_NAME$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define FN_GetActorAnimationSpeed 755 +#define GETACTORANIMATIONSPEED_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetActorEndFrame 756 +#define GETACTORENDFRAME_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetActorCurrentFrame 757 +#define GETACTORCURRENTFRAME_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetActorStartFrame 758 +#define GETACTORSTARTFRAME_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_StartActorTransition 759 +#define STARTACTORTRANSITION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define STARTACTORTRANSITION_FRAME num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define STARTACTORTRANSITION_TRANSITION_TIME num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_StopActorTransition 760 +#define STOPACTORTRANSITION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_ActorIsInTransition 761 +#define ACTORISINTRANSITION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetActorTransitionTime 762 +#define GETACTORTRANSITIONTIME_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_actorAnimationIsLooped 763 +#define ACTORANIMATIONISLOOPED_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_loopActorAnimation 764 +#define LOOPACTORANIMATION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define LOOPACTORANIMATION_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_createMaterial 765 +#define FN_deleteMaterial 766 +#define DELETEMATERIAL_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setActorMaterial 767 +#define SETACTORMATERIAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORMATERIAL_MATERIAL_NUM num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORMATERIAL_MATERIAL_ID num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_getActorMaterial 768 +#define GETACTORMATERIAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORMATERIAL_MATERIAL_NUM num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_copyActorMaterial 769 +#define COPYACTORMATERIAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define COPYACTORMATERIAL_MATERIAL_NUM num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_copyMaterial 770 +#define COPYMATERIAL_SMATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialTextureCanvas 771 +#define SETMATERIALTEXTURECANVAS_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALTEXTURECANVAS_LEVEL num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETMATERIALTEXTURECANVAS_CANVAS_ID num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_setMaterialAmbientColor 772 +#define SETMATERIALAMBIENTCOLOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALAMBIENTCOLOR_COLOR num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialAmbientColor 773 +#define GETMATERIALAMBIENTCOLOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialAntiAliasing 774 +#define SETMATERIALANTIALIASING_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALANTIALIASING_AA num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialAntiAliasing 775 +#define GETMATERIALANTIALIASING_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialBackfaceCulling 776 +#define SETMATERIALBACKFACECULLING_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALBACKFACECULLING_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialBackfaceCulling 777 +#define GETMATERIALBACKFACECULLING_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialBlendFactor 778 +#define SETMATERIALBLENDFACTOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALBLENDFACTOR_BF num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialBlendFactor 779 +#define GETMATERIALBLENDFACTOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialBlendMode 780 +#define SETMATERIALBLENDMODE_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALBLENDMODE_BLEND_MODE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialBlendMode 781 +#define GETMATERIALBLENDMODE_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialColorMask 782 +#define SETMATERIALCOLORMASK_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALCOLORMASK_COLOR_MASK num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialColorMask 783 +#define GETMATERIALCOLORMASK_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialColorMode 784 +#define SETMATERIALCOLORMODE_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALCOLORMODE_COLOR_MODE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialColorMode 785 +#define GETMATERIALCOLORMODE_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialDiffuseColor 786 +#define SETMATERIALDIFFUSECOLOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALDIFFUSECOLOR_COLOR num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialDiffuseColor 787 +#define GETMATERIALDIFFUSECOLOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialEmissiveColor 788 +#define SETMATERIALEMISSIVECOLOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALEMISSIVECOLOR_COLOR num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialEmissiveColor 789 +#define GETMATERIALEMISSIVECOLOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialFog 790 +#define SETMATERIALFOG_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALFOG_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialFog 791 +#define GETMATERIALFOG_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialFrontfaceCulling 792 +#define SETMATERIALFRONTFACECULLING_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALFRONTFACECULLING_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialFrontfaceCulling 793 +#define GETMATERIALFRONTFACECULLING_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialGouraudShading 794 +#define SETMATERIALGOURAUDSHADING_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALGOURAUDSHADING_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_materialIsGouraudShaded 795 +#define MATERIALISGOURAUDSHADED_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_materialIsAplhaBlend 796 +#define MATERIALISAPLHABLEND_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_materialIsTransparent 797 +#define MATERIALISTRANSPARENT_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialLighting 798 +#define SETMATERIALLIGHTING_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALLIGHTING_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_materialIsLit 799 +#define MATERIALISLIT_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialType 800 +#define SETMATERIALTYPE_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALTYPE_MAT_TYPE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialType 801 +#define GETMATERIALTYPE_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialNormalize 802 +#define SETMATERIALNORMALIZE_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALNORMALIZE_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_materialIsNormalized 803 +#define MATERIALISNORMALIZED_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialPointCloud 804 +#define SETMATERIALPOINTCLOUD_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALPOINTCLOUD_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_materialIsPointCloud 805 +#define MATERIALISPOINTCLOUD_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialFlag 806 +#define SETMATERIALFLAG_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALFLAG_MATERIAL_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETMATERIALFLAG_F_VALUE num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_getMaterialFlag 807 +#define GETMATERIALFLAG_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETMATERIALFLAG_MATERIAL_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_setMaterialTexture 808 +#define SETMATERIALTEXTURE_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALTEXTURE_LEVEL num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETMATERIALTEXTURE_IMG_ID num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_setMaterialShininess 809 +#define SETMATERIALSHININESS_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALSHININESS_SHININESS num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialShininess 810 +#define GETMATERIALSHININESS_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialSpecularColor 811 +#define SETMATERIALSPECULARCOLOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALSPECULARCOLOR_COLOR num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialSpecularColor 812 +#define GETMATERIALSPECULARCOLOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialThickness 813 +#define SETMATERIALTHICKNESS_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALTHICKNESS_THICKNESS num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getMaterialThickness 814 +#define GETMATERIALTHICKNESS_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setMaterialWireframe 815 +#define SETMATERIALWIREFRAME_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALWIREFRAME_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_materialIsWireframe 816 +#define MATERIALISWIREFRAME_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setActorTexture 817 +#define SETACTORTEXTURE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORTEXTURE_LAYER num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORTEXTURE_IMAGE_ID num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_getActorMaterialCount 818 +#define GETACTORMATERIALCOUNT_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_setActorMaterialFlag 819 +#define SETACTORMATERIALFLAG_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORMATERIALFLAG_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORMATERIALFLAG_FLAG_VALUE num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_getActorMaterialFlag 820 +#define GETACTORMATERIALFLAG_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORMATERIALFLAG_MATERIAL num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETACTORMATERIALFLAG_FLAG num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_setActorMaterialType 821 +#define SETACTORMATERIALTYPE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORMATERIALTYPE_MATERIAL_TYPE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_getActorMaterialType 822 +#define GETACTORMATERIALTYPE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETACTORMATERIALTYPE_MATERIAL num_var[1].nref[0].value[ num_var[1].byref_offset ] + + +#endif // RC_DEFINES_H_INCLUDED diff --git a/rcbasic_runtime/rc_font.h b/rcbasic_runtime/rc_font.h new file mode 100644 index 0000000..5d1d81f --- /dev/null +++ b/rcbasic_runtime/rc_font.h @@ -0,0 +1,6 @@ +#ifndef RC_FONT_H_INCLUDED +#define RC_FONT_H_INCLUDED + + + +#endif // RC_FONT_H_INCLUDED diff --git a/rcbasic_runtime/rc_func130_cases.h b/rcbasic_runtime/rc_func130_cases.h new file mode 100644 index 0000000..8b73511 --- /dev/null +++ b/rcbasic_runtime/rc_func130_cases.h @@ -0,0 +1,2498 @@ +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( &TST_X ); + 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_SetWindowVSync: //Sub Procedure + rc_setWindowVSync( SETWINDOWVSYNC_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_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_SetCanvas3D: //Sub Procedure + rc_setCanvas3D( SETCANVAS3D_C_NUM, SETCANVAS3D_FLAG ); + 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: //Sub Procedure + rc_cloneCanvas( CLONECANVAS_SRC, CLONECANVAS_DST ); + break; +case FN_SetCanvasZ: //Sub Procedure + rc_setCanvasZ( SETCANVASZ_C_NUM, SETCANVASZ_Z ); + break; +case FN_GetCanvasZ: //Number Function + rc_push_num(rc_getCanvasZ( GETCANVASZ_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_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_getImageBuffer: //Sub Procedure + rc_getImageBuffer( GETIMAGEBUFFER_IMG_ID, &GETIMAGEBUFFER_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_GetTextWidth: //Number Function + rc_push_num(rc_getTextWidth( GETTEXTWIDTH_TXT$ )); + break; +case FN_GetTextHeight: //Number Function + rc_push_num(rc_getTextHeight( GETTEXTHEIGHT_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 )); + 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_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_CreateMeshActor: //Number Function + rc_push_num(rc_createMeshActor( CREATEMESHACTOR_MESH )); + break; +case FN_CreateMeshOctreeActor: //Number Function + rc_push_num(rc_createMeshOctreeActor( CREATEMESHOCTREEACTOR_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_CreateWaterPlaneActor: //Number Function + rc_push_num(rc_createWaterPlaneActor( CREATEWATERPLANEACTOR_W, CREATEWATERPLANEACTOR_H )); + 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_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_TranslateActor: //Sub Procedure + rc_translateActor( TRANSLATEACTOR_ACTOR, TRANSLATEACTOR_X, TRANSLATEACTOR_Y, TRANSLATEACTOR_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_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_getActorLinearVelocity: //Sub Procedure + rc_getActorLinearVelocity( GETACTORLINEARVELOCITY_ACTOR, &GETACTORLINEARVELOCITY_X, &GETACTORLINEARVELOCITY_Y, &GETACTORLINEARVELOCITY_Z ); + break; +case FN_getActorAngularVelocity: //Sub Procedure + rc_getActorAngularVelocity( GETACTORANGULARVELOCITY_ACTOR, &GETACTORANGULARVELOCITY_X, &GETACTORANGULARVELOCITY_Y, &GETACTORANGULARVELOCITY_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_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_setConstraintPivotA: //Sub Procedure + rc_setConstraintPivotA( SETCONSTRAINTPIVOTA_CONSTRAINT_ID, SETCONSTRAINTPIVOTA_X, SETCONSTRAINTPIVOTA_Y, SETCONSTRAINTPIVOTA_Z ); + break; +case FN_setConstraintPivotB: //Sub Procedure + rc_setConstraintPivotB( SETCONSTRAINTPIVOTB_CONSTRAINT_ID, SETCONSTRAINTPIVOTB_X, SETCONSTRAINTPIVOTB_Y, SETCONSTRAINTPIVOTB_Z ); + break; +case FN_createHingeConstraint: //Number Function + rc_push_num(rc_createHingeConstraint( CREATEHINGECONSTRAINT_ACTORA, CREATEHINGECONSTRAINT_PXA, CREATEHINGECONSTRAINT_PYA, CREATEHINGECONSTRAINT_PZA, CREATEHINGECONSTRAINT_AXA, CREATEHINGECONSTRAINT_AYA, CREATEHINGECONSTRAINT_AZA )); + break; +case FN_createHingeConstraintEx: //Number Function + rc_push_num(rc_createHingeConstraintEx( CREATEHINGECONSTRAINTEX_ACTORA, CREATEHINGECONSTRAINTEX_ACTORB, CREATEHINGECONSTRAINTEX_PXA, CREATEHINGECONSTRAINTEX_PYA, CREATEHINGECONSTRAINTEX_PZA, CREATEHINGECONSTRAINTEX_PXB, CREATEHINGECONSTRAINTEX_PYB, CREATEHINGECONSTRAINTEX_PZB, CREATEHINGECONSTRAINTEX_AXA, CREATEHINGECONSTRAINTEX_AYA, CREATEHINGECONSTRAINTEX_AZA, CREATEHINGECONSTRAINTEX_AXB, CREATEHINGECONSTRAINTEX_AYB, CREATEHINGECONSTRAINTEX_AZB )); + 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_setConstraintAxis: //Sub Procedure + rc_setConstraintAxis( SETCONSTRAINTAXIS_CONSTRAINT_ID, SETCONSTRAINTAXIS_X, SETCONSTRAINTAXIS_Y, SETCONSTRAINTAXIS_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_getConstraintLimitBiasFactor: //Number Function + rc_push_num(rc_getConstraintLimitBiasFactor( GETCONSTRAINTLIMITBIASFACTOR_CONSTRAINT_ID )); + break; +case FN_getLimitRelaxationFactor: //Number Function + rc_push_num(rc_getLimitRelaxationFactor( GETLIMITRELAXATIONFACTOR_CONSTRAINT_ID )); + break; +case FN_getConstraintLimitSign: //Number Function + rc_push_num(rc_getConstraintLimitSign( GETCONSTRAINTLIMITSIGN_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_getConstraintPivotA: //Sub Procedure + rc_getConstraintPivotA( GETCONSTRAINTPIVOTA_CONSTRAINT_ID, & GETCONSTRAINTPIVOTA_X, & GETCONSTRAINTPIVOTA_Y, & GETCONSTRAINTPIVOTA_Z ); + break; +case FN_getConstraintPivotB: //Sub Procedure + rc_getConstraintPivotB( GETCONSTRAINTPIVOTB_CONSTRAINT_ID, & GETCONSTRAINTPIVOTB_X, & GETCONSTRAINTPIVOTB_Y, & GETCONSTRAINTPIVOTB_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_getConstraintBiasFactor: //Number Function + rc_push_num(rc_getConstraintBiasFactor( GETCONSTRAINTBIASFACTOR_CONSTRAINT_ID )); + break; +case FN_getConstraintDamping: //Number Function + rc_push_num(rc_getConstraintDamping( GETCONSTRAINTDAMPING_CONSTRAINT_ID )); + break; +case FN_getConstraintFixThresh: //Number Function + rc_push_num(rc_getConstraintFixThresh( GETCONSTRAINTFIXTHRESH_CONSTRAINT_ID )); + break; +case FN_getConstraintLimit: //Number Function + rc_push_num(rc_getConstraintLimit( GETCONSTRAINTLIMIT_CONSTRAINT_ID, GETCONSTRAINTLIMIT_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_getConstraintAnglePoint: //Sub Procedure + rc_getConstraintAnglePoint( GETCONSTRAINTANGLEPOINT_CONSTRAINT_ID, GETCONSTRAINTANGLEPOINT_ANGLE, GETCONSTRAINTANGLEPOINT_C_LEN, & GETCONSTRAINTANGLEPOINT_X, & GETCONSTRAINTANGLEPOINT_Y, & GETCONSTRAINTANGLEPOINT_Z ); + break; +case FN_getConstraintAngularOnly: //Number Function + rc_push_num(rc_getConstraintAngularOnly( GETCONSTRAINTANGULARONLY_CONSTRAINT_ID )); + break; +case FN_getConstraintSolveSwingLimit: //Number Function + rc_push_num(rc_getConstraintSolveSwingLimit( GETCONSTRAINTSOLVESWINGLIMIT_CONSTRAINT_ID )); + break; +case FN_getConstraintSolveTwistLimit: //Number Function + rc_push_num(rc_getConstraintSolveTwistLimit( GETCONSTRAINTSOLVETWISTLIMIT_CONSTRAINT_ID )); + break; +case FN_getConstraintSolveLimit: //Number Function + rc_push_num(rc_getConstraintSolveLimit( GETCONSTRAINTSOLVELIMIT_CONSTRAINT_ID )); + break; +case FN_getConstraintSwingSpan1: //Number Function + rc_push_num(rc_getConstraintSwingSpan1( GETCONSTRAINTSWINGSPAN1_CONSTRAINT_ID )); + break; +case FN_getConstraintSwingSpan2: //Number Function + rc_push_num(rc_getConstraintSwingSpan2( GETCONSTRAINTSWINGSPAN2_CONSTRAINT_ID )); + break; +case FN_getConstraintTwistAngle: //Number Function + rc_push_num(rc_getConstraintTwistAngle( GETCONSTRAINTTWISTANGLE_CONSTRAINT_ID )); + break; +case FN_getConstraintTwistLimitSign: //Number Function + rc_push_num(rc_getConstraintTwistLimitSign( GETCONSTRAINTTWISTLIMITSIGN_CONSTRAINT_ID )); + break; +case FN_getConstraintTwistSpan: //Number Function + rc_push_num(rc_getConstraintTwistSpan( GETCONSTRAINTTWISTSPAN_CONSTRAINT_ID )); + break; +case FN_setConstraintAngularOnly: //Sub Procedure + rc_setConstraintAngularOnly( SETCONSTRAINTANGULARONLY_CONSTRAINT_ID, SETCONSTRAINTANGULARONLY_FLAG ); + break; +case FN_setConstraintDamping: //Sub Procedure + rc_setConstraintDamping( SETCONSTRAINTDAMPING_CONSTRAINT_ID, SETCONSTRAINTDAMPING_DAMPING ); + break; +case FN_setConstraintFixThresh: //Sub Procedure + rc_setConstraintFixThresh( SETCONSTRAINTFIXTHRESH_CONSTRAINT_ID, SETCONSTRAINTFIXTHRESH_FIXTHRESH ); + break; +case FN_getConstraintAnchorA: //Sub Procedure + rc_getConstraintAnchorA( GETCONSTRAINTANCHORA_CONSTRAINT_ID, & GETCONSTRAINTANCHORA_X, & GETCONSTRAINTANCHORA_Y, & GETCONSTRAINTANCHORA_Z ); + break; +case FN_getConstraintAnchorB: //Sub Procedure + rc_getConstraintAnchorB( GETCONSTRAINTANCHORB_CONSTRAINT_ID, & GETCONSTRAINTANCHORB_X, & GETCONSTRAINTANCHORB_Y, & GETCONSTRAINTANCHORB_Z ); + break; +case FN_getConstraintAngDepth: //Number Function + rc_push_num(rc_getConstraintAngDepth( GETCONSTRAINTANGDEPTH_CONSTRAINT_ID )); + break; +case FN_getConstraintAngularPos: //Number Function + rc_push_num(rc_getConstraintAngularPos( GETCONSTRAINTANGULARPOS_CONSTRAINT_ID )); + break; +case FN_getConstraintDampingDirAng: //Number Function + rc_push_num(rc_getConstraintDampingDirAng( GETCONSTRAINTDAMPINGDIRANG_CONSTRAINT_ID )); + break; +case FN_getConstraintDampingDirLin: //Number Function + rc_push_num(rc_getConstraintDampingDirLin( GETCONSTRAINTDAMPINGDIRLIN_CONSTRAINT_ID )); + break; +case FN_getConstraintDampingLimAng: //Number Function + rc_push_num(rc_getConstraintDampingLimAng( GETCONSTRAINTDAMPINGLIMANG_CONSTRAINT_ID )); + break; +case FN_getConstraintDampingLimLin: //Number Function + rc_push_num(rc_getConstraintDampingLimLin( GETCONSTRAINTDAMPINGLIMLIN_CONSTRAINT_ID )); + break; +case FN_getConstraintDampingOrthoAng: //Number Function + rc_push_num(rc_getConstraintDampingOrthoAng( GETCONSTRAINTDAMPINGORTHOANG_CONSTRAINT_ID )); + break; +case FN_getConstraintDampingOrthoLin: //Number Function + rc_push_num(rc_getConstraintDampingOrthoLin( GETCONSTRAINTDAMPINGORTHOLIN_CONSTRAINT_ID )); + break; +case FN_getConstraintLinearPos: //Number Function + rc_push_num(rc_getConstraintLinearPos( GETCONSTRAINTLINEARPOS_CONSTRAINT_ID )); + break; +case FN_getConstraintLinDepth: //Number Function + rc_push_num(rc_getConstraintLinDepth( GETCONSTRAINTLINDEPTH_CONSTRAINT_ID )); + break; +case FN_getConstraintLowerAngLimit: //Number Function + rc_push_num(rc_getConstraintLowerAngLimit( GETCONSTRAINTLOWERANGLIMIT_CONSTRAINT_ID )); + break; +case FN_getConstraintLowerLinLimit: //Number Function + rc_push_num(rc_getConstraintLowerLinLimit( GETCONSTRAINTLOWERLINLIMIT_CONSTRAINT_ID )); + break; +case FN_getConstraintRestitutionDirAng: //Number Function + rc_push_num(rc_getConstraintRestitutionDirAng( GETCONSTRAINTRESTITUTIONDIRANG_CONSTRAINT_ID )); + break; +case FN_getConstraintRestitutionDirLin: //Number Function + rc_push_num(rc_getConstraintRestitutionDirLin( GETCONSTRAINTRESTITUTIONDIRLIN_CONSTRAINT_ID )); + break; +case FN_getConstraintRestitutionLimAng: //Number Function + rc_push_num(rc_getConstraintRestitutionLimAng( GETCONSTRAINTRESTITUTIONLIMANG_CONSTRAINT_ID )); + break; +case FN_getConstraintRestitutionLimLin: //Number Function + rc_push_num(rc_getConstraintRestitutionLimLin( GETCONSTRAINTRESTITUTIONLIMLIN_CONSTRAINT_ID )); + break; +case FN_getConstraintRestitutionOrthoAng: //Number Function + rc_push_num(rc_getConstraintRestitutionOrthoAng( GETCONSTRAINTRESTITUTIONORTHOANG_CONSTRAINT_ID )); + break; +case FN_getConstraintRestitutionOrthoLin: //Number Function + rc_push_num(rc_getConstraintRestitutionOrthoLin( GETCONSTRAINTRESTITUTIONORTHOLIN_CONSTRAINT_ID )); + break; +case FN_getConstraintSoftnessDirAng: //Number Function + rc_push_num(rc_getConstraintSoftnessDirAng( GETCONSTRAINTSOFTNESSDIRANG_CONSTRAINT_ID )); + break; +case FN_getConstraintSoftnessDirLin: //Number Function + rc_push_num(rc_getConstraintSoftnessDirLin( GETCONSTRAINTSOFTNESSDIRLIN_CONSTRAINT_ID )); + break; +case FN_getConstraintSoftnessLimAng: //Number Function + rc_push_num(rc_getConstraintSoftnessLimAng( GETCONSTRAINTSOFTNESSLIMANG_CONSTRAINT_ID )); + break; +case FN_getConstraintSoftnessLimLin: //Number Function + rc_push_num(rc_getConstraintSoftnessLimLin( GETCONSTRAINTSOFTNESSLIMLIN_CONSTRAINT_ID )); + break; +case FN_getConstraintSoftnessOrthoAng: //Number Function + rc_push_num(rc_getConstraintSoftnessOrthoAng( GETCONSTRAINTSOFTNESSORTHOANG_CONSTRAINT_ID )); + break; +case FN_getConstraintSoftnessOrthoLin: //Number Function + rc_push_num(rc_getConstraintSoftnessOrthoLin( GETCONSTRAINTSOFTNESSORTHOLIN_CONSTRAINT_ID )); + break; +case FN_getConstraintSolveAngLimit: //Number Function + rc_push_num(rc_getConstraintSolveAngLimit( GETCONSTRAINTSOLVEANGLIMIT_CONSTRAINT_ID )); + break; +case FN_getConstraintSolveLinLimit: //Number Function + rc_push_num(rc_getConstraintSolveLinLimit( GETCONSTRAINTSOLVELINLIMIT_CONSTRAINT_ID )); + break; +case FN_getConstraintUpperAngLimit: //Number Function + rc_push_num(rc_getConstraintUpperAngLimit( GETCONSTRAINTUPPERANGLIMIT_CONSTRAINT_ID )); + break; +case FN_getConstraintUpperLinLimit: //Number Function + rc_push_num(rc_getConstraintUpperLinLimit( GETCONSTRAINTUPPERLINLIMIT_CONSTRAINT_ID )); + break; +case FN_getConstraintUseFrameOffset: //Number Function + rc_push_num(rc_getConstraintUseFrameOffset( GETCONSTRAINTUSEFRAMEOFFSET_CONSTRAINT_ID )); + break; +case FN_setConstraintDampingDirAng: //Sub Procedure + rc_setConstraintDampingDirAng( SETCONSTRAINTDAMPINGDIRANG_CONSTRAINT_ID, SETCONSTRAINTDAMPINGDIRANG_N ); + break; +case FN_setConstraintDampingDirLin: //Sub Procedure + rc_setConstraintDampingDirLin( SETCONSTRAINTDAMPINGDIRLIN_CONSTRAINT_ID, SETCONSTRAINTDAMPINGDIRLIN_N ); + break; +case FN_setConstraintDampingLimAng: //Sub Procedure + rc_setConstraintDampingLimAng( SETCONSTRAINTDAMPINGLIMANG_CONSTRAINT_ID, SETCONSTRAINTDAMPINGLIMANG_N ); + break; +case FN_setConstraintDampingLimLin: //Sub Procedure + rc_setConstraintDampingLimLin( SETCONSTRAINTDAMPINGLIMLIN_CONSTRAINT_ID, SETCONSTRAINTDAMPINGLIMLIN_N ); + break; +case FN_setConstraintDampingOrthoAng: //Sub Procedure + rc_setConstraintDampingOrthoAng( SETCONSTRAINTDAMPINGORTHOANG_CONSTRAINT_ID, SETCONSTRAINTDAMPINGORTHOANG_N ); + break; +case FN_setConstraintDampingOrthoLin: //Sub Procedure + rc_setConstraintDampingOrthoLin( SETCONSTRAINTDAMPINGORTHOLIN_CONSTRAINT_ID, SETCONSTRAINTDAMPINGORTHOLIN_N ); + break; +case FN_setConstraintLowerAngLimit: //Sub Procedure + rc_setConstraintLowerAngLimit( SETCONSTRAINTLOWERANGLIMIT_CONSTRAINT_ID, SETCONSTRAINTLOWERANGLIMIT_N ); + break; +case FN_setConstraintLowerLinLimit: //Sub Procedure + rc_setConstraintLowerLinLimit( SETCONSTRAINTLOWERLINLIMIT_CONSTRAINT_ID, SETCONSTRAINTLOWERLINLIMIT_N ); + break; +case FN_setConstraintRestitutionDirAng: //Sub Procedure + rc_setConstraintRestitutionDirAng( SETCONSTRAINTRESTITUTIONDIRANG_CONSTRAINT_ID, SETCONSTRAINTRESTITUTIONDIRANG_N ); + break; +case FN_setConstraintRestitutionDirLin: //Sub Procedure + rc_setConstraintRestitutionDirLin( SETCONSTRAINTRESTITUTIONDIRLIN_CONSTRAINT_ID, SETCONSTRAINTRESTITUTIONDIRLIN_N ); + break; +case FN_setConstraintRestitutionLimAng: //Sub Procedure + rc_setConstraintRestitutionLimAng( SETCONSTRAINTRESTITUTIONLIMANG_CONSTRAINT_ID, SETCONSTRAINTRESTITUTIONLIMANG_N ); + break; +case FN_setConstraintRestitutionLimLin: //Sub Procedure + rc_setConstraintRestitutionLimLin( SETCONSTRAINTRESTITUTIONLIMLIN_CONSTRAINT_ID, SETCONSTRAINTRESTITUTIONLIMLIN_N ); + break; +case FN_setConstraintRestitutionOrthoAng: //Sub Procedure + rc_setConstraintRestitutionOrthoAng( SETCONSTRAINTRESTITUTIONORTHOANG_CONSTRAINT_ID, SETCONSTRAINTRESTITUTIONORTHOANG_N ); + break; +case FN_setConstraintRestitutionOrthoLin: //Sub Procedure + rc_setConstraintRestitutionOrthoLin( SETCONSTRAINTRESTITUTIONORTHOLIN_CONSTRAINT_ID, SETCONSTRAINTRESTITUTIONORTHOLIN_N ); + break; +case FN_setConstraintSoftnessDirAng: //Sub Procedure + rc_setConstraintSoftnessDirAng( SETCONSTRAINTSOFTNESSDIRANG_CONSTRAINT_ID, SETCONSTRAINTSOFTNESSDIRANG_N ); + break; +case FN_setConstraintSoftnessDirLin: //Sub Procedure + rc_setConstraintSoftnessDirLin( SETCONSTRAINTSOFTNESSDIRLIN_CONSTRAINT_ID, SETCONSTRAINTSOFTNESSDIRLIN_N ); + break; +case FN_setConstraintSoftnessLimAng: //Sub Procedure + rc_setConstraintSoftnessLimAng( SETCONSTRAINTSOFTNESSLIMANG_CONSTRAINT_ID, SETCONSTRAINTSOFTNESSLIMANG_N ); + break; +case FN_setConstraintSoftnessLimLin: //Sub Procedure + rc_setConstraintSoftnessLimLin( SETCONSTRAINTSOFTNESSLIMLIN_CONSTRAINT_ID, SETCONSTRAINTSOFTNESSLIMLIN_N ); + break; +case FN_setConstraintSoftnessOrthoAng: //Sub Procedure + rc_setConstraintSoftnessOrthoAng( SETCONSTRAINTSOFTNESSORTHOANG_CONSTRAINT_ID, SETCONSTRAINTSOFTNESSORTHOANG_N ); + break; +case FN_setConstraintSoftnessOrthoLin: //Sub Procedure + rc_setConstraintSoftnessOrthoLin( SETCONSTRAINTSOFTNESSORTHOLIN_CONSTRAINT_ID, SETCONSTRAINTSOFTNESSORTHOLIN_N ); + break; +case FN_setConstraintUpperAngLimit: //Sub Procedure + rc_setConstraintUpperAngLimit( SETCONSTRAINTUPPERANGLIMIT_CONSTRAINT_ID, SETCONSTRAINTUPPERANGLIMIT_N ); + break; +case FN_setConstraintUpperLinLimit: //Sub Procedure + rc_setConstraintUpperLinLimit( SETCONSTRAINTUPPERLINLIMIT_CONSTRAINT_ID, SETCONSTRAINTUPPERLINLIMIT_N ); + 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_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_SetWorld3DDeltaTime: //Sub Procedure + rc_setWorld3DDeltaTime( SETWORLD3DDELTATIME_DT ); + 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_setParticleMinParticlesPerSecond: //Sub Procedure + rc_setParticleMinParticlesPerSecond( SETPARTICLEMINPARTICLESPERSECOND_ACTOR, SETPARTICLEMINPARTICLESPERSECOND_MINPARTICLESPERSECOND ); + break; +case FN_getParticleMinParticlesPerSecond: //Number Function + rc_push_num(rc_getParticleMinParticlesPerSecond( GETPARTICLEMINPARTICLESPERSECOND_ACTOR )); + break; +case FN_setParticleMaxParticlesPerSecond: //Sub Procedure + rc_setParticleMaxParticlesPerSecond( SETPARTICLEMAXPARTICLESPERSECOND_ACTOR, SETPARTICLEMAXPARTICLESPERSECOND_MAXPARTICLESPERSECOND ); + break; +case FN_getParticleMaxParticlesPerSecond: //Number Function + rc_push_num(rc_getParticleMaxParticlesPerSecond( GETPARTICLEMAXPARTICLESPERSECOND_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_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_setWaterWindForce: //Sub Procedure + rc_setWaterWindForce( SETWATERWINDFORCE_ACTOR, SETWATERWINDFORCE_F ); + break; +case FN_getWaterWindForce: //Number Function + rc_push_num(rc_getWaterWindForce( GETWATERWINDFORCE_ACTOR )); + break; +case FN_setWaterWaveHeight: //Sub Procedure + rc_setWaterWaveHeight( SETWATERWAVEHEIGHT_ACTOR, SETWATERWAVEHEIGHT_H ); + break; +case FN_getWaterWaveHeight: //Number Function + rc_push_num(rc_getWaterWaveHeight( GETWATERWAVEHEIGHT_ACTOR )); + break; +case FN_setWaterWindDirection: //Sub Procedure + rc_setWaterWindDirection( SETWATERWINDDIRECTION_ACTOR, SETWATERWINDDIRECTION_X, SETWATERWINDDIRECTION_Z ); + break; +case FN_getWaterWindDirection: //Sub Procedure + rc_getWaterWindDirection( GETWATERWINDDIRECTION_ACTOR, &GETWATERWINDDIRECTION_X, &GETWATERWINDDIRECTION_Z ); + break; +case FN_setWaterColor: //Sub Procedure + rc_setWaterColor( SETWATERCOLOR_ACTOR, SETWATERCOLOR_C ); + break; +case FN_getWaterColor: //Number Function + rc_push_num(rc_getWaterColor( GETWATERCOLOR_ACTOR )); + break; +case FN_setWaterColorBlendFactor: //Sub Procedure + rc_setWaterColorBlendFactor( SETWATERCOLORBLENDFACTOR_ACTOR, SETWATERCOLORBLENDFACTOR_CBFACTOR ); + break; +case FN_getWaterColorBlendFactor: //Number Function + rc_push_num(rc_getWaterColorBlendFactor( GETWATERCOLORBLENDFACTOR_ACTOR )); + break; +case FN_SetActorAnimation: //Sub Procedure + rc_setActorAnimation( SETACTORANIMATION_ACTOR, SETACTORANIMATION_START_FRAME, SETACTORANIMATION_END_FRAME ); + break; +case FN_SetActorAnimationSpeed: //Sub Procedure + rc_setActorAnimationSpeed( SETACTORANIMATIONSPEED_ACTOR, SETACTORANIMATIONSPEED_SPEED ); + break; +case FN_SetActorFrame: //Sub Procedure + rc_setActorFrame( SETACTORFRAME_ACTOR, SETACTORFRAME_FRAME ); + break; +case FN_SetActorMD2Animation: //Sub Procedure + rc_setActorMD2Animation( SETACTORMD2ANIMATION_ACTOR, SETACTORMD2ANIMATION_ANIM ); + break; +case FN_SetActorMD2AnimationByName: //Sub Procedure + rc_setActorMD2AnimationByName( SETACTORMD2ANIMATIONBYNAME_ACTOR, SETACTORMD2ANIMATIONBYNAME_ANIM_NAME$ ); + break; +case FN_GetActorAnimationSpeed: //Number Function + rc_push_num(rc_getActorAnimationSpeed( GETACTORANIMATIONSPEED_ACTOR )); + break; +case FN_GetActorEndFrame: //Number Function + rc_push_num(rc_getActorEndFrame( GETACTORENDFRAME_ACTOR )); + break; +case FN_GetActorCurrentFrame: //Number Function + rc_push_num(rc_getActorCurrentFrame( GETACTORCURRENTFRAME_ACTOR )); + break; +case FN_GetActorStartFrame: //Number Function + rc_push_num(rc_getActorStartFrame( GETACTORSTARTFRAME_ACTOR )); + break; +case FN_StartActorTransition: //Sub Procedure + rc_startActorTransition( STARTACTORTRANSITION_ACTOR, STARTACTORTRANSITION_FRAME, STARTACTORTRANSITION_TRANSITION_TIME ); + break; +case FN_StopActorTransition: //Sub Procedure + rc_stopActorTransition( STOPACTORTRANSITION_ACTOR ); + break; +case FN_ActorIsInTransition: //Number Function + rc_push_num(rc_actorIsInTransition( ACTORISINTRANSITION_ACTOR )); + break; +case FN_GetActorTransitionTime: //Number Function + rc_push_num(rc_getActorTransitionTime( GETACTORTRANSITIONTIME_ACTOR )); + break; +case FN_actorAnimationIsLooped: //Number Function + rc_push_num(rc_actorAnimationIsLooped( ACTORANIMATIONISLOOPED_ACTOR )); + break; +case FN_loopActorAnimation: //Sub Procedure + rc_loopActorAnimation( LOOPACTORANIMATION_ACTOR, LOOPACTORANIMATION_FLAG ); + 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; + diff --git a/rcbasic_runtime/rc_geometry.h b/rcbasic_runtime/rc_geometry.h old mode 100644 new mode 100755 index b9fa015..5b69410 --- a/rcbasic_runtime/rc_geometry.h +++ b/rcbasic_runtime/rc_geometry.h @@ -8,127 +8,6 @@ // ------------------ 3D Transform Routines -------------------------------- -double CalculateFaceZ(double cam_dist, double graph_offset_x, double graph_offset_y, double view_w, double view_h, double view_depth, uint32_t mA, int f_vertex_count, double* columns, double* face_min_z, double* face_max_z, double* z_avg) -{ - bool dbg = false; - - if(f_vertex_count > 4) - return -1; - - - double vx, vy, vz[4]; - - int oi_count = 0; - - - double n_face_min_z = MatrixValue(mA, 2, (uint32_t)columns[0]); - double n_face_max_z = n_face_min_z; - - - bool in_zx_range = false; - bool in_zy_range = false; - - double face_min_x = 0; - double face_max_x = 0; - - double face_min_y = 0; - double face_max_y = 0; - - bool zx_min_bound = false; - bool zx_max_bound = false; - - bool zy_min_bound = false; - bool zy_max_bound = false; - - double distance = 0; - - double z_dist = 0; //C3D_CAMERA_LENS - z - double off_x = graph_offset_x; - double off_y = graph_offset_y; - - double min_x = (0 - off_x) / cam_dist; - double min_y = (view_h - off_y) / cam_dist * -1; - - double max_x = (view_w - off_x) / cam_dist; - double max_y = (0 - off_y) / cam_dist * -1; - - double zx_min, zx_max, zy_min, zy_max; - - for(int i = 0; i < f_vertex_count; i++) - { - vz[i] = MatrixValue(mA, 2, (uint32_t)columns[i]); - vx = MatrixValue(mA, 0, (uint32_t)columns[i]); - vy = MatrixValue(mA, 1, (uint32_t)columns[i]); - - - distance = -1*vz[i]; - - if(distance >= 0 && distance < view_depth) - { - double d = cam_dist - (distance*-1); - zx_min = min_x * d; - zx_max = max_x * d; - zy_min = min_y * d; - zy_max = max_y * d; - - in_zx_range = in_zx_range || (vx >= zx_min && vx < zx_max); - in_zy_range = in_zy_range || (vy >= zy_min && vy < zy_max); - - zx_min_bound = zx_min_bound || (vx < zx_min); - zx_max_bound = zx_max_bound || (vx >= zx_max); - - zy_min_bound = zy_min_bound || (vy < zy_min); - zy_max_bound = zy_max_bound || (vy >= zy_max); - } - else if(vz[i] >= 0 && vz[i] < view_depth) - { - double d = cam_dist - (vz[i]*-1); - zx_min = min_x * d; - zx_max = max_x * d; - zy_min = min_y * d; - zy_max = max_y * d; - - in_zx_range = in_zx_range || (vx >= zx_min && vx < zx_max); - in_zy_range = in_zy_range || (vy >= zy_min && vy < zy_max); - - zx_min_bound = zx_min_bound || (vx < zx_min); - zx_max_bound = zx_max_bound || (vx >= zx_max); - - zy_min_bound = zy_min_bound || (vy < zy_min); - zy_max_bound = zy_max_bound || (vy >= zy_max); - } - - n_face_min_z = min(n_face_min_z, vz[i]); - n_face_max_z = max(n_face_max_z, vz[i]); - - } - - in_zx_range = in_zx_range || (zx_min_bound && zx_max_bound); - in_zy_range = in_zy_range || (zy_min_bound && zy_max_bound); - - if( (!in_zx_range) || (!in_zy_range) ) - return -1; - - //'if key(k_i) and actor = 1 then : print "face = ";face_num : end if - - z_avg[0] = (n_face_min_z+n_face_max_z) / 2; //'This is some bullshit math to order the faces with out checking if they are obscured - - face_min_z[0] = n_face_min_z; - face_max_z[0] = n_face_max_z; - - //C3D_Actor_Face_ZOrder[actor, face_num] = face_min_z - - - if(face_min_z[0] >= cam_dist) - return -1; - else - return (cam_dist - face_min_z[0]); - - -} - - - int GetLinePlaneIntersection(double* line_point, double* line_direction, double* plane_point_1, double* plane_point_2, double* plane_point_3, double* intersection) { //' """ @@ -796,26 +675,6 @@ void projectionGeometry(int cam_dist, int f_vertex_count, double* vertex3D, doub } - -void rc_GetProjectionGeometry(int cam_dist, uint32_t mA, int f_vertex_count, double* columns, double* uv, double graph_offset_x, double graph_offset_y, uint32_t color, - double* vertex_count, double* vertex2D, double* ind_count, double* index, double* clip_dist, double* min_x, double* min_y, double* max_x, double* max_y) -{ - double vertex3D[18]; // number of vertices * 3 -> ie. (x,y,z) for each vertex - - int v_index = 0; - for(int i = 0; i < f_vertex_count; i++) - { - vertex3D[v_index] = MatrixValue(mA, 0, columns[i]); - vertex3D[v_index+1] = MatrixValue(mA, 1, columns[i]); - vertex3D[v_index+2] = MatrixValue(mA, 2, columns[i]); - v_index += 3; - } - - projectionGeometry(cam_dist, f_vertex_count, &vertex3D[0], uv, graph_offset_x, graph_offset_y, color, - vertex_count, vertex2D, ind_count, index, clip_dist, min_x, min_y, max_x, max_y); -} - - // -------------------------------------------------------------------------- diff --git a/rcbasic_runtime/rc_gfx.h b/rcbasic_runtime/rc_gfx.h new file mode 100644 index 0000000..2d4e16b --- /dev/null +++ b/rcbasic_runtime/rc_gfx.h @@ -0,0 +1,3759 @@ +#ifndef RC_GFX_INCLUDED +#define RC_GFX_INCLUDED + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "rc_gfx_core.h" +#include "gui_freetype_font.h" +#include "rc_utf8.h" +#include +#include "rc_sprite2D.h" +#include +#include + +using namespace irr; + +using namespace core; +using namespace video; +using namespace scene; + + +void rc_setTouchFingerEvent(SDL_FingerID fingerID, double x, double y, double pressure) +{ + for(int i = 0; i < MAX_FINGERS; i++) + { + if(rc_finger[i].id == -1 || rc_finger[i].id == fingerID) + { + rc_finger[i].id = fingerID; + rc_finger[i].x = x; + rc_finger[i].y = y; + rc_finger[i].pressure = pressure; + if(rc_finger[i].pressure > 0) + { + rc_fingers_pressed.insert(i); + } + return; + } + } +} + +int mobile_event_filter(void* userdata, SDL_Event* evt) +{ + SDL_Event event = evt[0]; + + int rc_win_width = 0; + int rc_win_height = 0; + + if(rc_window) + SDL_GetWindowSize(rc_window, &rc_win_width, &rc_win_height); + + switch(evt->type) + { + case SDL_APP_WILLENTERBACKGROUND: + mobile_active_window_flag = false; + break; + case SDL_APP_DIDENTERFOREGROUND: + if(!mobile_active_window_flag) + { + //rc_win_renderer[0] = SDL_GetRenderer(rc_win[0]); + } + mobile_active_window_flag = true; + break; + + case SDL_FINGERDOWN: + rc_touch = 1; + rc_touchX = event.tfinger.x * rc_win_width; + rc_touchY = event.tfinger.y * rc_win_height; +#ifdef RC_IOS + rc_pressure = 1; //FIXME: On IOS pressure is always getting reported as 0 on finger down so I am just setting it to 1 until I figure this out +#else + rc_pressure = event.tfinger.pressure; +#endif + rc_setTouchFingerEvent(event.tfinger.fingerId, rc_touchX, rc_touchY, rc_pressure); + break; + case SDL_FINGERUP: + rc_touch = 0; + rc_mt_status = 0; + rc_touchX = event.tfinger.x * rc_win_width; + rc_touchY = event.tfinger.y * rc_win_height; + rc_pressure = event.tfinger.pressure; + rc_setTouchFingerEvent(event.tfinger.fingerId, -1, -1, 0); + break; + case SDL_FINGERMOTION: + rc_touch = 1; + rc_touchX = event.tfinger.x * rc_win_width; + rc_touchY = event.tfinger.y * rc_win_height; + rc_motionX = event.tfinger.dx * rc_win_width; + rc_motionY = event.tfinger.dy * rc_win_height; +#ifdef RC_IOS + rc_pressure = 1; +#else + rc_pressure = event.tfinger.pressure; +#endif + rc_setTouchFingerEvent(event.tfinger.fingerId, rc_touchX, rc_touchY, rc_pressure); + break; + case SDL_MULTIGESTURE: + rc_touch = 2; + rc_mt_status = 1; + rc_mt_x = event.mgesture.x; + rc_mt_y = event.mgesture.y; + rc_mt_numFingers = event.mgesture.numFingers; + rc_mt_dist = event.mgesture.dDist; + rc_mt_theta = event.mgesture.dTheta; +#ifdef RC_IOS + rc_pressure = 1; +#else + rc_pressure = event.tfinger.pressure; +#endif + break; + + } + return 0; +} + + +bool rc_gfx_init() +{ + if(SDL_Init(SDL_INIT_EVENTS | SDL_INIT_TIMER | SDL_INIT_VIDEO | SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC | SDL_INIT_SENSOR | SDL_INIT_NOPARACHUTE) < 0) //Audio causes init to fail on Fedora40 so I am leaving it out for now + { + bool rc_init_events = true; + bool rc_init_timer = true; + bool rc_init_video = true; + bool rc_init_joystick = true; + bool rc_init_haptic = true; + bool rc_init_sensor = true; + bool rc_init_noparachute = true; + //os::Printer::log("SDL_Init Error: ", SDL_GetError()); + std::cout << "SDL_Init Error: " << SDL_GetError() << std::endl; + return false; + } + + if(SDL_Init(SDL_INIT_AUDIO) < 0) + { + std::cout << "SDL_Init Error: " << SDL_GetError() << std::endl; + rc_init_audio = false; + } + + #ifdef RC_MOBILE + SDL_SetEventFilter(mobile_event_filter, NULL); + #endif // RC_MOBILE + + device = NULL; + VideoDriver = NULL; + rc_window = NULL; + + keyState = SDL_GetKeyboardState(NULL); + createKeyMap(); + + + for(int i = 0; i < MAX_FINGERS; i++) + { + rc_finger[i].id = -1; + rc_finger[i].x = -1; + rc_finger[i].y = -1; + rc_finger[i].pressure = 0; + } + + for(int i = 0; i < SDL_NumSensors(); i++) + { + rc_accel[num_accels] = NULL; + rc_gyro[num_gyros] = NULL; + switch(SDL_SensorGetDeviceType(i)) + { + case SDL_SENSOR_ACCEL: + rc_accel[num_accels] = SDL_SensorOpen(i); + num_accels++; + break; + case SDL_SENSOR_GYRO: + rc_gyro[num_gyros] = SDL_SensorOpen(i); + num_gyros++; + break; + } + } + + for(int i = 0; i < MAX_JOYSTICKS; i++) + { + if(i < SDL_NumJoysticks()) + { + rc_joystick[i] = SDL_JoystickOpen(i); + if(rc_joystick[i]==NULL) + { + cout << "Joystick " << i << " could not be opened: " << SDL_GetError() << endl; + } + rc_joyID[i] = SDL_JoystickInstanceID(rc_joystick[i]); + #ifdef RC_WEB + rc_haptic[i] = NULL; + #else + rc_haptic[i] = SDL_HapticOpenFromJoystick(rc_joystick[i]); + SDL_HapticRumbleInit(rc_haptic[i]); + #endif + //if(rc_haptic[i] == NULL){ cout << "HAP NULL: " << SDL_GetError() << endl; } + rc_numJoysticks++; + } + else + { + rc_joystick[i] = NULL; + rc_haptic[i] = NULL; + rc_joyID[i] = -1; + } + } + SDL_SetHint("SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS", "1"); + + return true; + +} + +void rc_gfx_quit() +{ + if(irrtheora::videoExists()) + { + irrtheora::stopVideo(); + irrtheora::deleteVideo(); + } + + if(device) + device->drop(); + + SDL_Quit(); +} + +bool rc_windowOpenEx(std::string title, int x, int y, int w, int h, uint32_t window_flags, irr::u8 AntiAlias, bool stencil_buffer, bool vsync) +{ + if(rc_window) + { + return false; + } + + bool fullscreen = (window_flags & SDL_WINDOW_FULLSCREEN_DESKTOP) || (window_flags & SDL_WINDOW_FULLSCREEN); + bool high_dpi = window_flags & SDL_WINDOW_ALLOW_HIGHDPI; + bool borderless = window_flags & SDL_WINDOW_BORDERLESS; + bool resizable = window_flags & SDL_WINDOW_RESIZABLE; + bool visible = window_flags & SDL_WINDOW_SHOWN; + + uint32_t flags = SDL_WINDOW_OPENGL; + flags |= (fullscreen ? SDL_WINDOW_FULLSCREEN_DESKTOP : 0); + flags |= (high_dpi ? SDL_WINDOW_ALLOW_HIGHDPI : 0); + flags |= (borderless ? SDL_WINDOW_BORDERLESS : 0); + flags |= (resizable ? SDL_WINDOW_RESIZABLE : 0); + flags |= (visible ? SDL_WINDOW_SHOWN : SDL_WINDOW_HIDDEN); + + //This size is used for virtual resolution + rc_window_size.Width = w; + rc_window_size.Height = h; + + rc_window = SDL_CreateWindow(title.c_str(), x, y, w, h, flags); + + //Get the actual size of the window to set the dimensions of the device + if(rc_window) + SDL_GetWindowSize(rc_window, &w, &h); + + SIrrlichtCreationParameters irr_creation_params; + irr_creation_params.DeviceType = EIDT_SDL; + irr_creation_params.DriverType = video::EDT_OPENGL; + irr_creation_params.WindowId = rc_window; + irr_creation_params.WindowSize = dimension2d((u32)w, (u32)h); + irr_creation_params.Bits = 16; + irr_creation_params.Fullscreen = fullscreen; + irr_creation_params.Stencilbuffer = stencil_buffer; + irr_creation_params.Vsync = vsync; + irr_creation_params.EventReceiver = 0; + irr_creation_params.WindowPosition = position2d(x, y); + irr_creation_params.AntiAlias = AntiAlias; + + device = createDeviceEx(irr_creation_params); + + + if (!device) + { + std::cout << "WindowOpen Error: Failed to Create Renderer" << std::endl; + return false; + } + + VideoDriver = device->getVideoDriver(); + SceneManager = device->getSceneManager(); + + irrtheora::init_irrTheora(device); + + rc_canvas.clear(); + rc_canvas_zOrder.clear(); + rc_font.clear(); + + rc_canvas_obj back_buffer; + back_buffer.texture = VideoDriver->addRenderTargetTexture(irr::core::dimension2d((irr::u32)w, (irr::u32)h), "rt", ECF_A8R8G8B8); + back_buffer.dimension.Width = w; + back_buffer.dimension.Height = h; + back_buffer.viewport.position.set(0,0); + back_buffer.viewport.dimension.set(w,h); + VideoDriver->setRenderTarget(back_buffer.texture, true, true); + rc_canvas.push_back(back_buffer); + + rc_physics3D.world = createIrrBulletWorld(device, true, false); + rc_physics3D.TimeStamp = device->getTimer()->getTime(); + + rc_physics3D.maxSubSteps = 1; + rc_physics3D.fixedTimeStep = irr::f32(1.) / irr::f64(60.); + + rc_physics3D.world->setInternalTickCallback((btInternalTickCallback)myTickCallback2); + + return true; +} + +bool rc_windowOpen(std::string title, int w, int h, bool fullscreen, bool vsync) +{ + uint32_t flags = SDL_WINDOW_SHOWN | (fullscreen ? SDL_WINDOW_FULLSCREEN_DESKTOP : 0); + if(!rc_windowOpenEx(title, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, w, h, flags, 0, false, vsync)) + { + return false; + } + + return true; +} + +void rc_closeWindow_hw() +{ + irrtheora::stopVideo(); + irrtheora::deleteVideo(); + + if(rc_window!=NULL) + SDL_DestroyWindow(rc_window); + rc_window = NULL; + + rc_canvas.clear(); + rc_canvas_zOrder.clear(); + rc_font.clear(); + + device->drop(); + device = NULL; +} + +void rc_cls() +{ + if(rc_canvas.size()>0) + { + if(rc_canvas[0].texture) + { + VideoDriver->setRenderTarget(rc_canvas[0].texture); + VideoDriver->clearBuffers(true, true, true, rc_clear_color); + + if(rc_active_canvas >= 0 && rc_active_canvas < rc_canvas.size()) + if(rc_canvas[rc_active_canvas].texture) + VideoDriver->setRenderTarget(rc_canvas[rc_active_canvas].texture, false, false); + } + } +} + +Uint32 rc_windowMode(int visible_flag, int fullscreen_flag, int resizable_flag, int borderless_flag, int highDPI_flag) +{ + Uint32 window_mode = ( visible_flag == 0 ? SDL_WINDOW_HIDDEN : SDL_WINDOW_SHOWN ) | + ( fullscreen_flag == 0 ? 0 : SDL_WINDOW_FULLSCREEN_DESKTOP ) | + ( resizable_flag == 0 ? 0 : SDL_WINDOW_RESIZABLE ) | + ( borderless_flag == 0 ? 0 : SDL_WINDOW_BORDERLESS ) | + ( highDPI_flag == 0 ? 0 : SDL_WINDOW_ALLOW_HIGHDPI ); + return window_mode; +} + +Uint32 rc_getWindowMode() +{ + if(rc_window == NULL) + { + return 0; + } + return SDL_GetWindowFlags(rc_window); +} + +void rc_raiseWindow() +{ + if(rc_window==NULL) + { + return; + } + SDL_RaiseWindow(rc_window); +} + +void rc_showWindow() +{ + if(rc_window==NULL) + { + return; + } + SDL_ShowWindow(rc_window); +} + +void rc_hideWindow() +{ + if(rc_window==NULL) + { + return; + } + SDL_HideWindow(rc_window); +} + +void rc_getDesktopDisplayMode(int index, double * w, double * h, double * freq) +{ + SDL_DisplayMode dm; + SDL_GetDesktopDisplayMode(index, &dm); + *w = (double)dm.w; + *h = (double)dm.h; + *freq = (double)dm.refresh_rate; +} + +void rc_setWindowTitle(std::string title) +{ + if(rc_window) + { + SDL_SetWindowTitle(rc_window, title.c_str()); + } +} + +std::string rc_getWindowTitle() +{ + if(rc_window) + { + return SDL_GetWindowTitle(rc_window); + } + return ""; +} + +void rc_setWindowPosition(int x, int y) +{ + if(rc_window) + SDL_SetWindowPosition(rc_window, x, y); +} + +void rc_getWindowPosition(double * x, double * y) +{ + int x_data=0, y_data=0; + if(rc_window) + SDL_GetWindowPosition(rc_window,&x_data,&y_data); + *x = x_data; + *y = y_data; +} + +void rc_setWindowSize(int w, int h) +{ + if(rc_window) + { + SDL_SetWindowSize(rc_window, w, h); + + irr::core::dimension2d win_size; + int w, h; + SDL_GetWindowSize(rc_window, &w, &h); + win_size.Width = w; + win_size.Height = h; + + device->setWindowSize(win_size); + + rc_window_size.Width = w; + rc_window_size.Height = h; + + } +} + +void rc_getWindowSize(double * w, double * h) +{ + int w_data = -1, h_data = -1; + if(rc_window) + SDL_GetWindowSize(rc_window, &w_data, &h_data); + *w = w_data; + *h = h_data; +} + +void rc_setWindowMinSize(int w, int h) +{ + if(rc_window) + SDL_SetWindowMinimumSize(rc_window, w, h); +} + +void rc_getWindowMinSize(double * w, double * h) +{ + int w_data=0, h_data=0; + if(rc_window) + SDL_GetWindowMinimumSize(rc_window, &w_data, &h_data); + *w = w_data; + *h = h_data; +} + +void rc_setWindowMaxSize(int w, int h) +{ + if(rc_window) + SDL_SetWindowMaximumSize(rc_window, w, h); +} + +void rc_getWindowMaxSize(double * w, double * h) +{ + int w_data=0, h_data=0; + if(rc_window) + SDL_GetWindowMaximumSize(rc_window, &w_data, &h_data); + *w = w_data; + *h = h_data; +} + +bool rc_windowIsFullscreen() +{ + if(rc_window) + { + Uint32 wflags = SDL_GetWindowFlags(rc_window); + Uint32 wflags_cmp1 = wflags & SDL_WINDOW_FULLSCREEN; + Uint32 wflags_cmp2 = wflags & SDL_WINDOW_FULLSCREEN_DESKTOP; + + if(wflags_cmp1 || wflags_cmp2) + return true; + else + return false; + } + + return false; + +} + +bool rc_windowIsVisible() +{ + if(rc_window) + { + Uint32 wflags = SDL_GetWindowFlags(rc_window); + if(wflags & SDL_WINDOW_SHOWN) + return true; + else + return false; + } + + return false; +} + +bool rc_windowHasMouseFocus() +{ + if(rc_window) + { + Uint32 wflags = SDL_GetWindowFlags(rc_window); + if(wflags & SDL_WINDOW_MOUSE_FOCUS) + return true; + else + return false; + } + + return false; +} + +bool rc_windowHasInputFocus() +{ + if(rc_window) + { + Uint32 wflags = SDL_GetWindowFlags(rc_window); + if(wflags & SDL_WINDOW_INPUT_FOCUS) + return true; + else + return false; + } + + return false; +} + +bool rc_windowIsBordered() +{ + if(rc_window) + { + Uint32 wflags = SDL_GetWindowFlags(rc_window); + if(wflags & SDL_WINDOW_BORDERLESS) + return false; + else + return true; + } + + return false; +} + +bool rc_windowIsResizable() +{ + if(rc_window) + { + Uint32 wflags = SDL_GetWindowFlags(rc_window); + if(wflags & SDL_WINDOW_RESIZABLE) + return true; + else + return false; + } + + return false; +} + +bool rc_windowIsMinimized() +{ + if(rc_window) + { + Uint32 wflags = SDL_GetWindowFlags(rc_window); + if(wflags & SDL_WINDOW_MINIMIZED) + return true; + else + return false; + } + + return false; +} + +bool rc_windowIsMaximized() +{ + if(rc_window) + { + Uint32 wflags = SDL_GetWindowFlags(rc_window); + if(wflags & SDL_WINDOW_MAXIMIZED) + return true; + else + return false; + } + + return false; +} + +bool rc_setWindowFullscreen(int flag) +{ + if(rc_window) + { + switch(flag) + { + case 0: + flag = 0; + break; + default: + flag = SDL_WINDOW_FULLSCREEN_DESKTOP; + break; + } + + Uint32 wflags_preOp = SDL_GetWindowFlags(rc_window); + if( flag != 0 && ( (wflags_preOp & SDL_WINDOW_FULLSCREEN_DESKTOP) || (wflags_preOp & SDL_WINDOW_FULLSCREEN) ) ) + return true; + else if( flag == 0 && !((wflags_preOp & SDL_WINDOW_FULLSCREEN_DESKTOP) || (wflags_preOp & SDL_WINDOW_FULLSCREEN))) + return true; + + if(SDL_SetWindowFullscreen(rc_window, flag) < 0) + { + return false; + } + + + int w, h; + SDL_GetWindowSize(rc_window, &w, &h); + + irr::core::dimension2d win_size(w, h); + device->setWindowSize(win_size); + + if(!(w==rc_window_size.Width && h==rc_window_size.Height)) + { + //TODO: change mouse scale adjust + } + + SDL_PumpEvents(); + SDL_FlushEvents(SDL_FIRSTEVENT, SDL_LASTEVENT); + + return true; + } + + return false; +} + +bool rc_maximizeWindow() +{ + if(rc_window) + { + SDL_MaximizeWindow(rc_window); + + SDL_DisplayMode mode; + SDL_GetWindowDisplayMode(rc_window, &mode); + + irr::core::dimension2d win_size(mode.w, mode.h); + device->setWindowSize(win_size); + + return true; + } + + return false; +} + +bool rc_minimizeWindow() +{ + if(rc_window) + { + SDL_MinimizeWindow(rc_window); + + SDL_DisplayMode mode; + SDL_GetWindowDisplayMode(rc_window, &mode); + + irr::core::dimension2d win_size(mode.w, mode.h); + device->setWindowSize(win_size); + + return true; + } + + return false; +} + +void rc_setWindowBordered(bool b) +{ + SDL_bool bswitch = SDL_FALSE; + if(b) + bswitch = SDL_TRUE; + if(rc_window) + SDL_SetWindowBordered(rc_window, bswitch); +} + +void rc_setWindowResizable(bool b) +{ + SDL_bool bswitch = SDL_FALSE; + if(b) + bswitch = SDL_TRUE; + if(rc_window) + { + SDL_SetWindowResizable(rc_window, bswitch); + device->setResizable(true); + } +} + +bool rc_windowExists() +{ + return (rc_window!=NULL); +} + +bool rc_restoreWindow() +{ + if(rc_window) + { + SDL_RestoreWindow(rc_window); + + SDL_DisplayMode mode; + SDL_GetWindowDisplayMode(rc_window, &mode); + + irr::core::dimension2d win_size(mode.w, mode.h); + device->setWindowSize(win_size); + + return true; + } + + return false; +} + +void rc_setWindowIcon(int slot) +{ + SDL_Rect img_rect; + img_rect.x = 0; + img_rect.y = 0; + //img_rect.w = rc_image_width[slot]; + //img_rect.h = rc_image_height[slot]; + /* + if(rc_himage[slot][win_num] != NULL) + { + //SDL_RendererFlip rf = (SDL_RendererFlip)(SDL_FLIP_VERTICAL); + + SDL_Surface * tmp_surf = SDL_CreateRGBSurface(0, rc_image_width[slot], rc_image_height[slot], 32, 0, 0, 0, 0); + SDL_Texture * tmp_tex = SDL_CreateTexture(rc_win_renderer[rc_active_window], rc_pformat->format, SDL_TEXTUREACCESS_TARGET, rc_image_width[slot], rc_image_height[slot]); + SDL_SetRenderTarget(rc_win_renderer[rc_active_window],NULL); + SDL_RenderCopy(rc_win_renderer[rc_active_window],rc_himage[slot][rc_active_window],NULL,&img_rect); + //SDL_RenderCopyEx(rc_win_renderer[rc_active_window],rc_himage[slot][rc_active_window],NULL,NULL,0,NULL,rf); + + SDL_RenderReadPixels(rc_win_renderer[rc_active_window], &img_rect, rc_pformat->format,tmp_surf->pixels,tmp_surf->pitch); + + SDL_SetColorKey(tmp_surf,SDL_TRUE,rc_image_colorKey[slot]); + + SDL_SetWindowIcon(rc_win[rc_active_window], tmp_surf); + + + if(rc_active_screen >= 0) + SDL_SetRenderTarget(rc_win_renderer[rc_active_window], rc_hscreen[rc_active_window][rc_active_screen]); + + SDL_DestroyTexture(tmp_tex); + SDL_FreeSurface(tmp_surf); + } + */ +} + + +bool rc_windowEvent_Close( ) +{ + if(rc_win_event==RC_WIN_EVENT_CLOSE) + { + return true; + } + + return false; +} + +bool rc_windowEvent_Minimize( ) +{ + if(rc_win_event==RC_WIN_EVENT_MINIMIZE) + return true; + + return false; +} + +bool rc_windowEvent_Maximize( ) +{ + if(rc_win_event==RC_WIN_EVENT_MAXIMIZE) + return true; + + return false; +} + +bool rc_windowEvent_Resize( ) +{ + if(rc_win_event==RC_WIN_EVENT_RESIZE) + return true; + + return false; +} + +void rc_setWindowAutoClose(bool exitOnClose) +{ + rc_win_exitOnClose = exitOnClose; +} + + + +std::string rc_getClipboardText() +{ + return (std::string) SDL_GetClipboardText(); +} + +void rc_setClipboardText(std::string txt) +{ + SDL_SetClipboardText(txt.c_str()); +} + +int rc_hasClipboardText() +{ + return (int)SDL_HasClipboardText(); +} + + +//The greater Z is, the further back the canvas is +void sortCanvasZ() +{ + for(int i = 0; i < rc_canvas_zOrder.size(); i++) + { + for(int j = i+1; j < rc_canvas_zOrder.size(); j++) + { + int ca = rc_canvas_zOrder[i]; + int cb = rc_canvas_zOrder[j]; + if(rc_canvas[cb].z >= rc_canvas[ca].z) + { + rc_canvas_zOrder.erase(j); + rc_canvas_zOrder.insert(cb, i); + } + } + } + + //for(int i = 0; i < rc_canvas_zOrder.size(); i++) + //{ + // std::cout << "Canvas[" << i << "] Z = " << rc_canvas_zOrder[i] << ( (i+1)==rc_canvas_zOrder.size() ? "" : ", " ); + //} + //std::cout << std::endl; +} + +Uint32 rc_canvasOpen(int w, int h, int vx, int vy, int vw, int vh, int mode) +{ + if(!VideoDriver) + return -1; + + rc_canvas_obj canvas; + canvas.texture = VideoDriver->addRenderTargetTexture(irr::core::dimension2d(w,h), "rt", ECF_A8R8G8B8); + canvas.sprite_layer = VideoDriver->addRenderTargetTexture(irr::core::dimension2d(w,h), "rt", ECF_A8R8G8B8); + + if(!canvas.texture) + return -1; + + + if(SceneManager) + { + canvas.camera.init(SceneManager, 0, 0, 0); + //canvas.camera = SceneManager->addCameraSceneNode(0, vector3df(0,0,0), vector3df(0,0,0)); + //canvas.camera->setPosition(irr::core::vector3df(0,0,0)); + //canvas.camera->setTarget(irr::core::vector3df(0,0,100)); + //canvas.camera->bindTargetAndRotation(true); + } + + //std::cout << "texture format = " << canvas.texture->getColorFormat() << std::endl; + + canvas.dimension.Width = w; + canvas.dimension.Height = h; + + canvas.viewport.position.X = vx; + canvas.viewport.position.Y = vy; + canvas.viewport.dimension.Width = vw; + canvas.viewport.dimension.Height = vh; + + canvas.offset.X = 0; + canvas.offset.Y = 0; + + canvas.mode = mode; + + canvas.color_mod = irr::video::SColor(255,255,255,255).color; + + //2D Physics World + b2Vec2 gravity(0, -9.8); + canvas.physics2D.world = new b2World(gravity); + canvas.physics2D.timeStep = 1/20.0; //the length of time passed to simulate (seconds) + canvas.physics2D.velocityIterations = 8; //how strongly to correct velocity + canvas.physics2D.positionIterations = 3; //how strongly to correct position + + + switch(mode) + { + case 0: + break; + case 1: + VideoDriver->makeColorKeyTexture(canvas.texture, irr::video::SColor(0,0,0,0)); + break; + } + + int canvas_id = -1; + + for(int i = 0; i < rc_canvas.size(); i++) + { + if(!rc_canvas[i].texture) + { + canvas_id = i; + break; + } + } + + if(canvas_id < 0) + { + canvas_id = rc_canvas.size(); + rc_canvas.push_back(canvas); + } + + if(rc_active_canvas < 0) + rc_active_canvas = canvas_id; + + for(int i = 0; i < rc_canvas_zOrder.size(); i++) + { + if(rc_canvas_zOrder[i] == canvas_id) + { + rc_canvas_zOrder.erase(i); + i--; + } + } + + rc_canvas_zOrder.push_back(canvas_id); + + sortCanvasZ(); + + + return canvas_id; +} + + +void rc_canvasClose(int canvas_id) +{ + if(canvas_id <= 0 || canvas_id >= rc_canvas.size()) //canvas 0 is being excluded because its the back buffer + return; + + if(rc_canvas[canvas_id].texture != NULL) + VideoDriver->removeTexture(rc_canvas[canvas_id].texture); + + rc_canvas[canvas_id].texture = NULL; + + if(rc_active_canvas == canvas_id) + rc_active_canvas = -1; + + for(int i = 0; i < rc_canvas_zOrder.size(); i++) + { + if(rc_canvas_zOrder[i] == canvas_id) + { + rc_canvas_zOrder.erase(i); + break; + } + } +} + +void rc_setCanvas3D(int canvas_id, bool flag) +{ + if(canvas_id > 0 && canvas_id < rc_canvas.size()) + rc_canvas[canvas_id].show3D = flag; +} + +void rc_setActiveCanvas(int canvas_id) +{ + rc_active_canvas = canvas_id; + + if(rc_active_canvas >= 0 && rc_active_canvas < rc_canvas.size()) + { + if(rc_canvas[rc_active_canvas].texture) + VideoDriver->setRenderTarget(rc_canvas[rc_active_canvas].texture, false, false); + } +} + +int rc_activeCanvas() +{ + return rc_active_canvas; +} + +void rc_clearCanvas() +{ + if(rc_active_canvas >= 0 && rc_active_canvas < rc_canvas.size()) + { + if(rc_canvas[rc_active_canvas].texture) + VideoDriver->clearBuffers(true, true, true, rc_clear_color); + } +} + +void rc_setCanvasVisible(int canvas_id, bool flag) +{ + if(canvas_id <= 0 || canvas_id >= rc_canvas.size()) //canvas 0 is being excluded because its the back buffer + return; + + if(rc_canvas[canvas_id].texture) + rc_canvas[canvas_id].visible = flag; +} + +bool rc_canvasIsVisible(int canvas_id) +{ + if(canvas_id <= 0 || canvas_id >= rc_canvas.size()) //canvas 0 is being excluded because its the back buffer + return false; + + if(rc_canvas[canvas_id].texture) + return rc_canvas[canvas_id].visible; + + return false; +} + +void rc_setCanvasViewport(int canvas_id, int x, int y, int w, int h) +{ + if(canvas_id <= 0 || canvas_id >= rc_canvas.size()) //canvas 0 is being excluded because its the back buffer + return; + + if(rc_canvas[canvas_id].texture) + { + rc_canvas[canvas_id].viewport.position = irr::core::vector2d(x, y); + rc_canvas[canvas_id].viewport.dimension = irr::core::dimension2d(w, h); + } +} + +void rc_getCanvasViewport(int canvas_id, double* x, double* y, double* w, double* h) +{ + if(canvas_id <= 0 || canvas_id >= rc_canvas.size()) //canvas 0 is being excluded because its the back buffer + return; + + if(rc_canvas[canvas_id].texture) + { + *x = (double)rc_canvas[canvas_id].viewport.position.X; + *y = (double)rc_canvas[canvas_id].viewport.position.Y; + *w = rc_canvas[canvas_id].viewport.dimension.Width; + *h = rc_canvas[canvas_id].viewport.dimension.Height; + } +} + +void rc_setCanvasOffset(int canvas_id, int x, int y) +{ + if(canvas_id <= 0 || canvas_id >= rc_canvas.size()) //canvas 0 is being excluded because its the back buffer + return; + + if(rc_canvas[canvas_id].texture) + { + rc_canvas[canvas_id].offset = irr::core::vector2d(x, y); + } +} + +void rc_getCanvasOffset(int canvas_id, double* x, double* y) +{ + if(canvas_id <= 0 || canvas_id >= rc_canvas.size()) //canvas 0 is being excluded because its the back buffer + return; + + if(rc_canvas[canvas_id].texture) + { + *x = (double)rc_canvas[canvas_id].offset.X; + *y = (double)rc_canvas[canvas_id].offset.Y; + } +} + +void rc_getCanvasSize(int canvas_id, double* w, double* h) +{ + if(canvas_id <= 0 || canvas_id >= rc_canvas.size()) //canvas 0 is being excluded because its the back buffer + return; + + if(rc_canvas[canvas_id].texture) + { + *w = (double)rc_canvas[canvas_id].dimension.Width; + *h = (double)rc_canvas[canvas_id].dimension.Height; + } +} + +void rc_setCanvasColorMod(int canvas_id, Uint32 color_mod) +{ + if(canvas_id <= 0 || canvas_id >= rc_canvas.size()) //canvas 0 is being excluded because its the back buffer + return; + + if(rc_canvas[canvas_id].texture) + { + rc_canvas[canvas_id].color_mod = color_mod; + } +} + +Uint32 rc_getCanvasColorMod(int canvas_id) +{ + if(canvas_id <= 0 || canvas_id >= rc_canvas.size()) //canvas 0 is being excluded because its the back buffer + return 0; + + if(rc_canvas[canvas_id].texture) + { + return rc_canvas[canvas_id].color_mod; + } + + return 0; +} + +void rc_setCanvasAlpha(int canvas_id, Uint32 alpha) +{ + if(canvas_id <= 0 || canvas_id >= rc_canvas.size()) //canvas 0 is being excluded because its the back buffer + return; + + if(rc_canvas[canvas_id].texture) + { + irr::video::SColor color(rc_canvas[canvas_id].color_mod); + color.setAlpha(alpha); + rc_canvas[canvas_id].color_mod = color.color; + } +} + +Uint32 rc_canvasAlpha(int canvas_id) +{ + if(canvas_id <= 0 || canvas_id >= rc_canvas.size()) //canvas 0 is being excluded because its the back buffer + return 0; + + if(rc_canvas[canvas_id].texture) + { + irr::video::SColor color(rc_canvas[canvas_id].color_mod); + Uint32 alpha = color.getAlpha(); + return alpha; + } + return 0; +} + +void rc_setCanvasZ(int canvas_id, int z) +{ + if(canvas_id <= 0 || canvas_id >= rc_canvas.size()) //canvas 0 is being excluded because its the back buffer + return; + + rc_canvas[canvas_id].z = z; + sortCanvasZ(); +} + +int rc_getCanvasZ(int canvas_id) +{ + if(canvas_id <= 0 || canvas_id >= rc_canvas.size()) //canvas 0 is being excluded because its the back buffer + return 0; + + if(rc_canvas[canvas_id].texture) + { + return rc_canvas[canvas_id].z; + } + + return 0; +} + +int rc_cloneCanvas(int origin_canvas_id, int mode) +{ + if(!VideoDriver) + return -1; + + if(origin_canvas_id < 0 || origin_canvas_id >= rc_canvas.size()) + return -1; + + if(!rc_canvas[origin_canvas_id].texture) + return -1; + + rc_canvas_obj canvas; + canvas.texture = rc_canvas[origin_canvas_id].texture; + canvas.sprite_layer = rc_canvas[origin_canvas_id].sprite_layer; + + if(!canvas.texture) + return -1; + + + if(SceneManager) + { + canvas.camera.init(SceneManager, 0, 0, 0); + //canvas.camera = SceneManager->addCameraSceneNode(0, vector3df(0,0,0), vector3df(0,0,0)); + //canvas.camera->setPosition(irr::core::vector3df(0,0,0)); + //canvas.camera->setTarget(irr::core::vector3df(0,0,100)); + //canvas.camera->bindTargetAndRotation(true); + } + + //std::cout << "texture format = " << canvas.texture->getColorFormat() << std::endl; + + canvas.dimension.Width = rc_canvas[origin_canvas_id].dimension.Width; + canvas.dimension.Height = rc_canvas[origin_canvas_id].dimension.Height; + + canvas.viewport.position.X = rc_canvas[origin_canvas_id].viewport.position.X; + canvas.viewport.position.Y = rc_canvas[origin_canvas_id].viewport.position.Y; + canvas.viewport.dimension.Width = rc_canvas[origin_canvas_id].viewport.dimension.Width; + canvas.viewport.dimension.Height = rc_canvas[origin_canvas_id].viewport.dimension.Height; + + canvas.offset.X = 0; + canvas.offset.Y = 0; + + canvas.mode = mode; + + canvas.color_mod = irr::video::SColor(255,255,255,255).color; + + //2D Physics World + b2Vec2 gravity(0, -9.8); + canvas.physics2D.world = new b2World(gravity); + canvas.physics2D.timeStep = 1/20.0; //the length of time passed to simulate (seconds) + canvas.physics2D.velocityIterations = 8; //how strongly to correct velocity + canvas.physics2D.positionIterations = 3; //how strongly to correct position + + + switch(mode) + { + case 0: + break; + case 1: + VideoDriver->makeColorKeyTexture(canvas.texture, irr::video::SColor(0,0,0,0)); + break; + } + + int canvas_id = -1; + + for(int i = 0; i < rc_canvas.size(); i++) + { + if(!rc_canvas[i].texture) + { + canvas_id = i; + break; + } + } + + if(canvas_id < 0) + { + canvas_id = rc_canvas.size(); + rc_canvas.push_back(canvas); + } + + if(rc_active_canvas < 0) + rc_active_canvas = canvas_id; + + for(int i = 0; i < rc_canvas_zOrder.size(); i++) + { + if(rc_canvas_zOrder[i] == canvas_id) + { + rc_canvas_zOrder.erase(i); + i--; + } + } + + rc_canvas_zOrder.push_back(canvas_id); + + sortCanvasZ(); + + + return canvas_id; +} + +void rc_setClearColor(Uint32 color) +{ + rc_clear_color.set(color); +} + + + +Uint32 rc_rgba(Uint32 r, Uint32 g, Uint32 b, Uint32 a) +{ + irr::video::SColor color(a, r, g, b); + return color.color; +} + +Uint32 rc_rgb(Uint32 r, Uint32 g, Uint32 b) +{ + irr::video::SColor color(255, r, g, b); + return color.color; +} + + +void rc_setColor(Uint32 color) +{ + rc_active_color.set(color); +} + +Uint32 rc_getPixel(int x, int y) +{ + if(!rc_canvas[0].texture) + { + return 0; + } + + if(x < 0 || x >= rc_window_size.Width) + x = 0; + + if(y < 0 || y >= rc_window_size.Height) + y = 0; + + + irr::video::ITexture* texture = rc_canvas[0].texture; + + video::ECOLOR_FORMAT format = texture->getColorFormat(); //std::cout << "format = " << (int) format << std::endl; + + Uint32 color = 0; + + //this if statement is unnessesary since right now ECF_A8R8G8B8 is the only color format supported. + //I am leaving it here since I may want to support more color formats in the future + if(video::ECF_A8R8G8B8 == format) + { + u8 * texels = (u8 *)texture->lock(irr::video::ETLM_READ_ONLY); + + u32 pitch = texture->getPitch(); + + irr::video::SColor * texel = (SColor *)(texels + ((y * pitch) + (x * sizeof(SColor)))); + + irr::video::SColor c = texel[0]; + + texture->unlock(); + + //std::cout << "color(" << x << ", " << y << ") = " << c.getRed() << ", " << c.getGreen() << ", " << c.getBlue() << std::endl; + } + + return color; + +} + +void rc_drawRect(int x, int y, int w, int h) +{ + irr::core::vector2d r_pos(x,y); + irr::core::dimension2d r_dim(w,h); + irr::core::rect r(r_pos, r_dim); + //std::cout << "drawRect: color=" << rc_active_color.color << " ( " << x << ", " << y << ", " << w << ", " << h << " ) " << std::endl; + VideoDriver->draw2DRectangleOutline(r, rc_active_color); +} + +void rc_drawRectFill(int x, int y, int w, int h) +{ + irr::core::vector2d r_pos(x,y); + irr::core::dimension2d r_dim(w,h); + irr::core::rect r(r_pos, r_dim); + //std::cout << "drawRect: color=" << rc_active_color.color << " ( " << x << ", " << y << ", " << w << ", " << h << " ) " << std::endl; + VideoDriver->draw2DRectangle(rc_active_color, r); +} + +void rc_drawCircle(int x, int y, double r) +{ + irr::core::vector2d r_pos(x,y); + + VideoDriver->draw2DPolygon(r_pos, r, rc_active_color, 30); +} + + + +//Filled Circle Code from CuteAlien on Irrlicht forum +struct CircleSettings +{ + vector2di center; // in screen coordinates + f32 radius; // in pixels + f32 radius2; + video::SColor color; + u32 numVertices = 21; // including center +}; + +void makeCircle(irr::core::array& vertices, irr::core::array& indices, const CircleSettings& settings) +{ + const f64 stepSize = 360.0 / (f64)(settings.numVertices-1); // degree angles between vertex points on circle + indices.set_used(settings.numVertices+1); // one more as first and last vertex in circle is identical + for ( u32 i=0; i r_pos(x,y); + + // create the circle + irr::core::array verticesCircle; + irr::core::array indicesCircle; + CircleSettings circle; + circle.center = r_pos; + circle.radius = r; + circle.color = rc_active_color; + makeCircle(verticesCircle, indicesCircle, circle); + + VideoDriver->draw2DVertexPrimitiveList(verticesCircle.pointer(), verticesCircle.size(), + indicesCircle.pointer(), indicesCircle.size()-2, video::EVT_STANDARD, scene::EPT_TRIANGLE_FAN, + video::EIT_16BIT); +} + +void rc_drawLine(int x1, int y1, int x2, int y2) +{ + irr::core::vector2d r_pos_start(x1,y1); + irr::core::vector2d r_pos_end(x2,y2); + + VideoDriver->draw2DLine(r_pos_start, r_pos_end, rc_active_color); +} + +void rc_poly(Uint32 n, double* vx_d, double* vy_d) +{ + if(n <= 0) + return; + + for(int i = 1; i < n; i++) + { + rc_drawLine((int)vx_d[i-1], (int)vy_d[i-1], (int)vx_d[i], (int)vy_d[i]); + } + + rc_drawLine((int)vx_d[n-1], (int)vy_d[n-1], (int)vx_d[0], (int)vy_d[0]); +} + +void rc_drawPixel(int x, int y) +{ + VideoDriver->drawPixel(x, y, rc_active_color); +} + + +double radians(double degree) +{ + double pi = 3.14159265359; + return (degree * (pi / 180)); +} + +void makeEllipse(irr::core::array& vertices, irr::core::array& indices, const CircleSettings& settings) +{ + const f64 stepSize = 360.0 / (f64)(settings.numVertices-1); // degree angles between vertex points on circle + indices.set_used(settings.numVertices+1); // one more as first and last vertex in circle is identical + for ( u32 i=0; i r_pos(x,y); + + // create the circle + irr::core::array verticesCircle; + irr::core::array indicesCircle; + CircleSettings circle; + circle.center = r_pos; + circle.radius = ry; + circle.radius2 = rx; + circle.color = rc_active_color; + circle.numVertices = 21; + makeEllipse(verticesCircle, indicesCircle, circle); + + for(int i = 2; i < verticesCircle.size(); i++) + { + rc_drawLine(verticesCircle[i-1].Pos.X, verticesCircle[i-1].Pos.Y, verticesCircle[i].Pos.X, verticesCircle[i].Pos.Y); + } + + int n = verticesCircle.size()-1; + rc_drawLine(verticesCircle[n].Pos.X, verticesCircle[n].Pos.Y, verticesCircle[1].Pos.X, verticesCircle[1].Pos.Y); +} + +void rc_drawEllipseFill(int x, int y, int rx, int ry) +{ + irr::core::vector2d r_pos(x,y); + + // create the circle + irr::core::array verticesCircle; + irr::core::array indicesCircle; + CircleSettings circle; + circle.center = r_pos; + circle.radius = ry; + circle.radius2 = rx; + circle.color = rc_active_color; + circle.numVertices = 21; + makeEllipse(verticesCircle, indicesCircle, circle); + + VideoDriver->draw2DVertexPrimitiveList(verticesCircle.pointer(), verticesCircle.size(), + indicesCircle.pointer(), indicesCircle.size()-2, video::EVT_STANDARD, scene::EPT_TRIANGLE_FAN, + video::EIT_16BIT); +} + + + +int rc_loadFont(std::string fnt_file, int font_size) +{ + irr::io::path file_path = fnt_file.c_str(); + int font_id = -1; + for(int i = 0; i < rc_font.size(); i++) + { + if(rc_font[i]!=NULL) + { + font_id = i; + break; + } + } + + CGUITTFace* Face; + CGUIFreetypeFont* dfont; + + Face = new CGUITTFace(); + Face->load(file_path); + + dfont = new CGUIFreetypeFont(VideoDriver); + dfont->attach(Face, font_size); + + + if(font_id < 0) + { + font_id = rc_font.size(); + + rc_font_obj* f = new rc_font_obj(); + + f->face = Face; + f->font = dfont; + f->font_size = font_size; + + rc_font.push_back(f); + + rc_active_font = font_id; + } + else + { + rc_font[font_id]->face = Face; + rc_font[font_id]->font = dfont; + rc_font[font_id]->font_size = font_size; + } + + return font_id; +} + +bool rc_fontExists(int font_id) +{ + if(font_id >= 0 && font_id < rc_font.size()) + { + if(rc_font[font_id]->font != NULL) + return true; + } + return false; +} + +void rc_deleteFont(int font_id) +{ + if(rc_fontExists(font_id)) + { + delete rc_font[font_id]->font; + delete rc_font[font_id]->face; + rc_font[font_id]->font = NULL; + rc_font[font_id]->face = NULL; + rc_font[font_id]->font_size = 0; + } +} + +void rc_setFont(int font_id) +{ + if(rc_fontExists(font_id)) + rc_active_font = font_id; +} + +void rc_drawText(std::string txt, int x, int y) +{ + if(rc_fontExists(rc_active_font)) + { + std::wstring text = utf8_to_wstring(txt); + irr::core::dimension2d text_dim = rc_font[rc_active_font]->font->getDimension(text.c_str()); + irr::core::rect tpos(x, y, text_dim.Width, rc_font[rc_active_font]->font_size); + + //std::cout << "Start drawing text: " << tpos.getWidth() << ", " << tpos.getHeight() << std::endl; + rc_font[rc_active_font]->font->draw(text.c_str(), tpos, rc_active_color); + //std::cout << "------------------" << std::endl; + } +} + +Uint32 rc_getTextWidth(const std::string txt) +{ + if(rc_fontExists(rc_active_font)) + { + std::wstring text = utf8_to_wstring(txt); + irr::core::dimension2d text_dim = rc_font[rc_active_font]->font->getDimension(text.c_str()); + return text_dim.Width; + } + return 0; +} + +Uint32 rc_getTextHeight(const std::string txt) +{ + if(rc_fontExists(rc_active_font)) + { + std::wstring text = utf8_to_wstring(txt); + //std::wstring wide = converter.from_bytes(txt); + //irr::core::dimension2d text_dim = rc_font[rc_active_font]->getDimension(wide.c_str()); + return rc_font[rc_active_font]->font_size; + } + return 0; +} + +void rc_getTextSize(const std::string txt, double* w, double* h) +{ + if(rc_fontExists(rc_active_font)) + { + std::wstring text = utf8_to_wstring(txt); + irr::core::dimension2d text_dim = rc_font[rc_active_font]->font->getDimension(text.c_str()); + *w = text_dim.Width; + *h = rc_font[rc_active_font]->font_size; + } + else + { + *w = 0; + *h = 0; + } +} + + +#define RC_MOUSE_BUTTON_LEFT 0 +#define RC_MOUSE_BUTTON_MIDDLE 1 +#define RC_MOUSE_BUTTON_RIGHT 2 + +int rc_mwheelx = -1; +int rc_mwheely = -1; + +bool rc_cursor_visible = true; + + +bool rc_mouseButton(int b) +{ + int ix, iy; + int current_button_state = SDL_GetMouseState(&ix, &iy); + return (current_button_state & SDL_BUTTON(b)); +} + +int rc_mouseX() +{ + int x, y; + SDL_GetMouseState(&x, &y); + return x; +} + +int rc_mouseY() +{ + int x, y; + SDL_GetMouseState(&x, &y); + return y; +} + +void rc_getMouse(double* x, double* y, double* mb1, double* mb2, double* mb3) +{ + int ix, iy; + int current_button_state = SDL_GetMouseState(&ix, &iy); + + *mb1 = (current_button_state & SDL_BUTTON(SDL_BUTTON_LEFT))!=0; + *mb2 = (current_button_state & SDL_BUTTON(SDL_BUTTON_MIDDLE))!=0; + *mb3 = (current_button_state & SDL_BUTTON(SDL_BUTTON_RIGHT))!=0; + + *x = ix; + *y = iy; +} + +int rc_mouseWheelX() +{ + return rc_mwheelx; +} + +int rc_mouseWheelY() +{ + return rc_mwheely; +} + +int rc_globalMouseX() +{ + int x, y; + SDL_GetGlobalMouseState(&x,&y); + return x; +} + +int rc_globalMouseY() +{ + int x, y; + SDL_GetGlobalMouseState(&x,&y); + return y; +} + +void rc_getGlobalMouse(double * x, double* y, double* mb1, double* mb2, double* mb3) +{ + int ix, iy; + int current_button_state = SDL_GetGlobalMouseState(&ix,&iy); + + *mb1 = (current_button_state & SDL_BUTTON(SDL_BUTTON_LEFT))!=0; + *mb2 = (current_button_state & SDL_BUTTON(SDL_BUTTON_MIDDLE))!=0; + *mb3 = (current_button_state & SDL_BUTTON(SDL_BUTTON_RIGHT))!=0; + + *x = ix; + *y = iy; +} + +void rc_getMouseWheel(double* x, double* y) +{ + *x = rc_mwheelx; + *y = rc_mwheely; +} + +void rc_hideMouse() +{ + SDL_ShowCursor(0); + rc_cursor_visible = false; +} + +void rc_showMouse() +{ + SDL_ShowCursor(1); + rc_cursor_visible = true; +} + +bool rc_mouseIsVisible() +{ + return rc_cursor_visible; +} + + +int rc_inKey() +{ + return rc_inkey_val; +} + +int rc_key(int check_Key) +{ + return keyState[SDL_GetScancodeFromKey(check_Key)]; +} + +int rc_waitKey() +{ + bool wk_loop = true; + SDL_Event e; + while(wk_loop) + { + while(SDL_WaitEvent(&e)) + { + if(e.type == SDL_KEYDOWN) + return (int)e.key.keysym.sym; + } + } + return 0; +} + +void rc_wait(Uint32 ms) +{ + SDL_Delay(ms); +} + + + +void rc_grabInput(bool flag) +{ + SDL_SetWindowGrab(rc_window, flag ? SDL_TRUE : SDL_FALSE); +} + +int rc_windowIsGrabbed() +{ + return SDL_GetWindowGrab(rc_window); +} + +void rc_warpMouse(int x, int y) +{ + SDL_WarpMouseInWindow(rc_window, x, y); +} + +void rc_warpMouseGlobal(int x, int y) +{ + SDL_WarpMouseGlobal(x, y); +} + +void rc_setMouseZone(int x, int y, int w, int h) +{ + SDL_Rect r; + r.x = x; + r.y = y; + r.w = w; + r.h = h; + SDL_SetWindowMouseRect(rc_window, &r); +} + +void rc_clearMouseZone() +{ + SDL_SetWindowMouseRect(rc_window, NULL); +} + +void rc_setWindowAlwaysOnTop(bool flag) +{ + SDL_SetWindowAlwaysOnTop(rc_window, flag ? SDL_TRUE : SDL_FALSE); +} + +void rc_setMouseRelative(bool flag) +{ + SDL_SetRelativeMouseMode(flag ? SDL_TRUE : SDL_FALSE); +} + +void rc_setWindowVSync(bool flag) +{ + //TODO +} + +int rc_openURL(std::string url) +{ + return SDL_OpenURL(url.c_str()); +} + +std::string rc_SDLVersion() +{ + SDL_version version; + SDL_GetVersion(&version); + + std::stringstream ss; + ss << (uint32_t)version.major << "." << (uint32_t)version.minor << "." << (uint32_t)version.patch; + return ss.str(); + +} + +int rc_flashWindow(int flag) +{ + switch(flag) + { + case 0: + return SDL_FlashWindow(rc_window, SDL_FLASH_CANCEL); + case 1: + return SDL_FlashWindow(rc_window, SDL_FLASH_BRIEFLY); + case 2: + return SDL_FlashWindow(rc_window, SDL_FLASH_UNTIL_FOCUSED); + } + + return -1; +} + +int rc_messageBox(std::string title, std::string msg) +{ + return SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_INFORMATION, title.c_str(), msg.c_str(), NULL); +} + +int rc_FPS() +{ + return VideoDriver->getFPS(); +} + + + + +int rc_getNumJoysticks() +{ + return SDL_NumJoysticks(); +} + +int rc_joyAxis(int joy_num, int axis) +{ + if(joy_num >= 0 && joy_num < MAX_JOYSTICKS) + return SDL_JoystickGetAxis(rc_joystick[joy_num], axis); + return 0; +} + +int rc_joyButton(int joy_num, int jbutton) +{ + if(joy_num >= 0 && joy_num < MAX_JOYSTICKS) + return SDL_JoystickGetButton(rc_joystick[joy_num], jbutton); + return 0; +} + +std::string rc_joyName(int joy_num) +{ + if(joy_num >= 0 && joy_num < MAX_JOYSTICKS) + return (std::string)SDL_JoystickName(rc_joystick[joy_num]); + return ""; +} + +int rc_numJoyButtons(int joy_num) +{ + if(joy_num >= 0 && joy_num < MAX_JOYSTICKS) + return SDL_JoystickNumButtons(rc_joystick[joy_num]); + return 0; +} + +int rc_numJoyAxes(int joy_num) +{ + if(joy_num >= 0 && joy_num < MAX_JOYSTICKS) + return SDL_JoystickNumAxes(rc_joystick[joy_num]); + return 0; +} + +int rc_numJoyHats(int joy_num) +{ + if(joy_num >= 0 && joy_num < MAX_JOYSTICKS) + return SDL_JoystickNumHats(rc_joystick[joy_num]); + return 0; +} + +int rc_joyHat(int joy_num, int hat) +{ + if(joy_num >= 0 && joy_num < MAX_JOYSTICKS) + return SDL_JoystickGetHat(rc_joystick[joy_num], hat); + return 0; +} + +int rc_numJoyTrackBalls(int joy_num) +{ + if(joy_num >= 0 && joy_num < MAX_JOYSTICKS) + return SDL_JoystickNumBalls(rc_joystick[joy_num]); + return 0; +} + +void rc_getJoyTrackBall(int joy_num, int ball, double * dx, double * dy) +{ + int x = 0; + int y = 0; + if(joy_num >= 0 && joy_num < MAX_JOYSTICKS) + SDL_JoystickGetBall(rc_joystick[joy_num], ball, &x, &y); + *dx = x; + *dy = y; +} + +bool rc_joystickIsConnected( int joy_num ) +{ + if(joy_num >= 0 && joy_num < MAX_JOYSTICKS) + { + if(rc_joystick[joy_num]) + return true; + return false; + } + return false; +} + +void rc_joyRumblePlay(int joy_num, double strength, double duration) +{ + if(joy_num >= 0 && joy_num < MAX_JOYSTICKS) + { + SDL_HapticRumblePlay(rc_haptic[joy_num], strength, (Uint32)duration); + } +} + +void rc_joyRumbleStop(int joy_num) +{ + if(joy_num >= 0 && joy_num < MAX_JOYSTICKS) + SDL_HapticRumbleStop(rc_haptic[joy_num]); +} + +int rc_joystickIsHaptic( int joy_num ) +{ + if(joy_num >= 0 && joy_num < MAX_JOYSTICKS) + { + if(rc_haptic[joy_num]) + return 1; + } + return 0; +} + + + + + +void rc_getTouchFinger(int finger, double * x, double * y, double * pressure) +{ + if(finger < MAX_FINGERS) + { + *x = rc_finger[finger].x; + *y = rc_finger[finger].y; + *pressure = rc_finger[finger].pressure; + } +} + +int rc_numFingers() +{ + return rc_fingers_pressed.size(); +} + +double rc_touchPressure() +{ + return rc_pressure; +} + +void rc_getTouch(double * status, double * x, double * y, double * distX, double * distY) +{ + *status = (double)rc_touch; + *x = (double)rc_touchX; + *y = (double)rc_touchY; + *distX = (double)rc_motionX; + *distY = (double)rc_motionY; + return; +} + +void rc_getMultiTouch(double * status, double * x, double * y, double * numFingers, double * dist, double * theta) +{ + *status = (double)rc_mt_status; + *x = (double)rc_mt_x; + *y = (double)rc_mt_y; + *numFingers = (double)rc_mt_numFingers; + *dist = rc_mt_dist; + *theta = rc_mt_theta; + return; +} + +void rc_getAccel(uint32_t accel_num, double * x, double * y, double * z) +{ + float sensor_data[4]; + if(accel_num < num_accels) + SDL_SensorGetData(rc_accel[accel_num], &sensor_data[0], 3); + *x = sensor_data[0]; + *y = sensor_data[1]; + *z = sensor_data[2]; +} + +std::string rc_accelName(uint32_t accel_num) +{ + if(accel_num < num_accels) + return (std::string)SDL_SensorGetName(rc_accel[accel_num]); + return ""; +} + +int rc_numAccels() +{ + return num_accels; +} + +void rc_getGyro(uint32_t gyro_num, double * x, double * y, double * z) +{ + float sensor_data[4]; + if(gyro_num < num_gyros) + SDL_SensorGetData(rc_gyro[gyro_num], &sensor_data[0], 3); + *x = sensor_data[0]; + *y = sensor_data[1]; + *z = sensor_data[2]; +} + +std::string rc_gyroName(uint32_t gyro_num) +{ + if(gyro_num < num_gyros) + return (std::string)SDL_SensorGetName(rc_gyro[gyro_num]); + return ""; +} + +int rc_numGyros() +{ + return num_gyros; +} + +void rc_readInput_Start() +{ + SDL_StartTextInput(); + rc_textinput_isActive = true; + rc_textinput_string = ""; + rc_textinput_timer = clock() / (double)(CLOCKS_PER_SEC / 1000); +} + +void rc_readInput_Stop() +{ + rc_textinput_isActive = false; + rc_textinput_timer = 0; + rc_textinput_string = ""; + SDL_StopTextInput(); +} + +std::string rc_readInput_Text() +{ + return rc_textinput_string; +} + +void rc_readInput_SetText(std::string txt) +{ + rc_textinput_string = txt; +} + +void rc_readInput_ToggleBackspace(bool flag) +{ + rc_toggleBackspace = flag; +} + + +struct rc_image_obj +{ + irr::video::ITexture* image; + Uint8 alpha = 255; + irr::video::SColor color_mod = irr::video::SColor(255,255,255,255); +}; +irr::core::array rc_image; + +irr::video::E_BLEND_OPERATION rc_blend_mode = irr::video::EBO_ADD; +bool rc_bilinear_filter = false; + + +int rc_loadImageEx(std::string img_file, Uint32 color_key = 0, bool use_color_key = true) +{ + rc_image_obj img; + img.image = VideoDriver->getTexture(img_file.c_str()); + + if(img.image == NULL) + return -1; + + if(use_color_key) + VideoDriver->makeColorKeyTexture(img.image, irr::video::SColor(color_key), false); + + int img_id = -1; + + for(int i = 0; i < rc_image.size(); i++) + { + if(rc_image[i].image == NULL) + { + img_id = i; + break; + } + } + + if(img_id < 0) + { + img_id = rc_image.size(); + rc_image.push_back(img); + } + else + { + rc_image[img_id] = img; + } + + return img_id; +} + +int rc_loadImage(std::string img_file) +{ + return rc_loadImageEx(img_file, 0, false); +} + +void rc_deleteImage(int img_id) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + rc_image[img_id].image->drop(); + rc_image[img_id].image = NULL; + rc_image[img_id].alpha = 255; + } +} + +int rc_createImageEx(int w, int h, double * pdata, Uint32 colorkey, bool use_color_key=true) +{ + if(w <= 0 || h <=0) + return -1; + + irr::video::IImage* image = VideoDriver->createImage(irr::video::ECF_A8R8G8B8, irr::core::dimension2d((irr::u32)w,(irr::u32)h)); + if(!image) + return -1; + + Uint32 * img_pixels = (Uint32*)image->getData(); + for(int i = 0; i < (w*h); i++) + { + img_pixels[i] = (Uint32)pdata[i]; + } + + irr::video::ITexture* texture = VideoDriver->addTexture("buffer_image", image); + image->drop(); + + if(!texture) + return -1; + + if(use_color_key) + VideoDriver->makeColorKeyTexture(texture, irr::video::SColor(colorkey)); + + int img_id = -1; + rc_image_obj img; + img.image = texture; + img.alpha = 255; + + for(int i = 0; i < rc_image.size(); i++) + { + if(rc_image[i].image == NULL) + { + img_id = i; + break; + } + } + + if(img_id < 0) + { + img_id = rc_image.size(); + rc_image.push_back(img); + } + else + { + rc_image[img_id] = img; + } + + return img_id; +} + +int rc_createImage(int w, int h, double* pdata) +{ + return rc_createImageEx(w, h, pdata, 0, false); +} + + +void rc_getImageBuffer(int img_id, double * pdata) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(!rc_image[img_id].image) + return; + + Uint32* img_pixels = (Uint32*)rc_image[img_id].image->lock(); + + int image_size = rc_image[img_id].image->getSize().Width * rc_image[img_id].image->getSize().Height; + + for(int i = 0; i < image_size; i++) + pdata[i] = (double)img_pixels[i]; + + rc_image[img_id].image->unlock(); +} + +void rc_setBilinearFilter(bool flag) +{ + rc_bilinear_filter = flag; +} + +bool rc_getBilinearFilter() +{ + return rc_bilinear_filter; +} + +void rc_setImageColorMod(int img_id, Uint32 color) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + rc_image[img_id].color_mod = irr::video::SColor(color); + } +} + +Uint32 rc_getImageColorMod(int img_id) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return 0; + + if(rc_image[img_id].image) + { + return rc_image[img_id].color_mod.color; + } + + return 0; +} + + +void rc_setBlendMode(int blend_mode) +{ + switch(blend_mode) + { + case 0: rc_blend_mode = EBO_NONE; break; + case 1: rc_blend_mode = EBO_ADD; break; + case 2: rc_blend_mode = EBO_SUBTRACT; break; + case 3: rc_blend_mode = EBO_REVSUBTRACT; break; + case 4: rc_blend_mode = EBO_MIN; break; + case 5: rc_blend_mode = EBO_MAX; break; + case 6: rc_blend_mode = EBO_MIN_FACTOR; break; + case 7: rc_blend_mode = EBO_MAX_FACTOR; break; + case 8: rc_blend_mode = EBO_MIN_ALPHA; break; + case 9: rc_blend_mode = EBO_MAX_ALPHA; break; + } +} + +int rc_getBlendMode() +{ + return (int)rc_blend_mode; +} + +void draw2DImage(irr::video::IVideoDriver *driver, irr::video::ITexture* texture, irr::core::rect sourceRect, irr::core::position2d position, irr::core::position2d rotationPoint, irr::f32 rotation, irr::core::vector2df scale, bool useAlphaChannel, irr::video::SColor color, irr::core::vector2d screenSize) +{ + if(rc_active_canvas < 0 || rc_active_canvas >= rc_canvas.size()) + return; + + // Store and clear the projection matrix + irr::core::matrix4 oldProjMat = driver->getTransform(irr::video::ETS_PROJECTION); + driver->setTransform(irr::video::ETS_PROJECTION,irr::core::matrix4()); + + // Store and clear the view matrix + irr::core::matrix4 oldViewMat = driver->getTransform(irr::video::ETS_VIEW); + driver->setTransform(irr::video::ETS_VIEW,irr::core::matrix4()); + + // Store and clear the world matrix + irr::core::matrix4 oldWorldMat = driver->getTransform(irr::video::ETS_WORLD); + driver->setTransform(irr::video::ETS_WORLD,irr::core::matrix4()); + + // Find horizontal and vertical axes after rotation + irr::f32 c = cos(-rotation*irr::core::DEGTORAD); + irr::f32 s = sin(-rotation*irr::core::DEGTORAD); + irr::core::vector2df horizontalAxis(c,s); + irr::core::vector2df verticalAxis(s,-c); + + // First, we'll find the offset of the center and then where the center would be after rotation + irr::core::vector2df centerOffset(position.X+sourceRect.getWidth()/2.0f*scale.X-rotationPoint.X,position.Y+sourceRect.getHeight()/2.0f*scale.Y-rotationPoint.Y); + irr::core::vector2df center = centerOffset.X*horizontalAxis - centerOffset.Y*verticalAxis; + center.X += rotationPoint.X; + center.Y += rotationPoint.Y; + + // Now find the corners based off the center + irr::core::vector2df cornerOffset(sourceRect.getWidth()*scale.X/2.0f,sourceRect.getHeight()*scale.Y/2.0f); + verticalAxis *= cornerOffset.Y; + horizontalAxis *= cornerOffset.X; + irr::core::vector2df corner[4]; + corner[0] = center + verticalAxis - horizontalAxis; + corner[1] = center + verticalAxis + horizontalAxis; + corner[2] = center - verticalAxis - horizontalAxis; + corner[3] = center - verticalAxis + horizontalAxis; + + // Find the uv coordinates of the sourceRect + irr::core::vector2df textureSize(texture->getSize().Width, texture->getSize().Height); + irr::core::vector2df uvCorner[4]; + uvCorner[0] = irr::core::vector2df(sourceRect.UpperLeftCorner.X,sourceRect.UpperLeftCorner.Y); + uvCorner[1] = irr::core::vector2df(sourceRect.LowerRightCorner.X,sourceRect.UpperLeftCorner.Y); + uvCorner[2] = irr::core::vector2df(sourceRect.UpperLeftCorner.X,sourceRect.LowerRightCorner.Y); + uvCorner[3] = irr::core::vector2df(sourceRect.LowerRightCorner.X,sourceRect.LowerRightCorner.Y); + for (irr::s32 i = 0; i < 4; i++) + uvCorner[i] /= textureSize; + + // Vertices for the image + irr::video::S3DVertex vertices[4]; + irr::u16 indices[6] = { 0, 1, 2, 3 ,2 ,1 }; + + // Convert pixels to world coordinates + //irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height); + + for (irr::s32 i = 0; i < 4; i++) { + vertices[i].Pos = irr::core::vector3df(((corner[i].X/screenSize.X)-0.5f)*2.0f,((corner[i].Y/screenSize.Y)-0.5f)*-2.0f,1); + vertices[i].TCoords = uvCorner[i]; + vertices[i].Color = color; + } + + // Create the material + // IMPORTANT: For irrlicht 1.8 and above you MUST ADD THIS LINE: + // material.BlendOperation = irr::video::EBO_ADD; + irr::video::SMaterial material; + material.Lighting = false; + material.ZWriteEnable = irr::video::EZW_OFF; + material.ZBuffer = false; + material.BackfaceCulling = false; + material.TextureLayer[0].Texture = texture; + material.TextureLayer[0].BilinearFilter = rc_bilinear_filter; + material.MaterialTypeParam = irr::video::pack_textureBlendFunc(irr::video::EBF_SRC_ALPHA, irr::video::EBF_ONE_MINUS_SRC_ALPHA, irr::video::EMFN_MODULATE_1X, irr::video::EAS_TEXTURE | irr::video::EAS_VERTEX_COLOR); + material.BlendOperation = rc_blend_mode; + //material.BlendOperation = irr::video::EBO_ADD; + + if (useAlphaChannel) + material.MaterialType = irr::video::EMT_ONETEXTURE_BLEND; + else + material.MaterialType = irr::video::EMT_SOLID; + + driver->setMaterial(material); + driver->drawIndexedTriangleList(&vertices[0],4,&indices[0],2); + + // Restore projection, world, and view matrices + driver->setTransform(irr::video::ETS_PROJECTION,oldProjMat); + driver->setTransform(irr::video::ETS_VIEW,oldViewMat); + driver->setTransform(irr::video::ETS_WORLD,oldWorldMat); +} + +void draw2DImage2(irr::video::IVideoDriver *driver, irr::video::ITexture* texture, irr::core::rect sourceRect, irr::core::rect destRect, irr::core::position2d rotationPoint, irr::f32 rotation, bool useAlphaChannel, irr::video::SColor color, irr::core::vector2d screenSize ) +{ + if(rc_active_canvas < 0 || rc_active_canvas >= rc_canvas.size()) + return; + + // Store and clear the projection matrix + irr::core::matrix4 oldProjMat = driver->getTransform(irr::video::ETS_PROJECTION); + driver->setTransform(irr::video::ETS_PROJECTION,irr::core::matrix4()); + + // Store and clear the view matrix + irr::core::matrix4 oldViewMat = driver->getTransform(irr::video::ETS_VIEW); + driver->setTransform(irr::video::ETS_VIEW,irr::core::matrix4()); + + // Store and clear the world matrix + irr::core::matrix4 oldWorldMat = driver->getTransform(irr::video::ETS_WORLD); + driver->setTransform(irr::video::ETS_WORLD,irr::core::matrix4()); + + // Find horizontal and vertical axes after rotation + irr::f32 c = cos(-rotation*irr::core::DEGTORAD); + irr::f32 s = sin(-rotation*irr::core::DEGTORAD); + irr::core::vector2df horizontalAxis(c,s); + irr::core::vector2df verticalAxis(s,-c); + + // First, we'll find the offset of the center and then where the center would be after rotation + irr::core::vector2df centerOffset(destRect.UpperLeftCorner.X+destRect.getWidth()/2.0f-rotationPoint.X,destRect.UpperLeftCorner.Y+destRect.getHeight()/2.0f-rotationPoint.Y); + irr::core::vector2df center = centerOffset.X*horizontalAxis - centerOffset.Y*verticalAxis; + center.X += rotationPoint.X; + center.Y += rotationPoint.Y; + + // Now find the corners based off the center + irr::core::vector2df cornerOffset(destRect.getWidth()/2.0f,destRect.getHeight()/2.0f); + verticalAxis *= cornerOffset.Y; + horizontalAxis *= cornerOffset.X; + irr::core::vector2df corner[4]; + corner[0] = center + verticalAxis - horizontalAxis; + corner[1] = center + verticalAxis + horizontalAxis; + corner[2] = center - verticalAxis - horizontalAxis; + corner[3] = center - verticalAxis + horizontalAxis; + + // Find the uv coordinates of the sourceRect + irr::core::vector2df textureSize(texture->getSize().Width, texture->getSize().Height); + irr::core::vector2df uvCorner[4]; + uvCorner[0] = irr::core::vector2df(sourceRect.UpperLeftCorner.X,sourceRect.UpperLeftCorner.Y); + uvCorner[1] = irr::core::vector2df(sourceRect.LowerRightCorner.X,sourceRect.UpperLeftCorner.Y); + uvCorner[2] = irr::core::vector2df(sourceRect.UpperLeftCorner.X,sourceRect.LowerRightCorner.Y); + uvCorner[3] = irr::core::vector2df(sourceRect.LowerRightCorner.X,sourceRect.LowerRightCorner.Y); + for (irr::s32 i = 0; i < 4; i++) + uvCorner[i] /= textureSize; + + // Vertices for the image + irr::video::S3DVertex vertices[4]; + irr::u16 indices[6] = { 0, 1, 2, 3 ,2 ,1 }; + + // Convert pixels to world coordinates + //irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height); + + for (irr::s32 i = 0; i < 4; i++) { + vertices[i].Pos = irr::core::vector3df(((corner[i].X/screenSize.X)-0.5f)*2.0f,((corner[i].Y/screenSize.Y)-0.5f)*-2.0f,1); + vertices[i].TCoords = uvCorner[i]; + vertices[i].Color = color; + } + + // Create the material + // IMPORTANT: For irrlicht 1.8 and above you MUST ADD THIS LINE: + // material.BlendOperation = irr::video::EBO_ADD; + irr::video::SMaterial material; + material.Lighting = false; + material.ZWriteEnable = irr::video::EZW_OFF; + material.ZBuffer = false; + material.BackfaceCulling = false; + material.TextureLayer[0].Texture = texture; + material.TextureLayer[0].BilinearFilter = rc_bilinear_filter; //TODO: Add option to switch this on/off + material.BlendOperation = rc_blend_mode; + material.MaterialTypeParam = irr::video::pack_textureBlendFunc(irr::video::EBF_SRC_ALPHA, irr::video::EBF_ONE_MINUS_SRC_ALPHA, irr::video::EMFN_MODULATE_1X, irr::video::EAS_TEXTURE | irr::video::EAS_VERTEX_COLOR); + //material.AntiAliasing = irr::video::EAAM_OFF; + + if (useAlphaChannel) + material.MaterialType = irr::video::EMT_ONETEXTURE_BLEND; + else + material.MaterialType = irr::video::EMT_SOLID; + + driver->setMaterial(material); + driver->drawIndexedTriangleList(&vertices[0],4,&indices[0],2); + + // Restore projection, world, and view matrices + driver->setTransform(irr::video::ETS_PROJECTION,oldProjMat); + driver->setTransform(irr::video::ETS_VIEW,oldViewMat); + driver->setTransform(irr::video::ETS_WORLD,oldWorldMat); +} + + +void rc_drawImage(int img_id, int x, int y) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + irr::core::dimension2d src_size = rc_image[img_id].image->getSize(); + irr::core::rect sourceRect( irr::core::vector2d(0, 0), src_size); + + irr::core::position2d position(x, y); + + irr::core::position2d rotationPoint(0, 0); //since we are not rotating it doesn't matter + + irr::f32 rotation = 0; + irr::core::vector2df scale(1.0, 1.0); + bool useAlphaChannel = true; + irr::video::SColor color(rc_image[img_id].alpha, + rc_image[img_id].color_mod.getRed(), + rc_image[img_id].color_mod.getGreen(), + rc_image[img_id].color_mod.getBlue()); + + //irr::core::rect dest( irr::core::vector2d(x, y), irr::core::dimension2d(src_w, src_h));; + + irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height); + + draw2DImage(VideoDriver, rc_image[img_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize); + } +} + +int rc_copyImage(int src_id) +{ + if(src_id < 0 || src_id >= rc_image.size()) + return -1; + + if(!rc_image[src_id].image) + return -1; + + irr::video::ITexture* texture = VideoDriver->addRenderTargetTexture(rc_image[src_id].image->getSize(), "img_copy", irr::video::ECF_A8R8G8B8); + + if(!texture) + return -1; + + VideoDriver->setRenderTarget(texture, true, false, irr::video::SColor(0)); + + + irr::core::dimension2d src_size = rc_image[src_id].image->getSize(); + irr::core::rect sourceRect( irr::core::vector2d(0, 0), src_size); + irr::core::position2d position(0, 0); + irr::core::position2d rotationPoint(0, 0); //since we are not rotating it doesn't matter + irr::f32 rotation = 0; + irr::core::vector2df scale(1.0, 1.0); + bool useAlphaChannel = true; + irr::video::SColor color(rc_image[src_id].alpha, + rc_image[src_id].color_mod.getRed(), + rc_image[src_id].color_mod.getGreen(), + rc_image[src_id].color_mod.getBlue()); + irr::core::vector2df screenSize(src_size.Width, src_size.Height); + + draw2DImage(VideoDriver, rc_image[src_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize); + + rc_setActiveCanvas(rc_active_canvas); + + int img_id = -1; + rc_image_obj img; + img.image = texture; + img.alpha = 255; + + for(int i = 0; i < rc_image.size(); i++) + { + if(rc_image[i].image == NULL) + { + img_id = i; + break; + } + } + + if(img_id < 0) + { + img_id = rc_image.size(); + rc_image.push_back(img); + } + else + { + rc_image[img_id] = img; + } + + return img_id; +} + + +void rc_drawImage_Rotate(int img_id, int x, int y, double angle) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + irr::core::dimension2d src_size = rc_image[img_id].image->getSize(); + irr::core::rect sourceRect(0, 0, src_size.Width, src_size.Height); + + irr::core::position2d position(x, y); + + irr::core::position2d rotationPoint(x + (src_size.Width/2), y + (src_size.Height/2)); + + irr::f32 rotation = -1*angle; + irr::core::vector2df scale(1.0, 1.0); + bool useAlphaChannel = true; + irr::video::SColor color(rc_image[img_id].alpha, + rc_image[img_id].color_mod.getRed(), + rc_image[img_id].color_mod.getGreen(), + rc_image[img_id].color_mod.getBlue()); + + irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height); + + draw2DImage(VideoDriver, rc_image[img_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize); + } +} + +void rc_drawImage_Zoom(int img_id, int x, int y, double zx, double zy) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + irr::core::dimension2d src_size = rc_image[img_id].image->getSize(); + irr::core::rect sourceRect(0, 0, src_size.Width, src_size.Height); + + irr::core::position2d position(x, y); + + irr::core::position2d rotationPoint(x + (src_size.Width/2), y + (src_size.Height/2)); + + irr::f32 rotation = 0; + irr::core::vector2df scale((irr::f32)zx, (irr::f32)zy); + bool useAlphaChannel = true; + irr::video::SColor color(rc_image[img_id].alpha, + rc_image[img_id].color_mod.getRed(), + rc_image[img_id].color_mod.getGreen(), + rc_image[img_id].color_mod.getBlue()); + + irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height); + + draw2DImage(VideoDriver, rc_image[img_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize); + } +} + +void rc_drawImage_ZoomEx(int img_id, int x, int y, int src_x, int src_y, int src_w, int src_h, double zx, double zy) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + //irr::core::dimension2d src_size = rc_image[img_id].image->getSize(); + irr::core::rect sourceRect( irr::core::vector2d(src_x, src_y), irr::core::dimension2d(src_w, src_h)); + + irr::core::position2d position(x, y); + + irr::core::position2d rotationPoint(x + (src_w/2), y + (src_h/2)); + + irr::f32 rotation = 0; + irr::core::vector2df scale((irr::f32)zx, (irr::f32)zy); + bool useAlphaChannel = true; + irr::video::SColor color(rc_image[img_id].alpha, + rc_image[img_id].color_mod.getRed(), + rc_image[img_id].color_mod.getGreen(), + rc_image[img_id].color_mod.getBlue()); + + irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height); + + draw2DImage(VideoDriver, rc_image[img_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize); + } +} + +void rc_drawImage_Rotozoom(int img_id, int x, int y, double angle, double zx, double zy) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + irr::core::dimension2d src_size = rc_image[img_id].image->getSize(); + irr::core::rect sourceRect(0, 0, src_size.Width, src_size.Height); + + irr::core::position2d position(x, y); + + irr::core::position2d rotationPoint(x + (src_size.Width/2)*zx, y + (src_size.Height/2)*zy); + + irr::f32 rotation = -1*angle; + irr::core::vector2df scale((irr::f32)zx, (irr::f32)zy); + bool useAlphaChannel = true; + irr::video::SColor color(rc_image[img_id].alpha, + rc_image[img_id].color_mod.getRed(), + rc_image[img_id].color_mod.getGreen(), + rc_image[img_id].color_mod.getBlue()); + + irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height); + + draw2DImage(VideoDriver, rc_image[img_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize); + } +} + +void rc_drawImage_RotozoomEx(int img_id, int x, int y, int src_x, int src_y, int src_w, int src_h, double angle, double zx, double zy) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + //irr::core::dimension2d src_size = rc_image[img_id].image->getSize(); + irr::core::rect sourceRect( irr::core::vector2d(src_x, src_y), irr::core::dimension2d(src_w, src_h)); + + irr::core::position2d position(x, y); + + irr::core::position2d rotationPoint(x + (src_w/2)*zx, y + (src_h/2)*zy); + + irr::f32 rotation = -1*angle; + irr::core::vector2df scale((irr::f32)zx, (irr::f32)zy); + bool useAlphaChannel = true; + irr::video::SColor color(rc_image[img_id].alpha, + rc_image[img_id].color_mod.getRed(), + rc_image[img_id].color_mod.getGreen(), + rc_image[img_id].color_mod.getBlue()); + + irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height); + + draw2DImage(VideoDriver, rc_image[img_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize); + } +} + + +void rc_drawImage_Flip(int img_id, int x, int y, bool h, bool v) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + irr::core::dimension2d src_size = rc_image[img_id].image->getSize(); + irr::core::rect sourceRect(0, 0, src_size.Width, src_size.Height); + + irr::core::position2d rotationPoint(x + (src_size.Width/2), y + (src_size.Height/2)); + + irr::f32 rotation = 0; + irr::core::vector2df scale((irr::f32)(h ? -1 : 1), (irr::f32) (v ? -1 : 1)); + + irr::core::position2d position( (h ? x+src_size.Width : x), (v ? y+src_size.Height : y)); + + bool useAlphaChannel = true; + irr::video::SColor color(rc_image[img_id].alpha, + rc_image[img_id].color_mod.getRed(), + rc_image[img_id].color_mod.getGreen(), + rc_image[img_id].color_mod.getBlue()); + + irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height); + + draw2DImage(VideoDriver, rc_image[img_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize); + } +} + +void rc_drawImage_FlipEx(int img_id, int x, int y, int src_x, int src_y, int src_w, int src_h, bool h, bool v) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + //irr::core::dimension2d src_size = rc_image[img_id].image->getSize(); + irr::core::rect sourceRect( irr::core::vector2d(src_x, src_y), irr::core::dimension2d(src_w, src_h)); + + irr::core::position2d rotationPoint(x + (src_w/2), y + (src_h/2)); + + irr::f32 rotation = 0; + irr::core::vector2df scale((irr::f32)(h ? -1 : 1), (irr::f32) (v ? -1 : 1)); + + irr::core::position2d position( (h ? x+src_w : x), (v ? y+src_h : y)); + + bool useAlphaChannel = true; + irr::video::SColor color(rc_image[img_id].alpha, + rc_image[img_id].color_mod.getRed(), + rc_image[img_id].color_mod.getGreen(), + rc_image[img_id].color_mod.getBlue()); + + irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height); + + draw2DImage(VideoDriver, rc_image[img_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize); + } +} + + +void rc_drawImage_Blit(int img_id, int x, int y, int src_x, int src_y, int src_w, int src_h) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + //irr::core::dimension2d src_size = rc_image[img_id].image->getSize(); + irr::core::rect sourceRect( irr::core::vector2d(src_x, src_y), irr::core::dimension2d(src_w, src_h)); + + irr::core::position2d position(x, y); + + irr::core::position2d rotationPoint(0, 0); //since we are not rotating it doesn't matter + + irr::f32 rotation = 0; + irr::core::vector2df scale(1.0, 1.0); + bool useAlphaChannel = true; + irr::video::SColor color(rc_image[img_id].alpha, + rc_image[img_id].color_mod.getRed(), + rc_image[img_id].color_mod.getGreen(), + rc_image[img_id].color_mod.getBlue()); + + irr::core::rect dest( irr::core::vector2d(x, y), irr::core::dimension2d(src_w, src_h)); + + irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height); + + draw2DImage(VideoDriver, rc_image[img_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize); + } +} + + +void rc_drawImage_RotateEx(int img_id, int x, int y, int src_x, int src_y, int src_w, int src_h, int angle) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + //irr::core::dimension2d src_size = rc_image[img_id].image->getSize(); + irr::core::rect sourceRect( irr::core::vector2d(src_x, src_y), irr::core::dimension2d(src_w, src_h)); + + //irr::core::position2d position(x, y); + + irr::core::vector2d rotationPoint(x + (src_w/2), y + (src_h/2)); + + irr::f32 rotation = -1*angle; + //irr::core::vector2df scale(1.0, 1.0); + bool useAlphaChannel = true; + irr::video::SColor color(rc_image[img_id].alpha, + rc_image[img_id].color_mod.getRed(), + rc_image[img_id].color_mod.getGreen(), + rc_image[img_id].color_mod.getBlue()); + + irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height); + + irr::core::rect dest( irr::core::vector2d(x, y), irr::core::dimension2d(src_w, src_h)); + + draw2DImage2(VideoDriver, rc_image[img_id].image, sourceRect, dest, rotationPoint, rotation, useAlphaChannel, color, screenSize); + } +} + +void rc_drawImage_BlitEx(int img_id, int x, int y, int w, int h, int src_x, int src_y, int src_w, int src_h) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + //irr::core::dimension2d src_size = rc_image[img_id].image->getSize(); + irr::core::rect sourceRect( irr::core::vector2d(src_x, src_y), irr::core::dimension2d(src_w, src_h)); + + //irr::core::position2d position(x, y); + + irr::core::position2d rotationPoint(0, 0); //since we are not rotating it doesn't matter + + irr::f32 rotation = 0; + irr::core::vector2df scale(1.0, 1.0); + bool useAlphaChannel = true; + irr::video::SColor color(rc_image[img_id].alpha, + rc_image[img_id].color_mod.getRed(), + rc_image[img_id].color_mod.getGreen(), + rc_image[img_id].color_mod.getBlue()); + + irr::core::rect dest( irr::core::vector2d(x, y), irr::core::dimension2d(w, h)); + + irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height); + + draw2DImage2(VideoDriver, rc_image[img_id].image, sourceRect, dest, rotationPoint, rotation, useAlphaChannel, color, screenSize ); + } +} + +void rc_setImageAlpha(int img_id, Uint8 alpha) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + rc_image[img_id].alpha = alpha; + } +} + +Uint32 rc_getImageAlpha(int img_id) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return 0; + + if(rc_image[img_id].image) + { + return rc_image[img_id].alpha; + } + + return 0; +} + +bool rc_imageExists(int img_id) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return false; + + if(rc_image[img_id].image) + return true; + + return false; +} + +void rc_getImageSize(int img_id, double* w, double* h) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(rc_image[img_id].image) + { + *w = (double)rc_image[img_id].image->getSize().Width; + *h = (double)rc_image[img_id].image->getSize().Height; + } +} + +void rc_setColorKey(int img_id, Uint32 colorkey) +{ + if(!rc_imageExists(img_id)) + return; + + VideoDriver->makeColorKeyTexture(rc_image[img_id].image, irr::video::SColor(colorkey)); +} + + + +//FloodFill is technically a primitive but it uses the draw2Dimage function since the pixels returned by lock are flipped vertically +void floodFill(int x, int y, Uint32* img_pixels, Uint32 prev_color) +{ + if(x < 0 || x >= rc_canvas[rc_active_canvas].texture->getSize().Width) + return; + + if(y < 0 || y >= rc_canvas[rc_active_canvas].texture->getSize().Height) + return; + + if(img_pixels[y*rc_canvas[rc_active_canvas].texture->getSize().Width+x] != prev_color) + return; + + img_pixels[y*rc_canvas[rc_active_canvas].texture->getSize().Width+x] = rc_active_color.color; + + floodFill(x-1, y, img_pixels, prev_color); + floodFill(x, y-1, img_pixels, prev_color); + floodFill(x+1, y, img_pixels, prev_color); + floodFill(x, y+1, img_pixels, prev_color); +} + +void rc_floodFill(int x, int y) +{ + if(!rc_canvas[rc_active_canvas].texture) + return; + + if(x < 0 || x >= rc_canvas[rc_active_canvas].dimension.Width) + return; + + if(y < 0 || y >= rc_canvas[rc_active_canvas].dimension.Height) + return; + + Uint32* img_pixels = (Uint32*)rc_canvas[rc_active_canvas].texture->lock(); + + Uint32 flood_size = rc_canvas[rc_active_canvas].texture->getSize().Width*rc_canvas[rc_active_canvas].texture->getSize().Height; + Uint32* flood_buffer = new Uint32[flood_size]; + + for(int i = 0; i < flood_size; i++) + { + flood_buffer[i] = img_pixels[i]; + } + + floodFill(x, y,flood_buffer, flood_buffer[y*rc_canvas[rc_active_canvas].texture->getSize().Width+x]); + + for(int i = 0; i < flood_size; i++) + { + img_pixels[i] = flood_buffer[i]; + } + + rc_canvas[rc_active_canvas].texture->unlock(); + + Uint32 nw = rc_canvas[rc_active_canvas].dimension.Width; + Uint32 nh = rc_canvas[rc_active_canvas].dimension.Height; + irr::video::ITexture* new_canvas = VideoDriver->addRenderTargetTexture(irr::core::dimension2d(nw,nh), "rt", ECF_A8R8G8B8); + irr::video::ITexture* old_canvas = rc_canvas[rc_active_canvas].texture; + rc_canvas[rc_active_canvas].texture = new_canvas; + + irr::core::dimension2d src_size = new_canvas->getSize(); + irr::core::rect sourceRect(0, 0, src_size.Width, src_size.Height); + + irr::core::position2d rotationPoint((src_size.Width/2), (src_size.Height/2)); + + irr::f32 rotation = 0; + irr::core::vector2df scale((irr::f32)1, (irr::f32)-1); + + irr::core::position2d position(0, src_size.Height); + + bool useAlphaChannel = true; + irr::video::SColor color(rc_canvas[rc_active_canvas].color_mod); + + irr::core::vector2df screenSize(rc_canvas[rc_active_canvas].dimension.Width, rc_canvas[rc_active_canvas].dimension.Height); + + rc_setActiveCanvas(rc_active_canvas); + draw2DImage(VideoDriver, old_canvas, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize); + + VideoDriver->removeTexture(old_canvas); +} + + + + +void drawCanvasImage(irr::video::ITexture* texture, int x, int y, int src_x, int src_y, int src_w, int src_h, int tgt_width, int tgt_height) +{ + if(texture) + { + irr::core::rect sourceRect( irr::core::vector2d(src_x, src_y), irr::core::dimension2d(src_w, src_h)); + + irr::core::position2d position(x, y); + + irr::core::position2d rotationPoint(0, 0); //since we are not rotating it doesn't matter + + irr::f32 rotation = 0; + irr::core::vector2df scale(1.0, 1.0); + bool useAlphaChannel = true; + irr::video::SColor color(255,255,255,255); + + irr::core::rect dest( irr::core::vector2d(x, y), irr::core::dimension2d(src_w, src_h)); + + irr::core::vector2df screenSize(tgt_width, tgt_height); + + draw2DImage(VideoDriver, texture, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize); + } +} + + +int rc_windowClip(int x, int y, int w, int h) +{ + if(w <= 0 || h <=0) + return -1; + + if(rc_canvas.size()>0) + { + if(!rc_canvas[0].texture) + return -1; + } + else + return -1; + + irr::video::ITexture* texture = VideoDriver->addRenderTargetTexture(irr::core::dimension2d((irr::u32)w, (irr::u32)h), "win_clip_image", irr::video::ECF_A8R8G8B8); + + if(!texture) + return -1; + + VideoDriver->setRenderTarget(texture); + + drawCanvasImage(rc_canvas[0].texture, 0, 0, x, y, w, h, w, h); + + VideoDriver->setRenderTarget(rc_canvas[0].texture); + + if(rc_active_canvas >= 0 && rc_active_canvas < rc_canvas.size()) + if(rc_canvas[rc_active_canvas].texture) + VideoDriver->setRenderTarget(rc_canvas[rc_active_canvas].texture, false, false); + + + int img_id = -1; + rc_image_obj img; + img.image = texture; + img.alpha = 255; + + for(int i = 0; i < rc_image.size(); i++) + { + if(rc_image[i].image == NULL) + { + img_id = i; + break; + } + } + + if(img_id < 0) + { + img_id = rc_image.size(); + rc_image.push_back(img); + } + else + { + rc_image[img_id] = img; + } + + return img_id; +} + + +int rc_canvasClip(int x, int y, int w, int h) +{ + if(w <= 0 || h <=0) + return -1; + + if(rc_active_canvas >= 0 && rc_active_canvas < rc_canvas.size()) + { + if(!rc_canvas[rc_active_canvas].texture) + return -1; + } + else + return -1; + + irr::video::ITexture* texture = VideoDriver->addRenderTargetTexture(irr::core::dimension2d((irr::u32)w, (irr::u32)h), "canvas_clip_image", irr::video::ECF_A8R8G8B8); + + if(!texture) + return -1; + + VideoDriver->setRenderTarget(texture); + + drawCanvasImage(rc_canvas[rc_active_canvas].texture, 0, 0, x, y, w, h, w, h); + + VideoDriver->setRenderTarget(rc_canvas[rc_active_canvas].texture, false, false); + + int img_id = -1; + rc_image_obj img; + img.image = texture; + img.alpha = 255; + + for(int i = 0; i < rc_image.size(); i++) + { + if(rc_image[i].image == NULL) + { + img_id = i; + break; + } + } + + if(img_id < 0) + { + img_id = rc_image.size(); + rc_image.push_back(img); + } + else + { + rc_image[img_id] = img; + } + + return img_id; +} + + + +//------------------------------SPRITES------------------------------------------------------- +int rc_createSprite(int img_id) +{ + if(rc_active_canvas < 0 || rc_active_canvas >= rc_canvas.size()) + return -1; + + if(rc_canvas[rc_active_canvas].show3D) + return -1; + + std::cout << "debug 1" << std::endl; + + int spr_id = -1; + for(int i = 0; i < rc_sprite.size(); i++) + { + if(!rc_sprite[i].active) + { + spr_id = i; + break; + } + } + + if(spr_id < 0) + { + spr_id = rc_sprite.size(); + rc_sprite2D_obj sprite; + rc_sprite.push_back(sprite); + } + + rc_sprite[spr_id].active = true; + rc_sprite[spr_id].image_id = img_id; + + b2BodyDef sprBodyDef; + sprBodyDef.type = b2_staticBody; + sprBodyDef.position.Set(0, 0); + sprBodyDef.angle = 0; + rc_sprite[spr_id].physics.body = rc_canvas[rc_active_canvas].physics2D.world->CreateBody(&sprBodyDef); + rc_sprite[spr_id].physics_enabled = false; + rc_sprite[spr_id].visible = true; + rc_sprite[spr_id].scale.set(1.0, 1.0); + rc_sprite[spr_id].position.set(0, 0); + rc_sprite[spr_id].alpha = 255; + rc_sprite[spr_id].rotation = 0; + rc_sprite[spr_id].z = 0; + rc_sprite[spr_id].color_mod.set(255,255,255,255); + rc_sprite[spr_id].parent_canvas = rc_active_canvas; + + rc_canvas[rc_active_canvas].sprite.push_back(&rc_sprite[spr_id]); + + return spr_id; +} + +void rc_deleteSprite(int spr_id) +{ + if(spr_id < 0 || spr_id >= rc_sprite.size()) + return; + + if(rc_sprite[spr_id].physics.body) + { + if(rc_sprite[spr_id].parent_canvas >= 0 && rc_sprite[spr_id].parent_canvas < rc_canvas.size()) + { + if(rc_canvas[rc_sprite[spr_id].parent_canvas].physics2D.world) + rc_canvas[rc_sprite[spr_id].parent_canvas].physics2D.world->DestroyBody(rc_sprite[spr_id].physics.body); + } + rc_sprite[spr_id].physics.body = NULL; + } + + rc_sprite[spr_id].active = false; + + for(int i = 0; i < rc_canvas[rc_active_canvas].sprite.size(); i++) + { + rc_sprite2D_obj* canvas_sprite = rc_canvas[rc_active_canvas].sprite[i]; + rc_sprite2D_obj* global_sprite = &rc_sprite[spr_id]; + if(canvas_sprite == global_sprite) + { + rc_canvas[rc_active_canvas].sprite.erase(i); + break; + } + } +} + +void rc_setSpriteBodyType(int spr_id, int body_type) +{ + if(spr_id < 0 || spr_id >= rc_sprite.size()) + return; + + if(!rc_sprite[spr_id].active) + return; + + rc_sprite[spr_id].physics.body->SetType((b2BodyType) body_type); +} + +void rc_setSpritePosition(int spr_id, double x, double y) +{ + if(spr_id < 0 || spr_id >= rc_sprite.size()) + return; + + if(!rc_sprite[spr_id].active) + return; + + float current_angle = rc_sprite[spr_id].physics.body->GetAngle(); + rc_sprite[spr_id].physics.body->SetTransform(b2Vec2(x, y), current_angle); +} + +//This function is called on each canvas on update +void drawSprites(int canvas_id) +{ + if(rc_canvas[canvas_id].show3D) + return; + + float step = rc_canvas[canvas_id].physics2D.timeStep; + int32 velocityIterations = rc_canvas[canvas_id].physics2D.velocityIterations; + int32 positionIterations = rc_canvas[canvas_id].physics2D.positionIterations; + + 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, false, false); + + + irr::core::dimension2d src_size; + irr::core::rect sourceRect; + + irr::core::position2d position; + + irr::core::position2d rotationPoint; + + irr::f32 rotation = 0; + irr::core::vector2df scale(1.0, 1.0); + bool useAlphaChannel = true; + irr::video::SColor color; + + //irr::core::rect dest( irr::core::vector2d(x, y), irr::core::dimension2d(src_w, src_h));; + + irr::core::vector2df screenSize(rc_canvas[canvas_id].dimension.Width, rc_canvas[canvas_id].dimension.Height); + + int x = 0; + int y = 0; + + b2Vec2 physics_pos; + + 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; + + int img_id = sprite->image_id; + if(img_id < 0 || img_id >= rc_image.size()) + continue; + + src_size = rc_image[img_id].image->getSize(); + 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); + + + rotationPoint.set(x + (src_size.Width/2), y + (src_size.Height/2)); + rotation = -1 * (sprite->physics.body->GetAngle() * (180.0/3.141592653589793238463)); //convert Box2D radians to degrees + + scale.set(sprite->scale.X, sprite->scale.Y); + + color.set(sprite->alpha, + sprite->color_mod.getRed(), + sprite->color_mod.getGreen(), + sprite->color_mod.getBlue()); + + draw2DImage(VideoDriver, rc_image[img_id].image, sourceRect, position, rotationPoint, rotation, scale, useAlphaChannel, color, screenSize); + } + //Must set back to canvas 0 (the backbuffer) before returning + + VideoDriver->setRenderTarget(rc_canvas[0].texture, false, false); +} + +//NOTE TO TBIRD +// 1. Each sprite has a Box2D body. You can look in "rc_sprite2D.h" to see how a sprite is structured. +// 2. A box2D world is setup for each canvas. So a sprite will be attached to the canvas thats active when its created. When that canvas is destroyed, so is the sprite. +// 3. By default, I have the sprite.physics_enabled attribute set to false. I feel like it makes sense to have a user intentionally enable physics since a user may not want physics for every sprite. +// 4. The sprite.visible attribute only determines whether to draw the sprite. The physics simulation will still happen each frame unless physics are disabled. +// 5. Don't change the value of sprite.active. Its used to check whether a sprite exists or not. I have an array of sprites in rc_sprite2D.h and if the active attribute is set to false, I reuse that slot to create a new sprite. If there is no inactive sprites in the array then I add a new sprite index to the array. +// 6. The time step, velocity Iterations, and position iterations are part of the canvas.physics2D attribute. You will need to make functions to allow the user to change those. +// 7. If you want to modify how sprites are rendered then you can just change the drawSprites() function above these notes. + +//-----------------------------END OF SPRITE STUFF------------------------------------------------------------------------------ + + + + +bool rc_update() +{ + if(!device->run()) + return false; + + int win_w = 0, win_h = 0; + int w_scale = 1, h_scale = 1; + + if(rc_window) + { + SDL_GetWindowSize(rc_window, &win_w, &win_h); + //std::cout << "size = " << win_w << ", " << win_h << std::endl; + } + + SEvent irrevent; + SDL_Event SDL_event; + bool Close = false; + + rc_inkey_val = 0; + + while ( !Close && SDL_PollEvent( &SDL_event ) ) + { + // os::Printer::log("event: ", core::stringc((int)SDL_event.type).c_str(), ELL_INFORMATION); // just for debugging + + switch ( SDL_event.type ) + { + case SDL_QUIT: + SDL_PumpEvents(); + Close = true; + break; + case SDL_MOUSEMOTION: + irrevent.EventType = irr::EET_MOUSE_INPUT_EVENT; + irrevent.MouseInput.Event = irr::EMIE_MOUSE_MOVED; + MouseX = irrevent.MouseInput.X = SDL_event.motion.x; + MouseY = irrevent.MouseInput.Y = SDL_event.motion.y; + MouseXRel = SDL_event.motion.xrel; + MouseYRel = SDL_event.motion.yrel; + irrevent.MouseInput.ButtonStates = MouseButtonStates; + + device->postEventFromUser(irrevent); + break; + + case SDL_MOUSEBUTTONDOWN: + case SDL_MOUSEBUTTONUP: + + irrevent.EventType = irr::EET_MOUSE_INPUT_EVENT; + irrevent.MouseInput.X = SDL_event.button.x; + irrevent.MouseInput.Y = SDL_event.button.y; + + irrevent.MouseInput.Event = irr::EMIE_MOUSE_MOVED; + + switch(SDL_event.button.button) + { + case SDL_BUTTON_LEFT: + if (SDL_event.type == SDL_MOUSEBUTTONDOWN) + { + irrevent.MouseInput.Event = irr::EMIE_LMOUSE_PRESSED_DOWN; + MouseButtonStates |= irr::EMBSM_LEFT; + } + else + { + irrevent.MouseInput.Event = irr::EMIE_LMOUSE_LEFT_UP; + MouseButtonStates &= !irr::EMBSM_LEFT; + } + + //std::cout << "Position = " << SDL_event.button.x << ", " << SDL_event.button.y << std::endl; + //rc_canvas[0].offset.X++; + break; + + case SDL_BUTTON_RIGHT: + if (SDL_event.type == SDL_MOUSEBUTTONDOWN) + { + irrevent.MouseInput.Event = irr::EMIE_RMOUSE_PRESSED_DOWN; + MouseButtonStates |= irr::EMBSM_RIGHT; + } + else + { + irrevent.MouseInput.Event = irr::EMIE_RMOUSE_LEFT_UP; + MouseButtonStates &= !irr::EMBSM_RIGHT; + } + + //rc_setWindowFullscreen(1); + //rc_canvas[0].offset.X--; + break; + + case SDL_BUTTON_MIDDLE: + if (SDL_event.type == SDL_MOUSEBUTTONDOWN) + { + irrevent.MouseInput.Event = irr::EMIE_MMOUSE_PRESSED_DOWN; + MouseButtonStates |= irr::EMBSM_MIDDLE; + } + else + { + irrevent.MouseInput.Event = irr::EMIE_MMOUSE_LEFT_UP; + MouseButtonStates &= !irr::EMBSM_MIDDLE; + } + break; + + } + + irrevent.MouseInput.ButtonStates = MouseButtonStates; + + if (irrevent.MouseInput.Event != irr::EMIE_MOUSE_MOVED) + { + device->postEventFromUser(irrevent); + + if ( irrevent.MouseInput.Event >= EMIE_LMOUSE_PRESSED_DOWN && irrevent.MouseInput.Event <= EMIE_MMOUSE_PRESSED_DOWN ) + { + u32 clicks = device->checkSuccessiveClicks(irrevent.MouseInput.X, irrevent.MouseInput.Y, irrevent.MouseInput.Event); + if ( clicks == 2 ) + { + irrevent.MouseInput.Event = (EMOUSE_INPUT_EVENT)(EMIE_LMOUSE_DOUBLE_CLICK + irrevent.MouseInput.Event-EMIE_LMOUSE_PRESSED_DOWN); + device->postEventFromUser(irrevent); + } + else if ( clicks == 3 ) + { + irrevent.MouseInput.Event = (EMOUSE_INPUT_EVENT)(EMIE_LMOUSE_TRIPLE_CLICK + irrevent.MouseInput.Event-EMIE_LMOUSE_PRESSED_DOWN); + device->postEventFromUser(irrevent); + } + } + } + break; + + case SDL_MOUSEWHEEL: + irrevent.MouseInput.Event = irr::EMIE_MOUSE_WHEEL; + irrevent.MouseInput.Wheel = SDL_event.wheel.y; + rc_mwheelx = SDL_event.wheel.x; + rc_mwheely = SDL_event.wheel.y; + break; + + case SDL_TEXTINPUT: + if(rc_textinput_flag == true) + { + rc_textinput_string += SDL_event.text.text; + } + break; + + case SDL_KEYUP: + case SDL_KEYDOWN: + { + SDLKeyMap mp; + mp.SDLKey = SDL_event.key.keysym.sym; + s32 idx = KeyMap.binary_search(mp); + + EKEY_CODE key; + if (idx == -1) + key = (EKEY_CODE)0; + else + key = (EKEY_CODE)KeyMap[idx].Win32Key; + + irrevent.EventType = irr::EET_KEY_INPUT_EVENT; + irrevent.KeyInput.Char = SDL_event.key.keysym.sym; + irrevent.KeyInput.Key = key; + irrevent.KeyInput.PressedDown = (SDL_event.type == SDL_KEYDOWN); + irrevent.KeyInput.Shift = (SDL_event.key.keysym.mod & KMOD_SHIFT) != 0; + irrevent.KeyInput.Control = (SDL_event.key.keysym.mod & KMOD_CTRL ) != 0; + device->postEventFromUser(irrevent); + } + + if(SDL_event.type == SDL_KEYDOWN) + { + if(rc_textinput_flag && SDL_event.key.keysym.sym == SDLK_BACKSPACE && rc_textinput_string.length() > 0 + && rc_toggleBackspace) + { + rc_textinput_string = rc_utf8_substr(rc_textinput_string, 0, rc_utf8_length(rc_textinput_string)-1); + } + + rc_inkey_val = SDL_event.key.keysym.sym; + } + break; + + + case SDL_WINDOWEVENT: + if (SDL_event.window.event == SDL_WINDOWEVENT_SIZE_CHANGED) + { + // FIXME: Implement more precise window control + // FIXME: Check if the window is game window + s32 Width = SDL_event.window.data1; + s32 Height = SDL_event.window.data2; + + rc_win_event = RC_WIN_EVENT_RESIZE; + + //resizeWindow(Width, Height); + if (VideoDriver) + VideoDriver->OnResize(core::dimension2d(Width, Height)); + + win_w = Width; + win_h = Height; + + } + else if(SDL_event.window.event == SDL_WINDOWEVENT_CLOSE) + { + if(rc_window) + { + rc_win_event = RC_WIN_EVENT_CLOSE; + + if(SDL_QuitRequested() != 0) + { + SDL_FlushEvent(SDL_QUIT); + } + if(rc_win_exitOnClose) + { + rc_closeWindow_hw(); + Close = true; + } + + } + } + else if(SDL_event.window.event == SDL_WINDOWEVENT_MINIMIZED) + { + if(rc_window) + { + rc_win_event = RC_WIN_EVENT_MINIMIZE; + } + } + else if(SDL_event.window.event == SDL_WINDOWEVENT_MAXIMIZED) + { + if(rc_window) + { + rc_win_event = RC_WIN_EVENT_MAXIMIZE; + } + } + + break; + + case SDL_JOYDEVICEREMOVED: + //cout << "Joystick Removed: Instance " << event.jdevice.which << endl; + for(int i = 0; i < 8; i++) + { + if(SDL_event.jdevice.which == rc_joyID[i] && rc_joystick[i]) + { + //cout << "Joystick [" << i << "] was removed" << endl; + SDL_HapticClose(rc_haptic[i]); + SDL_JoystickClose(rc_joystick[i]); + rc_joystick[i] = NULL; + rc_haptic[i] = NULL; + rc_joyID[i] = -1; + rc_numJoysticks--; + break; + } + } + break; + case SDL_JOYDEVICEADDED: + //cout << "Joystick Added: " << event.jdevice.which << endl; + tmp_joy = SDL_JoystickOpen(SDL_event.jdevice.which); + tmp_joy_id = SDL_JoystickInstanceID(tmp_joy); + tmp_joy_flag = 0; + + for(int i = 0; i < 8; i++) + { + if(tmp_joy_id == rc_joyID[i]) + { + tmp_joy_flag = 1; + break; + } + } + + if(SDL_event.jdevice.which >= 0 && tmp_joy_flag == 0) + { + for(int i = 0; i < 8; i++) + { + if(rc_joystick[i] == NULL) + { + //cout << "Assigned " << i << endl; + rc_joystick[i] = tmp_joy; + rc_haptic[i] = SDL_HapticOpenFromJoystick(rc_joystick[i]); + SDL_HapticRumbleInit(rc_haptic[i]); + rc_joyID[i] = tmp_joy_id; + rc_numJoysticks++; + break; + } + } + } + break; + +#ifndef RC_MOBILE //This block handles touch events for non-mobile devices, Just in case it has a touch screen that SDL2 can get events for + case SDL_FINGERDOWN: + rc_touch = 1; + rc_touchX = SDL_event.tfinger.x * win_w; + rc_touchY = SDL_event.tfinger.y * win_h; +#ifdef RC_IOS + rc_pressure = 1; //FIXME: On IOS pressure is always getting reported as 0 on finger down so I am just setting it to 1 until I figure this out +#else + rc_pressure = SDL_event.tfinger.pressure; +#endif + rc_setTouchFingerEvent(SDL_event.tfinger.fingerId, rc_touchX, rc_touchY, rc_pressure); + break; + case SDL_FINGERUP: + rc_touch = 0; + rc_mt_status = 0; + rc_touchX = SDL_event.tfinger.x * win_w; + rc_touchY = SDL_event.tfinger.y * win_h; + rc_pressure = SDL_event.tfinger.pressure; + rc_setTouchFingerEvent(SDL_event.tfinger.fingerId, -1, -1, 0); + break; + case SDL_FINGERMOTION: + rc_touch = 1; + rc_touchX = SDL_event.tfinger.x * win_w; + rc_touchY = SDL_event.tfinger.y * win_h; + rc_motionX = SDL_event.tfinger.dx * win_w; + rc_motionY = SDL_event.tfinger.dy * win_h; +#ifdef RC_IOS + rc_pressure = 1; +#else + rc_pressure = SDL_event.tfinger.pressure; +#endif + rc_setTouchFingerEvent(SDL_event.tfinger.fingerId, rc_touchX, rc_touchY, rc_pressure); + break; + case SDL_MULTIGESTURE: + rc_touch = 2; + rc_mt_status = 1; + rc_mt_x = SDL_event.mgesture.x; + rc_mt_y = SDL_event.mgesture.y; + rc_mt_numFingers = SDL_event.mgesture.numFingers; + rc_mt_dist = SDL_event.mgesture.dDist; + rc_mt_theta = SDL_event.mgesture.dTheta; +#ifdef RC_IOS + rc_pressure = 1; +#else + rc_pressure = SDL_event.tfinger.pressure; +#endif + break; +#endif + + case SDL_USEREVENT: + irrevent.EventType = irr::EET_USER_EVENT; + irrevent.UserEvent.UserData1 = reinterpret_cast(SDL_event.user.data1); + irrevent.UserEvent.UserData2 = reinterpret_cast(SDL_event.user.data2); + + device->postEventFromUser(irrevent); + break; + + default: + break; + } // end switch + + } // end while + + if(!Close) + { + irrtheora::updateVideo(); + + VideoDriver->setRenderTarget(rc_canvas[0].texture); + irr::core::vector2d bb_position(0,0); + irr::core::dimension2d bb_dimension(win_w, win_h); + VideoDriver->setViewPort( irr::core::rect(bb_position, bb_dimension) ); + + irr::core::vector2d screenSize( (irr::f32) rc_canvas[0].dimension.Width, (irr::f32) rc_canvas[0].dimension.Height ); + + double frame_current_time = ((double)SDL_GetTicks())/1000.0d; + + for(int i = 0; i < rc_transition_actor.size();) + { + if((frame_current_time - rc_actor[i].transition_start_time) >= rc_actor[i].transition_time) + { + irr::scene::IAnimatedMeshSceneNode* node = (irr::scene::IAnimatedMeshSceneNode*)rc_actor[i].mesh_node; + node->setTransitionTime(0); + node->setJointMode(irr::scene::EJUOR_NONE); + rc_actor[i].transition = false; + rc_actor[i].transition_time = 0; + rc_actor[i].transition_start_time = 0; + rc_transition_actor.erase(i); + } + else + { + irr::scene::IAnimatedMeshSceneNode* node = (irr::scene::IAnimatedMeshSceneNode*)rc_actor[i].mesh_node; + node->animateJoints(); + i++; + } + } + + + VideoDriver->beginScene(true, true); + + rc_physics3D.DeltaTime = device->getTimer()->getTime() - rc_physics3D.TimeStamp; + rc_physics3D.TimeStamp = device->getTimer()->getTime(); + rc_physics3D.world->stepSimulation(rc_physics3D.DeltaTime*0.001f, rc_physics3D.maxSubSteps, rc_physics3D.fixedTimeStep); + + for(int i = 0; i < rc_canvas.size(); i++) + { + if(rc_canvas[i].show3D) + { + VideoDriver->setRenderTarget(rc_canvas[i].texture, true, true, irr::video::SColor(255,120,120,120)); + + if(rc_canvas[i].camera.camera) + SceneManager->setActiveCamera(rc_canvas[i].camera.camera); + + rc_canvas[i].camera.update(); + + VideoDriver->setViewPort(irr::core::rect(0,0,rc_canvas[i].viewport.dimension.Width,rc_canvas[i].viewport.dimension.Height)); + + //irr::core::rect viewport(irr::core::position, rc_canvas[i].viewport.dimension); + //VideoDriver->setViewPort(viewport); + + SceneManager->drawAll(); + + vector3df p0(0, 0, 0); + vector3df p1(10, 30, 0); + vector3df p2(20, -30, 0); + vector3df p3(30, 0, 0); + //drawBezierCurve(VideoDriver, p0, p1, p2, p3, irr::video::SColor(255, 0, 255, 0), 100); + + VideoDriver->setRenderTarget(rc_canvas[0].texture); + } + } + + + + for(int cz = 0; cz < rc_canvas_zOrder.size(); cz++) + { + int canvas_id = rc_canvas_zOrder[cz]; + + if(rc_canvas[canvas_id].texture && rc_canvas[canvas_id].visible) + { + irr::core::rect dest(rc_canvas[canvas_id].viewport.position, rc_canvas[canvas_id].viewport.dimension); + irr::core::rect src(rc_canvas[canvas_id].offset, rc_canvas[canvas_id].viewport.dimension); + + irr::video::SColor color(rc_canvas[canvas_id].color_mod); + //color.set(255,255,255,255); + + //std::cout << "draw canvas[" << canvas_id << "]" << std::endl; + + drawSprites(canvas_id); + draw2DImage2(VideoDriver, rc_canvas[canvas_id].texture, src, dest, irr::core::vector2d(0, 0), 0, true, color, screenSize); + + //drawSprites(canvas_id); + //draw2DImage2(VideoDriver, rc_canvas[canvas_id].sprite_layer, src, dest, irr::core::vector2d(0, 0), 0, true, color, screenSize); + //drawCanvasImage(rc_canvas[canvas_id].texture, dest.UpperLeftCorner.X, dest.UpperLeftCorner.Y, + // src.UpperLeftCorner.X, src.UpperLeftCorner.Y, src.getWidth(), src.getHeight(), dest.getWidth(), dest.getHeight()); + + //VideoDriver->draw2DImage(rc_canvas[canvas_id].texture, dest, src, 0, &color, true); + } + } + + //env->drawAll(); + + VideoDriver->setRenderTarget(0); + //VideoDriver->beginScene(true, true); + VideoDriver->draw2DImage(rc_canvas[0].texture, irr::core::vector2d(0,0)); + //device->getGUIEnvironment()->drawAll(); + VideoDriver->endScene(); + + rc_setActiveCanvas(rc_active_canvas); + } + + #ifdef RC_WEB + emscripten_sleep(0); + #else + SDL_Delay(0); + #endif // RC_WEB + + return (!Close); +} + +#endif // RC_GFX_INCLUDED diff --git a/rcbasic_runtime/rc_gfx3D.h b/rcbasic_runtime/rc_gfx3D.h new file mode 100644 index 0000000..51102ed --- /dev/null +++ b/rcbasic_runtime/rc_gfx3D.h @@ -0,0 +1,6734 @@ +#ifndef RC_GFX3D_H_INCLUDED +#define RC_GFX3D_H_INCLUDED + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "camera.h" +#include "rc_gfx_core.h" +#include "rc_matrix.h" +#include "RealisticWater.h" + +#include +#include + +//load a mesh from a file +int rc_loadMesh(std::string mesh_file) +{ + int mesh_id = -1; + + rc_mesh_obj mesh_obj; + mesh_obj.mesh_type = RC_MESH_TYPE_ANIMATED; + + irr::scene::IAnimatedMesh* mesh = SceneManager->getMesh(mesh_file.c_str()); + mesh_obj.mesh = mesh; + + if(!mesh) + return -1; + + for(int i = 0; i < rc_mesh.size(); i++) + { + if(!rc_mesh[i].mesh) + { + mesh_id = i; + break; + } + } + + if(mesh_id < 0) + { + mesh_id = rc_mesh.size(); + rc_mesh.push_back(mesh_obj); + } + else + { + rc_mesh[mesh_id] = mesh_obj; + } + + return mesh_id; +} + +//load a mesh from an archive +int rc_loadMeshFromArchive(std::string archive, std::string mesh_file) +{ + int mesh_id = -1; + + device->getFileSystem()->addFileArchive(archive.c_str()); + irr::scene::IAnimatedMesh *mesh = SceneManager->getMesh(mesh_file.c_str()); + device->getFileSystem()->removeFileArchive((irr::u32) 0); + + rc_mesh_obj mesh_obj; + mesh_obj.mesh_type = RC_MESH_TYPE_ANIMATED; + mesh_obj.mesh = mesh; + + if(!mesh) + return -1; + + for(int i = 0; i < rc_mesh.size(); i++) + { + if(!rc_mesh[i].mesh) + { + mesh_id = i; + break; + } + } + + if(mesh_id < 0) + { + mesh_id = rc_mesh.size(); + rc_mesh.push_back(mesh_obj); + } + else + { + rc_mesh[mesh_id] = mesh_obj; + } + + return mesh_id; +} + +//delete mesh +void rc_deleteMesh(int mesh_id) +{ + if(mesh_id < 0 || mesh_id >= rc_mesh.size()) + return; + + if(rc_mesh[mesh_id].mesh) + rc_mesh[mesh_id].mesh->drop(); + + rc_mesh[mesh_id].mesh = NULL; + rc_mesh[mesh_id].mesh_type = 0; + +} + +//create mesh from geometry data [TODO] +int rc_createMesh() +{ + irr::scene::ISkinnedMesh * mesh = SceneManager->createSkinnedMesh(); + + if(!mesh) + return -1; + + int mesh_id = rc_mesh.size(); + rc_mesh_obj mesh_obj; + mesh_obj.mesh = mesh; + mesh_obj.mesh_type = RC_MESH_TYPE_ANIMATED; + + rc_mesh.push_back(mesh_obj); + + return mesh_id; +} + + +//create mesh from geometry data [TODO] +bool rc_addMeshBuffer(int mesh_id, int vertex_count, double* vertex_data, double* normal_data, double* uv_data, int index_count, double* index_data) +{ + irr::scene::ISkinnedMesh * mesh = (irr::scene::ISkinnedMesh*) rc_mesh[mesh_id].mesh; + + irr::scene::SSkinMeshBuffer* mbuf = mesh->addMeshBuffer(); + + if(!mbuf) + { + mesh->drop(); + return false; + } + + irr::core::array vertices; + irr::core::array indices; + + for(int i = 0; i < vertex_count; i++) + { + irr::video::S3DVertex v; + v.Pos = irr::core::vector3df( (irr::f32) vertex_data[i*3], (irr::f32) vertex_data[i*3+1], (irr::f32) vertex_data[i*3+2] ); + v.Normal = irr::core::vector3df( (irr::f32) normal_data[i*3], (irr::f32) normal_data[i*3+1], (irr::f32) normal_data[i*3+2] ); + v.TCoords = irr::core::vector2df( (irr::f32) uv_data[i*2], (irr::f32) uv_data[i*2+1] ); + vertices.push_back(v); + } + + for(int i = 0; i < index_count; i++) + { + indices.push_back( (irr::u16) index_data[i] ); + } + + if(indices.size() > 0) + { + for(int i = 0; i < vertices.size(); i++) + mbuf->Vertices_Standard.push_back(vertices[i]); + + for(int i = 0; i < indices.size(); i++) + mbuf->Indices.push_back(indices[i]); + + } + + return true; +} + + + +//Set Gravity +void rc_setGravity3D(double x, double y, double z) +{ + rc_physics3D.world->setGravity(irr::core::vector3d(x, y, z)); +} + +void rc_getGravity3D(double* x, double* y, double* z) +{ + btVector3 v = rc_physics3D.world->getPointer()->getGravity(); + *x = v.getX(); + *y = v.getY(); + *z = v.getZ(); +} + +void setSolidProperties(int actor) +{ + if(!rc_actor[actor].physics.isSolid) + { + rc_actor[actor].physics.gravity = rc_actor[actor].physics.rigid_body->getGravity(); + rc_actor[actor].physics.rigid_body->setGravity(irr::core::vector3df(0,0,0)); + rc_actor[actor].physics.rigid_body->setCollisionFlags( ECollisionFlag::ECF_NO_CONTACT_RESPONSE ); + } + else + { + //rc_actor[actor].physics.rigid_body->setGravity(rc_actor[actor].physics.gravity); + } +} + +void rc_setActorCollisionShape(int actor_id, int shape_type, double mass) +{ + //std::cout << "Start ColShape" << std::endl; + if(rc_actor[actor_id].physics.rigid_body) + { + rc_physics3D.world->removeCollisionObject(rc_actor[actor_id].physics.rigid_body, false); + delete rc_actor[actor_id].physics.rigid_body; + } + + rc_actor[actor_id].physics.rigid_body = NULL; + rc_actor[actor_id].physics.mass = mass; + + if(!rc_actor[actor_id].physics.isSolid) + mass = 1; + + //std::cout << "NEXT" << std::endl; + + switch(shape_type) + { + case RC_NODE_SHAPE_TYPE_NONE: + break; + + case RC_NODE_SHAPE_TYPE_BOX: + { + rc_actor[actor_id].physics.shape_type = RC_NODE_SHAPE_TYPE_BOX; + IBoxShape* shape = new IBoxShape(rc_actor[actor_id].mesh_node, mass, false); + + rc_actor[actor_id].physics.rigid_body = rc_physics3D.world->addRigidBody(shape); + + setSolidProperties(actor_id); + } + break; + + case RC_NODE_SHAPE_TYPE_SPHERE: + { + rc_actor[actor_id].physics.shape_type = RC_NODE_SHAPE_TYPE_SPHERE; + ISphereShape* shape = new ISphereShape(rc_actor[actor_id].mesh_node, mass, false); + + rc_actor[actor_id].physics.rigid_body = rc_physics3D.world->addRigidBody(shape); + + setSolidProperties(actor_id); + } + break; + + case RC_NODE_SHAPE_TYPE_CYLINDER: + { + rc_actor[actor_id].physics.shape_type = RC_NODE_SHAPE_TYPE_CYLINDER; + ICylinderShape* shape = new ICylinderShape(rc_actor[actor_id].mesh_node, mass, false); + + rc_actor[actor_id].physics.rigid_body = rc_physics3D.world->addRigidBody(shape); + + setSolidProperties(actor_id); + } + break; + + case RC_NODE_SHAPE_TYPE_CAPSULE: + { + //std::cout << "CAPSULE" << std::endl; + rc_actor[actor_id].physics.shape_type = RC_NODE_SHAPE_TYPE_CAPSULE; + ICapsuleShape* shape; + + if(rc_actor[actor_id].node_type == RC_NODE_TYPE_MESH) + { + irr::scene::IAnimatedMeshSceneNode* node = (irr::scene::IAnimatedMeshSceneNode*)rc_actor[actor_id].mesh_node; + shape = new ICapsuleShape(node, mass, false); + } + else if(rc_actor[actor_id].node_type == RC_NODE_TYPE_OTMESH) + { + irr::scene::IOctreeSceneNode* node = (irr::scene::IOctreeSceneNode*)rc_actor[actor_id].mesh_node; + shape = new ICapsuleShape(node, mass, false); + } + else if(rc_actor[actor_id].node_type == RC_NODE_TYPE_TERRAIN) + { + irr::scene::ITerrainSceneNode* node = (irr::scene::ITerrainSceneNode*)rc_actor[actor_id].mesh_node; + shape = new ICapsuleShape(node, mass, false); + } + + rc_actor[actor_id].physics.rigid_body = rc_physics3D.world->addRigidBody(shape); + + setSolidProperties(actor_id); + } + break; + + case RC_NODE_SHAPE_TYPE_CONE: + { + rc_actor[actor_id].physics.shape_type = RC_NODE_SHAPE_TYPE_CONE; + IConeShape* shape = new IConeShape(rc_actor[actor_id].mesh_node, mass, false); + + rc_actor[actor_id].physics.rigid_body = rc_physics3D.world->addRigidBody(shape); + + setSolidProperties(actor_id); + } + break; + + case RC_NODE_SHAPE_TYPE_TRIMESH: + { + rc_actor[actor_id].physics.shape_type = RC_NODE_SHAPE_TYPE_TRIMESH; + IBvhTriangleMeshShape* shape; + + if(rc_actor[actor_id].node_type == RC_NODE_TYPE_MESH) + { + irr::scene::IAnimatedMeshSceneNode* node = (irr::scene::IAnimatedMeshSceneNode*)rc_actor[actor_id].mesh_node; + shape = new IBvhTriangleMeshShape(rc_actor[actor_id].mesh_node, node->getMesh(), mass); + } + else if(rc_actor[actor_id].node_type == RC_NODE_TYPE_OTMESH) + { + irr::scene::IOctreeSceneNode* node = (irr::scene::IOctreeSceneNode*)rc_actor[actor_id].mesh_node; + shape = new IBvhTriangleMeshShape(rc_actor[actor_id].mesh_node, node->getMesh(), mass); + } + else if(rc_actor[actor_id].node_type == RC_NODE_TYPE_TERRAIN) + { + irr::scene::ITerrainSceneNode* node = (irr::scene::ITerrainSceneNode*)rc_actor[actor_id].mesh_node; + shape = new IBvhTriangleMeshShape(rc_actor[actor_id].mesh_node, node->getMesh(), mass); + } + //else if(rc_actor[actor_id].node_type == RC_NODE_TYPE_WATER) + //shape = new IBvhTriangleMeshShape(rc_actor[actor_id].mesh_node, (irr::scene::IAnimatedMeshSceneNode*)rc_actor[actor_id].mesh_node->getMesh(), mass); + + rc_actor[actor_id].physics.rigid_body = rc_physics3D.world->addRigidBody(shape); + + setSolidProperties(actor_id); + } + break; + + case RC_NODE_SHAPE_TYPE_CONVEXHULL: + { + rc_actor[actor_id].physics.shape_type = RC_NODE_SHAPE_TYPE_CONVEXHULL; + IConvexHullShape* shape; + + if(rc_actor[actor_id].node_type == RC_NODE_TYPE_MESH) + { + irr::scene::IAnimatedMeshSceneNode* node = (irr::scene::IAnimatedMeshSceneNode*)rc_actor[actor_id].mesh_node; + shape = new IConvexHullShape(rc_actor[actor_id].mesh_node, node->getMesh(), mass); + } + else if(rc_actor[actor_id].node_type == RC_NODE_TYPE_OTMESH) + { + irr::scene::IOctreeSceneNode* node = (irr::scene::IOctreeSceneNode*)rc_actor[actor_id].mesh_node; + shape = new IConvexHullShape(rc_actor[actor_id].mesh_node, node->getMesh(), mass); + } + else if(rc_actor[actor_id].node_type == RC_NODE_TYPE_TERRAIN) + { + irr::scene::ITerrainSceneNode* node = (irr::scene::ITerrainSceneNode*)rc_actor[actor_id].mesh_node; + shape = new IConvexHullShape(rc_actor[actor_id].mesh_node, node->getMesh(), mass); + } + + rc_actor[actor_id].physics.rigid_body = rc_physics3D.world->addRigidBody(shape); + + setSolidProperties(actor_id); + } + break; + + default: + std::cout << "SetActorCollisionShape Error: Invalid shape_type parameter" << std::endl; + } + + if(rc_actor[actor_id].physics.rigid_body) + { + rc_actor[actor_id].physics.rigid_body->getIdentification()->setId(actor_id); + rc_actor[actor_id].physics.rigid_body->getPointer()->setActivationState(ACTIVE_TAG); + rc_actor[actor_id].physics.rigid_body->getPointer()->setActivationState(DISABLE_DEACTIVATION); + } +} + +int rc_getActorCollisionShape(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + if(!rc_actor[actor].mesh_node) + return 0; + + return rc_actor[actor].physics.shape_type; +} + + +void rc_setActorSolid(int actor_id, bool flag) +{ + if(actor_id < 0 || actor_id >= rc_actor.size()) + return; + + if(!rc_actor[actor_id].mesh_node) + return; + + if(flag != rc_actor[actor_id].physics.isSolid) + { + rc_actor[actor_id].physics.isSolid = flag; + rc_setActorCollisionShape(actor_id, rc_actor[actor_id].physics.shape_type, rc_actor[actor_id].physics.mass); + } +} + +bool rc_actorIsSolid(int actor_id) +{ + if(actor_id < 0 || actor_id >= rc_actor.size()) + return false; + + if(!rc_actor[actor_id].mesh_node) + return false; + + return rc_actor[actor_id].physics.isSolid; +} + + +bool rc_getActorCollision(int actor1, int actor2) +{ + for(int i = 0; i < rc_actor[actor1].physics.collisions.size(); i++) + { + int c_index = rc_actor[actor1].physics.collisions[i]; + + int actorA = rc_collisions[c_index].actorA; + int actorB = rc_collisions[c_index].actorB; + + if(actor2 == actorA || actor2 == actorB) + { + //std::cout << "Actor in Collide = " << (actor1 == actorA ? "A" : "B") << std::endl; + return true; + } + } + + return false; +} + + +//add mesh actor to scene +int rc_createMeshActor(int mesh_id) +{ + if(mesh_id < 0 || mesh_id >= rc_mesh.size()) + return -1; + + irr::scene::IAnimatedMesh* mesh = rc_mesh[mesh_id].mesh; + + if(!mesh) + return -1; + + int actor_id = -1; + irr::scene::IAnimatedMeshSceneNode* node = SceneManager->addAnimatedMeshSceneNode(mesh); + rc_scene_node actor; + actor.node_type = RC_NODE_TYPE_MESH; + actor.mesh_node = node; + actor.shadow = NULL; + actor.transition = false; + actor.transition_time = 0; + actor.material_ref_index = -1; + + if(!node) + return -1; + + for(int i = 0; i < rc_actor.size(); i++) + { + if(!rc_actor[i].mesh_node) + { + actor_id = i; + break; + } + } + + if(actor_id < 0) + { + actor_id = rc_actor.size(); + rc_actor.push_back(actor); + } + else + { + rc_actor[actor_id] = actor; + } + + //Actor RigidBody + rc_actor[actor_id].physics.shape_type = RC_NODE_SHAPE_TYPE_BOX; + rc_actor[actor_id].physics.rigid_body = NULL; + rc_actor[actor_id].physics.isSolid = false; + + rc_setActorCollisionShape(actor_id, RC_NODE_SHAPE_TYPE_BOX, 1); + + return actor_id; +} + + +//add mesh actor to scene +int rc_createMeshOctreeActor(int mesh_id) +{ + if(mesh_id < 0 || mesh_id >= rc_mesh.size()) + return -1; + + irr::scene::IAnimatedMesh* mesh = rc_mesh[mesh_id].mesh; + + if(!mesh) + return -1; + + int actor_id = -1; + //irr::scene::IAnimatedMeshSceneNode* node = SceneManager->addAnimatedMeshSceneNode(mesh); + irr::scene::IOctreeSceneNode *node = SceneManager->addOctreeSceneNode(mesh); + rc_scene_node actor; + actor.node_type = RC_NODE_TYPE_OTMESH; + actor.mesh_node = node; + actor.shadow = NULL; + actor.transition = false; + actor.transition_time = 0; + actor.material_ref_index = -1; + + if(!node) + return -1; + + for(int i = 0; i < rc_actor.size(); i++) + { + if(!rc_actor[i].mesh_node) + { + actor_id = i; + break; + } + } + + if(actor_id < 0) + { + actor_id = rc_actor.size(); + rc_actor.push_back(actor); + } + else + { + rc_actor[actor_id] = actor; + } + + //Actor RigidBody + rc_actor[actor_id].physics.shape_type = RC_NODE_SHAPE_TYPE_BOX; + rc_actor[actor_id].physics.rigid_body = NULL; + rc_actor[actor_id].physics.isSolid = false; + + rc_setActorCollisionShape(actor_id, RC_NODE_SHAPE_TYPE_BOX, 1); + + + return actor_id; +} + +//add mesh actor to scene +int rc_createTerrainActor( std::string height_map ) +{ + + int actor_id = -1; + irr::scene::ITerrainSceneNode *node = SceneManager->addTerrainSceneNode(height_map.c_str()); + rc_scene_node actor; + actor.node_type = RC_NODE_TYPE_TERRAIN; + actor.mesh_node = node; + actor.shadow = NULL; + actor.transition = false; + actor.transition_time = 0; + actor.material_ref_index = -1; + + if(!node) + return -1; + + for(int i = 0; i < rc_actor.size(); i++) + { + if(!rc_actor[i].mesh_node) + { + actor_id = i; + break; + } + } + + if(actor_id < 0) + { + actor_id = rc_actor.size(); + rc_actor.push_back(actor); + } + else + { + rc_actor[actor_id] = actor; + } + + //Actor RigidBody + rc_actor[actor_id].physics.shape_type = RC_NODE_SHAPE_TYPE_BOX; + rc_actor[actor_id].physics.rigid_body = NULL; + rc_actor[actor_id].physics.isSolid = false; + + rc_setActorCollisionShape(actor_id, RC_NODE_SHAPE_TYPE_BOX, 0); + + + return actor_id; +} + +int rc_createParticleActor( int particle_type ) +{ + int actor_id = -1; + irr::scene::IParticleSystemSceneNode *node = SceneManager->addParticleSystemSceneNode( false ); + rc_scene_node actor; + actor.node_type = RC_NODE_TYPE_PARTICLE; + actor.particle_properties.particle_type = particle_type; + actor.particle_properties.mesh_id = -1; + actor.mesh_node = node; + actor.shadow = NULL; + actor.transition = false; + actor.transition_time = 0; + actor.material_ref_index = -1; + + if(!node) + return -1; + + for(int i = 0; i < rc_actor.size(); i++) + { + if(!rc_actor[i].mesh_node) + { + actor_id = i; + break; + } + } + + if(actor_id < 0) + { + actor_id = rc_actor.size(); + rc_actor.push_back(actor); + } + else + { + rc_actor[actor_id] = actor; + } + + //Actor RigidBody + rc_actor[actor_id].physics.shape_type = RC_NODE_SHAPE_TYPE_BOX; + rc_actor[actor_id].physics.rigid_body = NULL; + rc_actor[actor_id].physics.isSolid = false; + + rc_setActorCollisionShape(actor_id, RC_NODE_SHAPE_TYPE_BOX, 0); + + + return actor_id; +} + +//add mesh actor to scene +int rc_createCubeActor(double cube_size) +{ + int actor_id = -1; + irr::scene::IMeshSceneNode* node = SceneManager->addCubeSceneNode(cube_size); + rc_scene_node actor; + actor.node_type = RC_NODE_TYPE_MESH; + actor.mesh_node = node; + actor.shadow = NULL; + actor.transition = false; + actor.transition_time = 0; + actor.material_ref_index = -1; + + if(!node) + return -1; + + for(int i = 0; i < rc_actor.size(); i++) + { + if(!rc_actor[i].mesh_node) + { + actor_id = i; + break; + } + } + + if(actor_id < 0) + { + actor_id = rc_actor.size(); + rc_actor.push_back(actor); + } + else + { + rc_actor[actor_id] = actor; + } + + //Actor RigidBody + rc_actor[actor_id].physics.shape_type = RC_NODE_SHAPE_TYPE_BOX; + rc_actor[actor_id].physics.rigid_body = NULL; + rc_actor[actor_id].physics.isSolid = false; + + rc_setActorCollisionShape(actor_id, RC_NODE_SHAPE_TYPE_BOX, 1); + + return actor_id; +} + +//add mesh actor to scene +int rc_createSphereActor(double radius) +{ + int actor_id = -1; + irr::scene::IMeshSceneNode* node = SceneManager->addSphereSceneNode(radius); + rc_scene_node actor; + actor.node_type = RC_NODE_TYPE_MESH; + actor.mesh_node = node; + actor.shadow = NULL; + actor.transition = false; + actor.transition_time = 0; + actor.material_ref_index = -1; + + if(!node) + return -1; + + for(int i = 0; i < rc_actor.size(); i++) + { + if(!rc_actor[i].mesh_node) + { + actor_id = i; + break; + } + } + + if(actor_id < 0) + { + actor_id = rc_actor.size(); + rc_actor.push_back(actor); + } + else + { + rc_actor[actor_id] = actor; + } + + //Actor RigidBody + rc_actor[actor_id].physics.shape_type = RC_NODE_SHAPE_TYPE_SPHERE; + rc_actor[actor_id].physics.rigid_body = NULL; + rc_actor[actor_id].physics.isSolid = false; + + rc_setActorCollisionShape(actor_id, RC_NODE_SHAPE_TYPE_SPHERE, 1); + + return actor_id; +} + +//add mesh actor to scene +int rc_createWaterPlaneActor(double w, double h) +{ + int actor_id = -1; + RealisticWaterSceneNode* node = new RealisticWaterSceneNode(SceneManager, w, h); + rc_scene_node actor; + actor.node_type = RC_NODE_TYPE_WATER; + actor.mesh_node = node; + actor.shadow = NULL; + actor.transition = false; + actor.transition_time = 0; + actor.material_ref_index = -1; + + if(!node) + return -1; + + for(int i = 0; i < rc_actor.size(); i++) + { + if(!rc_actor[i].mesh_node) + { + actor_id = i; + break; + } + } + + if(actor_id < 0) + { + actor_id = rc_actor.size(); + rc_actor.push_back(actor); + } + else + { + rc_actor[actor_id] = actor; + } + + //Actor RigidBody + rc_actor[actor_id].physics.shape_type = RC_NODE_SHAPE_TYPE_BOX; + rc_actor[actor_id].physics.rigid_body = NULL; + rc_actor[actor_id].physics.isSolid = false; + + rc_setActorCollisionShape(actor_id, RC_NODE_SHAPE_TYPE_BOX, 1); + + return actor_id; +} + +int rc_createBillboardActor() +{ + int actor_id = -1; + irr::scene::IBillboardSceneNode* node = SceneManager->addBillboardSceneNode(); + rc_scene_node actor; + actor.node_type = RC_NODE_TYPE_BILLBOARD; + actor.mesh_node = node; + actor.shadow = NULL; + actor.transition = false; + actor.transition_time = 0; + actor.material_ref_index = -1; + + if(!node) + return -1; + + for(int i = 0; i < rc_actor.size(); i++) + { + if(!rc_actor[i].mesh_node) + { + actor_id = i; + break; + } + } + + if(actor_id < 0) + { + actor_id = rc_actor.size(); + rc_actor.push_back(actor); + } + else + { + rc_actor[actor_id] = actor; + } + + //Actor RigidBody + rc_actor[actor_id].physics.shape_type = RC_NODE_SHAPE_TYPE_BOX; + rc_actor[actor_id].physics.rigid_body = NULL; + rc_actor[actor_id].physics.isSolid = false; + + rc_setActorCollisionShape(actor_id, RC_NODE_SHAPE_TYPE_BOX, 1); + + return actor_id; +} + +int rc_createLightActor() +{ + int actor_id = -1; + irr::scene::ILightSceneNode* node = SceneManager->addLightSceneNode(); + rc_scene_node actor; + actor.node_type = RC_NODE_TYPE_LIGHT; + actor.mesh_node = node; + actor.shadow = NULL; + actor.transition = false; + actor.transition_time = 0; + actor.material_ref_index = -1; + + if(!node) + return -1; + + for(int i = 0; i < rc_actor.size(); i++) + { + if(!rc_actor[i].mesh_node) + { + actor_id = i; + break; + } + } + + if(actor_id < 0) + { + actor_id = rc_actor.size(); + rc_actor.push_back(actor); + } + else + { + rc_actor[actor_id] = actor; + } + + //Actor RigidBody + rc_actor[actor_id].physics.shape_type = RC_NODE_SHAPE_TYPE_BOX; + rc_actor[actor_id].physics.rigid_body = NULL; + rc_actor[actor_id].physics.isSolid = false; + + rc_setActorCollisionShape(actor_id, RC_NODE_SHAPE_TYPE_BOX, 1); + + return actor_id; +} + +//delete actor +void rc_deleteActor(int actor_id) +{ + if(actor_id < 0 || actor_id >= rc_actor.size()) + return; + + if(!rc_actor[actor_id].mesh_node) + return; + + rc_physics3D.world->removeCollisionObject(rc_actor[actor_id].physics.rigid_body, false); + rc_actor[actor_id].physics.collisions.clear(); + + rc_actor[actor_id].mesh_node->remove(); + rc_actor[actor_id].mesh_node = NULL; + rc_actor[actor_id].shadow = NULL; + rc_actor[actor_id].node_type = 0; + rc_actor[actor_id].transition = false; + rc_actor[actor_id].transition_time = 0; + rc_actor[actor_id].material_ref_index = -1; +} + +void rc_setWaterWindForce(int actor, double f) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_WATER: + RealisticWaterSceneNode* water = (RealisticWaterSceneNode*)rc_actor[actor].mesh_node; + water->setWindForce(f); + } +} + +double rc_getWaterWindForce(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_WATER: + RealisticWaterSceneNode* water = (RealisticWaterSceneNode*)rc_actor[actor].mesh_node; + return water->getWindForce(); + } + + return 0; +} + +void rc_setWaterWaveHeight(int actor, double h) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_WATER: + RealisticWaterSceneNode* water = (RealisticWaterSceneNode*)rc_actor[actor].mesh_node; + water->setWaveHeight(h); + } +} + +double rc_getWaterWaveHeight(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_WATER: + RealisticWaterSceneNode* water = (RealisticWaterSceneNode*)rc_actor[actor].mesh_node; + return water->getWaveHeight(); + } + + return 0; +} + +void rc_setWaterWindDirection(int actor, double x, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_WATER: + RealisticWaterSceneNode* water = (RealisticWaterSceneNode*)rc_actor[actor].mesh_node; + water->setWindDirection( irr::core::vector2df(x, z)); + } +} + +void rc_getWaterWindDirection(int actor, double* x, double* z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + *x = 0; + *z = 0; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_WATER: + RealisticWaterSceneNode* water = (RealisticWaterSceneNode*)rc_actor[actor].mesh_node; + irr::core::vector2df v = water->getWindDirection(); + *x = v.X; + *z = v.Y; + } +} + +void rc_setWaterColor(int actor, Uint32 c) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_WATER: + RealisticWaterSceneNode* water = (RealisticWaterSceneNode*)rc_actor[actor].mesh_node; + irr::video::SColor color; + color.set(c); + SColorf cf(color); + water->setWaterColor( cf ); + } +} + +irr::u32 rc_getWaterColor(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_WATER: + RealisticWaterSceneNode* water = (RealisticWaterSceneNode*)rc_actor[actor].mesh_node; + irr::video::SColorf color = water->getWaterColor(); + return color.toSColor().color; + } + + return 0; +} + + +void rc_setWaterColorBlendFactor(int actor, double cbfactor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_WATER: + RealisticWaterSceneNode* water = (RealisticWaterSceneNode*)rc_actor[actor].mesh_node; + water->setColorBlendFactor(cbfactor); + } +} + +double rc_getWaterColorBlendFactor(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_WATER: + RealisticWaterSceneNode* water = (RealisticWaterSceneNode*)rc_actor[actor].mesh_node; + return water->getColorBlendFactor(); + } + + return 0; +} + + +//set actor texture +void rc_setActorTexture(int actor, int layer, int image_id) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(!rc_actor[actor].mesh_node) + return; + + if(image_id < 0 || image_id >= rc_image.size()) + return; + + if(rc_image[image_id].image) + { + rc_actor[actor].mesh_node->setMaterialTexture(layer, rc_image[image_id].image); + } +} + +//get Material count +Uint32 rc_getActorMaterialCount(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + if(!rc_actor[actor].mesh_node) + return 0; + + return rc_actor[actor].mesh_node->getMaterialCount(); +} + +//set Actor Material Flag +void rc_setActorMaterialFlag(int actor, int flag, bool flag_value) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(!rc_actor[actor].mesh_node) + return; + + rc_actor[actor].mesh_node->setMaterialFlag((irr::video::E_MATERIAL_FLAG)flag, flag_value); +} + +//set Actor Material Flag +bool rc_getActorMaterialFlag(int actor, int material, int flag) +{ + if(actor < 0 || actor >= rc_actor.size()) + return false; + + if(!rc_actor[actor].mesh_node) + return false; + + return rc_actor[actor].mesh_node->getMaterial(material).getFlag((irr::video::E_MATERIAL_FLAG)flag); +} + +//Set Actor Material Type +void rc_setActorMaterialType(int actor, int material_type) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(!rc_actor[actor].mesh_node) + return; + + irr::video::E_MATERIAL_TYPE n = (irr::video::E_MATERIAL_TYPE) material_type; + rc_actor[actor].mesh_node->setMaterialType(n); +} + +//Set Actor Material Type +int rc_getActorMaterialType(int actor, int material) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + if(!rc_actor[actor].mesh_node) + return 0; + + return (int)rc_actor[actor].mesh_node->getMaterial(material).MaterialType; +} + +struct rc_material_obj +{ + irr::video::SMaterial mat; + bool isUsed = false; + bool isReference = false; + int refActor = -1; + int refMatNum = 0; +}; + +irr::core::array rc_material; + +int rc_createMaterial() +{ + int material_id = -1; + + for(int i = 0; i < rc_material.size(); i++) + { + if(!rc_material[i].isUsed) + { + material_id = i; + break; + } + } + + if(material_id < 0) + { + material_id = rc_material.size(); + rc_material_obj mat; + mat.isUsed = true; + mat.isReference = false; + rc_material.push_back(mat); + } + + return material_id; +} + +void rc_deleteMaterial(int material_id) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return; + + rc_material[material_id].isUsed = false; + rc_material[material_id].mat = irr::video::SMaterial(); +} + +//Set Actor Material Type +void rc_setActorMaterial(int actor, int material_num, int material_id) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(!rc_actor[actor].mesh_node) + return; + + if(material_id < 0 || material_id >= rc_material.size()) + return; + + if(rc_material[material_id].isUsed) + { + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + rc_actor[actor].mesh_node->getMaterial(material_num) = rc_actor[ refActor ].mesh_node->getMaterial( refMatNum ); + } + else + rc_actor[actor].mesh_node->getMaterial(material_num) = rc_material[material_id].mat; + } +} + +//Set Actor Material Type +int rc_copyActorMaterial(int actor, int material_num) +{ + if(actor < 0 || actor >= rc_actor.size()) + return -1; + + if(!rc_actor[actor].mesh_node) + return -1; + + int material_id = -1; + + for(int i = 0; i < rc_material.size(); i++) + { + if(!rc_material[i].isUsed) + { + rc_material[i].isUsed = true; + material_id = i; + break; + } + } + + if(material_id < 0) + { + material_id = rc_material.size(); + rc_material_obj nmat; + nmat.isUsed = true; + nmat.mat = rc_actor[actor].mesh_node->getMaterial(material_num); + rc_material.push_back(nmat); + } + else + rc_material[material_id].mat = rc_actor[actor].mesh_node->getMaterial(material_num); + + return material_id; +} + +int rc_copyMaterial(int src_material_id) +{ + int material_id = -1; + + for(int i = 0; i < rc_material.size(); i++) + { + if(!rc_material[i].isUsed) + { + rc_material[i].isUsed = true; + material_id = i; + break; + } + } + + rc_material_obj nmat; + nmat.isUsed = true; + nmat.mat = rc_material[src_material_id].mat; + nmat.isReference = false; + nmat.refActor = -1; + nmat.refMatNum = 0; + + if(material_id < 0) + { + material_id = rc_material.size(); + rc_material.push_back(nmat); + } + else + rc_material[material_id] = nmat; + + return material_id; +} + +int rc_getActorMaterial(int actor, int material_num) +{ + if(actor < 0 || actor >= rc_actor.size()) + return -1; + + if(!rc_actor[actor].mesh_node) + return -1; + + if(rc_actor[actor].material_ref_index >= 0) + return rc_actor[actor].material_ref_index; + + int material_id = -1; + + for(int i = 0; i < rc_material.size(); i++) + { + if(!rc_material[i].isUsed) + { + rc_material[i].isUsed = true; + material_id = i; + break; + } + } + + if(material_id < 0) + { + material_id = rc_material.size(); + rc_material_obj nmat; + nmat.isUsed = true; + nmat.isReference = true; + nmat.refActor = actor; + nmat.refMatNum = material_num; + rc_material.push_back(nmat); + } + else + { + rc_material_obj nmat; + nmat.isUsed = true; + nmat.isReference = true; + nmat.refActor = actor; + nmat.refMatNum = material_num; + rc_material[material_id] = nmat; + } + + return material_id; +} + +void rc_setMaterialAmbientColor(int material_id, Uint32 color) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + rc_actor[refActor].mesh_node->getMaterial(refMatNum).AmbientColor = irr::video::SColor(color); + } + else + rc_material[material_id].mat.AmbientColor = irr::video::SColor(color); +} + +void rc_setMaterialTextureCanvas(int material_id, int level, int canvas_id) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return; + + if(canvas_id < 0 || canvas_id >= rc_canvas.size()) + return; + + if(!rc_canvas[canvas_id].texture) + return; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + rc_actor[refActor].mesh_node->getMaterial(refMatNum).setTexture(level, rc_canvas[canvas_id].texture); + } + else + rc_material[material_id].mat.setTexture(level, rc_canvas[canvas_id].texture); +} + +Uint32 rc_getMaterialAmbientColor(int material_id) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return 0; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + return rc_actor[refActor].mesh_node->getMaterial(refMatNum).AmbientColor.color; + } + else + return rc_material[material_id].mat.AmbientColor.color; +} + +void rc_setMaterialAntiAliasing(int material_id, int aa) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + rc_actor[refActor].mesh_node->getMaterial(refMatNum).AntiAliasing = aa; + } + else + rc_material[material_id].mat.AntiAliasing = aa; +} + +int rc_getMaterialAntiAliasing(int material_id) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return 0; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + return rc_actor[refActor].mesh_node->getMaterial(refMatNum).AntiAliasing; + } + else + return rc_material[material_id].mat.AntiAliasing; +} + +void rc_setMaterialBackfaceCulling(int material_id, bool flag) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + rc_actor[refActor].mesh_node->getMaterial(refMatNum).BackfaceCulling = flag; + } + else + rc_material[material_id].mat.BackfaceCulling = flag; +} + +bool rc_getMaterialBackfaceCulling(int material_id) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return false; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + return rc_actor[refActor].mesh_node->getMaterial(refMatNum).BackfaceCulling; + } + else + return rc_material[material_id].mat.BackfaceCulling; +} + +void rc_setMaterialBlendFactor(int material_id, double bf) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + rc_actor[refActor].mesh_node->getMaterial(refMatNum).BlendFactor = bf; + } + else + rc_material[material_id].mat.BlendFactor = bf; +} + +double rc_getMaterialBlendFactor(int material_id) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return 0; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + return rc_actor[refActor].mesh_node->getMaterial(refMatNum).BlendFactor; + } + else + return rc_material[material_id].mat.BlendFactor; +} + +void rc_setMaterialBlendMode(int material_id, int blend_mode) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + rc_actor[refActor].mesh_node->getMaterial(refMatNum).BlendOperation = (irr::video::E_BLEND_OPERATION)blend_mode; + } + else + rc_material[material_id].mat.BlendOperation = (irr::video::E_BLEND_OPERATION)blend_mode; +} + +int rc_getMaterialBlendMode(int material_id) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return 0; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + return (int)rc_actor[refActor].mesh_node->getMaterial(refMatNum).BlendOperation; + } + else + return (int)rc_material[material_id].mat.BlendOperation; +} + +void rc_setMaterialColorMask(int material_id, int color_mask) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + rc_actor[refActor].mesh_node->getMaterial(refMatNum).ColorMask = color_mask; + } + else + rc_material[material_id].mat.ColorMask = color_mask; +} + +int rc_getMaterialColorMask(int material_id) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return 0; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + return rc_actor[refActor].mesh_node->getMaterial(refMatNum).ColorMask; + } + else + return rc_material[material_id].mat.ColorMask; +} + +void rc_setMaterialColorMode(int material_id, int color_mode) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + rc_actor[refActor].mesh_node->getMaterial(refMatNum).ColorMaterial = (irr::video::E_COLOR_MATERIAL)color_mode; + } + else + rc_material[material_id].mat.ColorMaterial = (irr::video::E_COLOR_MATERIAL)color_mode; +} + +int rc_getMaterialColorMode(int material_id) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return 0; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + return (int)rc_actor[refActor].mesh_node->getMaterial(refMatNum).ColorMaterial; + } + else + return (int)rc_material[material_id].mat.ColorMaterial; +} + +void rc_setMaterialDiffuseColor(int material_id, Uint32 color) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + rc_actor[refActor].mesh_node->getMaterial(refMatNum).DiffuseColor.set(color); + } + else + rc_material[material_id].mat.DiffuseColor = irr::video::SColor(color); +} + +Uint32 rc_getMaterialDiffuseColor(int material_id) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return 0; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + return rc_actor[refActor].mesh_node->getMaterial(refMatNum).DiffuseColor.color; + } + else + return rc_material[material_id].mat.DiffuseColor.color; +} + +void rc_setMaterialEmissiveColor(int material_id, Uint32 color) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + rc_actor[refActor].mesh_node->getMaterial(refMatNum).EmissiveColor.set(color); + } + else + rc_material[material_id].mat.EmissiveColor = irr::video::SColor(color); +} + +Uint32 rc_getMaterialEmissiveColor(int material_id) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return 0; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + return rc_actor[refActor].mesh_node->getMaterial(refMatNum).EmissiveColor.color; + } + else + return rc_material[material_id].mat.EmissiveColor.color; +} + +void rc_setMaterialFog(int material_id, bool flag) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + rc_actor[refActor].mesh_node->getMaterial(refMatNum).FogEnable = flag; + } + else + rc_material[material_id].mat.FogEnable = flag; +} + +bool rc_getMaterialFog(int material_id) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return false; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + return rc_actor[refActor].mesh_node->getMaterial(refMatNum).FogEnable; + } + else + return rc_material[material_id].mat.FogEnable; +} + +void rc_setMaterialFrontfaceCulling(int material_id, bool flag) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + rc_actor[refActor].mesh_node->getMaterial(refMatNum).FrontfaceCulling = flag; + } + else + rc_material[material_id].mat.FrontfaceCulling = flag; +} + +bool rc_getMaterialFrontfaceCulling(int material_id) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return false; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + return rc_actor[refActor].mesh_node->getMaterial(refMatNum).FrontfaceCulling; + } + else + return rc_material[material_id].mat.FrontfaceCulling; +} + +void rc_setMaterialGouraudShading(int material_id, bool flag) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + rc_actor[refActor].mesh_node->getMaterial(refMatNum).GouraudShading = flag; + } + else + rc_material[material_id].mat.GouraudShading = flag; +} + +bool rc_materialIsGouraudShaded(int material_id) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return false; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + return rc_actor[refActor].mesh_node->getMaterial(refMatNum).GouraudShading; + } + else + return rc_material[material_id].mat.GouraudShading; +} + +bool rc_materialIsAplhaBlend(int material_id) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return false; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + return rc_actor[refActor].mesh_node->getMaterial(refMatNum).isAlphaBlendOperation(); + } + else + return rc_material[material_id].mat.isAlphaBlendOperation(); +} + +bool rc_materialIsTransparent(int material_id) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return false; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + return rc_actor[refActor].mesh_node->getMaterial(refMatNum).isTransparent(); + } + else + return rc_material[material_id].mat.isTransparent(); +} + +void rc_setMaterialLighting(int material_id, bool flag) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + rc_actor[refActor].mesh_node->getMaterial(refMatNum).Lighting = flag; + } + else + rc_material[material_id].mat.Lighting = flag; +} + +bool rc_materialIsLit(int material_id) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return false; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + return rc_actor[refActor].mesh_node->getMaterial(refMatNum).Lighting; + } + else + return rc_material[material_id].mat.Lighting; +} + +void rc_setMaterialType(int material_id, int mat_type) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + rc_actor[refActor].mesh_node->getMaterial(refMatNum).MaterialType = (irr::video::E_MATERIAL_TYPE)mat_type; + } + else + rc_material[material_id].mat.MaterialType = (irr::video::E_MATERIAL_TYPE)mat_type; +} + +int rc_getMaterialType(int material_id) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return 0; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + return (int)rc_actor[refActor].mesh_node->getMaterial(refMatNum).MaterialType; + } + else + return (int)rc_material[material_id].mat.MaterialType; +} + +void rc_setMaterialNormalize(int material_id, bool flag) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + rc_actor[refActor].mesh_node->getMaterial(refMatNum).NormalizeNormals = flag; + } + else + rc_material[material_id].mat.NormalizeNormals = flag; +} + +bool rc_materialIsNormalized(int material_id) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return false; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + return rc_actor[refActor].mesh_node->getMaterial(refMatNum).NormalizeNormals; + } + else + return rc_material[material_id].mat.NormalizeNormals; +} + +void rc_setMaterialPointCloud(int material_id, bool flag) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + rc_actor[refActor].mesh_node->getMaterial(refMatNum).PointCloud = flag; + } + else + rc_material[material_id].mat.PointCloud = flag; +} + +bool rc_materialIsPointCloud(int material_id) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return 0; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + return rc_actor[refActor].mesh_node->getMaterial(refMatNum).PointCloud; + } + else + return rc_material[material_id].mat.PointCloud; +} + +void rc_setMaterialFlag(int material_id, int material_flag, bool f_value) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + rc_actor[refActor].mesh_node->getMaterial(refMatNum).setFlag((irr::video::E_MATERIAL_FLAG)material_flag, f_value); + } + else + rc_material[material_id].mat.setFlag((irr::video::E_MATERIAL_FLAG)material_flag, f_value); +} + +bool rc_getMaterialFlag(int material_id, int material_flag) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return false; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + return rc_actor[refActor].mesh_node->getMaterial(refMatNum).getFlag((irr::video::E_MATERIAL_FLAG) material_flag); + } + else + return rc_material[material_id].mat.getFlag((irr::video::E_MATERIAL_FLAG) material_flag); +} + +void rc_setMaterialTexture(int material_id, int level, int img_id) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return; + + if(level < 0 || level >= irr::video::MATERIAL_MAX_TEXTURES) + return; + + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(!rc_image[img_id].image) + return; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + rc_actor[refActor].mesh_node->getMaterial(refMatNum).setTexture(level, rc_image[img_id].image); + } + else + rc_material[material_id].mat.setTexture(level, rc_image[img_id].image); +} + +void rc_setMaterialShininess(int material_id, double shininess) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return; + + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + rc_actor[refActor].mesh_node->getMaterial(refMatNum).Shininess = shininess; + } + else + rc_material[material_id].mat.Shininess = shininess; +} + +double rc_getMaterialShininess(int material_id) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return 0; + + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + return rc_actor[refActor].mesh_node->getMaterial(refMatNum).Shininess; + } + else + return rc_material[material_id].mat.Shininess; +} + +void rc_setMaterialSpecularColor(int material_id, Uint32 color) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + rc_actor[refActor].mesh_node->getMaterial(refMatNum).SpecularColor.set(color); + } + else + rc_material[material_id].mat.SpecularColor = irr::video::SColor(color); +} + +Uint32 rc_getMaterialSpecularColor(int material_id) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return 0; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + return rc_actor[refActor].mesh_node->getMaterial(refMatNum).SpecularColor.color; + } + else + return rc_material[material_id].mat.SpecularColor.color; +} + +void rc_setMaterialThickness(int material_id, double thickness) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + rc_actor[refActor].mesh_node->getMaterial(refMatNum).Thickness = thickness; + } + else + rc_material[material_id].mat.Thickness = thickness; +} + +double rc_getMaterialThickness(int material_id) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return 0; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + return rc_actor[refActor].mesh_node->getMaterial(refMatNum).Thickness; + } + else + return rc_material[material_id].mat.Thickness; +} + +void rc_setMaterialWireframe(int material_id, bool flag) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + rc_actor[refActor].mesh_node->getMaterial(refMatNum).Wireframe = flag; + } + else + rc_material[material_id].mat.Wireframe = flag; +} + +bool rc_materialIsWireframe(int material_id) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return false; + + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + return rc_actor[refActor].mesh_node->getMaterial(refMatNum).Wireframe; + } + else + return rc_material[material_id].mat.Wireframe; +} + + + + +//get Actor Texture +int rc_getActorTexture(int actor, int material, int layer) +{ + if(actor < 0 || actor >= rc_actor.size()) + return -1; + + if(!rc_actor[actor].mesh_node) + return -1; + + rc_image_obj img; + img.image = rc_actor[actor].mesh_node->getMaterial(material).getTexture(layer); + + if(img.image == NULL) + return -1; + + int img_id = -1; + + for(int i = 0; i < rc_image.size(); i++) + { + if(rc_image[i].image == NULL) + { + img_id = i; + break; + } + } + + if(img_id < 0) + { + img_id = rc_image.size(); + rc_image.push_back(img); + } + else + { + rc_image[img_id] = img; + } + + return img_id; +} + + +//set actor position +void rc_setActorPosition(int actor, double x, double y, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + //std::cout << "Set POS" << std::endl; + irr::core::matrix4 actor_transform = rc_actor[actor].physics.rigid_body->getWorldTransform(); + rc_physics3D.world->removeCollisionObject(rc_actor[actor].physics.rigid_body, false); + actor_transform.setTranslation( irr::core::vector3df(x, y, z) ); + rc_actor[actor].physics.rigid_body->clearForces(); + //rc_actor[actor].physics.rigid_body-> + rc_actor[actor].physics.rigid_body->setWorldTransform(actor_transform); + + rc_actor[actor].physics.rigid_body->setMassProps(rc_actor[actor].physics.mass, irr::core::vector3df(0,0,0)); + rc_physics3D.world->addRigidBody(rc_actor[actor].physics.rigid_body); + + rc_actor[actor].mesh_node->setPosition(actor_transform.getTranslation()); + + } +} + +//translate actor from local orientation +void rc_translateActor(int actor, double x, double y, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + //std::cout << "Set POS" << std::endl; + irr::core::matrix4 actor_transform = rc_actor[actor].physics.rigid_body->getWorldTransform(); + irr::core::matrix4 m; + m.setRotationDegrees(actor_transform.getRotationDegrees()); + irr::core::vector3df v(x, y, z); + m.transformVect(v); + + actor_transform.setTranslation( actor_transform.getTranslation() + v ); + rc_actor[actor].physics.rigid_body->clearForces(); + rc_actor[actor].physics.rigid_body->setWorldTransform(actor_transform); + rc_actor[actor].mesh_node->setPosition(actor_transform.getTranslation()); + rc_actor[actor].mesh_node->updateAbsolutePosition(); + } +} + +//translate actor from world orientation +void rc_translateActorWorld(int actor, double x, double y, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + //std::cout << "Set POS" << std::endl; + irr::core::matrix4 actor_transform = rc_actor[actor].physics.rigid_body->getWorldTransform(); + actor_transform.setTranslation( actor_transform.getTranslation() + irr::core::vector3df(x, y, z) ); + rc_actor[actor].physics.rigid_body->clearForces(); + rc_actor[actor].physics.rigid_body->setWorldTransform(actor_transform); + rc_actor[actor].mesh_node->setPosition(actor_transform.getTranslation()); + rc_actor[actor].mesh_node->updateAbsolutePosition(); + } +} + +//get actor position +void rc_getActorPosition(int actor, double* x, double* y, double* z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + *x = 0; + *y = 0; + *z = 0; + + if(rc_actor[actor].physics.rigid_body) + { + //std::cout << "Set POS" << std::endl; + irr::core::matrix4 actor_transform = rc_actor[actor].physics.rigid_body->getWorldTransform(); + *x = actor_transform.getTranslation().X; + *y = actor_transform.getTranslation().Y; + *z = actor_transform.getTranslation().Z; + } +} + +//set actor scale +void rc_setActorScale(int actor, double x, double y, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + //std::cout << "Set POS" << std::endl; + irr::core::matrix4 actor_transform = rc_actor[actor].physics.rigid_body->getWorldTransform(); + actor_transform.setScale( irr::core::vector3df(x, y, z) ); + rc_actor[actor].physics.rigid_body->clearForces(); + rc_actor[actor].physics.rigid_body->setWorldTransform(actor_transform); + rc_actor[actor].mesh_node->setScale(actor_transform.getScale()); + rc_actor[actor].mesh_node->updateAbsolutePosition(); + } + +} + +//scale actor +void rc_scaleActor(int actor, double x, double y, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + //std::cout << "Set POS" << std::endl; + irr::core::matrix4 actor_transform = rc_actor[actor].physics.rigid_body->getWorldTransform(); + actor_transform.setScale( actor_transform.getScale() * irr::core::vector3df(x, y, z) ); + rc_actor[actor].physics.rigid_body->clearForces(); + rc_actor[actor].physics.rigid_body->setWorldTransform(actor_transform); + rc_actor[actor].mesh_node->setScale(actor_transform.getScale()); + rc_actor[actor].mesh_node->updateAbsolutePosition(); + } +} + +//get actor scale +void rc_getActorScale(int actor, double* x, double* y, double* z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + *x = 0; + *y = 0; + *z = 0; + + if(rc_actor[actor].physics.rigid_body) + { + //std::cout << "Set POS" << std::endl; + irr::core::matrix4 actor_transform = rc_actor[actor].physics.rigid_body->getWorldTransform(); + *x = actor_transform.getScale().X; + *y = actor_transform.getScale().Y; + *z = actor_transform.getScale().Z; + } +} + + +//set actor rotation +void rc_setActorRotation(int actor, double x, double y, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + //std::cout << "Set POS" << std::endl; + irr::core::matrix4 actor_transform = rc_actor[actor].physics.rigid_body->getWorldTransform(); + actor_transform.setRotationDegrees( irr::core::vector3df(x, y, z) ); + rc_actor[actor].physics.rigid_body->clearForces(); + rc_actor[actor].physics.rigid_body->setWorldTransform(actor_transform); + rc_actor[actor].mesh_node->setRotation( actor_transform.getRotationDegrees() ); + rc_actor[actor].mesh_node->updateAbsolutePosition(); + } +} + +//rotate actor +void rc_rotateActor(int actor, double x, double y, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + //std::cout << "Set POS" << std::endl; + irr::core::matrix4 actor_transform = rc_actor[actor].physics.rigid_body->getWorldTransform(); + + irr::core::matrix4 n; + irr::core::vector3df rot(x, y, z); + n.setRotationDegrees(rot); + actor_transform *= n; + + rc_actor[actor].physics.rigid_body->clearForces(); + rc_actor[actor].physics.rigid_body->setWorldTransform(actor_transform); + rc_actor[actor].mesh_node->setRotation( actor_transform.getRotationDegrees() ); + rc_actor[actor].mesh_node->updateAbsolutePosition(); + } +} + +//get actor position +void rc_getActorRotation(int actor, double* x, double* y, double* z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + *x = 0; + *y = 0; + *z = 0; + + if(rc_actor[actor].physics.rigid_body) + { + //std::cout << "Set POS" << std::endl; + irr::core::matrix4 actor_transform = rc_actor[actor].physics.rigid_body->getWorldTransform(); + *x = actor_transform.getRotationDegrees().X; + *y = actor_transform.getRotationDegrees().Y; + *z = actor_transform.getRotationDegrees().Z; + } +} + +void rc_setActorGravity(int actor, double x, double y, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + rc_actor[actor].physics.rigid_body->setGravity(irr::core::vector3df(x, y, z)); + } +} + +void rc_getActorGravity(int actor, double* x, double* y, double* z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + *x = 0; + *y = 0; + *z = 0; + + if(rc_actor[actor].physics.rigid_body) + { + irr::core::vector3df gvec = rc_actor[actor].physics.rigid_body->getGravity(); + *x = gvec.X; + *y = gvec.Y; + *z = gvec.Z; + } +} + +void rc_setActorDamping(int actor, double lin_damping, double ang_damping) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + rc_actor[actor].physics.rigid_body->setDamping(lin_damping, ang_damping); + } +} + +double rc_getActorLinearDamping(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + if(rc_actor[actor].physics.rigid_body) + { + return rc_actor[actor].physics.rigid_body->getLinearDamping(); + } + return 0; +} + +double rc_getActorAngularDamping(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + if(rc_actor[actor].physics.rigid_body) + { + return rc_actor[actor].physics.rigid_body->getAngularDamping(); + } + return 0; +} + +double rc_getActorLinearSleepThreshold(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + if(rc_actor[actor].physics.rigid_body) + { + return rc_actor[actor].physics.rigid_body->getLinearSleepingThreshold(); + } + return 0; +} + +double rc_getActorAngularSleepThreshold(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + if(rc_actor[actor].physics.rigid_body) + { + return rc_actor[actor].physics.rigid_body->getAngularSleepingThreshold(); + } + return 0; +} + +void rc_applyActorDamping(int actor, double timeStep) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + rc_actor[actor].physics.rigid_body->applyDamping(timeStep); + } +} + +void rc_setActorMassProperties(int actor, double mass, double inertia_x, double inertia_y, double inertia_z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + rc_physics3D.world->removeCollisionObject(rc_actor[actor].physics.rigid_body, false); + rc_actor[actor].physics.rigid_body->setMassProps(mass, irr::core::vector3df(inertia_x, inertia_y, inertia_z)); + rc_physics3D.world->addRigidBody(rc_actor[actor].physics.rigid_body); + } + rc_actor[actor].physics.mass = mass; +} + +void rc_getActorLinearFactor(int actor, double* x, double* y, double* z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + *x = 0; + *y = 0; + *z = 0; + + if(rc_actor[actor].physics.rigid_body) + { + irr::core::vector3df lf = rc_actor[actor].physics.rigid_body->getLinearFactor(); + *x = lf.X; + *y = lf.Y; + *z = lf.Z; + } +} + +void rc_setActorLinearFactor(int actor, double x, double y, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + rc_actor[actor].physics.rigid_body->setLinearFactor(irr::core::vector3df(x, y, z)); + } +} + +double rc_getActorInverseMass(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + if(rc_actor[actor].physics.rigid_body) + { + return rc_actor[actor].physics.rigid_body->getInvMass(); + } + return 0; +} + +void rc_integrateActorVelocities(int actor, double step) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + rc_actor[actor].physics.rigid_body->integrateVelocities(step); + } +} + +void rc_applyActorCentralForceLocal(int actor, double x, double y, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + rc_actor[actor].physics.rigid_body->applyCentralForce(irr::core::vector3df(x,y,z), ERBTransformSpace::ERBTS_LOCAL); + } +} + +void rc_applyActorCentralForceWorld(int actor, double x, double y, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + rc_actor[actor].physics.rigid_body->applyCentralForce(irr::core::vector3df(x,y,z), ERBTransformSpace::ERBTS_WORLD); + } +} + +void rc_getActorTotalForce(int actor, double* x, double* y, double* z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + *x = 0; + *y = 0; + *z = 0; + + if(rc_actor[actor].physics.rigid_body) + { + irr::core::vector3df f = rc_actor[actor].physics.rigid_body->getTotalForce(); + *x = f.X; + *y = f.Y; + *z = f.Z; + } +} + +void rc_getActorTotalTorque(int actor, double* x, double* y, double* z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + *x = 0; + *y = 0; + *z = 0; + + if(rc_actor[actor].physics.rigid_body) + { + irr::core::vector3df f = rc_actor[actor].physics.rigid_body->getTotalTorque(); + *x = f.X; + *y = f.Y; + *z = f.Z; + } +} + +void rc_getActorInverseInertiaDiagLocal(int actor, double* x, double* y, double* z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + *x = 0; + *y = 0; + *z = 0; + + if(rc_actor[actor].physics.rigid_body) + { + irr::core::vector3df f = rc_actor[actor].physics.rigid_body->getInvInertiaDiagLocal(); + *x = f.X; + *y = f.Y; + *z = f.Z; + } +} + +void rc_setActorInverseInertiaDiagLocal(int actor, double x, double y, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + rc_actor[actor].physics.rigid_body->setInvInertiaDiagLocal(irr::core::vector3df(x,y,z)); + } +} + +void rc_setActorSleepThresholds(int actor, double linear, double angular) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + rc_actor[actor].physics.rigid_body->setSleepingThresholds(linear, angular); + } +} + +void rc_applyActorTorqueLocal(int actor, double x, double y, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + rc_actor[actor].physics.rigid_body->applyTorque(irr::core::vector3df(x,y,z), ERBTransformSpace::ERBTS_LOCAL); + } +} + +void rc_applyActorTorqueWorld(int actor, double x, double y, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + rc_actor[actor].physics.rigid_body->applyTorque(irr::core::vector3df(x,y,z), ERBTransformSpace::ERBTS_WORLD); + } +} + +void rc_applyActorForceLocal(int actor, double x, double y, double z, double rel_x, double rel_y, double rel_z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + rc_actor[actor].physics.rigid_body->applyForce(irr::core::vector3df(x,y,z), irr::core::vector3df(rel_x, rel_y, rel_z), ERBTransformSpace::ERBTS_LOCAL); + } +} + +void rc_applyActorForceWorld(int actor, double x, double y, double z, double rel_x, double rel_y, double rel_z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + rc_actor[actor].physics.rigid_body->applyForce(irr::core::vector3df(x,y,z), irr::core::vector3df(rel_x, rel_y, rel_z), ERBTransformSpace::ERBTS_WORLD); + } +} + +void rc_applyActorCentralImpulseLocal(int actor, double x, double y, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + rc_actor[actor].physics.rigid_body->applyCentralImpulse(irr::core::vector3df(x,y,z), ERBTransformSpace::ERBTS_LOCAL); + } +} + +void rc_applyActorCentralImpulseWorld(int actor, double x, double y, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + rc_actor[actor].physics.rigid_body->applyCentralImpulse(irr::core::vector3df(x,y,z), ERBTransformSpace::ERBTS_WORLD); + } +} + +void rc_applyActorTorqueImpulseLocal(int actor, double x, double y, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + rc_actor[actor].physics.rigid_body->applyTorqueImpulse(irr::core::vector3df(x,y,z), ERBTransformSpace::ERBTS_LOCAL); + } +} + +void rc_applyActorTorqueImpulseWorld(int actor, double x, double y, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + rc_actor[actor].physics.rigid_body->applyTorqueImpulse(irr::core::vector3df(x,y,z), ERBTransformSpace::ERBTS_WORLD); + } +} + +void rc_applyActorImpulseLocal(int actor, double x, double y, double z, double rel_x, double rel_y, double rel_z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + rc_actor[actor].physics.rigid_body->applyImpulse(irr::core::vector3df(x,y,z), irr::core::vector3df(rel_x, rel_y, rel_z), ERBTransformSpace::ERBTS_LOCAL); + } +} + +void rc_applyActorImpulseWorld(int actor, double x, double y, double z, double rel_x, double rel_y, double rel_z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + rc_actor[actor].physics.rigid_body->applyImpulse(irr::core::vector3df(x,y,z), irr::core::vector3df(rel_x, rel_y, rel_z), ERBTransformSpace::ERBTS_WORLD); + } +} + +void rc_clearActorForces(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + rc_actor[actor].physics.rigid_body->clearForces(); + } +} + +void rc_updateActorInertiaTensor(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + rc_actor[actor].physics.rigid_body->updateInertiaTensor(); + } +} + +void rc_getActorCOMPosition(int actor, double* x, double* y, double* z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + *x = 0; + *y = 0; + *z = 0; + + if(rc_actor[actor].physics.rigid_body) + { + irr::core::vector3df pos = rc_actor[actor].physics.rigid_body->getCenterOfMassPosition(); + *x = pos.X; + *y = pos.Y; + *z = pos.Z; + } +} + +void rc_getActorRotationQ(int actor, double* x, double* y, double* z, double* w) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + *x = 0; + *y = 0; + *z = 0; + *w = 0; + + if(rc_actor[actor].physics.rigid_body) + { + irr::core::quaternion q = rc_actor[actor].physics.rigid_body->getOrientation(); + *x = q.X; + *y = q.Y; + *z = q.Z; + *w = q.W; + } +} + +void rc_getActorLinearVelocity(int actor, double* x, double* y, double* z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + *x = 0; + *y = 0; + *z = 0; + + if(rc_actor[actor].physics.rigid_body) + { + irr::core::vector3df pos = rc_actor[actor].physics.rigid_body->getLinearVelocity(); + *x = pos.X; + *y = pos.Y; + *z = pos.Z; + } +} + +void rc_getActorAngularVelocity(int actor, double* x, double* y, double* z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + *x = 0; + *y = 0; + *z = 0; + + if(rc_actor[actor].physics.rigid_body) + { + irr::core::vector3df pos = rc_actor[actor].physics.rigid_body->getAngularVelocity(); + *x = pos.X; + *y = pos.Y; + *z = pos.Z; + } +} + +void rc_setActorLinearVelocityLocal(int actor, double x, double y, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + rc_actor[actor].physics.rigid_body->setLinearVelocity(irr::core::vector3df(x, y, z), ERBTransformSpace::ERBTS_LOCAL); + } +} + +void rc_setActorLinearVelocityWorld(int actor, double x, double y, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + rc_actor[actor].physics.rigid_body->setLinearVelocity(irr::core::vector3df(x, y, z), ERBTransformSpace::ERBTS_WORLD); + } +} + +void rc_setActorAngularVelocityLocal(int actor, double x, double y, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + rc_actor[actor].physics.rigid_body->setAngularVelocity(irr::core::vector3df(x, y, z), ERBTransformSpace::ERBTS_LOCAL); + } +} + +void rc_setActorAngularVelocityWorld(int actor, double x, double y, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + rc_actor[actor].physics.rigid_body->setAngularVelocity(irr::core::vector3df(x, y, z), ERBTransformSpace::ERBTS_WORLD); + } +} + +void rc_getActorLocalPointVelocity(int actor, double rel_x, double rel_y, double rel_z, double* x, double* y, double* z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + *x = 0; + *y = 0; + *z = 0; + + if(rc_actor[actor].physics.rigid_body) + { + irr::core::vector3df pos = rc_actor[actor].physics.rigid_body->getVelocityInLocalPoint(irr::core::vector3df(rel_x, rel_y, rel_z)); + *x = pos.X; + *y = pos.Y; + *z = pos.Z; + } +} + +void rc_getActorLinearVelocityLocal(int actor, double* x, double* y, double* z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + *x = 0; + *y = 0; + *z = 0; + + if(rc_actor[actor].physics.rigid_body) + { + btVector3 v = rc_actor[actor].physics.rigid_body->getPointer()->getWorldTransform().getBasis().transpose() * rc_actor[actor].physics.rigid_body->getPointer()->getLinearVelocity(); + *x = v.getX(); + *y = v.getY(); + *z = v.getZ(); + } +} + +void rc_getActorAngularVelocityLocal(int actor, double* x, double* y, double* z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + *x = 0; + *y = 0; + *z = 0; + + if(rc_actor[actor].physics.rigid_body) + { + btVector3 v = rc_actor[actor].physics.rigid_body->getPointer()->getWorldTransform().getBasis().transpose() * rc_actor[actor].physics.rigid_body->getPointer()->getAngularVelocity(); + *x = v.getX(); + *y = v.getY(); + *z = v.getZ(); + } +} + +void rc_getActorAABB(int actor, double* min_x, double* min_y, double* min_z, double* max_x, double* max_y, double* max_z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + *min_x = 0; + *min_y = 0; + *min_z = 0; + *max_x = 0; + *max_y = 0; + *max_z = 0; + + if(rc_actor[actor].physics.rigid_body) + { + irr::core::vector3df min_aabb; + irr::core::vector3df max_aabb; + rc_actor[actor].physics.rigid_body->getAabb(min_aabb, max_aabb); + *min_x = min_aabb.X; + *min_y = min_aabb.Y; + *min_z = min_aabb.Z; + *max_x = max_aabb.X; + *max_y = max_aabb.Y; + *max_z = max_aabb.Z; + } +} + +double rc_computeActorImpulseDenominator(int actor, double pos_x, double pos_y, double pos_z, double normal_x, double normal_y, double normal_z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + if(rc_actor[actor].physics.rigid_body) + { + return rc_actor[actor].physics.rigid_body->computeImpulseDenominator(irr::core::vector3df(pos_x, pos_y, pos_z), irr::core::vector3df(normal_x, normal_y, normal_z)); + } +} + +double rc_computeActorAngularImpulseDenominator(int actor, double x, double y, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + if(rc_actor[actor].physics.rigid_body) + { + return rc_actor[actor].physics.rigid_body->computeAngularImpulseDenominator(irr::core::vector3df(x, y, z)); + } +} + +void rc_setActorAngularFactor(int actor, double x, double y, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].physics.rigid_body) + { + rc_actor[actor].physics.rigid_body->setAngularFactor(irr::core::vector3df(x, y, z)); + } +} + +void rc_getActorAngularFactor(int actor, double* x, double* y, double* z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + *x = 0; + *y = 0; + *z = 0; + + if(rc_actor[actor].physics.rigid_body) + { + irr::core::vector3df af = rc_actor[actor].physics.rigid_body->getAngularFactor(); + *x = af.X; + *y = af.Y; + *z = af.Z; + } +} + +void rc_computeActorGyroImpulseLocal(int actor, double step, double* x, double* y, double* z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + *x = 0; + *y = 0; + *z = 0; + + if(rc_actor[actor].physics.rigid_body) + { + btVector3 v = rc_actor[actor].physics.rigid_body->getPointer()->computeGyroscopicImpulseImplicit_Body(step); + *x = v.getX(); + *y = v.getY(); + *z = v.getZ(); + } +} + +void rc_computeActorGyroImpulseWorld(int actor, double dt, double* x, double* y, double* z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + *x = 0; + *y = 0; + *z = 0; + + if(rc_actor[actor].physics.rigid_body) + { + btVector3 v = rc_actor[actor].physics.rigid_body->getPointer()->computeGyroscopicImpulseImplicit_World(dt); + *x = v.getX(); + *y = v.getY(); + *z = v.getZ(); + } +} + +void rc_getActorLocalInertia(int actor, double* x, double* y, double* z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + *x = 0; + *y = 0; + *z = 0; + + if(rc_actor[actor].physics.rigid_body) + { + btVector3 v = rc_actor[actor].physics.rigid_body->getPointer()->getLocalInertia(); + *x = v.getX(); + *y = v.getY(); + *z = v.getZ(); + } +} + +int getConstraintId() +{ + int cid = -1; + for(int i = 0; i < rc_physics3D.constraints.size(); i++) + { + if(rc_physics3D.constraints[i].type <= 0) + { + cid = i; + break; + } + } + + if(cid >= 0) + return cid; + + rc_constraint_obj constraint; + cid = rc_physics3D.constraints.size(); + rc_physics3D.constraints.push_back(constraint); + return cid; +} + +int rc_createPointConstraint(int actorA, double pxA, double pyA, double pzA) +{ + if(actorA < 0 || actorA >= rc_actor.size()) + return -1; + + if(rc_actor[actorA].physics.rigid_body) + { + rc_constraint_obj p2p; + p2p.type = RC_CONSTRAINT_TYPE_POINT; + btVector3 pvtA(pxA, pyA, pzA); + p2p.constraint = new btPoint2PointConstraint(*rc_actor[actorA].physics.rigid_body->getPointer(), pvtA); + rc_physics3D.world->getPointer()->addConstraint(p2p.constraint); + int constraint_id = getConstraintId(); + rc_physics3D.constraints[constraint_id] = p2p; + return constraint_id; + } + + return -1; +} + +int rc_createPointConstraintEx(int actorA, int actorB, double pxA, double pyA, double pzA, double pxB, double pyB, double pzB) +{ + if(actorA < 0 || actorA >= rc_actor.size() || actorB < 0 || actorB >= rc_actor.size()) + return -1; + + if(rc_actor[actorA].physics.rigid_body && rc_actor[actorB].physics.rigid_body) + { + rc_constraint_obj p2p; + p2p.type = RC_CONSTRAINT_TYPE_POINT; + btVector3 pvtA(pxA, pyA, pzA); + btVector3 pvtB(pxB, pyB, pzB); + p2p.constraint = new btPoint2PointConstraint(*rc_actor[actorA].physics.rigid_body->getPointer(), *rc_actor[actorB].physics.rigid_body->getPointer(), + pvtA, pvtB); + rc_physics3D.world->getPointer()->addConstraint(p2p.constraint); + int constraint_id = getConstraintId(); + rc_physics3D.constraints[constraint_id] = p2p; + return constraint_id; + } +} + +void rc_setConstraintPivotA(int constraint_id, double x, double y, double z) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_POINT) + { + btPoint2PointConstraint* c = (btPoint2PointConstraint*)rc_physics3D.constraints[constraint_id].constraint; + c->setPivotA(btVector3(x, y, z)); + } +} + +void rc_setConstraintPivotB(int constraint_id, double x, double y, double z) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_POINT) + { + btPoint2PointConstraint* c = (btPoint2PointConstraint*)rc_physics3D.constraints[constraint_id].constraint; + c->setPivotB(btVector3(x, y, z)); + } +} + +int rc_createHingeConstraint(int actorA, double pxA, double pyA, double pzA, double axA, double ayA, double azA) +{ + if(actorA < 0 || actorA >= rc_actor.size()) + return -1; + + if(rc_actor[actorA].physics.rigid_body) + { + rc_constraint_obj hinge; + hinge.type = RC_CONSTRAINT_TYPE_HINGE; + btVector3 pvtA(pxA, pyA, pzA); + btVector3 axis(axA, ayA, azA); + hinge.constraint = new btHingeConstraint(*rc_actor[actorA].physics.rigid_body->getPointer(), pvtA, axis); + rc_physics3D.world->getPointer()->addConstraint(hinge.constraint); + int constraint_id = getConstraintId(); + rc_physics3D.constraints[constraint_id] = hinge; + return constraint_id; + } +} + + +int rc_createHingeConstraintEx(int actorA, int actorB, double pxA, double pyA, double pzA, double pxB, double pyB, double pzB, + double axA, double ayA, double azA, double axB, double ayB, double azB) +{ + if(actorA < 0 || actorA >= rc_actor.size() || actorB < 0 || actorB >= rc_actor.size()) + return -1; + + if(rc_actor[actorA].physics.rigid_body && rc_actor[actorB].physics.rigid_body) + { + rc_constraint_obj hinge; + hinge.type = RC_CONSTRAINT_TYPE_HINGE; + + btVector3 pvtA(pxA, pyA, pzA); + btVector3 axisA(axA, ayA, azA); + + btVector3 pvtB(pxB, pyB, pzB); + btVector3 axisB(axB, ayB, azB); + + hinge.constraint = new btHingeConstraint(*rc_actor[actorA].physics.rigid_body->getPointer(), *rc_actor[actorB].physics.rigid_body->getPointer(), pvtA, pvtB, axisA, axisB); + rc_physics3D.world->getPointer()->addConstraint(hinge.constraint); + int constraint_id = getConstraintId(); + rc_physics3D.constraints[constraint_id] = hinge; + return constraint_id; + } +} + +int rc_createSlideConstraint(int actorA, int frameInB_matrix, bool useLinearReferenceFrameA) +{ + if(actorA < 0 || actorA >= rc_actor.size()) + return -1; + + if(rc_actor[actorA].physics.rigid_body) + { + rc_constraint_obj slide; + slide.type = RC_CONSTRAINT_TYPE_SLIDER; + + irr::core::matrix4 irr_mat = rc_convertToIrrMatrix(frameInB_matrix); + btTransform frameInB; + btTransformFromIrrlichtMatrix(irr_mat, frameInB); + + slide.constraint = new btSliderConstraint(*rc_actor[actorA].physics.rigid_body->getPointer(), frameInB, useLinearReferenceFrameA); + rc_physics3D.world->getPointer()->addConstraint(slide.constraint); + int constraint_id = getConstraintId(); + rc_physics3D.constraints[constraint_id] = slide; + return constraint_id; + } +} + +int rc_createSlideConstraintEx(int actorA, int actorB, int frameInA_matrix, int frameInB_matrix, bool useLinearReferenceFrameA) +{ + if(actorA < 0 || actorA >= rc_actor.size() || actorB < 0 || actorB >= rc_actor.size()) + return -1; + + if(rc_actor[actorA].physics.rigid_body && rc_actor[actorB].physics.rigid_body) + { + rc_constraint_obj slide; + slide.type = RC_CONSTRAINT_TYPE_SLIDER; + + irr::core::matrix4 irr_matA = rc_convertToIrrMatrix(frameInA_matrix); + irr::core::matrix4 irr_matB = rc_convertToIrrMatrix(frameInB_matrix); + + btTransform frameInA, frameInB; + btTransformFromIrrlichtMatrix(irr_matA, frameInA); + btTransformFromIrrlichtMatrix(irr_matB, frameInB); + + slide.constraint = new btSliderConstraint(*rc_actor[actorA].physics.rigid_body->getPointer(), *rc_actor[actorB].physics.rigid_body->getPointer(), frameInA, frameInB, useLinearReferenceFrameA); + rc_physics3D.world->getPointer()->addConstraint(slide.constraint); + int constraint_id = getConstraintId(); + rc_physics3D.constraints[constraint_id] = slide; + return constraint_id; + } +} + + +int rc_createConeConstraint(int actorA, int rbAFrame_matrix) +{ + if(actorA < 0 || actorA >= rc_actor.size()) + return -1; + + if(rc_actor[actorA].physics.rigid_body) + { + rc_constraint_obj cone; + cone.type = RC_CONSTRAINT_TYPE_CONE; + + irr::core::matrix4 irr_matA = rc_convertToIrrMatrix(rbAFrame_matrix); + + btTransform rba; + btTransformFromIrrlichtMatrix(irr_matA, rba); + + cone.constraint = new btConeTwistConstraint(*rc_actor[actorA].physics.rigid_body->getPointer(), rba); + rc_physics3D.world->getPointer()->addConstraint(cone.constraint); + int constraint_id = getConstraintId(); + rc_physics3D.constraints[constraint_id] = cone; + return constraint_id; + } +} + +int rc_createConeConstraintEx(int actorA, int actorB, int rbAFrame_matrix, int rbBFrame_matrix) +{ + if(actorA < 0 || actorA >= rc_actor.size() || actorB < 0 || actorB >= rc_actor.size()) + return -1; + + if(rc_actor[actorA].physics.rigid_body && rc_actor[actorB].physics.rigid_body) + { + rc_constraint_obj cone; + cone.type = RC_CONSTRAINT_TYPE_CONE; + + irr::core::matrix4 irr_matA = rc_convertToIrrMatrix(rbAFrame_matrix); + irr::core::matrix4 irr_matB = rc_convertToIrrMatrix(rbBFrame_matrix); + + btTransform rba, rbb; + btTransformFromIrrlichtMatrix(irr_matA, rba); + btTransformFromIrrlichtMatrix(irr_matB, rbb); + + cone.constraint = new btConeTwistConstraint(*rc_actor[actorA].physics.rigid_body->getPointer(), *rc_actor[actorB].physics.rigid_body->getPointer(), rba, rbb); + rc_physics3D.world->getPointer()->addConstraint(cone.constraint); + int constraint_id = getConstraintId(); + rc_physics3D.constraints[constraint_id] = cone; + return constraint_id; + } +} + +void rc_deleteConstraint(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].constraint) + { + rc_physics3D.world->getPointer()->removeConstraint(rc_physics3D.constraints[constraint_id].constraint); + rc_physics3D.constraints[constraint_id].constraint = NULL; + rc_physics3D.constraints[constraint_id].type = 0; + } +} + + +void rc_getConstraintFrameOffsetA(int constraint_id, double* x, double* y, double* z, double* rx, double* ry, double* rz) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + *x = 0; + *y = 0; + *z = 0; + + *rx = 0; + *ry = 0; + *rz = 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_HINGE) + { + btHingeConstraint* hinge = (btHingeConstraint*)rc_physics3D.constraints[constraint_id].constraint; + //btTransform t = hinge->getFrameOffsetA(); + //t.getBasis().getEulerZYX() + *x = hinge->getFrameOffsetA().getOrigin().getX(); + *y = hinge->getFrameOffsetA().getOrigin().getY(); + *z = hinge->getFrameOffsetA().getOrigin().getZ(); + + btScalar yaw, pitch, roll; + hinge->getFrameOffsetA().getBasis().getEulerZYX(yaw, pitch, roll); + *rx = roll; + *ry = pitch; + *rz = yaw; + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*)rc_physics3D.constraints[constraint_id].constraint; + *x = cone->getFrameOffsetA().getOrigin().getX(); + *y = cone->getFrameOffsetA().getOrigin().getY(); + *z = cone->getFrameOffsetA().getOrigin().getZ(); + + btScalar yaw, pitch, roll; + cone->getFrameOffsetA().getBasis().getEulerZYX(yaw, pitch, roll); + *rx = roll; + *ry = pitch; + *rz = yaw; + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*)rc_physics3D.constraints[constraint_id].constraint; + *x = slide->getFrameOffsetA().getOrigin().getX(); + *y = slide->getFrameOffsetA().getOrigin().getY(); + *z = slide->getFrameOffsetA().getOrigin().getZ(); + + btScalar yaw, pitch, roll; + slide->getFrameOffsetA().getBasis().getEulerZYX(yaw, pitch, roll); + *rx = roll; + *ry = pitch; + *rz = yaw; + } +} + +void rc_getConstraintFrameOffsetB(int constraint_id, double* x, double* y, double* z, double* rx, double* ry, double* rz) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + *x = 0; + *y = 0; + *z = 0; + + *rx = 0; + *ry = 0; + *rz = 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_HINGE) + { + btHingeConstraint* hinge = (btHingeConstraint*)rc_physics3D.constraints[constraint_id].constraint; + *x = hinge->getFrameOffsetB().getOrigin().getX(); + *y = hinge->getFrameOffsetB().getOrigin().getY(); btTransform: + *z = hinge->getFrameOffsetB().getOrigin().getZ(); + + btScalar yaw, pitch, roll; + hinge->getFrameOffsetB().getBasis().getEulerZYX(yaw, pitch, roll); + *rx = roll; + *ry = pitch; + *rz = yaw; + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*)rc_physics3D.constraints[constraint_id].constraint; + *x = cone->getFrameOffsetB().getOrigin().getX(); + *y = cone->getFrameOffsetB().getOrigin().getY(); + *z = cone->getFrameOffsetB().getOrigin().getZ(); + + btScalar yaw, pitch, roll; + cone->getFrameOffsetB().getBasis().getEulerZYX(yaw, pitch, roll); + *rx = roll; + *ry = pitch; + *rz = yaw; + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*)rc_physics3D.constraints[constraint_id].constraint; + *x = slide->getFrameOffsetB().getOrigin().getX(); + *y = slide->getFrameOffsetB().getOrigin().getY(); + *z = slide->getFrameOffsetB().getOrigin().getZ(); + + btScalar yaw, pitch, roll; + slide->getFrameOffsetB().getBasis().getEulerZYX(yaw, pitch, roll); + *rx = roll; + *ry = pitch; + *rz = yaw; + } +} + + +void rc_useConstraintFrameOffset(int constraint_id, bool flag) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_HINGE) + { + btHingeConstraint* hinge = (btHingeConstraint*) rc_physics3D.constraints[constraint_id].constraint; + hinge->setUseFrameOffset(flag); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + slide->setUseFrameOffset(flag); + } +} + +//btHingeConstraint::getHingeAngle() +double rc_getHingeAngle(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_HINGE) + { + btHingeConstraint* hinge = (btHingeConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return hinge->getHingeAngle(); + } + + return 0; +} + +double rc_getHingeAngleEx(int constraint_id, int t_matrixA, int t_matrixB) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_HINGE) + { + btHingeConstraint* hinge = (btHingeConstraint*) rc_physics3D.constraints[constraint_id].constraint; + btTransform transformA, transformB; + irr::core::matrix4 irr_matA = rc_convertToIrrMatrix(t_matrixA); + irr::core::matrix4 irr_matB = rc_convertToIrrMatrix(t_matrixB); + btTransformFromIrrlichtMatrix(irr_matA, transformA); + btTransformFromIrrlichtMatrix(irr_matB, transformB); + return hinge->getHingeAngle(transformA, transformB); + } + + return 0; +} + +//btHingeConstraint::getBreakingImpulseThreshold() +double rc_getConstraintBreakingImpulseThreshold(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_HINGE) + { + btHingeConstraint* hinge = (btHingeConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return hinge->getBreakingImpulseThreshold(); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_POINT) + { + btPoint2PointConstraint* p2p = (btPoint2PointConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return p2p->getBreakingImpulseThreshold(); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return cone->getBreakingImpulseThreshold(); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getBreakingImpulseThreshold(); + } + + return 0; +} + +//btHingeConstraint::getAFrame() +int rc_getConstraintAFrame(int constraint_id, int mA) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return -1; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_HINGE) + { + btHingeConstraint* hinge = (btHingeConstraint*) rc_physics3D.constraints[constraint_id].constraint; + btTransform aframe = hinge->getAFrame(); + irr::core::matrix4 irr_mat; + btTransformToIrrlichtMatrix(aframe, irr_mat); + mA = rc_convertFromIrrMatrix(irr_mat, mA); + return mA; + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + btTransform aframe = cone->getAFrame(); + irr::core::matrix4 irr_mat; + btTransformToIrrlichtMatrix(aframe, irr_mat); + mA = rc_convertFromIrrMatrix(irr_mat, mA); + return mA; + } + + return -1; +} + +//btHingeConstraint::getBFrame() +int rc_getConstraintBFrame(int constraint_id, int mA) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return -1; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_HINGE) + { + btHingeConstraint* hinge = (btHingeConstraint*) rc_physics3D.constraints[constraint_id].constraint; + btTransform bframe = hinge->getBFrame(); + irr::core::matrix4 irr_mat; + btTransformToIrrlichtMatrix(bframe, irr_mat); + mA = rc_convertFromIrrMatrix(irr_mat, mA); + return mA; + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + btTransform bframe = cone->getBFrame(); + irr::core::matrix4 irr_mat; + btTransformToIrrlichtMatrix(bframe, irr_mat); + mA = rc_convertFromIrrMatrix(irr_mat, mA); + return mA; + } + + return -1; +} + +//btHingeConstraint::setAxis() +void rc_setConstraintAxis(int constraint_id, double x, double y, double z) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_HINGE) + { + btHingeConstraint* hinge = (btHingeConstraint*) rc_physics3D.constraints[constraint_id].constraint; + btVector3 axis(x,y,z); + hinge->setAxis(axis); + } +} + +//btHingeConstraint::setBreakingImpulseThreshold() +void rc_setConstraintBreakingImpulseThreshold(int constraint_id, double threshold) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_HINGE) + { + btHingeConstraint* hinge = (btHingeConstraint*) rc_physics3D.constraints[constraint_id].constraint; + hinge->setBreakingImpulseThreshold(threshold); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_POINT) + { + btPoint2PointConstraint* p2p = (btPoint2PointConstraint*) rc_physics3D.constraints[constraint_id].constraint; + p2p->setBreakingImpulseThreshold(threshold); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + cone->setBreakingImpulseThreshold(threshold); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + slide->setBreakingImpulseThreshold(threshold); + } +} + +//btHingeConstraint::setFrames() +void rc_setConstraintFrames(int constraint_id, int frameA_matrix, int frameB_matrix) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_HINGE) + { + btHingeConstraint* hinge = (btHingeConstraint*) rc_physics3D.constraints[constraint_id].constraint; + btTransform frameA, frameB; + irr::core::matrix4 irr_matA, irr_matB; + irr_matA = rc_convertToIrrMatrix(frameA_matrix); + irr_matB = rc_convertToIrrMatrix(frameB_matrix); + btTransformFromIrrlichtMatrix(irr_matA, frameA); + btTransformFromIrrlichtMatrix(irr_matB, frameB); + hinge->setFrames(frameA, frameB); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + btTransform frameA, frameB; + irr::core::matrix4 irr_matA, irr_matB; + irr_matA = rc_convertToIrrMatrix(frameA_matrix); + irr_matB = rc_convertToIrrMatrix(frameB_matrix); + btTransformFromIrrlichtMatrix(irr_matA, frameA); + btTransformFromIrrlichtMatrix(irr_matB, frameB); + cone->setFrames(frameA, frameB); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + btTransform frameA, frameB; + irr::core::matrix4 irr_matA, irr_matB; + irr_matA = rc_convertToIrrMatrix(frameA_matrix); + irr_matB = rc_convertToIrrMatrix(frameB_matrix); + btTransformFromIrrlichtMatrix(irr_matA, frameA); + btTransformFromIrrlichtMatrix(irr_matB, frameB); + slide->setFrames(frameA, frameB); + } +} + +//btHingeConstraint::setLimit(); +void rc_setHingeLimit(int constraint_id, double low, double high, double softness, double bias_factor, double relaxation_factor) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_HINGE) + { + btHingeConstraint* hinge = (btHingeConstraint*) rc_physics3D.constraints[constraint_id].constraint; + hinge->setLimit(low, high, softness, bias_factor, relaxation_factor); + } +} + +void rc_setConeLimit(int constraint_id, double swingSpan1, double swingSpan2, double twistSpan, double softness, double bias_factor, double relaxation_factor) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + cone->setLimit(swingSpan1, swingSpan2, twistSpan, softness, bias_factor, relaxation_factor); + } +} + +//btHingeConstraint::getLimitBiasFactor() +double rc_getConstraintLimitBiasFactor(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_HINGE) + { + btHingeConstraint* hinge = (btHingeConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return hinge->getLimitBiasFactor(); + } + + return 0; +} + +//btHingeConstraint::getLimitRelaxationFactor() +double rc_getLimitRelaxationFactor(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_HINGE) + { + btHingeConstraint* hinge = (btHingeConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return hinge->getLimitRelaxationFactor(); + } + + return 0; +} + +//btHingeConstraint::getLimitSign() +double rc_getConstraintLimitSign(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_HINGE) + { + btHingeConstraint* hinge = (btHingeConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return hinge->getLimitSign(); + } + + return 0; +} + +//btHingeConstraint::getSolveLimit() +int rc_getHingeSolveLimit(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_HINGE) + { + btHingeConstraint* hinge = (btHingeConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return hinge->getSolveLimit(); + } + + return 0; +} + +//btHingeConstraint::setUseReferenceFrameA() +void rc_useHingeReferenceFrameA(int constraint_id, bool flag) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_HINGE) + { + btHingeConstraint* hinge = (btHingeConstraint*) rc_physics3D.constraints[constraint_id].constraint; + hinge->setUseReferenceFrameA(flag); + } +} + + +// +//btPoint2PointConstraint::getAppliedImpulse() +double rc_getConstraintAppliedImpulse(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_HINGE) + { + btHingeConstraint* hinge = (btHingeConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return hinge->getAppliedImpulse(); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_POINT) + { + btPoint2PointConstraint* p2p = (btPoint2PointConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return p2p->getAppliedImpulse(); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return cone->getAppliedImpulse(); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getAppliedImpulse(); + } + + return 0; +} + + +//btPoint2PointConstraint::getFixedBody() +int rc_getConstraintFixedActor(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return -1; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_HINGE) + { + btHingeConstraint* hinge = (btHingeConstraint*) rc_physics3D.constraints[constraint_id].constraint; + btRigidBody body = hinge->getFixedBody(); + SCollisionObjectIdentification* identification = (SCollisionObjectIdentification*)body.getUserPointer(); + return identification->getId(); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_POINT) + { + btPoint2PointConstraint* p2p = (btPoint2PointConstraint*) rc_physics3D.constraints[constraint_id].constraint; + btRigidBody body = p2p->getFixedBody(); + SCollisionObjectIdentification* identification = (SCollisionObjectIdentification*)body.getUserPointer(); + return identification->getId(); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + btRigidBody body = cone->getFixedBody(); + SCollisionObjectIdentification* identification = (SCollisionObjectIdentification*)body.getUserPointer(); + return identification->getId(); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + btRigidBody body = slide->getFixedBody(); + SCollisionObjectIdentification* identification = (SCollisionObjectIdentification*)body.getUserPointer(); + return identification->getId(); + } + + return -1; +} + +//btPoint2PointConstraint::getPivotInA() +void rc_getConstraintPivotA(int constraint_id, double* x, double* y, double* z) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + *x = 0; + *y = 0; + *z = 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_POINT) + { + btPoint2PointConstraint* p2p = (btPoint2PointConstraint*) rc_physics3D.constraints[constraint_id].constraint; + btVector3 pivot = p2p->getPivotInA(); + *x = pivot.getX(); + *y = pivot.getY(); + *z = pivot.getZ(); + } +} + +//btPoint2PointConstraint::getPivotInB() +void rc_getConstraintPivotB(int constraint_id, double* x, double* y, double* z) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + *x = 0; + *y = 0; + *z = 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_POINT) + { + btPoint2PointConstraint* p2p = (btPoint2PointConstraint*) rc_physics3D.constraints[constraint_id].constraint; + btVector3 pivot = p2p->getPivotInB(); + *x = pivot.getX(); + *y = pivot.getY(); + *z = pivot.getZ(); + } +} + +//btPoint2PointConstraint::getRigidBodyA() +int rc_getConstraintActorA(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return -1; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_HINGE) + { + btHingeConstraint* hinge = (btHingeConstraint*) rc_physics3D.constraints[constraint_id].constraint; + btRigidBody body = hinge->getRigidBodyA(); + SCollisionObjectIdentification* identification = (SCollisionObjectIdentification*)body.getUserPointer(); + return identification->getId(); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_POINT) + { + btPoint2PointConstraint* p2p = (btPoint2PointConstraint*) rc_physics3D.constraints[constraint_id].constraint; + btRigidBody body = p2p->getRigidBodyA(); + SCollisionObjectIdentification* identification = (SCollisionObjectIdentification*)body.getUserPointer(); + return identification->getId(); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + btRigidBody body = cone->getRigidBodyA(); + SCollisionObjectIdentification* identification = (SCollisionObjectIdentification*)body.getUserPointer(); + return identification->getId(); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + btRigidBody body = slide->getRigidBodyA(); + SCollisionObjectIdentification* identification = (SCollisionObjectIdentification*)body.getUserPointer(); + return identification->getId(); + } + + return -1; +} + +//btPoint2PointConstraint::getRigidBodyB() +int rc_getConstraintActorB(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return -1; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_HINGE) + { + btHingeConstraint* hinge = (btHingeConstraint*) rc_physics3D.constraints[constraint_id].constraint; + btRigidBody body = hinge->getRigidBodyB(); + SCollisionObjectIdentification* identification = (SCollisionObjectIdentification*)body.getUserPointer(); + return identification->getId(); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_POINT) + { + btPoint2PointConstraint* p2p = (btPoint2PointConstraint*) rc_physics3D.constraints[constraint_id].constraint; + btRigidBody body = p2p->getRigidBodyB(); + SCollisionObjectIdentification* identification = (SCollisionObjectIdentification*)body.getUserPointer(); + return identification->getId(); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + btRigidBody body = cone->getRigidBodyB(); + SCollisionObjectIdentification* identification = (SCollisionObjectIdentification*)body.getUserPointer(); + return identification->getId(); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + btRigidBody body = slide->getRigidBodyB(); + SCollisionObjectIdentification* identification = (SCollisionObjectIdentification*)body.getUserPointer(); + return identification->getId(); + } + + return -1; +} + +//btPoint2PointConstraint::setOverrideNumSolverIterations() +void rc_setConstraintSolverIterations(int constraint_id, int num) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_HINGE) + { + btHingeConstraint* hinge = (btHingeConstraint*) rc_physics3D.constraints[constraint_id].constraint; + hinge->setOverrideNumSolverIterations(num); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_POINT) + { + btPoint2PointConstraint* p2p = (btPoint2PointConstraint*) rc_physics3D.constraints[constraint_id].constraint; + p2p->setOverrideNumSolverIterations(num); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + cone->setOverrideNumSolverIterations(num); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + slide->setOverrideNumSolverIterations(num); + } +} + +// +//btConeTwistConstraint::getBiasFactor() +double rc_getConstraintBiasFactor(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return cone->getBiasFactor(); + } + + return 0; +} + +//btConeTwistConstraint::getDamping() +double rc_getConstraintDamping(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return cone->getDamping(); + } + + return 0; +} + +//btConeTwistConstraint::getFixThresh() +double rc_getConstraintFixThresh(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return cone->getFixThresh(); + } + + return 0; +} + +//btConeTwistConstraint::getLimit() +double rc_getConstraintLimit(int constraint_id, int limit_index) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return cone->getLimit(limit_index); + } + + return 0; +} + +//btConeTwistConstraint::getLimitSoftness() +double rc_getConstraintLimitSoftness(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_HINGE) + { + btHingeConstraint* hinge = (btHingeConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return hinge->getLimitSoftness(); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return cone->getLimitSoftness(); + } + + return 0; +} + +//btConeTwistConstraint::getOverrideNumSolverIterations() +double rc_getConstraintSolverIterations(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_HINGE) + { + btHingeConstraint* hinge = (btHingeConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return hinge->getOverrideNumSolverIterations(); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_POINT) + { + btPoint2PointConstraint* p2p = (btPoint2PointConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return p2p->getOverrideNumSolverIterations(); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return cone->getOverrideNumSolverIterations(); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getOverrideNumSolverIterations(); + } + + return 0; +} + +//btConeTwistConstraint::GetPointForAngle() +void rc_getConstraintAnglePoint(int constraint_id, double angle, double len, double* x, double* y, double* z) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + btVector3 v = cone->GetPointForAngle( radians(angle), len); + *x = v.getX(); + *y = v.getY(); + *z = v.getZ(); + } +} + +//btConeTwistConstraint::getAngularOnly() +bool rc_getConstraintAngularOnly(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return false; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_HINGE) + { + btHingeConstraint* hinge = (btHingeConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return hinge->getAngularOnly(); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return cone->getAngularOnly(); + } + + return false; +} + +//btConeTwistConstraint::getSolveSwingLimit() +int rc_getConstraintSolveSwingLimit(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return cone->getSolveSwingLimit(); + } + + return 0; +} + +//btConeTwistConstraint::getSolveTwistLimit() +int rc_getConstraintSolveTwistLimit(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return cone->getSolveTwistLimit(); + } + + return 0; +} + +//btHingeConstraint::getSolveLimit() +int rc_getConstraintSolveLimit(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_HINGE) + { + btHingeConstraint* hinge = (btHingeConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return hinge->getSolveLimit(); + } + + return 0; +} + +//btConeTwistConstraint::getSwingSpan1() +double rc_getConstraintSwingSpan1(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return cone->getSwingSpan1(); + } + + return 0; +} + +//btConeTwistConstraint::getSwingSpan2() +int rc_getConstraintSwingSpan2(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return cone->getSwingSpan2(); + } + + return 0; +} + +//btConeTwistConstraint::getTwistAngle() +double rc_getConstraintTwistAngle(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return cone->getTwistAngle(); + } + + return 0; +} + + +//btConeTwistConstraint::getTwistLimitSign() +double rc_getConstraintTwistLimitSign(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return cone->getTwistLimitSign(); + } + + return 0; +} + +//btConeTwistConstraint::getTwistSpan() +int rc_getConstraintTwistSpan(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return cone->getTwistSpan(); + } + + return 0; +} + +//btConeTwistConstraint::setAngularOnly() +void rc_setConstraintAngularOnly(int constraint_id, bool flag) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_HINGE) + { + btHingeConstraint* hinge = (btHingeConstraint*) rc_physics3D.constraints[constraint_id].constraint; + hinge->setAngularOnly(flag); + } + else if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + cone->setAngularOnly(flag); + } +} + +//btConeTwistConstraint::setDamping() +void rc_setConstraintDamping(int constraint_id, double damping) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + cone->setDamping(damping); + } +} + +//btConeTwistConstraint::setFixThresh() +void rc_setConstraintFixThresh(int constraint_id, double fixThresh) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_CONE) + { + btConeTwistConstraint* cone = (btConeTwistConstraint*) rc_physics3D.constraints[constraint_id].constraint; + cone->setFixThresh(fixThresh); + } +} + + +//btSliderConstraint::getAncorInA() +void rc_getConstraintAnchorA(int constraint_id, double* x, double* y, double* z) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + *x = 0; + *y = 0; + *z = 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + btVector3 v = slide->getAncorInA(); + *x = v.getX(); + *y = v.getY(); + *z = v.getZ(); + } +} + +//btSliderConstraint::getAncorInB() +void rc_getConstraintAnchorB(int constraint_id, double* x, double* y, double* z) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + *x = 0; + *y = 0; + *z = 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + btVector3 v = slide->getAncorInB(); + *x = v.getX(); + *y = v.getY(); + *z = v.getZ(); + } +} + +//btSliderConstraint::getAngDepth() +double rc_getConstraintAngDepth(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getAngDepth(); + } + + return 0; +} + +//btSliderConstraint::getAngularPos() +double rc_getConstraintAngularPos(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getAngularPos(); + } + + return 0; +} + +//btSliderConstraint::getDampingDirAng() +double rc_getConstraintDampingDirAng(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getDampingDirAng(); + } + + return 0; +} + +//btSliderConstraint::getDampingDirLin() +double rc_getConstraintDampingDirLin(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getDampingDirLin(); + } + + return 0; +} + +//btSliderConstraint::getDampingLimAng() +double rc_getConstraintDampingLimAng(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getDampingLimAng(); + } + + return 0; +} + +//btSliderConstraint::getDampingLimLin() +double rc_getConstraintDampingLimLin(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getDampingLimLin(); + } + + return 0; +} + +//btSliderConstraint::getDampingOrthoAng() +double rc_getConstraintDampingOrthoAng(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getDampingOrthoAng(); + } + + return 0; +} + +//btSliderConstraint::getDampingOrthoLin() +double rc_getConstraintDampingOrthoLin(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getDampingOrthoLin(); + } + + return 0; +} + +//btSliderConstraint::getLinearPos() +double rc_getConstraintLinearPos(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getLinearPos(); + } + + return 0; +} + +//btSliderConstraint::getLinDepth() +double rc_getConstraintLinDepth(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getLinDepth(); + } + + return 0; +} + +//btSliderConstraint::getLowerAngLimit() +double rc_getConstraintLowerAngLimit(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getLowerAngLimit(); + } + + return 0; +} + +//btSliderConstraint::getLowerLinLimit() +double rc_getConstraintLowerLinLimit(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getLowerLinLimit(); + } + + return 0; +} + +//btSliderConstraint::getRestitutionDirAng() +double rc_getConstraintRestitutionDirAng(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getRestitutionDirAng(); + } + + return 0; +} + +//btSliderConstraint::getRestitutionDirLin() +double rc_getConstraintRestitutionDirLin(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getRestitutionDirLin(); + } + + return 0; +} + +//btSliderConstraint::getRestitutionLimAng() +double rc_getConstraintRestitutionLimAng(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getRestitutionLimAng(); + } + + return 0; +} + +//btSliderConstraint::getRestitutionLimLin() +double rc_getConstraintRestitutionLimLin(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getRestitutionLimLin(); + } + + return 0; +} + +//btSliderConstraint::getRestitutionOrthoAng() +double rc_getConstraintRestitutionOrthoAng(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getRestitutionOrthoAng(); + } + + return 0; +} + +//btSliderConstraint::getRestitutionOrthoLin() +double rc_getConstraintRestitutionOrthoLin(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getRestitutionOrthoLin(); + } + + return 0; +} + +//btSliderConstraint::getSoftnessDirAng() +double rc_getConstraintSoftnessDirAng(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getSoftnessDirAng(); + } + + return 0; +} + +//btSliderConstraint::getSoftnessDirLin() +double rc_getConstraintSoftnessDirLin(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getSoftnessDirLin(); + } + + return 0; +} + +//btSliderConstraint::getSoftnessLimAng() +double rc_getConstraintSoftnessLimAng(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getSoftnessLimAng(); + } + + return 0; +} + +//btSliderConstraint::getSoftnessLimLin() +double rc_getConstraintSoftnessLimLin(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getSoftnessLimLin(); + } + + return 0; +} + +//btSliderConstraint::getSoftnessOrthoAng() +double rc_getConstraintSoftnessOrthoAng(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getSoftnessOrthoAng(); + } + + return 0; +} + +//btSliderConstraint::getSoftnessOrthoLin() +double rc_getConstraintSoftnessOrthoLin(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getSoftnessOrthoLin(); + } + + return 0; +} + +//btSliderConstraint::getSolveAngLimit() +bool rc_getConstraintSolveAngLimit(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getSolveAngLimit(); + } + + return 0; +} + +//btSliderConstraint::getSolveLinLimit() +bool rc_getConstraintSolveLinLimit(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getSolveLinLimit(); + } + + return 0; +} + +//btSliderConstraint::getUpperAngLimit() +double rc_getConstraintUpperAngLimit(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getUpperAngLimit(); + } + + return 0; +} + +//btSliderConstraint::getUpperLinLimit() +double rc_getConstraintUpperLinLimit(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getUpperLinLimit(); + } + + return 0; +} + +//btSliderConstraint::getUseFrameOffset() +bool rc_getConstraintUseFrameOffset(int constraint_id) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return 0; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + return slide->getUseFrameOffset(); + } + + return 0; +} + +//btSliderConstraint::setDampingDirAng() +void rc_setConstraintDampingDirAng(int constraint_id, double n) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + slide->setDampingDirAng(n); + } +} + +//btSliderConstraint::setDampingDirLin() +void rc_setConstraintDampingDirLin(int constraint_id, double n) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + slide->setDampingDirLin(n); + } +} + +//btSliderConstraint::setDampingLimAng() +void rc_setConstraintDampingLimAng(int constraint_id, double n) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + slide->setDampingLimAng(n); + } +} + +//btSliderConstraint::setDampingLimLin() +void rc_setConstraintDampingLimLin(int constraint_id, double n) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + slide->setDampingLimLin(n); + } +} + +//btSliderConstraint::setDampingOrthoAng() +void rc_setConstraintDampingOrthoAng(int constraint_id, double n) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + slide->setDampingOrthoAng(n); + } +} + +//btSliderConstraint::setDampingOrthoLin() +void rc_setConstraintDampingOrthoLin(int constraint_id, double n) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + slide->setDampingOrthoLin(n); + } +} + +//btSliderConstraint::setLowerAngLimit() +void rc_setConstraintLowerAngLimit(int constraint_id, double n) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + slide->setLowerAngLimit(n); + } +} + +//btSliderConstraint::setLowerLinLimit() +void rc_setConstraintLowerLinLimit(int constraint_id, double n) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + slide->setLowerLinLimit(n); + } +} + +//btSliderConstraint::setRestitutionDirAng() +void rc_setConstraintRestitutionDirAng(int constraint_id, double n) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + slide->setRestitutionDirAng(n); + } +} + +//btSliderConstraint::setRestitutionDirLin() +void rc_setConstraintRestitutionDirLin(int constraint_id, double n) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + slide->setRestitutionDirLin(n); + } +} + +//btSliderConstraint::setRestitutionLimAng() +void rc_setConstraintRestitutionLimAng(int constraint_id, double n) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + slide->setRestitutionLimAng(n); + } +} + +//btSliderConstraint::setRestitutionLimLin() +void rc_setConstraintRestitutionLimLin(int constraint_id, double n) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + slide->setRestitutionLimLin(n); + } +} + +//btSliderConstraint::setRestitutionOrthoAng() +void rc_setConstraintRestitutionOrthoAng(int constraint_id, double n) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + slide->setRestitutionOrthoAng(n); + } +} + +//btSliderConstraint::setRestitutionOrthoLin() +void rc_setConstraintRestitutionOrthoLin(int constraint_id, double n) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + slide->setRestitutionOrthoLin(n); + } +} + +//btSliderConstraint::setSoftnessDirAng() +void rc_setConstraintSoftnessDirAng(int constraint_id, double n) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + slide->setSoftnessDirAng(n); + } +} + +//btSliderConstraint::setSoftnessDirLin() +void rc_setConstraintSoftnessDirLin(int constraint_id, double n) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + slide->setSoftnessDirLin(n); + } +} + +//btSliderConstraint::setSoftnessLimAng() +void rc_setConstraintSoftnessLimAng(int constraint_id, double n) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + slide->setSoftnessLimAng(n); + } +} + +//btSliderConstraint::setSoftnessLimLin() +void rc_setConstraintSoftnessLimLin(int constraint_id, double n) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + slide->setSoftnessLimLin(n); + } +} + +//btSliderConstraint::setSoftnessOrthoAng() +void rc_setConstraintSoftnessOrthoAng(int constraint_id, double n) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + slide->setSoftnessOrthoAng(n); + } +} + +//btSliderConstraint::setSoftnessOrthoLin() +void rc_setConstraintSoftnessOrthoLin(int constraint_id, double n) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + slide->setSoftnessOrthoLin(n); + } +} + +//btSliderConstraint::setUpperAngLimit() +void rc_setConstraintUpperAngLimit(int constraint_id, double n) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + slide->setUpperAngLimit(n); + } +} + +//btSliderConstraint::setUpperLinLimit() +void rc_setConstraintUpperLinLimit(int constraint_id, double n) +{ + if(constraint_id < 0 || constraint_id >= rc_physics3D.constraints.size()) + return; + + if(rc_physics3D.constraints[constraint_id].type == RC_CONSTRAINT_TYPE_SLIDER) + { + btSliderConstraint* slide = (btSliderConstraint*) rc_physics3D.constraints[constraint_id].constraint; + slide->setUpperLinLimit(n); + } +} + + + + + +void rc_setWorld3DDeltaTime(double dt) +{ + rc_physics3D.DeltaTime = dt; +} + +void rc_setWorld3DMaxSubSteps(double steps) +{ + rc_physics3D.maxSubSteps = steps; +} + +void rc_setWorld3DTimeStep(double ts) +{ + rc_physics3D.fixedTimeStep = ts; +} + + +//set actor animation [TODO] +void rc_setActorAnimation(int actor, int start_frame, int end_frame) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_MESH: + irr::scene::IAnimatedMeshSceneNode* node = (irr::scene::IAnimatedMeshSceneNode*)rc_actor[actor].mesh_node; + node->setFrameLoop((irr::s32)start_frame, (irr::s32)end_frame ); + break; + } +} + +void rc_setActorMD2Animation(int actor, int md2_animation) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_MESH: + irr::scene::IAnimatedMeshSceneNode* node = (irr::scene::IAnimatedMeshSceneNode*)rc_actor[actor].mesh_node; + node->setMD2Animation( (irr::scene::EMD2_ANIMATION_TYPE) md2_animation ); + break; + } +} + +void rc_setActorMD2AnimationByName(int actor, std::string animation_name) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_MESH: + irr::scene::IAnimatedMeshSceneNode* node = (irr::scene::IAnimatedMeshSceneNode*)rc_actor[actor].mesh_node; + node->setMD2Animation( animation_name.c_str() ); + break; + } +} + +int rc_getActorStartFrame(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_MESH: + irr::scene::IAnimatedMeshSceneNode* node = (irr::scene::IAnimatedMeshSceneNode*)rc_actor[actor].mesh_node; + return node->getStartFrame(); + } + + return 0; +} + +int rc_getActorEndFrame(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_MESH: + irr::scene::IAnimatedMeshSceneNode* node = (irr::scene::IAnimatedMeshSceneNode*)rc_actor[actor].mesh_node; + return node->getEndFrame(); + } + + return 0; +} + +int rc_getActorCurrentFrame(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_MESH: + irr::scene::IAnimatedMeshSceneNode* node = (irr::scene::IAnimatedMeshSceneNode*)rc_actor[actor].mesh_node; + return node->getFrameNr(); + } + + return 0; +} + +//set actor animation speed +void rc_setActorAnimationSpeed(int actor, double speed) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_MESH: + irr::scene::IAnimatedMeshSceneNode* node = (irr::scene::IAnimatedMeshSceneNode*)rc_actor[actor].mesh_node; + node->setAnimationSpeed( (irr::f32)speed ); + break; + } +} + +double rc_getActorAnimationSpeed(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_MESH: + irr::scene::IAnimatedMeshSceneNode* node = (irr::scene::IAnimatedMeshSceneNode*)rc_actor[actor].mesh_node; + return node->getAnimationSpeed(); + } + + return 0; +} + +//set actor animation speed +void rc_setActorAutoCulling(int actor, int cull_type) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + rc_actor[actor].mesh_node->setAutomaticCulling((irr::scene::E_CULLING_TYPE) cull_type); +} + +int rc_getActorAutoCulling(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + if(rc_actor[actor].mesh_node) + return rc_actor[actor].mesh_node->getAutomaticCulling(); + + return 0; +} + + +void rc_addActorShadow(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].shadow) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_TERRAIN: + case RC_NODE_TYPE_OTMESH: + case RC_NODE_TYPE_MESH: + irr::scene::IAnimatedMeshSceneNode* node = (irr::scene::IAnimatedMeshSceneNode*)rc_actor[actor].mesh_node; + rc_actor[actor].shadow = node->addShadowVolumeSceneNode(); + break; + } +} + +void rc_removeActorShadow(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(!rc_actor[actor].shadow) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_TERRAIN: + case RC_NODE_TYPE_OTMESH: + case RC_NODE_TYPE_MESH: + irr::scene::IAnimatedMeshSceneNode* node = (irr::scene::IAnimatedMeshSceneNode*)rc_actor[actor].mesh_node; + node->removeChild(rc_actor[actor].shadow); + break; + } +} + +bool rc_lightIsCastingShadow(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return false; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_LIGHT: + irr::scene::ILightSceneNode* node = (irr::scene::ILightSceneNode*)rc_actor[actor].mesh_node; + return node->getCastShadow(); + } + + return false; +} + +int rc_getLightType(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_LIGHT: + irr::scene::ILightSceneNode* node = (irr::scene::ILightSceneNode*)rc_actor[actor].mesh_node; + return (int)node->getLightType(); + } + + return 0; +} + +double rc_getLightRadius(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_LIGHT: + irr::scene::ILightSceneNode* node = (irr::scene::ILightSceneNode*)rc_actor[actor].mesh_node; + return node->getRadius(); + } + + return 0; +} + +void rc_setLightType(int actor, int light_type) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_LIGHT: + irr::scene::ILightSceneNode* node = (irr::scene::ILightSceneNode*)rc_actor[actor].mesh_node; + node->setLightType((irr::video::E_LIGHT_TYPE)light_type); + } +} + +void rc_setLightRadius(int actor, double radius) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_LIGHT: + irr::scene::ILightSceneNode* node = (irr::scene::ILightSceneNode*)rc_actor[actor].mesh_node; + node->setRadius(radius); + } +} + +void rc_setActorFrame(int actor, int frame) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_MESH: + irr::scene::IAnimatedMeshSceneNode* node = (irr::scene::IAnimatedMeshSceneNode*)rc_actor[actor].mesh_node; + node->setCurrentFrame(frame); + break; + } +} + +void rc_setLightShadowCast(int actor, bool flag) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_LIGHT: + irr::scene::ILightSceneNode* node = (irr::scene::ILightSceneNode*)rc_actor[actor].mesh_node; + node->enableCastShadow(flag); + } +} + +void rc_setLightAmbientColor(int actor, Uint32 color) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_LIGHT: + irr::scene::ILightSceneNode* node = (irr::scene::ILightSceneNode*)rc_actor[actor].mesh_node; + irr::video::SColor c; + c.set(color); + irr::video::SColorf cf(c); + irr::video::SLight light_data = node->getLightData(); + light_data.AmbientColor = cf; + node->setLightData(light_data); + } +} + +Uint32 rc_getLightAmbientColor(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_LIGHT: + irr::scene::ILightSceneNode* node = (irr::scene::ILightSceneNode*)rc_actor[actor].mesh_node; + irr::video::SLight light_data = node->getLightData(); + return light_data.AmbientColor.toSColor().color; + } + + return 0; +} + +void rc_setLightAttenuation(int actor, double l_constant, double l_linear, double l_quadratic) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_LIGHT: + irr::scene::ILightSceneNode* node = (irr::scene::ILightSceneNode*)rc_actor[actor].mesh_node; + irr::video::SLight light_data = node->getLightData(); + light_data.Attenuation.set(l_constant, l_linear, l_quadratic); + node->setLightData(light_data); + } +} + +void rc_getLightAttenuation(int actor, double* l_constant, double* l_linear, double* l_quadratic) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + *l_constant = 0; + *l_linear = 0; + *l_quadratic = 0; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_LIGHT: + irr::scene::ILightSceneNode* node = (irr::scene::ILightSceneNode*)rc_actor[actor].mesh_node; + irr::video::SLight light_data = node->getLightData(); + *l_constant = light_data.Attenuation.X; + *l_linear = light_data.Attenuation.Y; + *l_quadratic = light_data.Attenuation.Z; + } +} + +void rc_setLightDiffuseColor(int actor, Uint32 color) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_LIGHT: + irr::scene::ILightSceneNode* node = (irr::scene::ILightSceneNode*)rc_actor[actor].mesh_node; + irr::video::SColor c; + c.set(color); + irr::video::SColorf cf(c); + irr::video::SLight light_data = node->getLightData(); + light_data.DiffuseColor = cf; + node->setLightData(light_data); + } +} + +Uint32 rc_getLightDiffuseColor(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_LIGHT: + irr::scene::ILightSceneNode* node = (irr::scene::ILightSceneNode*)rc_actor[actor].mesh_node; + irr::video::SLight light_data = node->getLightData(); + return light_data.DiffuseColor.toSColor().color; + } + + return 0; +} + +void rc_setLightFalloff(int actor, double falloff) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_LIGHT: + irr::scene::ILightSceneNode* node = (irr::scene::ILightSceneNode*)rc_actor[actor].mesh_node; + irr::video::SLight light_data = node->getLightData(); + light_data.Falloff = falloff; + node->setLightData(light_data); + } +} + +double rc_getLightFalloff(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_LIGHT: + irr::scene::ILightSceneNode* node = (irr::scene::ILightSceneNode*)rc_actor[actor].mesh_node; + irr::video::SLight light_data = node->getLightData(); + return light_data.Falloff; + } + + return 0; +} + +void rc_setLightInnerCone(int actor, double angle) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_LIGHT: + irr::scene::ILightSceneNode* node = (irr::scene::ILightSceneNode*)rc_actor[actor].mesh_node; + irr::video::SLight light_data = node->getLightData(); + light_data.InnerCone = angle; + node->setLightData(light_data); + } +} + +double rc_getLightInnerCone(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_LIGHT: + irr::scene::ILightSceneNode* node = (irr::scene::ILightSceneNode*)rc_actor[actor].mesh_node; + irr::video::SLight light_data = node->getLightData(); + return light_data.InnerCone; + } + + return 0; +} + +void rc_setLightOuterCone(int actor, double angle) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_LIGHT: + irr::scene::ILightSceneNode* node = (irr::scene::ILightSceneNode*)rc_actor[actor].mesh_node; + irr::video::SLight light_data = node->getLightData(); + light_data.OuterCone = angle; + node->setLightData(light_data); + } +} + +double rc_getLightOuterCone(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_LIGHT: + irr::scene::ILightSceneNode* node = (irr::scene::ILightSceneNode*)rc_actor[actor].mesh_node; + irr::video::SLight light_data = node->getLightData(); + return light_data.OuterCone; + } + + return 0; +} + +void rc_setLightSpecularColor(int actor, Uint32 color) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_LIGHT: + irr::scene::ILightSceneNode* node = (irr::scene::ILightSceneNode*)rc_actor[actor].mesh_node; + irr::video::SColor c; + c.set(color); + irr::video::SColorf cf(c); + irr::video::SLight light_data = node->getLightData(); + light_data.SpecularColor = cf; + node->setLightData(light_data); + } +} + +Uint32 rc_getLightSpecularColor(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_LIGHT: + irr::scene::ILightSceneNode* node = (irr::scene::ILightSceneNode*)rc_actor[actor].mesh_node; + irr::video::SLight light_data = node->getLightData(); + return light_data.SpecularColor.toSColor().color; + } + + return 0; +} + + +void rc_loopActorAnimation(int actor, bool flag) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_MESH: + irr::scene::IAnimatedMeshSceneNode* node = (irr::scene::IAnimatedMeshSceneNode*)rc_actor[actor].mesh_node; + node->setLoopMode(flag); + break; + } +} + +bool rc_actorAnimationIsLooped(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return false; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_MESH: + irr::scene::IAnimatedMeshSceneNode* node = (irr::scene::IAnimatedMeshSceneNode*)rc_actor[actor].mesh_node; + return node->getLoopMode(); + } + + return false; +} + +//set actor animation speed +void rc_setActorVisible(int actor, bool flag) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + irr::scene::ISceneNode* node = rc_actor[actor].mesh_node; + node->setVisible(flag); +} + +bool rc_actorIsVisible(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return false; + + return rc_actor[actor].mesh_node->isVisible(); +} + +void rc_startActorTransition(int actor, double frame, double transition_time) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].transition) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_MESH: + irr::scene::IAnimatedMeshSceneNode* node = (irr::scene::IAnimatedMeshSceneNode*)rc_actor[actor].mesh_node; + node->setTransitionTime(transition_time); + node->setJointMode(irr::scene::EJUOR_CONTROL); + node->setCurrentFrame(frame); + rc_actor[actor].transition = true; + rc_actor[actor].transition_time = transition_time; + rc_actor[actor].transition_start_time = ((double)SDL_GetTicks())/1000.0d; + rc_transition_actor.push_back(actor); + } +} + +double rc_getActorTransitionTime(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + if(rc_actor[actor].transition) + return rc_actor[actor].transition_time; + + return 0; +} + + +void rc_stopActorTransition(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_MESH: + irr::scene::IAnimatedMeshSceneNode* node = (irr::scene::IAnimatedMeshSceneNode*)rc_actor[actor].mesh_node; + node->setTransitionTime(0); + node->setJointMode(irr::scene::EJUOR_NONE); + rc_actor[actor].transition = false; + rc_actor[actor].transition_time = 0; + + for(int i = 0; i < rc_transition_actor.size();) + { + if(rc_transition_actor[i] == actor) + { + rc_transition_actor.erase(i); + } + else + i++; + } + } +} + +bool rc_actorIsInTransition(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return false; + + return rc_actor[actor].transition; +} + + +void rc_getTerrainPatchAABB(int actor, double patch_x, double patch_z, double* min_x, double* min_y, double* min_z, double* max_x, double* max_y, double* max_z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + *min_x = 0; + *min_y = 0; + *min_z = 0; + + *max_x = 0; + *max_y = 0; + *max_z = 0; + + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_TERRAIN: + irr::scene::ITerrainSceneNode* node = (irr::scene::ITerrainSceneNode*)rc_actor[actor].mesh_node; + irr::core::aabbox3d bbox = node->getBoundingBox(patch_x, patch_z); + + *min_x = bbox.MinEdge.X; + *min_y = bbox.MinEdge.Y; + *min_z = bbox.MinEdge.Z; + + *max_x = bbox.MaxEdge.X; + *max_y = bbox.MaxEdge.Y; + *max_z = bbox.MaxEdge.Z; + } +} + + +int rc_getTerrainPatchLOD(int actor, int patchX, int patchZ) +{ + if(actor < 0 || actor >= rc_actor.size()) + return -1; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_TERRAIN: + irr::scene::ITerrainSceneNode* terrain = (irr::scene::ITerrainSceneNode*) rc_actor[actor].mesh_node; + + irr::core::array lod; + int lodp_size = terrain->getCurrentLODOfPatches(lod); + irr::s32 dim_size = irr::core::squareroot(lodp_size); + return lod[patchX * dim_size + patchZ]; + } + + return -1; +} + +double rc_getTerrainHeight(int actor, int patchX, int patchZ ) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_TERRAIN: + irr::scene::ITerrainSceneNode* terrain = (irr::scene::ITerrainSceneNode*) rc_actor[actor].mesh_node; + return terrain->getHeight(patchX, patchZ); + } + + return 0; +} + +void rc_getTerrainCenter(int actor, double* x, double* y, double* z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + *x = 0; + *y = 0; + *z = 0; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_TERRAIN: + irr::scene::ITerrainSceneNode* terrain = (irr::scene::ITerrainSceneNode*) rc_actor[actor].mesh_node; + irr::core::vector3df v = terrain->getTerrainCenter(); + *x = v.X; + *y = v.Y; + *z = v.Z; + } +} + +void rc_setTerrainLODDistance(int actor, int lod, double distance) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_TERRAIN: + irr::scene::ITerrainSceneNode* terrain = (irr::scene::ITerrainSceneNode*) rc_actor[actor].mesh_node; + terrain->overrideLODDistance(lod, distance); + } +} + +void rc_scaleTerrainTexture(int actor, double scale1, double scale2) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_TERRAIN: + irr::scene::ITerrainSceneNode* terrain = (irr::scene::ITerrainSceneNode*) rc_actor[actor].mesh_node; + terrain->scaleTexture(scale1, scale2); + } +} + +void rc_setTerrainCameraMovementDelta(int actor, double delta) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_TERRAIN: + irr::scene::ITerrainSceneNode* terrain = (irr::scene::ITerrainSceneNode*) rc_actor[actor].mesh_node; + terrain->setCameraMovementDelta(delta); + } +} + +void rc_setTerrainCameraRotationDelta(int actor, double delta) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_TERRAIN: + irr::scene::ITerrainSceneNode* terrain = (irr::scene::ITerrainSceneNode*) rc_actor[actor].mesh_node; + terrain->setCameraRotationDelta(delta); + } +} + +void rc_setTerrainPatchLOD(int actor, int patchX, int patchZ, int lod) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_TERRAIN: + irr::scene::ITerrainSceneNode* terrain = (irr::scene::ITerrainSceneNode*) rc_actor[actor].mesh_node; + terrain->setLODOfPatch(patchX, patchZ, lod); + } +} + +void rc_startParticleEmitter(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + + bool everyMeshVertex = rc_actor[actor].particle_properties.everyMeshVertex; + irr::s32 mbNumber = rc_actor[actor].particle_properties.mbNumber; + irr::f32 normalDirectionModifier = rc_actor[actor].particle_properties.normalDirectionModifier; + bool useNormalDirection = rc_actor[actor].particle_properties.useNormalDirection; + irr::s32 mesh_id = rc_actor[actor].particle_properties.mesh_id; + irr::core::vector3df direction = rc_actor[actor].particle_properties.direction; + irr::u32 minParticlesPerSecond = rc_actor[actor].particle_properties.minParticlesPerSecond; + irr::u32 maxParticlesPerSecond = rc_actor[actor].particle_properties.maxParticlesPerSecond; + irr::video::SColor minStartColor = rc_actor[actor].particle_properties.minStartColor; + irr::video::SColor maxStartColor = rc_actor[actor].particle_properties.maxStartColor; + irr::u32 lifeTimeMin = rc_actor[actor].particle_properties.lifeTimeMin; + irr::u32 lifeTimeMax = rc_actor[actor].particle_properties.lifeTimeMax; + irr::s32 maxAngleDegrees = rc_actor[actor].particle_properties.maxAngleDegrees; + irr::core::dimension2df minStartSize = rc_actor[actor].particle_properties.minStartSize; + irr::core::dimension2df maxStartSize = rc_actor[actor].particle_properties.maxStartSize; + irr::core::vector3df center = rc_actor[actor].particle_properties.center; + irr::f32 radius = rc_actor[actor].particle_properties.radius; + irr::f32 ringThickness = rc_actor[actor].particle_properties.ringThickness; + irr::core::aabbox3df box = rc_actor[actor].particle_properties.box; + irr::core::vector3df normal = rc_actor[actor].particle_properties.normal; + irr::f32 length = rc_actor[actor].particle_properties.length; + bool outlineOnly = rc_actor[actor].particle_properties.outlineOnly; + + irr::scene::IParticleSystemSceneNode* node = (irr::scene::IParticleSystemSceneNode*) rc_actor[actor].mesh_node; + + irr::scene::IParticleEmitter* em = NULL; + + switch(rc_actor[actor].particle_properties.particle_type) + { + case RC_PARTICLE_TYPE_POINT: + em = node->createPointEmitter(direction, minParticlesPerSecond, maxParticlesPerSecond, + minStartColor, maxStartColor, lifeTimeMin, lifeTimeMax, + maxAngleDegrees, minStartSize, maxStartSize); + node->setEmitter(em); + em->drop(); + break; + + case RC_PARTICLE_TYPE_BOX: + em = node->createBoxEmitter(box, direction, minParticlesPerSecond, maxParticlesPerSecond, + minStartColor, maxStartColor, lifeTimeMin, lifeTimeMax, + maxAngleDegrees, minStartSize, maxStartSize); + node->setEmitter(em); + em->drop(); + break; + + case RC_PARTICLE_TYPE_SPHERE: + em = node->createSphereEmitter(center, radius, direction, + minParticlesPerSecond, maxParticlesPerSecond, + minStartColor, maxStartColor, lifeTimeMin, lifeTimeMax, + maxAngleDegrees, minStartSize, maxStartSize); + node->setEmitter(em); + em->drop(); + break; + + case RC_PARTICLE_TYPE_CYLINDER: + em = node->createCylinderEmitter(center, radius, normal, length, outlineOnly, + direction, minParticlesPerSecond, maxParticlesPerSecond, + minStartColor, maxStartColor, lifeTimeMin, lifeTimeMax, + maxAngleDegrees, minStartSize, maxStartSize); + node->setEmitter(em); + em->drop(); + break; + + case RC_PARTICLE_TYPE_MESH: + if(mesh_id < 0 || mesh_id >= rc_mesh.size()) + return; + + if(!rc_mesh[mesh_id].mesh) + return; + + em = node->createMeshEmitter(rc_mesh[mesh_id].mesh, useNormalDirection, + direction, normalDirectionModifier, mbNumber, everyMeshVertex, + minParticlesPerSecond, maxParticlesPerSecond, + minStartColor, maxStartColor, lifeTimeMin, lifeTimeMax, + maxAngleDegrees, minStartSize, maxStartSize); + node->setEmitter(em); + em->drop(); + break; + + case RC_PARTICLE_TYPE_RING: + em = node->createRingEmitter(center, radius, ringThickness, + direction, minParticlesPerSecond, maxParticlesPerSecond, + minStartColor, maxStartColor, lifeTimeMin, lifeTimeMax, + maxAngleDegrees, minStartSize, maxStartSize); + node->setEmitter(em); + em->drop(); + break; + } +} + +void rc_stopParticleEmitter(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + irr::scene::IParticleSystemSceneNode* node = (irr::scene::IParticleSystemSceneNode*) rc_actor[actor].mesh_node; + node->setEmitter(0); +} + +void rc_setParticleDirection(int actor, double x, double y, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + rc_actor[actor].particle_properties.direction.set(x, y, z); + + irr::scene::IParticleSystemSceneNode* node = (irr::scene::IParticleSystemSceneNode*)rc_actor[actor].mesh_node; + + if(node->getEmitter()) + node->getEmitter()->setDirection( rc_actor[actor].particle_properties.direction ); +} + +void rc_getParticleDirection(int actor, double* x, double* y, double* z) +{ + *x = 0; + *y = 0; + *z = 0; + + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + *x = rc_actor[actor].particle_properties.direction.X; + *y = rc_actor[actor].particle_properties.direction.Y; + *z = rc_actor[actor].particle_properties.direction.Z; +} + +void rc_useParticleEveryMeshVertex(int actor, bool flag) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + if(rc_actor[actor].particle_properties.particle_type != RC_PARTICLE_TYPE_MESH) + return; + + rc_actor[actor].particle_properties.everyMeshVertex = flag; + + irr::scene::IParticleSystemSceneNode* node = (irr::scene::IParticleSystemSceneNode*)rc_actor[actor].mesh_node; + + if(node->getEmitter()) + { + irr::scene::IParticleMeshEmitter* em = (irr::scene::IParticleMeshEmitter*)node->getEmitter(); + em->setEveryMeshVertex(rc_actor[actor].particle_properties.everyMeshVertex); + } +} + +bool rc_particleIsUsingEveryMeshVertex(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return false; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return false; + + if(rc_actor[actor].particle_properties.particle_type != RC_PARTICLE_TYPE_MESH) + return false; + + return rc_actor[actor].particle_properties.everyMeshVertex; + +} + +void rc_setParticleNormalDirectionMod(int actor, double mod) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + if(rc_actor[actor].particle_properties.particle_type != RC_PARTICLE_TYPE_MESH) + return; + + rc_actor[actor].particle_properties.normalDirectionModifier = mod; + + irr::scene::IParticleSystemSceneNode* node = (irr::scene::IParticleSystemSceneNode*)rc_actor[actor].mesh_node; + + if(node->getEmitter()) + { + irr::scene::IParticleMeshEmitter* em = (irr::scene::IParticleMeshEmitter*)node->getEmitter(); + em->setNormalDirectionModifier(rc_actor[actor].particle_properties.normalDirectionModifier); + } +} + +double rc_getParticleNormalDirectionMod(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return 0; + + if(rc_actor[actor].particle_properties.particle_type != RC_PARTICLE_TYPE_MESH) + return 0; + + return rc_actor[actor].particle_properties.normalDirectionModifier; +} + +void rc_useParticleNormalDirection(int actor, bool flag) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + if(rc_actor[actor].particle_properties.particle_type != RC_PARTICLE_TYPE_MESH) + return; + + rc_actor[actor].particle_properties.useNormalDirection = flag; + + irr::scene::IParticleSystemSceneNode* node = (irr::scene::IParticleSystemSceneNode*)rc_actor[actor].mesh_node; + + if(node->getEmitter()) + { + irr::scene::IParticleMeshEmitter* em = (irr::scene::IParticleMeshEmitter*)node->getEmitter(); + em->setUseNormalDirection(rc_actor[actor].particle_properties.useNormalDirection); + } +} + +bool rc_particleIsUsingNormalDirection(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return false; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return false; + + if(rc_actor[actor].particle_properties.particle_type != RC_PARTICLE_TYPE_MESH) + return false; + + return rc_actor[actor].particle_properties.useNormalDirection; +} + +void rc_setParticleMesh(int actor, int mesh) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + if(rc_actor[actor].particle_properties.particle_type != RC_PARTICLE_TYPE_MESH) + return; + + rc_actor[actor].particle_properties.mesh_id = mesh; + + irr::scene::IParticleSystemSceneNode* node = (irr::scene::IParticleSystemSceneNode*)rc_actor[actor].mesh_node; + + if(node->getEmitter()) + { + if(mesh < 0 || mesh >= rc_mesh.size()) + return; + + if(!rc_mesh[mesh].mesh) + return; + + irr::scene::IParticleMeshEmitter* em = (irr::scene::IParticleMeshEmitter*)node->getEmitter(); + em->setMesh(rc_mesh[mesh].mesh); + } +} + +void rc_setParticleMinParticlesPerSecond(int actor, Uint32 minParticlesPerSecond) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + rc_actor[actor].particle_properties.minParticlesPerSecond = minParticlesPerSecond; + + irr::scene::IParticleSystemSceneNode* node = (irr::scene::IParticleSystemSceneNode*)rc_actor[actor].mesh_node; + + if(node->getEmitter()) + node->getEmitter()->setMinParticlesPerSecond(minParticlesPerSecond); +} + +Uint32 rc_getParticleMinParticlesPerSecond(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return 0; + + return rc_actor[actor].particle_properties.minParticlesPerSecond; +} + +void rc_setParticleMaxParticlesPerSecond(int actor, Uint32 maxParticlesPerSecond) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + rc_actor[actor].particle_properties.maxParticlesPerSecond = maxParticlesPerSecond; + + irr::scene::IParticleSystemSceneNode* node = (irr::scene::IParticleSystemSceneNode*)rc_actor[actor].mesh_node; + + if(node->getEmitter()) + node->getEmitter()->setMaxParticlesPerSecond(maxParticlesPerSecond); +} + +Uint32 rc_getParticleMaxParticlesPerSecond(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return 0; + + return rc_actor[actor].particle_properties.maxParticlesPerSecond; +} + +void rc_setParticleMinStartColor(int actor, Uint32 color) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + rc_actor[actor].particle_properties.minStartColor = irr::video::SColor(color); + + irr::scene::IParticleSystemSceneNode* node = (irr::scene::IParticleSystemSceneNode*)rc_actor[actor].mesh_node; + + if(node->getEmitter()) + node->getEmitter()->setMinStartColor(rc_actor[actor].particle_properties.minStartColor); +} + +Uint32 rc_getParticleMinStartColor(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return 0; + + return rc_actor[actor].particle_properties.minStartColor.color; +} + +void rc_setParticleMaxStartColor(int actor, Uint32 color) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + rc_actor[actor].particle_properties.maxStartColor = irr::video::SColor(color); + + irr::scene::IParticleSystemSceneNode* node = (irr::scene::IParticleSystemSceneNode*)rc_actor[actor].mesh_node; + + if(node->getEmitter()) + node->getEmitter()->setMaxStartColor(rc_actor[actor].particle_properties.maxStartColor); +} + +Uint32 rc_getParticleMaxStartColor(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return 0; + + return rc_actor[actor].particle_properties.maxStartColor.color; +} + +void rc_setParticleMinLife(int actor, Uint32 minLife) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + rc_actor[actor].particle_properties.lifeTimeMin = minLife; + + irr::scene::IParticleSystemSceneNode* node = (irr::scene::IParticleSystemSceneNode*)rc_actor[actor].mesh_node; + + if(node->getEmitter()) + node->getEmitter()->setMinLifeTime(rc_actor[actor].particle_properties.lifeTimeMin); +} + +Uint32 rc_getParticleMinLife(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return 0; + + return rc_actor[actor].particle_properties.lifeTimeMin; +} + +void rc_setParticleMaxLife(int actor, Uint32 maxLife) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + rc_actor[actor].particle_properties.lifeTimeMax = maxLife; + + irr::scene::IParticleSystemSceneNode* node = (irr::scene::IParticleSystemSceneNode*)rc_actor[actor].mesh_node; + + if(node->getEmitter()) + node->getEmitter()->setMaxLifeTime(rc_actor[actor].particle_properties.lifeTimeMax); +} + +Uint32 rc_getParticleMaxLife(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return 0; + + return rc_actor[actor].particle_properties.lifeTimeMax; +} + +void rc_setParticleMaxAngle(int actor, int maxAngle) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + rc_actor[actor].particle_properties.maxAngleDegrees = maxAngle; + + irr::scene::IParticleSystemSceneNode* node = (irr::scene::IParticleSystemSceneNode*)rc_actor[actor].mesh_node; + + if(node->getEmitter()) + node->getEmitter()->setMaxAngleDegrees(rc_actor[actor].particle_properties.maxAngleDegrees); +} + +int rc_getParticleMaxAngle(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return 0; + + return rc_actor[actor].particle_properties.maxAngleDegrees; +} + +void rc_setParticleMinStartSize(int actor, double w, double h) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + rc_actor[actor].particle_properties.minStartSize = irr::core::dimension2df(w, h); + + irr::scene::IParticleSystemSceneNode* node = (irr::scene::IParticleSystemSceneNode*)rc_actor[actor].mesh_node; + + if(node->getEmitter()) + node->getEmitter()->setMinStartSize(rc_actor[actor].particle_properties.minStartSize); +} + +void rc_getParticleMinStartSize(int actor, double* w, double* h) +{ + *w = 0; + *h = 0; + + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + *w = rc_actor[actor].particle_properties.minStartSize.Width; + *h = rc_actor[actor].particle_properties.minStartSize.Height; +} + +void rc_setParticleMaxStartSize(int actor, double w, double h) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + rc_actor[actor].particle_properties.maxStartSize = irr::core::dimension2df(w, h); + + irr::scene::IParticleSystemSceneNode* node = (irr::scene::IParticleSystemSceneNode*)rc_actor[actor].mesh_node; + + if(node->getEmitter()) + node->getEmitter()->setMaxStartSize(rc_actor[actor].particle_properties.maxStartSize); +} + +void rc_getParticleMaxStartSize(int actor, double* w, double* h) +{ + *w = 0; + *h = 0; + + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + *w = rc_actor[actor].particle_properties.maxStartSize.Width; + *h = rc_actor[actor].particle_properties.maxStartSize.Height; +} + +void rc_setParticleCenter(int actor, double x, double y, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + rc_actor[actor].particle_properties.center = irr::core::vector3df(x, y, z); + + irr::scene::IParticleSystemSceneNode* node = (irr::scene::IParticleSystemSceneNode*)rc_actor[actor].mesh_node; + + if(!node->getEmitter()) + return; + + + switch(rc_actor[actor].particle_properties.particle_type) + { + case RC_PARTICLE_TYPE_SPHERE: + { + irr::scene::IParticleSphereEmitter* em = (irr::scene::IParticleSphereEmitter*)node->getEmitter(); + em->setCenter(rc_actor[actor].particle_properties.center); + } + break; + case RC_PARTICLE_TYPE_CYLINDER: + { + irr::scene::IParticleCylinderEmitter* em = (irr::scene::IParticleCylinderEmitter*)node->getEmitter(); + em->setCenter(rc_actor[actor].particle_properties.center); + } + break; + case RC_PARTICLE_TYPE_RING: + { + irr::scene::IParticleRingEmitter* em = (irr::scene::IParticleRingEmitter*)node->getEmitter(); + em->setCenter(rc_actor[actor].particle_properties.center); + } + break; + } +} + +void rc_getParticleCenter(int actor, double* x, double* y, double* z) +{ + *x = 0; + *y = 0; + *z = 0; + + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + *x = rc_actor[actor].particle_properties.center.X; + *y = rc_actor[actor].particle_properties.center.Y; + *z = rc_actor[actor].particle_properties.center.Z; +} + +void rc_setParticleRadius(int actor, double radius) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + rc_actor[actor].particle_properties.radius = radius; + + irr::scene::IParticleSystemSceneNode* node = (irr::scene::IParticleSystemSceneNode*)rc_actor[actor].mesh_node; + + if(!node->getEmitter()) + return; + + + switch(rc_actor[actor].particle_properties.particle_type) + { + case RC_PARTICLE_TYPE_SPHERE: + { + irr::scene::IParticleSphereEmitter* em = (irr::scene::IParticleSphereEmitter*)node->getEmitter(); + em->setRadius(rc_actor[actor].particle_properties.radius); + } + break; + case RC_PARTICLE_TYPE_CYLINDER: + { + irr::scene::IParticleCylinderEmitter* em = (irr::scene::IParticleCylinderEmitter*)node->getEmitter(); + em->setRadius(rc_actor[actor].particle_properties.radius); + } + break; + case RC_PARTICLE_TYPE_RING: + { + irr::scene::IParticleRingEmitter* em = (irr::scene::IParticleRingEmitter*)node->getEmitter(); + em->setRadius(rc_actor[actor].particle_properties.radius); + } + break; + } +} + +double rc_getParticleRadius(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return 0; + + return rc_actor[actor].particle_properties.radius; +} + +void rc_setParticleRingThickness(int actor, double ringThickness) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + rc_actor[actor].particle_properties.ringThickness = ringThickness; + + irr::scene::IParticleSystemSceneNode* node = (irr::scene::IParticleSystemSceneNode*)rc_actor[actor].mesh_node; + + if(!node->getEmitter()) + return; + + + switch(rc_actor[actor].particle_properties.particle_type) + { + case RC_PARTICLE_TYPE_RING: + { + irr::scene::IParticleRingEmitter* em = (irr::scene::IParticleRingEmitter*)node->getEmitter(); + em->setRingThickness(rc_actor[actor].particle_properties.ringThickness); + } + break; + } +} + +double rc_getParticleRingThickness(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return 0; + + return rc_actor[actor].particle_properties.ringThickness; +} + +void rc_setParticleBox(int actor, double min_x, double min_y, double min_z, double max_x, double max_y, double max_z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + rc_actor[actor].particle_properties.box = irr::core::aabbox3df(min_x, min_y, min_z, max_x, max_y, max_z); + + irr::scene::IParticleSystemSceneNode* node = (irr::scene::IParticleSystemSceneNode*)rc_actor[actor].mesh_node; + + if(!node->getEmitter()) + return; + + + switch(rc_actor[actor].particle_properties.particle_type) + { + case RC_PARTICLE_TYPE_BOX: + { + irr::scene::IParticleBoxEmitter* em = (irr::scene::IParticleBoxEmitter*)node->getEmitter(); + em->setBox(rc_actor[actor].particle_properties.box); + } + break; + } +} + +void rc_getParticleBox(int actor, double* min_x, double* min_y, double* min_z, double* max_x, double* max_y, double* max_z) +{ + *min_x = 0; + *min_y = 0; + *min_z = 0; + + *max_x = 0; + *max_y = 0; + *max_z = 0; + + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + *min_x = rc_actor[actor].particle_properties.box.MinEdge.X; + *min_y = rc_actor[actor].particle_properties.box.MinEdge.Y; + *min_z = rc_actor[actor].particle_properties.box.MinEdge.Z; + + *max_x = rc_actor[actor].particle_properties.box.MaxEdge.X; + *max_y = rc_actor[actor].particle_properties.box.MaxEdge.Y; + *max_z = rc_actor[actor].particle_properties.box.MaxEdge.Z; +} + +void rc_setParticleNormal(int actor, double x, double y, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + rc_actor[actor].particle_properties.normal.set(x, y, z); + + irr::scene::IParticleSystemSceneNode* node = (irr::scene::IParticleSystemSceneNode*)rc_actor[actor].mesh_node; + + if(!node->getEmitter()) + return; + + + switch(rc_actor[actor].particle_properties.particle_type) + { + case RC_PARTICLE_TYPE_CYLINDER: + { + irr::scene::IParticleCylinderEmitter* em = (irr::scene::IParticleCylinderEmitter*)node->getEmitter(); + em->setNormal(rc_actor[actor].particle_properties.normal); + } + break; + } +} + +void rc_getParticleNormal(int actor, double* x, double* y, double* z) +{ + *x = 0; + *y = 0; + *z = 0; + + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + *x = rc_actor[actor].particle_properties.normal.X; + *y = rc_actor[actor].particle_properties.normal.Y; + *z = rc_actor[actor].particle_properties.normal.Z; +} + +void rc_setParticleLength(int actor, double length) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + rc_actor[actor].particle_properties.length = length; + + irr::scene::IParticleSystemSceneNode* node = (irr::scene::IParticleSystemSceneNode*)rc_actor[actor].mesh_node; + + if(!node->getEmitter()) + return; + + + switch(rc_actor[actor].particle_properties.particle_type) + { + case RC_PARTICLE_TYPE_CYLINDER: + { + irr::scene::IParticleCylinderEmitter* em = (irr::scene::IParticleCylinderEmitter*)node->getEmitter(); + em->setLength(rc_actor[actor].particle_properties.length); + } + break; + } +} + +double rc_getParticleLength(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return 0; + + return rc_actor[actor].particle_properties.length; +} + +void rc_useParticleOutlineOnly(int actor, bool flag) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return; + + rc_actor[actor].particle_properties.outlineOnly = flag; + + irr::scene::IParticleSystemSceneNode* node = (irr::scene::IParticleSystemSceneNode*)rc_actor[actor].mesh_node; + + if(!node->getEmitter()) + return; + + + switch(rc_actor[actor].particle_properties.particle_type) + { + case RC_PARTICLE_TYPE_CYLINDER: + { + irr::scene::IParticleCylinderEmitter* em = (irr::scene::IParticleCylinderEmitter*)node->getEmitter(); + em->setOutlineOnly(flag); + } + break; + } +} + +bool rc_particleIsUsingOutlineOnly(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return false; + + if(rc_actor[actor].node_type != RC_NODE_TYPE_PARTICLE) + return false; + + return rc_actor[actor].particle_properties.outlineOnly; +} + + + +bool rc_getActorTransform(int actor, int t_mat) +{ + if(actor < 0 || actor >= rc_actor.size()) + return false; + + if(t_mat < 0 || t_mat >= rc_matrix.size()) + return false; + + if(!rc_matrix[t_mat].active) + return false; + + irr::core::matrix4 m = rc_actor[actor].mesh_node->getAbsoluteTransformation(); + rc_convertFromIrrMatrix(m, t_mat); + + return true; +} + +void rc_setCameraPosition(double x, double y, double z) +{ + if(!(rc_active_canvas > 0 && rc_active_canvas < rc_canvas.size())) + return; + + rc_canvas[rc_active_canvas].camera.setPosition(x, y, z); +} + +void rc_getCameraPosition(double* x, double* y, double* z) +{ + if(!(rc_active_canvas > 0 && rc_active_canvas < rc_canvas.size())) + return; + + irr::f32 fx, fy, fz; + + rc_canvas[rc_active_canvas].camera.getPosition(fx, fy, fz); + + *x = fx; + *y = fy; + *z = fz; +} + +void rc_translateCamera(double x, double y, double z) +{ + if(!(rc_active_canvas > 0 && rc_active_canvas < rc_canvas.size())) + return; + + rc_canvas[rc_active_canvas].camera.translate(x, y, z); +} + +void rc_translateCameraW(double x, double y, double z) +{ + if(!(rc_active_canvas > 0 && rc_active_canvas < rc_canvas.size())) + return; + + rc_canvas[rc_active_canvas].camera.translateW(x, y, z); +} + + +void rc_setCameraRotation(double x, double y, double z) +{ + if(!(rc_active_canvas > 0 && rc_active_canvas < rc_canvas.size())) + return; + + rc_canvas[rc_active_canvas].camera.setRotation(x, y, z); +} + +void rc_getCameraRotation(double* x, double* y, double* z) +{ + if(rc_active_canvas <= 0 || rc_active_canvas >= rc_canvas.size()) + return; + + *x = rc_canvas[rc_active_canvas].camera.rx; + *y = rc_canvas[rc_active_canvas].camera.ry; + *z = rc_canvas[rc_active_canvas].camera.rz; + + //std::cout << "Get Rotation: " << x[0] << ", " << y[0] << ", " << z[0] << std::endl; +} + +void rc_rotateCamera(double x, double y, double z) +{ + if(!(rc_active_canvas > 0 && rc_active_canvas < rc_canvas.size())) + return; + + rc_canvas[rc_active_canvas].camera.rotate(x, y, z); +} + +void rc_setCameraFOV(double fov) +{ + if(!(rc_active_canvas > 0 && rc_active_canvas < rc_canvas.size())) + return; + + rc_canvas[rc_active_canvas].camera.camera->setFOV(fov); +} + +double rc_getCameraFOV() +{ + if(!(rc_active_canvas > 0 && rc_active_canvas < rc_canvas.size())) + return 0; + + return rc_canvas[rc_active_canvas].camera.camera->getFOV(); +} + +void rc_setCameraAspectRatio(double aspect) +{ + if(!(rc_active_canvas > 0 && rc_active_canvas < rc_canvas.size())) + return; + + rc_canvas[rc_active_canvas].camera.camera->setAspectRatio(aspect); +} + +double rc_getCameraAspectRatio() +{ + if(!(rc_active_canvas > 0 && rc_active_canvas < rc_canvas.size())) + return 0; + + return rc_canvas[rc_active_canvas].camera.camera->getAspectRatio(); +} + +void rc_setCameraFarValue(double zf) +{ + if(!(rc_active_canvas > 0 && rc_active_canvas < rc_canvas.size())) + return; + + rc_canvas[rc_active_canvas].camera.camera->setFarValue(zf); +} + +double rc_getCameraFarValue() +{ + if(!(rc_active_canvas > 0 && rc_active_canvas < rc_canvas.size())) + return 0; + + return rc_canvas[rc_active_canvas].camera.camera->getFarValue(); +} + +void rc_setCameraNearValue(double zn) +{ + if(!(rc_active_canvas > 0 && rc_active_canvas < rc_canvas.size())) + return; + + rc_canvas[rc_active_canvas].camera.camera->setNearValue(zn); +} + +double rc_getCameraNearValue() +{ + if(!(rc_active_canvas > 0 && rc_active_canvas < rc_canvas.size())) + return 0; + + return rc_canvas[rc_active_canvas].camera.camera->getNearValue(); +} + + +void rc_addSceneSkyBox(int img_top, int img_bottom, int img_left, int img_right, int img_front, int img_back) +{ + if(!SceneManager) + return; + + if(rc_scene_properties.sky) + return; + + irr::video::ITexture* tp = rc_image[img_top].image; + irr::video::ITexture* bt = rc_image[img_bottom].image; + irr::video::ITexture* lf = rc_image[img_left].image; + irr::video::ITexture* rt = rc_image[img_right].image; + irr::video::ITexture* ft = rc_image[img_front].image; + irr::video::ITexture* bk = rc_image[img_back].image; + rc_scene_properties.sky = SceneManager->addSkyBoxSceneNode(tp, bt, lf, rt, ft, bk); +} + +void rc_addSceneSkyDome(int img) +{ + if(!SceneManager) + return; + + if(rc_scene_properties.sky) + return; + + irr::video::ITexture* texture = rc_image[img].image; + rc_scene_properties.sky = SceneManager->addSkyDomeSceneNode(texture); +} + +void rc_addSceneSkyDomeEx(int img, Uint32 horiRes, Uint32 vertRes, double txPercentage, double spherePercentage, double radius) +{ + if(!SceneManager) + return; + + if(rc_scene_properties.sky) + return; + + irr::video::ITexture* texture = rc_image[img].image; + rc_scene_properties.sky = SceneManager->addSkyDomeSceneNode(texture, horiRes, vertRes, txPercentage, spherePercentage, radius); +} + +void rc_removeSceneSky() +{ + if(rc_scene_properties.sky) + rc_scene_properties.sky->remove(); + + rc_scene_properties.sky = NULL; +} + + + +#endif // RC_GFX3D_H_INCLUDED diff --git a/rcbasic_runtime/rc_gfx_core.h b/rcbasic_runtime/rc_gfx_core.h new file mode 100644 index 0000000..2872334 --- /dev/null +++ b/rcbasic_runtime/rc_gfx_core.h @@ -0,0 +1,595 @@ +#ifndef RC_GFX_CORE_H_INCLUDED +#define RC_GFX_CORE_H_INCLUDED + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "gui_freetype_font.h" +#include "rc_utf8.h" +#include "camera.h" +#include +#include "rc_sprite2D.h" +#include +#include +#include + +using namespace irr; + +using namespace core; +using namespace video; +using namespace scene; + + +#define MAX_JOYSTICKS 8 + +#define MAX_FINGERS 10 + +#define MAX_ACCELS 20 +#define MAX_GYROS 20 + +SDL_Joystick * rc_joystick[MAX_JOYSTICKS]; +int rc_joy_axis[MAX_JOYSTICKS][100]; +int rc_numJoysticks = 0; +int rc_joybutton[MAX_JOYSTICKS][100]; +SDL_JoystickID rc_joyID[MAX_JOYSTICKS]; + +SDL_Joystick * tmp_joy; +SDL_JoystickID tmp_joy_id; +int tmp_joy_flag = 0; + +SDL_Haptic * rc_haptic[MAX_JOYSTICKS]; //1 for each joystick + +double rc_pressure = 0; +int rc_touchX = 0; +int rc_touchY = 0; +int rc_motionX = 0; +int rc_motionY = 0; +int rc_touch = 0; +int rc_mt_status = 0; +int rc_mt_x = 0; +int rc_mt_y = 0; +int rc_mt_numFingers = 0; +double rc_mt_theta = 0; +double rc_mt_dist = 0; +SDL_TouchID rc_touchDevice; +SDL_Finger rc_finger[MAX_FINGERS]; +set rc_fingers_pressed; + +SDL_Sensor * rc_accel[MAX_ACCELS]; +int num_accels = 0; + +SDL_Sensor * rc_gyro[MAX_GYROS]; +int num_gyros = 0; + + +struct SDLKeyMap +{ + SDLKeyMap() {} + SDLKeyMap(s32 x11, s32 win32) + : SDLKey(x11), Win32Key(win32) + { + } + + s32 SDLKey; + s32 Win32Key; + + bool operator<(const SDLKeyMap& o) const + { + return SDLKey KeyMap; + +void createKeyMap() +{ + // I don't know if this is the best method to create + // the lookuptable, but I'll leave it like that until + // I find a better version. + + KeyMap.reallocate(105); + + // buttons missing + + KeyMap.push_back(SDLKeyMap(SDLK_BACKSPACE, irr::EKEY_CODE::KEY_BACK)); + KeyMap.push_back(SDLKeyMap(SDLK_TAB, irr::EKEY_CODE::KEY_TAB)); + KeyMap.push_back(SDLKeyMap(SDLK_CLEAR, irr::EKEY_CODE::KEY_CLEAR)); + KeyMap.push_back(SDLKeyMap(SDLK_RETURN, irr::EKEY_CODE::KEY_RETURN)); + + // combined modifiers missing + + KeyMap.push_back(SDLKeyMap(SDLK_PAUSE, irr::EKEY_CODE::KEY_PAUSE)); + KeyMap.push_back(SDLKeyMap(SDLK_CAPSLOCK, irr::EKEY_CODE::KEY_CAPITAL)); + + // asian letter keys missing + + KeyMap.push_back(SDLKeyMap(SDLK_ESCAPE, irr::EKEY_CODE::KEY_ESCAPE)); + + // asian letter keys missing + + KeyMap.push_back(SDLKeyMap(SDLK_SPACE, irr::EKEY_CODE::KEY_SPACE)); + KeyMap.push_back(SDLKeyMap(SDLK_PAGEUP, irr::EKEY_CODE::KEY_PRIOR)); + KeyMap.push_back(SDLKeyMap(SDLK_PAGEDOWN, irr::EKEY_CODE::KEY_NEXT)); + KeyMap.push_back(SDLKeyMap(SDLK_END, irr::EKEY_CODE::KEY_END)); + KeyMap.push_back(SDLKeyMap(SDLK_HOME, irr::EKEY_CODE::KEY_HOME)); + KeyMap.push_back(SDLKeyMap(SDLK_LEFT, irr::EKEY_CODE::KEY_LEFT)); + KeyMap.push_back(SDLKeyMap(SDLK_UP, irr::EKEY_CODE::KEY_UP)); + KeyMap.push_back(SDLKeyMap(SDLK_RIGHT, irr::EKEY_CODE::KEY_RIGHT)); + KeyMap.push_back(SDLKeyMap(SDLK_DOWN, irr::EKEY_CODE::KEY_DOWN)); + + // select missing + KeyMap.push_back(SDLKeyMap(SDLK_PRINTSCREEN, irr::EKEY_CODE::KEY_PRINT)); + // execute missing + KeyMap.push_back(SDLKeyMap(SDLK_PRINTSCREEN, irr::EKEY_CODE::KEY_SNAPSHOT)); + + KeyMap.push_back(SDLKeyMap(SDLK_INSERT, irr::EKEY_CODE::KEY_INSERT)); + KeyMap.push_back(SDLKeyMap(SDLK_DELETE, irr::EKEY_CODE::KEY_DELETE)); + KeyMap.push_back(SDLKeyMap(SDLK_HELP, irr::EKEY_CODE::KEY_HELP)); + + KeyMap.push_back(SDLKeyMap(SDLK_0, irr::EKEY_CODE::KEY_KEY_0)); + KeyMap.push_back(SDLKeyMap(SDLK_1, irr::EKEY_CODE::KEY_KEY_1)); + KeyMap.push_back(SDLKeyMap(SDLK_2, irr::EKEY_CODE::KEY_KEY_2)); + KeyMap.push_back(SDLKeyMap(SDLK_3, irr::EKEY_CODE::KEY_KEY_3)); + KeyMap.push_back(SDLKeyMap(SDLK_4, irr::EKEY_CODE::KEY_KEY_4)); + KeyMap.push_back(SDLKeyMap(SDLK_5, irr::EKEY_CODE::KEY_KEY_5)); + KeyMap.push_back(SDLKeyMap(SDLK_6, irr::EKEY_CODE::KEY_KEY_6)); + KeyMap.push_back(SDLKeyMap(SDLK_7, irr::EKEY_CODE::KEY_KEY_7)); + KeyMap.push_back(SDLKeyMap(SDLK_8, irr::EKEY_CODE::KEY_KEY_8)); + KeyMap.push_back(SDLKeyMap(SDLK_9, irr::EKEY_CODE::KEY_KEY_9)); + + KeyMap.push_back(SDLKeyMap(SDLK_a, irr::EKEY_CODE::KEY_KEY_A)); + KeyMap.push_back(SDLKeyMap(SDLK_b, irr::EKEY_CODE::KEY_KEY_B)); + KeyMap.push_back(SDLKeyMap(SDLK_c, irr::EKEY_CODE::KEY_KEY_C)); + KeyMap.push_back(SDLKeyMap(SDLK_d, irr::EKEY_CODE::KEY_KEY_D)); + KeyMap.push_back(SDLKeyMap(SDLK_e, irr::EKEY_CODE::KEY_KEY_E)); + KeyMap.push_back(SDLKeyMap(SDLK_f, irr::EKEY_CODE::KEY_KEY_F)); + KeyMap.push_back(SDLKeyMap(SDLK_g, irr::EKEY_CODE::KEY_KEY_G)); + KeyMap.push_back(SDLKeyMap(SDLK_h, irr::EKEY_CODE::KEY_KEY_H)); + KeyMap.push_back(SDLKeyMap(SDLK_i, irr::EKEY_CODE::KEY_KEY_I)); + KeyMap.push_back(SDLKeyMap(SDLK_j, irr::EKEY_CODE::KEY_KEY_J)); + KeyMap.push_back(SDLKeyMap(SDLK_k, irr::EKEY_CODE::KEY_KEY_K)); + KeyMap.push_back(SDLKeyMap(SDLK_l, irr::EKEY_CODE::KEY_KEY_L)); + KeyMap.push_back(SDLKeyMap(SDLK_m, irr::EKEY_CODE::KEY_KEY_M)); + KeyMap.push_back(SDLKeyMap(SDLK_n, irr::EKEY_CODE::KEY_KEY_N)); + KeyMap.push_back(SDLKeyMap(SDLK_o, irr::EKEY_CODE::KEY_KEY_O)); + KeyMap.push_back(SDLKeyMap(SDLK_p, irr::EKEY_CODE::KEY_KEY_P)); + KeyMap.push_back(SDLKeyMap(SDLK_q, irr::EKEY_CODE::KEY_KEY_Q)); + KeyMap.push_back(SDLKeyMap(SDLK_r, irr::EKEY_CODE::KEY_KEY_R)); + KeyMap.push_back(SDLKeyMap(SDLK_s, irr::EKEY_CODE::KEY_KEY_S)); + KeyMap.push_back(SDLKeyMap(SDLK_t, irr::EKEY_CODE::KEY_KEY_T)); + KeyMap.push_back(SDLKeyMap(SDLK_u, irr::EKEY_CODE::KEY_KEY_U)); + KeyMap.push_back(SDLKeyMap(SDLK_v, irr::EKEY_CODE::KEY_KEY_V)); + KeyMap.push_back(SDLKeyMap(SDLK_w, irr::EKEY_CODE::KEY_KEY_W)); + KeyMap.push_back(SDLKeyMap(SDLK_x, irr::EKEY_CODE::KEY_KEY_X)); + KeyMap.push_back(SDLKeyMap(SDLK_y, irr::EKEY_CODE::KEY_KEY_Y)); + KeyMap.push_back(SDLKeyMap(SDLK_z, irr::EKEY_CODE::KEY_KEY_Z)); + + // TODO: + //KeyMap.push_back(SDLKeyMap(SDLK_LSUPER, KEY_LWIN)); + // TODO: + //KeyMap.push_back(SDLKeyMap(SDLK_RSUPER, KEY_RWIN)); + // apps missing + KeyMap.push_back(SDLKeyMap(SDLK_POWER, irr::EKEY_CODE::KEY_SLEEP)); //?? + + KeyMap.push_back(SDLKeyMap(SDLK_KP_0, irr::EKEY_CODE::KEY_NUMPAD0)); + KeyMap.push_back(SDLKeyMap(SDLK_KP_1, irr::EKEY_CODE::KEY_NUMPAD1)); + KeyMap.push_back(SDLKeyMap(SDLK_KP_2, irr::EKEY_CODE::KEY_NUMPAD2)); + KeyMap.push_back(SDLKeyMap(SDLK_KP_3, irr::EKEY_CODE::KEY_NUMPAD3)); + KeyMap.push_back(SDLKeyMap(SDLK_KP_4, irr::EKEY_CODE::KEY_NUMPAD4)); + KeyMap.push_back(SDLKeyMap(SDLK_KP_5, irr::EKEY_CODE::KEY_NUMPAD5)); + KeyMap.push_back(SDLKeyMap(SDLK_KP_6, irr::EKEY_CODE::KEY_NUMPAD6)); + KeyMap.push_back(SDLKeyMap(SDLK_KP_7, irr::EKEY_CODE::KEY_NUMPAD7)); + KeyMap.push_back(SDLKeyMap(SDLK_KP_8, irr::EKEY_CODE::KEY_NUMPAD8)); + KeyMap.push_back(SDLKeyMap(SDLK_KP_9, irr::EKEY_CODE::KEY_NUMPAD9)); + KeyMap.push_back(SDLKeyMap(SDLK_KP_MULTIPLY, irr::EKEY_CODE::KEY_MULTIPLY)); + KeyMap.push_back(SDLKeyMap(SDLK_KP_PLUS, irr::EKEY_CODE::KEY_ADD)); +// KeyMap.push_back(SDLKeyMap(SDLK_KP_, KEY_SEPARATOR)); + KeyMap.push_back(SDLKeyMap(SDLK_KP_MINUS, irr::EKEY_CODE::KEY_SUBTRACT)); + KeyMap.push_back(SDLKeyMap(SDLK_KP_PERIOD, irr::EKEY_CODE::KEY_DECIMAL)); + KeyMap.push_back(SDLKeyMap(SDLK_KP_DIVIDE, irr::EKEY_CODE::KEY_DIVIDE)); + + KeyMap.push_back(SDLKeyMap(SDLK_F1, irr::EKEY_CODE::KEY_F1)); + KeyMap.push_back(SDLKeyMap(SDLK_F2, irr::EKEY_CODE::KEY_F2)); + KeyMap.push_back(SDLKeyMap(SDLK_F3, irr::EKEY_CODE::KEY_F3)); + KeyMap.push_back(SDLKeyMap(SDLK_F4, irr::EKEY_CODE::KEY_F4)); + KeyMap.push_back(SDLKeyMap(SDLK_F5, irr::EKEY_CODE::KEY_F5)); + KeyMap.push_back(SDLKeyMap(SDLK_F6, irr::EKEY_CODE::KEY_F6)); + KeyMap.push_back(SDLKeyMap(SDLK_F7, irr::EKEY_CODE::KEY_F7)); + KeyMap.push_back(SDLKeyMap(SDLK_F8, irr::EKEY_CODE::KEY_F8)); + KeyMap.push_back(SDLKeyMap(SDLK_F9, irr::EKEY_CODE::KEY_F9)); + KeyMap.push_back(SDLKeyMap(SDLK_F10, irr::EKEY_CODE::KEY_F10)); + KeyMap.push_back(SDLKeyMap(SDLK_F11, irr::EKEY_CODE::KEY_F11)); + KeyMap.push_back(SDLKeyMap(SDLK_F12, irr::EKEY_CODE::KEY_F12)); + KeyMap.push_back(SDLKeyMap(SDLK_F13, irr::EKEY_CODE::KEY_F13)); + KeyMap.push_back(SDLKeyMap(SDLK_F14, irr::EKEY_CODE::KEY_F14)); + KeyMap.push_back(SDLKeyMap(SDLK_F15, irr::EKEY_CODE::KEY_F15)); + // no higher F-keys + + // TODO: + //KeyMap.push_back(SDLKeyMap(SDLK_NUMLOCK, KEY_NUMLOCK)); + KeyMap.push_back(SDLKeyMap(SDLK_SCROLLLOCK, irr::EKEY_CODE::KEY_SCROLL)); + KeyMap.push_back(SDLKeyMap(SDLK_LSHIFT, irr::EKEY_CODE::KEY_LSHIFT)); + KeyMap.push_back(SDLKeyMap(SDLK_RSHIFT, irr::EKEY_CODE::KEY_RSHIFT)); + KeyMap.push_back(SDLKeyMap(SDLK_LCTRL, irr::EKEY_CODE::KEY_LCONTROL)); + KeyMap.push_back(SDLKeyMap(SDLK_RCTRL, irr::EKEY_CODE::KEY_RCONTROL)); + KeyMap.push_back(SDLKeyMap(SDLK_LALT, irr::EKEY_CODE::KEY_LMENU)); + KeyMap.push_back(SDLKeyMap(SDLK_RALT, irr::EKEY_CODE::KEY_RMENU)); + + KeyMap.push_back(SDLKeyMap(SDLK_PLUS, irr::EKEY_CODE::KEY_PLUS)); + KeyMap.push_back(SDLKeyMap(SDLK_COMMA, irr::EKEY_CODE::KEY_COMMA)); + KeyMap.push_back(SDLKeyMap(SDLK_MINUS, irr::EKEY_CODE::KEY_MINUS)); + KeyMap.push_back(SDLKeyMap(SDLK_PERIOD, irr::EKEY_CODE::KEY_PERIOD)); + + // some special keys missing + + KeyMap.sort(); +} + +IrrlichtDevice* device; +irr::video::IVideoDriver * VideoDriver; +irr::scene::ISceneManager *SceneManager; +SDL_Window* rc_window; +irr::core::dimension2d rc_window_size; + +struct rc_scene_properties_obj +{ + irr::scene::ISceneNode* sky = NULL; +}; + +rc_scene_properties_obj rc_scene_properties; + +#define RC_CONSTRAINT_TYPE_POINT 1 +#define RC_CONSTRAINT_TYPE_HINGE 2 +#define RC_CONSTRAINT_TYPE_SLIDER 3 +#define RC_CONSTRAINT_TYPE_CONE 4 + +struct rc_constraint_obj +{ + btTypedConstraint* constraint; + + int type; +}; + +struct rc_physicsWorld3D_obj +{ + irrBulletWorld* world; + + irr::f32 DeltaTime; + irr::u32 maxSubSteps; + irr::f32 fixedTimeStep; + + irr::u32 TimeStamp; + + irr::core::array constraints; +}; + +rc_physicsWorld3D_obj rc_physics3D; + +//Canvases +struct rc_physicsWorld2D_obj +{ + b2World* world; + float timeStep = 1/20.0; //the length of time passed to simulate (seconds) + int velocityIterations = 8; //how strongly to correct velocity + int positionIterations = 3; //how strongly to correct position +}; + +struct rc_canvas_obj +{ + irr::video::ITexture* texture; + + irr::video::ITexture* sprite_layer; + + irr::core::dimension2d dimension; + + struct rc_canvas_viewport + { + irr::core::vector2d position; + irr::core::dimension2d dimension; + } viewport; + + + bool show3D = false; + Camera camera; + + irr::core::vector2d offset; + + int mode; + + bool visible = true; + int z = 0; + + irr::u32 color_mod; + + rc_physicsWorld2D_obj physics2D; + irr::core::array sprite; +}; + +irr::core::array rc_canvas; +irr::core::array rc_canvas_zOrder; +int rc_active_canvas = -1; + +irr::video::SColor rc_active_color(0,0,0,0); +irr::video::SColor rc_clear_color(0,0,0,0); + +bool rc_init_events = false; +bool rc_init_timer = false; +bool rc_init_video = false; +bool rc_init_joystick = false; +bool rc_init_haptic = false; +bool rc_init_sensor = false; +bool rc_init_noparachute = false; +bool rc_init_audio = false; + + +irr::s32 MouseX, MouseY, MouseXRel, MouseYRel; +irr::u32 MouseButtonStates; + + +int rc_win_event = -1; +#define RC_WIN_EVENT_CLOSE 1 +#define RC_WIN_EVENT_MINIMIZE 2 +#define RC_WIN_EVENT_MAXIMIZE 3 +#define RC_WIN_EVENT_RESIZE 4 + +bool rc_win_exitOnClose = true; + +std::string rc_textinput_string = ""; +std::string rc_textinput_char = ""; +int rc_textinput_timer = 0; +int rc_textinput_delay = 100; +bool rc_textinput_flag = true; +bool rc_textinput_isActive = false; +int rc_textinput_waitHold = 800; +bool rc_textinput_hold = false; +bool rc_toggleBackspace = true; + + +static Uint32 baseticks = 0; + +int rc_inkey_val = 0; + +const Uint8 * keyState = NULL; + + + +std::wstring_convert> converter; + +struct rc_font_obj +{ + CGUITTFace* face; + CGUIFreetypeFont* font; + int font_size; +}; + +irr::core::array rc_font; + +int rc_active_font = -1; + + +bool mobile_active_window_flag = true; + + + +//------------ 3D Graphics ----------------// +#define RC_MESH_TYPE_NONE 0 +#define RC_MESH_TYPE_ANIMATED 1 + + +struct rc_mesh_obj +{ + int mesh_type = 0; + irr::scene::IAnimatedMesh* mesh; +}; +irr::core::array rc_mesh; + +#define RC_NODE_TYPE_NONE 0 +#define RC_NODE_TYPE_MESH 1 +#define RC_NODE_TYPE_OTMESH 2 +#define RC_NODE_TYPE_LIGHT 3 +#define RC_NODE_TYPE_TERRAIN 4 +#define RC_NODE_TYPE_WATER 5 +#define RC_NODE_TYPE_BILLBOARD 6 +#define RC_NODE_TYPE_PARTICLE 7 + + +#define RC_NODE_SHAPE_TYPE_NONE 0 +#define RC_NODE_SHAPE_TYPE_BOX 1 +#define RC_NODE_SHAPE_TYPE_SPHERE 2 +#define RC_NODE_SHAPE_TYPE_CYLINDER 3 +#define RC_NODE_SHAPE_TYPE_CAPSULE 4 +#define RC_NODE_SHAPE_TYPE_CONE 5 +#define RC_NODE_SHAPE_TYPE_CONVEXHULL 6 +#define RC_NODE_SHAPE_TYPE_TRIMESH 7 +#define RC_NODE_SHAPE_TYPE_HEIGHTFIELD 8 + +struct rc_node_physics_collision +{ + int actorA; + int actorB; + irr::core::array pointA; + irr::core::array pointB; + irr::core::array normalB; +}; + +irr::core::array rc_collisions; + +struct rc_node_physics +{ + IRigidBody* rigid_body; + + int shape_type; + bool isSolid; + double mass; + + irr::core::vector3df gravity; //only used when changing from Solid to Non-Solid and vice versa + + irr::core::array collisions; +}; + +#define RC_PARTICLE_TYPE_POINT 1 +#define RC_PARTICLE_TYPE_BOX 2 +#define RC_PARTICLE_TYPE_SPHERE 3 +#define RC_PARTICLE_TYPE_CYLINDER 4 +#define RC_PARTICLE_TYPE_MESH 5 +#define RC_PARTICLE_TYPE_RING 6 + +struct rc_particle_properties_obj +{ + int particle_type = 0; + bool everyMeshVertex; + irr::s32 mbNumber = 0; + irr::f32 normalDirectionModifier; + bool useNormalDirection; + irr::s32 mesh_id; + irr::core::vector3df direction; + irr::u32 minParticlesPerSecond; + irr::u32 maxParticlesPerSecond; + irr::video::SColor minStartColor; + irr::video::SColor maxStartColor; + irr::u32 lifeTimeMin; + irr::u32 lifeTimeMax; + irr::s32 maxAngleDegrees; + irr::core::dimension2df minStartSize; + irr::core::dimension2df maxStartSize; + irr::core::vector3df center; + irr::f32 radius; + irr::f32 ringThickness; + irr::core::aabbox3df box; + irr::core::vector3df normal; + irr::f32 length; + bool outlineOnly; +}; + +struct rc_scene_node +{ + int node_type = 0; + + irr::scene::ISceneNode* mesh_node; + irr::scene::IShadowVolumeSceneNode* shadow; + rc_node_physics physics; + + bool transition; + double transition_time; + double transition_start_time; + + rc_particle_properties_obj particle_properties; + + int material_ref_index = -1; +}; + +irr::core::array rc_actor; + +irr::core::array rc_transition_actor; + + +void myTickCallback2(btSoftRigidDynamicsWorld* dynamicsWorld, btScalar timeStep) +{ + rc_collisions.clear(); + int numManifolds = dynamicsWorld->getDispatcher()->getNumManifolds(); + + int c_index = 0; + + rc_node_physics_collision collision; + + for(int i = 0; i < rc_actor.size(); i++) + { + rc_actor[i].physics.collisions.clear(); + } + + + for (int i = 0; i < rc_physics3D.world->getNumManifolds(); i++) + { + ICollisionCallbackInformation* manifold = rc_physics3D.world->getCollisionCallback(i); + + int numContacts = manifold->getPointer()->getNumContacts(); + + int actorA = manifold->getBody0()->getIdentification()->getId(); + int actorB = manifold->getBody1()->getIdentification()->getId(); + + collision.actorA = actorA; + collision.actorB = actorB; + + //std::cout << "Collision Details: " << actorA << ", " << actorB << ", " << numContacts << std::endl; + + if(numContacts < 1) + continue; + + for (int j = 0; j < numContacts; j++) + { + SManifoldPoint pt = manifold->getContactPoint(j); + collision.pointA.push_back(pt.getPositionWorldOnA()); + collision.pointB.push_back(pt.getPositionWorldOnB()); + collision.normalB.push_back(pt.getNormalWorldOnB()); + } + + c_index = rc_collisions.size(); + rc_collisions.push_back(collision); + rc_actor[actorA].physics.collisions.push_back(c_index); + rc_actor[actorB].physics.collisions.push_back(c_index); + } + + for(int i = 0; i < rc_actor.size(); i++) + { + if(!rc_actor[i].physics.isSolid) + { + if(rc_actor[i].physics.collisions.size() > 0) + { + rc_physics3D.world->removeCollisionObject(rc_actor[i].physics.rigid_body, false); + rc_physics3D.world->addRigidBody(rc_actor[i].physics.rigid_body); + rc_actor[i].physics.rigid_body->setMassProps(1, irr::core::vector3df(0,0,0)); + rc_actor[i].physics.rigid_body->setGravity(irr::core::vector3df(0,0,0)); + } + } + } +} + + +#define RC_ACTOR_TEXTURE_TYPE_IMAGE 0 +#define RC_ACTOR_TEXTURE_TYPE_CANVAS 1 + + +// Function to calculate a point on a cubic Bezier curve +vector3df bezierPoint(const vector3df& p0, const vector3df& p1, const vector3df& p2, const vector3df& p3, float t) { + float u = 1.0f - t; + float tt = t * t; + float uu = u * u; + float uuu = uu * u; + float ttt = tt * t; + + vector3df p = uuu * p0; // (1-t)^3 * p0 + p += 3 * uu * t * p1; // 3 * (1-t)^2 * t * p1 + p += 3 * u * tt * p2; // 3 * (1-t) * t^2 * p2 + p += ttt * p3; // t^3 * p3 + + return p; +} + +// Function to draw a Bezier curve +void drawBezierCurve(IVideoDriver* driver, const vector3df& p0, const vector3df& p1, const vector3df& p2, const vector3df& p3, SColor color, int segments) { + std::vector points; + + for (int i = 0; i <= segments; ++i) { + float t = static_cast(i) / segments; + points.push_back(bezierPoint(p0, p1, p2, p3, t)); + } + + for (size_t i = 0; i < points.size() - 1; ++i) { + driver->draw3DLine(points[i], points[i + 1], color); + } +} + + +void printIrrMatrix(irr::core::matrix4 m) +{ + for(int i = 0; i < 4; i++) + std::cout << "[ " << m[i*4] << ", " << m[i*4+1] << ", " << m[i*4+2] << ", " << m[i*4+3] << " ]" << std::endl; +} + +#endif // RC_GFX_CORE_H_INCLUDED diff --git a/rcbasic_runtime/rc_matrix.h b/rcbasic_runtime/rc_matrix.h old mode 100644 new mode 100755 index 817f575..675c93d --- a/rcbasic_runtime/rc_matrix.h +++ b/rcbasic_runtime/rc_matrix.h @@ -11,7 +11,9 @@ #endif #endif #include -#include +#include + +#include using namespace std; @@ -22,21 +24,43 @@ int64_t rand_int(int64_t vmin, int64_t vmax) { struct rc_matrix_type -{ +{ + bool active = false; uint32_t r = 0; uint32_t c = 0; vector data; }; -rc_matrix_type rc_matrix[1048]; +std::vector rc_matrix(64); -#define RC_TMP_MATRIX 1024 -#define RC_TMP_MATRIX_2 1025 + +#define NEW_MATRIX -1 -#define RC_PROCESS_TMP_MATRIX_OFFSET 1026 +int DimMatrix(int m, uint32_t m_rows, uint32_t m_cols, bool preserve_flag=false) +{ + if(m < 0) + { + for(int i = 0; i < rc_matrix.size(); i++) + { + if(!rc_matrix[i].active) + { + m = i; + break; + } + } + + if(m < 0) + { + rc_matrix_type mat; + mat.active = true; + m = rc_matrix.size(); + rc_matrix.push_back(mat); + } + } + + if(!preserve_flag) + rc_matrix[m].data.clear(); -void DimMatrix(int m, uint32_t m_rows, uint32_t m_cols, bool preserve_flag=false) -{ rc_matrix[m].data.resize(m_rows*m_cols); if(rc_matrix[m].c != m_cols && preserve_flag) @@ -56,11 +80,29 @@ void DimMatrix(int m, uint32_t m_rows, uint32_t m_cols, bool preserve_flag=false } rc_matrix[m].r = m_rows; - rc_matrix[m].c = m_cols; + rc_matrix[m].c = m_cols; + rc_matrix[m].active = true; + + return m; +} + +int rc_dimMatrix(uint32_t m_rows, uint32_t m_cols) +{ + return DimMatrix(NEW_MATRIX, m_rows, m_cols, false); +} + +void rc_deleteMatrix(int mA) +{ + if(mA < 0 || mA >= rc_matrix.size()) + return; + rc_matrix[mA].data.clear(); + rc_matrix[mA].c = 0; + rc_matrix[mA].r = 0; + rc_matrix[mA].active = false; } //Adds Matrix A() to Matrix B(), answer is Matrix C() -bool AddMatrix(int mA, int mB, int mC) +bool rc_addMatrix(int mA, int mB, int mC) { if( (rc_matrix[mA].r != rc_matrix[mB].r) || (rc_matrix[mA].c != rc_matrix[mB].c) ) { @@ -84,7 +126,7 @@ bool AddMatrix(int mA, int mB, int mC) } //Concatenates matrix A() and B(), output is matrix C() -bool AugmentMatrix (int mA, int mB, int mC) +bool rc_augmentMatrix (int mA, int mB, int mC) { if(rc_matrix[mA].r != rc_matrix[mB].r) { @@ -120,7 +162,7 @@ bool AugmentMatrix (int mA, int mB, int mC) } //Copies contents of matrix A() to B() -void CopyMatrix(int mA, int mB) +void rc_copyMatrix(int mA, int mB) { DimMatrix(mB, rc_matrix[mA].r, rc_matrix[mA].c); @@ -136,7 +178,7 @@ void CopyMatrix(int mA, int mB) } //Inserts specified number of columns in matrix A before c and shifts values to the right -bool InsertMatrixColumn(int mA, uint32_t c, uint32_t num_cols) +bool rc_insertMatrixColumns(int mA, uint32_t c, uint32_t num_cols) { if(c >= rc_matrix[mA].c) { @@ -175,7 +217,7 @@ bool InsertMatrixColumn(int mA, uint32_t c, uint32_t num_cols) } //Creates new zero row M% in matrix A(), moves values down -bool InsertMatrixRow (int mA, uint32_t r, uint32_t num_rows) +bool rc_insertMatrixRows(int mA, uint32_t r, uint32_t num_rows) { if(r >= rc_matrix[mA].r) { @@ -210,7 +252,7 @@ bool InsertMatrixRow (int mA, uint32_t r, uint32_t num_rows) } //Multiplies Matrix A() with Matrix B(), answer is Matrix C() -bool MultiplyMatrix (int mA, int mB, int mC) +bool rc_multiplyMatrix (int mA, int mB, int mC) { if( rc_matrix[mA].c != rc_matrix[mB].r ) { @@ -244,7 +286,7 @@ bool MultiplyMatrix (int mA, int mB, int mC) } //Multiplies matrix A() * A() * A(), returns matrix B() -bool CubeMatrix(int mA, int mB, int process_num) +bool rc_cubeMatrix(int mA, int mB) { if(rc_matrix[mA].r != rc_matrix[mA].c) { @@ -252,19 +294,16 @@ bool CubeMatrix(int mA, int mB, int process_num) return false; } - int tmp_mat1 = process_num < 0 ? RC_TMP_MATRIX : (process_num*2) + RC_PROCESS_TMP_MATRIX_OFFSET; - //int tmp_mat2 = process_num < 0 ? RC_TMP_MATRIX : (process_num*2) + RC_PROCESS_TMP_MATRIX_OFFSET + 1; + int tmp_mat1 = DimMatrix(NEW_MATRIX, rc_matrix[mA].r, rc_matrix[mA].c); + rc_multiplyMatrix(mA, mA, tmp_mat1); + rc_multiplyMatrix(tmp_mat1, mA, mB); - DimMatrix(tmp_mat1, rc_matrix[mA].r, rc_matrix[mA].c); - MultiplyMatrix(mA, mA, tmp_mat1); - MultiplyMatrix(tmp_mat1, mA, mB); - - DimMatrix(tmp_mat1, 1, 1); + rc_deleteMatrix(tmp_mat1); return true; } // Deletes column N% from matrix -bool DeleteMatrixColumns(int mA, uint32_t c, uint32_t num_cols, int process_num) +bool rc_deleteMatrixColumns(int mA, uint32_t c, uint32_t num_cols) { if(c >= rc_matrix[mA].c) { @@ -275,10 +314,7 @@ bool DeleteMatrixColumns(int mA, uint32_t c, uint32_t num_cols, int process_num) if((c + num_cols) > rc_matrix[mA].c) num_cols = rc_matrix[mA].c - c; - int tmp_mat1 = process_num < 0 ? RC_TMP_MATRIX : (process_num*2) + RC_PROCESS_TMP_MATRIX_OFFSET; - //int tmp_mat2 = process_num < 0 ? RC_TMP_MATRIX : (process_num*2) + RC_PROCESS_TMP_MATRIX_OFFSET + 1; - - DimMatrix( tmp_mat1, rc_matrix[mA].r, rc_matrix[mA].c - num_cols); + int tmp_mat1 = DimMatrix( NEW_MATRIX, rc_matrix[mA].r, rc_matrix[mA].c - num_cols); uint32_t old_offset = 0; uint32_t row_offset = 0; @@ -296,13 +332,13 @@ bool DeleteMatrixColumns(int mA, uint32_t c, uint32_t num_cols, int process_num) rc_matrix[tmp_mat1].data[row_offset + col] = rc_matrix[mA].data[old_offset + col]; } } - CopyMatrix(tmp_mat1, mA); - DimMatrix(tmp_mat1, 1, 1); + rc_copyMatrix(tmp_mat1, mA); + rc_deleteMatrix(tmp_mat1); return true; } //Deletes row M% from matrix -bool DeleteMatrixRows(int mA, uint32_t r, uint32_t num_rows) +bool rc_deleteMatrixRows(int mA, uint32_t r, uint32_t num_rows) { if(r >= rc_matrix[mA].r) { @@ -334,14 +370,14 @@ bool DeleteMatrixRows(int mA, uint32_t r, uint32_t num_rows) } //Clears contents of matrix A() -void ClearMatrix(int mA) +void rc_clearMatrix(int mA) { for(int i = 0; i < rc_matrix[mA].data.size(); i++) rc_matrix[mA].data[i] = 0; } //Fills column J% of matrix A() with zeros -bool ClearMatrixColumns (int mA, uint32_t c, uint32_t num_cols) +bool rc_clearMatrixColumns (int mA, uint32_t c, uint32_t num_cols) { if(c >= rc_matrix[mA].c) { @@ -364,7 +400,7 @@ bool ClearMatrixColumns (int mA, uint32_t c, uint32_t num_cols) } // Fills row I% of matrix A() with zeros -bool ClearMatrixRows(int mA, uint32_t r, uint32_t num_rows) +bool rc_clearMatrixRows(int mA, uint32_t r, uint32_t num_rows) { if(r >= rc_matrix[mA].r) { @@ -390,14 +426,14 @@ bool ClearMatrixRows(int mA, uint32_t r, uint32_t num_rows) } // Fills matrix A() with value V -void FillMatrix(int mA, double v) +void rc_fillMatrix(int mA, double v) { for(uint32_t i = 0; i < rc_matrix[mA].data.size(); i++) rc_matrix[mA].data[i] = v; } // Fills matrix A() column J% with value V -bool FillMatrixColumns(int mA, uint32_t c, uint32_t num_cols, double v) +bool rc_fillMatrixColumns(int mA, uint32_t c, uint32_t num_cols, double v) { if(c >= rc_matrix[mA].c) { @@ -420,7 +456,7 @@ bool FillMatrixColumns(int mA, uint32_t c, uint32_t num_cols, double v) } // Fills matrix A() row I% with value V -bool FillMatrixRows(int mA, uint32_t r, uint32_t num_rows, double v) +bool rc_fillMatrixRows(int mA, uint32_t r, uint32_t num_rows, double v) { if(r >= rc_matrix[mA].r) { @@ -446,7 +482,7 @@ bool FillMatrixRows(int mA, uint32_t r, uint32_t num_rows, double v) } // Copies A() column J% to column matrix B() -bool GetMatrixColumns(uint32_t mA, uint32_t mB, uint32_t c, uint32_t num_cols) +bool rc_copyMatrixColumns(uint32_t mA, uint32_t mB, uint32_t c, uint32_t num_cols) { if(c >= rc_matrix[mA].c) { @@ -473,7 +509,7 @@ bool GetMatrixColumns(uint32_t mA, uint32_t mB, uint32_t c, uint32_t num_cols) } // Copies A() row I% to row matrix B() -bool GetMatrixRows (uint32_t mA, uint32_t mB, uint32_t r, uint32_t num_rows) +bool rc_copyMatrixRows (uint32_t mA, uint32_t mB, uint32_t r, uint32_t num_rows) { if(r > rc_matrix[mA].r) @@ -503,11 +539,11 @@ bool GetMatrixRows (uint32_t mA, uint32_t mB, uint32_t r, uint32_t num_rows) } // Creates Identity Matrix A() of order N% -void IdentityMatrix(uint32_t mA, uint32_t n) +void rc_setIdentityMatrix(uint32_t mA, uint32_t n) { DimMatrix(mA, n, n); for(int i = 0; i < n; i++) - rc_matrix[mA].data[i*n+n] = 1; + rc_matrix[mA].data[i*(n+1)] = 1; } bool GaussianElimination(vector< vector > &A, vector &b, uint32_t mC) { @@ -537,7 +573,7 @@ bool GaussianElimination(vector< vector > &A, vector &b, uint32_ vector x(n); DimMatrix(mC, n, 1); - ClearMatrix(mC); + rc_clearMatrix(mC); for (int i = n - 1; i >= 0; i--) { double sum = 0.0; @@ -554,7 +590,7 @@ bool GaussianElimination(vector< vector > &A, vector &b, uint32_ // Solve the system that has A as coefficient matrix and B is the right hand side of the equation // Solution will be stored in C -bool SolveMatrix(uint32_t mA, uint32_t mB, uint32_t mC) +bool rc_solveMatrix(uint32_t mA, uint32_t mB, uint32_t mC) { if(rc_matrix[mA].r != rc_matrix[mA].c || rc_matrix[mA].r != rc_matrix[mB].r || rc_matrix[mB].c != 1) return false; @@ -584,7 +620,7 @@ double d_abs(double n) } //Determines if matrix A() is equal (within Tol constant) to matrix B() -bool IsEqualMatrix(uint32_t mA, uint32_t mB, double tolerance) +bool rc_isEqualMatrix(uint32_t mA, uint32_t mB, double tolerance) { if( (rc_matrix[mA].r != rc_matrix[mB].r) || (rc_matrix[mA].c != rc_matrix[mB].c) ) return false; @@ -630,7 +666,7 @@ void getCofactor(uint32_t A_dim, double* A, double* temp, int p, int q, } } -bool CofactorMatrix(uint32_t mA, int p, int q, int n) +void rc_cofactorMatrix(uint32_t mA, int p, int q, int n) { uint32_t m_size = rc_matrix[mA].c; @@ -677,13 +713,13 @@ double determinant(double* A, int n, uint32_t m_size) return D; } -double Determinant(uint32_t mA) +double rc_determinant(uint32_t mA) { uint32_t m_size = rc_matrix[mA].r; if(rc_matrix[mA].c != m_size) { cout << "Determinant Error: matrix must be square" << endl; - return false; + return 0; } return determinant(rc_matrix[mA].data.data(), m_size, m_size); } @@ -717,7 +753,7 @@ void adjoint(double* A, double* adj, uint32_t n, uint32_t m_size) } } -bool AdjointMatrix(uint32_t mA, uint32_t mB) +bool rc_adjointMatrix(uint32_t mA, uint32_t mB) { uint32_t m_size = rc_matrix[mA].r; if(rc_matrix[mA].c != m_size) @@ -753,7 +789,7 @@ bool inverse(double* A, double* inv, uint32_t n) return true; } -bool InvertMatrix(uint32_t mA, uint32_t mB) +bool rc_invertMatrix(uint32_t mA, uint32_t mB) { uint32_t m_size = rc_matrix[mA].r; if(rc_matrix[mA].c != m_size) @@ -772,7 +808,7 @@ bool InvertMatrix(uint32_t mA, uint32_t mB) //Loads contents of FileName$ into matrix A() -void MatrixFromBuffer(uint32_t mA, uint32_t r, uint32_t c, double* buffer) +void rc_matrixFromBuffer(uint32_t mA, uint32_t r, uint32_t c, double* buffer) { uint32_t row_offset = 0; DimMatrix(mA, r, c); @@ -788,7 +824,7 @@ void MatrixFromBuffer(uint32_t mA, uint32_t r, uint32_t c, double* buffer) } //Loads contents of FileName$ into matrix A() -void BufferFromMatrix(double* buffer, uint32_t mA) +void rc_bufferFromMatrix(double* buffer, uint32_t mA) { uint32_t row_offset = 0; for(uint32_t row = 0; row < rc_matrix[mA].r; row++) @@ -802,7 +838,7 @@ void BufferFromMatrix(double* buffer, uint32_t mA) } //Fills matrix A() with random values ranging from VMin to VMax -void RandomizeMatrix(uint32_t mA, double vmin, double vmax) +void rc_randomizeMatrix(uint32_t mA, double vmin, double vmax) { uint32_t row_offset = 0; for(uint32_t row = 0; row < rc_matrix[mA].r; row++) @@ -816,7 +852,7 @@ void RandomizeMatrix(uint32_t mA, double vmin, double vmax) } //get value from matrix A -double MatrixValue(uint32_t mA, uint32_t r, uint32_t c) +double rc_matrixValue(uint32_t mA, uint32_t r, uint32_t c) { uint32_t pos = r*rc_matrix[mA].c + c; if(pos >= rc_matrix[mA].data.size()) @@ -826,7 +862,7 @@ double MatrixValue(uint32_t mA, uint32_t r, uint32_t c) } //set value at (r, c) in matrix -void SetMatrixValue(uint32_t mA, uint32_t r, uint32_t c, double v) +void rc_setMatrixValue(uint32_t mA, uint32_t r, uint32_t c, double v) { uint32_t pos = r*rc_matrix[mA].c + c; if(pos >= rc_matrix[mA].data.size()) @@ -836,7 +872,7 @@ void SetMatrixValue(uint32_t mA, uint32_t r, uint32_t c, double v) } //Multiplies matrix A() by scalar, output matrix B() -void ScalarMatrix (uint32_t mA, uint32_t mB, double s_value) +void rc_scalarMatrix (uint32_t mA, uint32_t mB, double s_value) { uint32_t row_offset = 0; DimMatrix(mB, rc_matrix[mA].r, rc_matrix[mA].c); @@ -851,7 +887,7 @@ void ScalarMatrix (uint32_t mA, uint32_t mB, double s_value) } // Multiplies matrix A() by scalar S at column J%, output matrix B() -bool ScalarMatrixColumns(uint32_t mA, uint32_t mB, uint32_t c, uint32_t num_cols, double s_value) +bool rc_scalarMatrixColumns(uint32_t mA, uint32_t mB, uint32_t c, uint32_t num_cols, double s_value) { if(c >= rc_matrix[mA].c) { @@ -862,7 +898,7 @@ bool ScalarMatrixColumns(uint32_t mA, uint32_t mB, uint32_t c, uint32_t num_cols if( (c+num_cols) >= rc_matrix[mA].c) num_cols = rc_matrix[mA].c - c; - CopyMatrix(mA, mB); + rc_copyMatrix(mA, mB); int row_offset = 0; int b_offset = 0; @@ -877,7 +913,7 @@ bool ScalarMatrixColumns(uint32_t mA, uint32_t mB, uint32_t c, uint32_t num_cols } //Multiplies matrix A() by scalar S at row I%, output matrix B() -bool ScalarMatrixRows(uint32_t mA, uint32_t mB, uint32_t r, uint32_t num_rows, double s_value) +bool rc_scalarMatrixRows(uint32_t mA, uint32_t mB, uint32_t r, uint32_t num_rows, double s_value) { if(r > rc_matrix[mA].r) @@ -889,7 +925,7 @@ bool ScalarMatrixRows(uint32_t mA, uint32_t mB, uint32_t r, uint32_t num_rows, d if( (r+num_rows) > rc_matrix[mA].r) num_rows = rc_matrix[mA].r - r; - CopyMatrix(mA, mB); + rc_copyMatrix(mA, mB); uint32_t row_offset = 0; @@ -907,7 +943,7 @@ bool ScalarMatrixRows(uint32_t mA, uint32_t mB, uint32_t r, uint32_t num_rows, d } // Multiplies matrix A() * A(), returns matrix B() -bool SquareMatrix(uint32_t mA, uint32_t mB) +bool rc_squareMatrix(uint32_t mA, uint32_t mB) { if(rc_matrix[mA].r != rc_matrix[mA].c) { @@ -915,17 +951,17 @@ bool SquareMatrix(uint32_t mA, uint32_t mB) return false; } - return MultiplyMatrix(mA, mA, mB); + return rc_multiplyMatrix(mA, mA, mB); } // Deletes row r and column c from matrix A -void SubMatrix(uint32_t mA, uint32_t r, uint32_t c) +void rc_subMatrix(uint32_t mA, uint32_t r, uint32_t c) { - CofactorMatrix(mA, r, c, rc_matrix[mA].c); + rc_cofactorMatrix(mA, r, c, rc_matrix[mA].c); } // Subtracts Matrix B() from Matrix A(), answer is Matrix C() -bool SubtractMatrix (uint32_t mA, uint32_t mB, uint32_t mC) +bool rc_subtractMatrix (uint32_t mA, uint32_t mB, uint32_t mC) { if(rc_matrix[mA].r != rc_matrix[mB].r || rc_matrix[mA].c != rc_matrix[mB].c) { @@ -949,20 +985,17 @@ bool SubtractMatrix (uint32_t mA, uint32_t mB, uint32_t mC) } // Swaps contents of Matrix A() with Matrix B() -void SwapMatrix(uint32_t mA, uint32_t mB, int process_num) +void rc_swapMatrix(uint32_t mA, uint32_t mB) { - int tmp_mat1 = process_num < 0 ? RC_TMP_MATRIX : (process_num*2) + RC_PROCESS_TMP_MATRIX_OFFSET; - //int tmp_mat2 = process_num < 0 ? RC_TMP_MATRIX : (process_num*2) + RC_PROCESS_TMP_MATRIX_OFFSET + 1; - - DimMatrix(tmp_mat1, rc_matrix[mA].r, rc_matrix[mA].c); - CopyMatrix(mB, tmp_mat1); - CopyMatrix(mA, mB); - CopyMatrix(tmp_mat1, mA); - DimMatrix(tmp_mat1, 1, 1); + int tmp_mat1 = DimMatrix(NEW_MATRIX, rc_matrix[mA].r, rc_matrix[mA].c); + rc_copyMatrix(mB, tmp_mat1); + rc_copyMatrix(mA, mB); + rc_copyMatrix(tmp_mat1, mA); + rc_deleteMatrix(tmp_mat1); } // Swaps columns C1% and C2% in matrix A() -bool SwapMatrixColumn(uint32_t mA, uint32_t C1, uint32_t C2) +bool rc_swapMatrixColumn(uint32_t mA, uint32_t C1, uint32_t C2) { if(C1 >= rc_matrix[mA].c || C2 >= rc_matrix[mA].c) { @@ -985,7 +1018,7 @@ bool SwapMatrixColumn(uint32_t mA, uint32_t C1, uint32_t C2) } // Swaps rows R1% and R2% in matrix A() -bool SwapMatrixRow(uint32_t mA, uint32_t R1, uint32_t R2) +bool rc_swapMatrixRow(uint32_t mA, uint32_t R1, uint32_t R2) { if(R1 >= rc_matrix[mA].r || R2 >= rc_matrix[mA].r) { @@ -1008,7 +1041,7 @@ bool SwapMatrixRow(uint32_t mA, uint32_t R1, uint32_t R2) } // Transposes matrix A(), output matrix B() -bool TransposeMatrix(uint32_t mA, uint32_t mB) +bool rc_transposeMatrix(uint32_t mA, uint32_t mB) { DimMatrix(mB, rc_matrix[mA].c, rc_matrix[mA].r); @@ -1028,7 +1061,7 @@ bool TransposeMatrix(uint32_t mA, uint32_t mB) // Splits matrix A() into square Coefficient B() and remaining Augment C() -bool UnAugmentMatrix(uint32_t mA, uint32_t mB, uint32_t mC) +bool rc_unAugmentMatrix(uint32_t mA, uint32_t mB, uint32_t mC) { if(rc_matrix[mA].c <= rc_matrix[mA].r) { @@ -1071,18 +1104,18 @@ bool UnAugmentMatrix(uint32_t mA, uint32_t mB, uint32_t mC) // Clears contents of matrix A(). -void ZeroMatrix (uint32_t mA) +void rc_zeroMatrix (uint32_t mA) { - ClearMatrix(mA); + rc_clearMatrix(mA); } -void GetMatrixSize(uint32_t mA, double* r, double* c) +void rc_getMatrixSize(uint32_t mA, double* r, double* c) { *r = rc_matrix[mA].r; *c = rc_matrix[mA].c; } -void IncrementMatrixRows(uint32_t mA, uint32_t mB, uint32_t r, uint32_t num_rows, double value) +void rc_incrementMatrixRows(uint32_t mA, uint32_t mB, uint32_t r, uint32_t num_rows, double value) { if(num_rows < 0) return; @@ -1093,19 +1126,19 @@ void IncrementMatrixRows(uint32_t mA, uint32_t mB, uint32_t r, uint32_t num_rows if( (r+num_rows) >= rc_matrix[mA].r ) num_rows = rc_matrix[mA].r - r; - CopyMatrix(mA, mB); + rc_copyMatrix(mA, mB); for(int mr = r; mr < (r+num_rows); mr++) { for(int mc = 0; mc < rc_matrix[mA].c; mc++) { - double mv = MatrixValue(mA, mr, mc) + value; - SetMatrixValue(mB, mr, mc, mv); + double mv = rc_matrixValue(mA, mr, mc) + value; + rc_setMatrixValue(mB, mr, mc, mv); } } } -void IncrementMatrixColumns(uint32_t mA, uint32_t mB, uint32_t c, uint32_t num_cols, double value) +void rc_incrementMatrixColumns(uint32_t mA, uint32_t mB, uint32_t c, uint32_t num_cols, double value) { if(num_cols < 0) return; @@ -1116,19 +1149,19 @@ void IncrementMatrixColumns(uint32_t mA, uint32_t mB, uint32_t c, uint32_t num_c if( (c+num_cols) >= rc_matrix[mA].c ) num_cols = rc_matrix[mA].c - c; - CopyMatrix(mA, mB); + rc_copyMatrix(mA, mB); for(int mr = 0; mr < rc_matrix[mA].r; mr++) { for(int mc = c; mc < (c+num_cols); mc++) { - double mv = MatrixValue(mA, mr, mc) + value; - SetMatrixValue(mB, mr, mc, mv); + double mv = rc_matrixValue(mA, mr, mc) + value; + rc_setMatrixValue(mB, mr, mc, mv); } } } -void JoinMatrixRows(uint32_t mA, uint32_t mB, uint32_t mC) +void rc_joinMatrixRows(uint32_t mA, uint32_t mB, uint32_t mC) { if(rc_matrix[mA].r != rc_matrix[mB].r) return; @@ -1142,8 +1175,8 @@ void JoinMatrixRows(uint32_t mA, uint32_t mB, uint32_t mC) { for(int r = 0; r < num_rows; r++) { - double mv = MatrixValue(mA, r, c); - SetMatrixValue(mC, r, c, mv); + double mv = rc_matrixValue(mA, r, c); + rc_setMatrixValue(mC, r, c, mv); } } @@ -1151,13 +1184,13 @@ void JoinMatrixRows(uint32_t mA, uint32_t mB, uint32_t mC) { for(int r = 0; r < num_rows; r++) { - double mv = MatrixValue(mB, r, c); - SetMatrixValue(mC, r, rc_matrix[mA].c + c, mv); + double mv = rc_matrixValue(mB, r, c); + rc_setMatrixValue(mC, r, rc_matrix[mA].c + c, mv); } } } -void JoinMatrixColumns(uint32_t mA, uint32_t mB, uint32_t mC) +void rc_joinMatrixColumns(uint32_t mA, uint32_t mB, uint32_t mC) { if(rc_matrix[mA].c != rc_matrix[mB].c) return; @@ -1171,8 +1204,8 @@ void JoinMatrixColumns(uint32_t mA, uint32_t mB, uint32_t mC) { for(int r = 0; r < rc_matrix[mA].r; r++) { - double mv = MatrixValue(mA, r, c); - SetMatrixValue(mC, r, c, mv); + double mv = rc_matrixValue(mA, r, c); + rc_setMatrixValue(mC, r, c, mv); } } @@ -1180,10 +1213,140 @@ void JoinMatrixColumns(uint32_t mA, uint32_t mB, uint32_t mC) { for(int r = 0; r < rc_matrix[mB].r; r++) { - double mv = MatrixValue(mB, r, c); - SetMatrixValue(mC, rc_matrix[mA].r + r, c, mv); + double mv = rc_matrixValue(mB, r, c); + rc_setMatrixValue(mC, rc_matrix[mA].r + r, c, mv); } } +} + + + +void rc_clipMatrix(int mA, int r, int c, int num_rows, int num_cols, int mB) +{ + int mA_rows = rc_matrix[mA].r; + int mA_cols = rc_matrix[mA].c; + + int mB_rows = num_rows; + int mB_cols = num_cols; + + if((r + num_rows) > mA_rows) + mB_rows = mA_rows - r; + + if(mB_rows < 0) + { + DimMatrix(mB, mA_rows, mA_cols, false); + rc_clearMatrix(mB); + return; + } + + if((c + num_cols) > mA_cols) + mB_cols = mA_cols - c; + + if(mB_cols < 0) + { + DimMatrix(mB, mA_rows, mA_cols, false); + rc_clearMatrix(mB); + return; + } + + DimMatrix(mB, mB_rows, mB_cols, false); + + for(int row = r; row < (r+num_rows); row++) + for(int col = c; col < (c+num_cols); col++) + rc_setMatrixValue( mB, row-r, col-c, rc_matrixValue(mA, row, col)); +} + +int rc_convertFromIrrMatrix(irr::core::matrix4 irr_mat, int mB = -1) +{ + int mA = DimMatrix(NEW_MATRIX, 4, 4); + + if(mB < 0) + mB = DimMatrix(NEW_MATRIX, 4, 4); + else + DimMatrix(mB, 4, 4); + + for(int i = 0; i < 4; i++) + { + rc_matrix[mA].data[i*4] = irr_mat[i*4]; + rc_matrix[mA].data[i*4+1] = irr_mat[i*4+1]; + rc_matrix[mA].data[i*4+2] = irr_mat[i*4+2]; + rc_matrix[mA].data[i*4+3] = irr_mat[i*4+3]; + } + + rc_transposeMatrix(mA, mB); + rc_deleteMatrix(mA); + return mB; +} + +irr::core::matrix4 rc_convertToIrrMatrix(int mA) +{ + int mB = DimMatrix(NEW_MATRIX, 4, 4); + rc_transposeMatrix(mA, mB); + + irr::core::matrix4 irr_mat; + + for(int i = 0; i < 4; i++) + { + irr_mat[i*4] = rc_matrix[mB].data[i*4]; + irr_mat[i*4+1] = rc_matrix[mB].data[i*4+1]; + irr_mat[i*4+2] = rc_matrix[mB].data[i*4+2]; + irr_mat[i*4+3] = rc_matrix[mB].data[i*4+3]; + } + + rc_deleteMatrix(mB); + return irr_mat; +} + +void printRCMatrix(int m) +{ + for(int i = 0; i < 4; i++) + std::cout << "[ " << rc_matrix[m].data[i*4] << ", " << rc_matrix[m].data[i*4+1] << ", " << rc_matrix[m].data[i*4+2] << ", " << rc_matrix[m].data[i*4+3] << " ]" << std::endl; +} + + +void rc_setMatrixTranslation(int mA, double x, double y, double z) +{ + irr::core::matrix4 m = rc_convertToIrrMatrix(mA); + m.setTranslation(irr::core::vector3df(x, y, z)); + rc_convertFromIrrMatrix(m, mA); +} + +void rc_setMatrixRotation(int mA, double x, double y, double z) +{ + irr::core::matrix4 m = rc_convertToIrrMatrix(mA); + m.setRotationDegrees(irr::core::vector3df(x, y, z)); + rc_convertFromIrrMatrix(m, mA); +} + +void rc_setMatrixScale(int mA, double x, double y, double z) +{ + irr::core::matrix4 m = rc_convertToIrrMatrix(mA); + m.setScale(irr::core::vector3df(x, y, z)); + rc_convertFromIrrMatrix(m, mA); +} + +void rc_getMatrixTranslation(int mA, double* x, double* y, double* z) +{ + irr::core::matrix4 m = rc_convertToIrrMatrix(mA); + *x = m.getTranslation().X; + *y = m.getTranslation().Y; + *z = m.getTranslation().Z; +} + +void rc_getMatrixRotation(int mA, double* x, double* y, double* z) +{ + irr::core::matrix4 m = rc_convertToIrrMatrix(mA); + *x = m.getRotationDegrees().X; + *y = m.getRotationDegrees().Y; + *z = m.getRotationDegrees().Z; +} + +void rc_getMatrixScale(int mA, double* x, double* y, double* z) +{ + irr::core::matrix4 m = rc_convertToIrrMatrix(mA); + *x = m.getScale().X; + *y = m.getScale().Y; + *z = m.getScale().Z; } #endif // RC_MATRIX_H_INCLUDED diff --git a/rcbasic_runtime/rc_media.h b/rcbasic_runtime/rc_media.h old mode 100644 new mode 100755 index 6016070..61f125e --- a/rcbasic_runtime/rc_media.h +++ b/rcbasic_runtime/rc_media.h @@ -67,6 +67,8 @@ #include #include +#include + #include "theoraplay.h" #endif //RC_IOS diff --git a/rcbasic_runtime/rc_net.h b/rcbasic_runtime/rc_net.h new file mode 100644 index 0000000..3e1afdf --- /dev/null +++ b/rcbasic_runtime/rc_net.h @@ -0,0 +1,429 @@ +#ifndef RC_NET_H_INCLUDED +#define RC_NET_H_INCLUDED + +#include "rc_os_defines.h" + +#ifdef RC_ANDROID +#define RC_MOBILE +#endif + +#ifdef RC_IOS +#define RC_MOBILE +#endif + + +#ifdef RC_ANDROID + +#include +//Using SDL and standard IO +#include "SDL.h" +#include +#include +#include +#include +#include "SDL_net.h" +#include +#include + +#else + +#ifdef RC_IOS + +//Using SDL and standard IO +#include "SDL2/SDL.h" +#include +#include +#include +#include +#include +#include "SDL2/SDL_net.h" + +#else +//Using SDL and standard IO +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif //RC_IOS + +#endif // RC_ANDROID + +const int MAX_SOCKETS = 256; + +struct rc_tcp_socket_obj +{ + TCPsocket socket; + bool active = false; +}; + +std::vector rc_tcp_socket; + +struct rc_udp_socket_obj +{ + UDPsocket socket; + bool active = false; +}; + +std::vector rc_udp_socket; + +UDPpacket * rc_udp_packet; +int rc_udp_channel; +std::string rc_udp_data; +int rc_udp_len; +int rc_udp_maxlen; +std::string rc_udp_host; +Uint16 rc_udp_port; +int rc_packet_size = 0; +SDLNet_SocketSet rc_socket_set; + +bool rc_net_init() +{ + if (SDLNet_Init() < 0) + { + fprintf(stderr, "SDLNet_Init: %s\n", SDLNet_GetError()); + //exit(EXIT_FAILURE); + return false; + } + rc_socket_set = SDLNet_AllocSocketSet(MAX_SOCKETS*2); + + rc_udp_packet = SDLNet_AllocPacket(512); + rc_packet_size = 512; + + return true; +} + +void rc_net_quit() +{ + if(rc_socket_set) + { + SDLNet_FreeSocketSet(rc_socket_set); + rc_socket_set = NULL; + } + SDLNet_Quit(); +} + +int rc_net_tcp_openSocket(std::string host, Uint16 port) +{ + int id = -1; + + for(int i = 0; i < rc_tcp_socket.size(); i++) + { + if(!rc_tcp_socket[i].active) + { + id = i; + break; + } + } + + if(id < 0) + { + rc_tcp_socket_obj obj; + rc_tcp_socket.push_back(obj); + } + + IPaddress ip; + if(host.compare("") == 0) + { + //exit(0); + SDLNet_ResolveHost(&ip, NULL, port); + } + else + { + //exit(0); + SDLNet_ResolveHost(&ip, host.c_str(), port); + } + rc_tcp_socket[id].socket = SDLNet_TCP_Open(&ip); + if(!rc_tcp_socket[id].socket) + return -1; + + //cout << "Add socket to socket_set" << endl; + SDLNet_TCP_AddSocket(rc_socket_set, rc_tcp_socket[id].socket); + return id; +} + +void rc_net_tcp_closeSocket(int _socket) +{ + if(rc_tcp_socket[_socket].socket == NULL) + { + rc_tcp_socket[_socket].active = false; + return; + } + SDLNet_TCP_DelSocket(rc_socket_set, rc_tcp_socket[_socket].socket); + SDLNet_TCP_Close(rc_tcp_socket[_socket].socket); + rc_tcp_socket[_socket].socket = NULL; + rc_tcp_socket[_socket].active = false; +} + +Uint32 rc_net_tcp_remoteHost(int _socket) +{ + IPaddress * ip = SDLNet_TCP_GetPeerAddress(rc_tcp_socket[_socket].socket); + return ip->host; +} + +Uint32 rc_net_tcp_remotePort(int _socket) +{ + IPaddress * ip = SDLNet_TCP_GetPeerAddress(rc_tcp_socket[_socket].socket); + return ip->port; +} + +int rc_net_checkSockets(Uint32 m) +{ + return SDLNet_CheckSockets(rc_socket_set, m); +} + +int rc_net_tcp_socketReady(int _socket) +{ + return SDLNet_SocketReady(rc_tcp_socket[_socket].socket); +} + +int rc_net_tcp_getData(int socket, int numBytes, void * dst) +{ + int rtn = SDLNet_TCP_Recv(rc_tcp_socket[socket].socket, dst, numBytes); + return rtn; +} + +int rc_net_tcp_getData_str(int socket, int numBytes, std::string * dst) +{ + char c[numBytes+1]; + int rtn = rc_net_tcp_getData(socket, numBytes, c); + c[numBytes] = '\0'; + //cout << "Read bytes: " << (string)c << endl; + dst[0] = c; + return rtn; +} + +int rc_net_tcp_getData_dbl(int socket, int numBytes, double * dst) +{ + int i[numBytes]; + int rtn = rc_net_tcp_getData(socket, numBytes, i); + for(int n = 0; n < numBytes; n++) + { + dst[n] = i[n]; + } + return rtn; +} + +void rc_net_tcp_sendData(int socket, std::string data) +{ + SDLNet_TCP_Send(rc_tcp_socket[socket].socket, data.c_str(), data.length()); +} + +bool rc_net_tcp_acceptSocket(int socket_server, int socket_client) +{ + //cout << "\n\nthis is a test\n\n"; + if(rc_tcp_socket[socket_server].socket == NULL) + { + //cout << "no server" << endl; + return false; + } + bool val = (rc_tcp_socket[socket_client].socket = SDLNet_TCP_Accept(rc_tcp_socket[socket_server].socket)); + if(val) + SDLNet_TCP_AddSocket(rc_socket_set, rc_tcp_socket[socket_client].socket); + //cout << "cp1\n"; + return val; +} + +bool rc_net_udp_openSocket(Uint16 port) +{ + int socket = -1; + + for(int i = 0; i < rc_udp_socket.size(); i++) + { + if(!rc_udp_socket[i].active) + { + socket = i; + break; + } + } + + if(socket < 0) + { + rc_udp_socket_obj obj; + socket = rc_udp_socket.size(); + rc_udp_socket.push_back(obj); + } + + bool rtn = (bool)(rc_udp_socket[socket].socket = SDLNet_UDP_Open(port)); + if(rtn) + { + SDLNet_UDP_AddSocket(rc_socket_set, rc_udp_socket[socket].socket); + rc_udp_socket[socket].active = true; + } + else + { + rc_udp_socket[socket].active = false; + rc_udp_socket[socket].socket = NULL; + return -1; + } + + return socket; +} + +int rc_net_udp_socketReady(int socket) +{ + return SDLNet_SocketReady(rc_udp_socket[socket].socket); +} + +int rc_net_udp_readStream(int socket, std::string * host, double * port, std::string * dst) +{ + //cout << "DEBUG READSTREAM\n"; + //UDPsocket sd; /* Socket descriptor */ + //UDPpacket *p; /* Pointer to packet memory */ + //int quit = 0; + + /* Make space for the packet */ + //if (!(rc_udp_packet = SDLNet_AllocPacket(512))) + //{ + // fprintf(stderr, "SDLNet_AllocPacket: %s\n", SDLNet_GetError()); + // exit(EXIT_FAILURE); + //} + + /* Main loop */ + + /* Wait a packet. UDP_Recv returns != 0 if a packet is coming */ + //while(!quit) + //{ + if (SDLNet_UDP_Recv(rc_udp_socket[socket].socket, rc_udp_packet)) + { + //printf("UDP Packet incoming\n"); + //printf("\tChan: %d\n", rc_udp_packet->channel); + rc_udp_channel = rc_udp_packet->channel; + //printf("\tData: %s\n", (char *)rc_udp_packet->data); + const char * c = (const char *)rc_udp_packet->data; + //rc_udp_data = (string)c; + *dst = (std::string)c; + //printf("\tLen: %d\n", rc_udp_packet->len); + rc_udp_len = rc_udp_packet->len; + //printf("\tMaxlen: %d\n", rc_udp_packet->maxlen); + rc_udp_maxlen = rc_udp_packet->maxlen; + //printf("\tStatus: %d\n", rc_udp_packet->status); + //printf("\tAddress: %x %x\n", rc_udp_packet->address.host, rc_udp_packet->address.port); + //rc_udp_host = SDLNet_ResolveIP(&rc_udp_packet->address); + *host = SDLNet_ResolveIP(&rc_udp_packet->address); + //rc_udp_port = rc_udp_packet->address.port; + *port = rc_udp_packet->address.port; + return 1; + //quit = 1; + } + else + { + rc_udp_channel = 0; + //rc_udp_data = ""; + *dst = ""; + rc_udp_len = 0; + rc_udp_maxlen = rc_udp_packet->maxlen; + //rc_udp_host = SDLNet_ResolveIP(&rc_udp_packet->address); + *host = SDLNet_ResolveIP(&rc_udp_packet->address); + //rc_udp_port = rc_udp_packet->address.port; + *port = rc_udp_packet->address.port; + return 0; + } + + //} + + //SDLNet_FreePacket(rc_udp_packet); +} + +Uint32 rc_net_udp_len() +{ + return rc_udp_len; +} + +Uint32 rc_net_udp_maxlen() +{ + return rc_udp_maxlen; +} + +std::string rc_net_udp_getRemoteHost(int socket) +{ + IPaddress * ip = SDLNet_UDP_GetPeerAddress(rc_udp_socket[socket].socket,0); + // + return SDLNet_ResolveIP(ip); +} + +Uint32 rc_net_udp_getRemotePort(int socket) +{ + IPaddress * ip = SDLNet_UDP_GetPeerAddress(rc_udp_socket[socket].socket,0); + return ip->port; +} + +void rc_net_udp_closeSocket(int socket) +{ + SDLNet_UDP_DelSocket(rc_socket_set, rc_udp_socket[socket].socket); + SDLNet_UDP_Close(rc_udp_socket[socket].socket); + rc_udp_socket[socket].socket = NULL; + rc_udp_socket[socket].active = false; +} + +int rc_net_udp_sendData(int slot, std::string host, Uint16 port, std::string s_data) +{ + IPaddress srvadd; + + if(s_data.length()+1 > rc_packet_size) + { + rc_packet_size = SDLNet_ResizePacket(rc_udp_packet, s_data.length()+1); + if(rc_packet_size < s_data.length()) + { + std::cout << "UDP_SendData Error: " << SDLNet_GetError() << endl; + return 0; + } + } + + + if(rc_udp_packet == NULL) + return 0; + + + if (SDLNet_ResolveHost(&srvadd, host.c_str(), port) == -1) + { + std::cout << "UDP_SendData Error: " << SDLNet_GetError() << "\n"; + //exit(EXIT_FAILURE); + return 0; + } + + rc_udp_packet->address.host = srvadd.host; + rc_udp_packet->address.port = srvadd.port; + rc_udp_packet->data = (Uint8*)s_data.c_str(); + + + rc_udp_packet->len = s_data.length()+1; + //cout << "#Data = " << (char*)rc_udp_packet->data << endl; + //cout << "#Length = " << rc_udp_packet->len << endl; + SDLNet_UDP_Send(rc_udp_socket[slot].socket, -1, rc_udp_packet); + + return 1; +} + +std::string rc_byteToString(Uint8 n) +{ + std::stringstream s; + s << (Uint32)n; + return s.str(); +} + +std::string rc_net_myLocalIP() +{ + //cout << "MYLOCALIP" << endl; + IPaddress myIP; + myIP.host = 0; + myIP.port = 0; + std::string net_name = SDLNet_ResolveIP(&myIP); + SDLNet_ResolveHost(&myIP,net_name.c_str(),0); + std::string ip = ""; + ip += rc_byteToString((Uint8)myIP.host) + "."; + ip += rc_byteToString((Uint8)(myIP.host >> 8)) + "."; + ip += rc_byteToString((Uint8)(myIP.host >> 16)) + "."; + ip += rc_byteToString((Uint8)(myIP.host >> 24)); + //cout << "vagina: " << myIP.host << endl; + return ip; +} + + + +#endif // RC_NET_H_INCLUDED diff --git a/rcbasic_runtime/rc_os_defines.h b/rcbasic_runtime/rc_os_defines.h old mode 100644 new mode 100755 diff --git a/rcbasic_runtime/rc_process.h b/rcbasic_runtime/rc_process.h old mode 100644 new mode 100755 diff --git a/rcbasic_runtime/rc_sprite2D.h b/rcbasic_runtime/rc_sprite2D.h new file mode 100644 index 0000000..6a013dc --- /dev/null +++ b/rcbasic_runtime/rc_sprite2D.h @@ -0,0 +1,36 @@ +#ifndef RC_SPRITE2D_H_INCLUDED +#define RC_SPRITE2D_H_INCLUDED + +#include +#include + +struct rc_sprite2D_physics_obj +{ + b2Body* body; +}; + +struct rc_sprite2D_obj +{ + bool active = false; + int image_id; + irr::core::vector2d position; + irr::f64 rotation; + irr::core::vector2d scale; + + bool visible = true; + Uint8 alpha; + + irr::video::SColor color_mod; + + bool physics_enabled = false; + rc_sprite2D_physics_obj physics; + + int parent_canvas = -1; + + double z; +}; + +irr::core::array rc_sprite; + + +#endif // RC_SPRITE2D_H_INCLUDED diff --git a/rcbasic_runtime/rc_stdlib.h b/rcbasic_runtime/rc_stdlib.h old mode 100644 new mode 100755 index 7fedb54..de196e4 --- a/rcbasic_runtime/rc_stdlib.h +++ b/rcbasic_runtime/rc_stdlib.h @@ -71,20 +71,20 @@ using namespace std; struct dirent *rc_entry; DIR *rc_dir; -string rc_dir_path = ""; +std::string rc_dir_path = ""; #else struct dirent *rc_entry; -string rc_dir; -string rc_dir_path = ""; +std::string rc_dir; +std::string rc_dir_path = ""; HANDLE hfind; #endif // RC_LINUX int rc_cmd_count = 0; -string * rc_cmd_args; +std::string * rc_cmd_args; SDL_RWops * rc_fstream[RC_MAX_FILES]; @@ -94,8 +94,20 @@ bool rc_eof[RC_MAX_FILES]; int rc_user_active_n_stack = 0; int rc_user_active_s_stack = 0; -stack rc_user_n_stack[MAX_USER_STACKS]; -stack rc_user_s_stack[MAX_USER_STACKS]; +struct rc_num_stack_obj +{ + bool active = false; + stack data; +}; + +struct rc_str_stack_obj +{ + bool active = false; + stack data; +}; + +vector rc_user_n_stack; +vector rc_user_s_stack; #ifdef RC_WINDOWS #define MAX_INPUT_LENGTH 32767 @@ -138,16 +150,16 @@ std::size_t utf8_length(std::string const &s) } -void rc_fprint(string txt) +void rc_fprint(std::string txt) { cout << txt; } -string rc_input(string prompt) +std::string rc_input(std::string prompt) { #ifdef RC_WINDOWS - string line = ""; + std::string line = ""; cout << prompt; unsigned long read; @@ -167,11 +179,11 @@ string rc_input(string prompt) mb_str[s_size-1] = 0; } - return (string) mb_str; + return (std::string) mb_str; #else - string line = ""; + std::string line = ""; cout << prompt; getline(cin, line); return line; @@ -185,12 +197,14 @@ std::u32string to_utf32(const std::string &s) return conv.from_bytes(s); } -inline int rc_intern_asc(string c) +inline int rc_intern_asc(std::string c) { + if(c.length()==0) + return 0; return (uint32_t)to_utf32(utf8_substr(c, 0, 1))[0]; } -inline size_t rc_intern_bufferFromString(string s, double* buffer) +inline size_t rc_intern_bufferFromString(std::string s, double* buffer) { for(int i = 0; i < s.length(); i++) { @@ -241,14 +255,14 @@ std::string cpToUTF8(uint32_t cp) return std::string(utf8, len); } -inline string rc_intern_chr(uint32_t n) +inline std::string rc_intern_chr(uint32_t n) { - string s = cpToUTF8(n); + std::string s = cpToUTF8(n); //s += (char) n; return s; } -inline string rc_intern_insert(string src, string tgt, size_t pos) +inline std::string rc_intern_insert(std::string src, std::string tgt, size_t pos) { if(pos < 0 || pos > utf8_length(src)) return src; @@ -256,7 +270,7 @@ inline string rc_intern_insert(string src, string tgt, size_t pos) return utf8_substr(src, 0, pos) + tgt + utf8_substr(src, pos, utf8_length(src)-pos); } -inline double rc_intern_instr(string in_string, string in_substring) +inline double rc_intern_instr(std::string in_string, std::string in_substring) { //cout << "Cant find " << rc_sid[INSTR_SUBSTR][0] << " in " << rc_sid[INSTR_STR][0] << endl; bool found = false; @@ -275,9 +289,9 @@ inline double rc_intern_instr(string in_string, string in_substring) return found ? (double)n : -1; } -inline string rc_intern_lcase(string u_string) +inline std::string rc_intern_lcase(std::string u_string) { - string u_string_out = ""; + std::string u_string_out = ""; for(size_t i=0;i= utf8_length(l_string)) return l_string; @@ -293,21 +307,21 @@ inline string rc_intern_left(string l_string, size_t n) return utf8_substr(l_string,0,n); } -inline size_t rc_intern_length(string l_string) +inline size_t rc_intern_length(std::string l_string) { //cout << "DBG_LEN" << endl; return utf8_length(l_string); } -inline string rc_intern_ltrim(string l_string) +inline std::string rc_intern_ltrim(std::string l_string) { size_t first_index = l_string.find_first_not_of(" "); - if(first_index != string::npos) + if(first_index != std::string::npos) return l_string.substr(first_index); return l_string; } -inline string rc_intern_mid(string m_string, size_t m_start, size_t n) +inline std::string rc_intern_mid(std::string m_string, size_t m_start, size_t n) { //cout << "DBG_MID" << endl; if(m_start < 0 || n < 0) @@ -320,10 +334,10 @@ inline string rc_intern_mid(string m_string, size_t m_start, size_t n) return utf8_substr(m_string, m_start, n); } -inline string rc_intern_replaceSubstr(string src, string rpc, size_t pos) +inline std::string rc_intern_replaceSubstr(std::string src, std::string rpc, size_t pos) { size_t rpc_i = 0; - string n_str = utf8_substr(src, 0, pos); + std::string n_str = utf8_substr(src, 0, pos); if(pos < 0) return src; @@ -341,14 +355,14 @@ inline string rc_intern_replaceSubstr(string src, string rpc, size_t pos) return n_str; } -inline string rc_intern_replace(string src, string tgt, string rpc) +inline std::string rc_intern_replace(std::string src, std::string tgt, std::string rpc) { if(tgt.length()==0) return src; size_t found_inc = rpc.length() > 0 ? rpc.length() : 1; size_t found = 0; found = src.find(tgt); - while( found != string::npos && found < src.length()) + while( found != std::string::npos && found < src.length()) { src = src.substr(0,found) + rpc + src.substr(found + tgt.length()); found = src.find(tgt,found+found_inc); @@ -356,9 +370,9 @@ inline string rc_intern_replace(string src, string tgt, string rpc) return src; } -inline string rc_intern_reverse(string rpc_string) +inline string rc_intern_reverse(std::string rpc_string) { - string n_str = ""; + std::string n_str = ""; if(rpc_string.length()==0) return ""; @@ -371,7 +385,7 @@ inline string rc_intern_reverse(string rpc_string) return n_str; } -inline string rc_intern_right(string src, size_t n) +inline std::string rc_intern_right(std::string src, size_t n) { size_t src_length = utf8_length(src); if(n < 0) @@ -381,7 +395,7 @@ inline string rc_intern_right(string src, size_t n) return utf8_substr(src,src_length-n, src_length -(src_length-n)); } -inline string rc_intern_rtrim(string src) +inline std::string rc_intern_rtrim(std::string src) { if(src.length()==0) return ""; @@ -398,12 +412,12 @@ inline string rc_intern_rtrim(string src) return utf8_substr(src,0,i+1); } -inline size_t rc_intern_size(string src) +inline size_t rc_intern_size(std::string src) { return src.length(); } -inline string rc_intern_stringFromBuffer(double* buffer, size_t buffer_size) +inline std::string rc_intern_stringFromBuffer(double* buffer, size_t buffer_size) { if(buffer_size <= 0) return ""; @@ -416,46 +430,46 @@ inline string rc_intern_stringFromBuffer(double* buffer, size_t buffer_size) } c_buf[buffer_size] = '\0'; - return (string)c_buf; + return (std::string)c_buf; } -inline string rc_intern_stringfill(string f_string, size_t n) +inline string rc_intern_stringfill(std::string f_string, size_t n) { - string f = ""; + std::string f = ""; for(size_t i = 0; i < n; i++) f += f_string; return f; } -inline string rc_intern_str(double n) +inline std::string rc_intern_str(double n) { stringstream ss; ss << n; return ss.str(); } -inline string rc_intern_str_f(double n) +inline std::string rc_intern_str_f(double n) { stringstream ss; ss << fixed << n; return ss.str(); } -inline string rc_intern_str_s(double n) +inline std::string rc_intern_str_s(double n) { stringstream ss; ss << scientific << n; return ss.str(); } -inline unsigned long rc_intern_tally(string t_string, string t_substring) +inline unsigned long rc_intern_tally(std::string t_string, std::string t_substring) { size_t found = 0; - string t_str = t_string; - string t_substr = t_substring; + std::string t_str = t_string; + std::string t_substr = t_substring; found = t_str.find(t_substr); unsigned long tally_count = 0; - while( found != string::npos) + while( found != std::string::npos) { tally_count++; found = t_str.find(t_substr,found+1); @@ -463,14 +477,14 @@ inline unsigned long rc_intern_tally(string t_string, string t_substring) return tally_count; } -inline string rc_intern_trim(string t_string) +inline std::string rc_intern_trim(std::string t_string) { return rc_intern_ltrim(rc_intern_rtrim(t_string)); } -inline string rc_intern_ucase(string u_string) +inline std::string rc_intern_ucase(std::string u_string) { - string u_string_out = ""; + std::string u_string_out = ""; for(size_t i=0;i(n).to_string(); //bin_str = bin_str.substr(bin_str.find_first_not_of("0")); - string binstr = Convert(n);// bin_str; + std::string binstr = Convert(n);// bin_str; return binstr.substr(binstr.find_first_not_of("0")); } #else -inline string rc_intern_bin(uint64_t n) +inline std::string rc_intern_bin(uint64_t n) { - string bin_str = bitset<64>(n).to_string(); + std::string bin_str = bitset<64>(n).to_string(); bin_str = bin_str.substr(bin_str.find_first_not_of("0")); return bin_str; } @@ -586,14 +600,14 @@ inline double rc_intern_frac(double n) return n - floor(n); } -inline string rc_intern_hex(uint64_t n) +inline std::string rc_intern_hex(uint64_t n) { stringstream ss; ss << hex << n; return ss.str(); } -inline double rc_intern_hexInt(string n) +inline double rc_intern_hexInt(std::string n) { uint64_t x; stringstream ss; @@ -689,8 +703,18 @@ inline double rc_intern_xorbit(uint64_t a, uint64_t b) return (a ^ b); } -inline int rc_intern_fileOpen(int fo_stream, string fo_file, int fo_mode) +inline int rc_intern_freeFile() { + for(int i = 0; i < RC_MAX_FILES; i++) + if(rc_fstream[i] == NULL) + return i; + return -1; +} + +inline int rc_intern_fileOpen(std::string fo_file, int fo_mode) +{ + int fo_stream = rc_intern_freeFile(); + if(fo_stream >= 0 && fo_stream < RC_MAX_FILES) { if(rc_fstream[fo_stream] != NULL) @@ -742,10 +766,10 @@ inline int rc_intern_fileOpen(int fo_stream, string fo_file, int fo_mode) if(rc_fstream[fo_stream] == NULL) { //cout << "RC_DEBUG: FILE NOT OPEN" << endl; - return 0; + return -1; } } - return 1; + return fo_stream; } inline int rc_intern_fileClose(int fc_stream) @@ -802,9 +826,9 @@ inline int rc_intern_fileWriteByte(int f_stream, char wb) return 1; } -inline string rc_intern_fileReadLine(int f_stream) +inline std::string rc_intern_fileReadLine(int f_stream) { - string rline = ""; + std::string rline = ""; unsigned char buf[5]; if(SDL_RWread(rc_fstream[f_stream], buf, 1, 1)==0) { @@ -826,7 +850,7 @@ inline string rc_intern_fileReadLine(int f_stream) return rline; } -inline int rc_intern_fileWrite(int f_stream, string line) +inline int rc_intern_fileWrite(int f_stream, std::string line) { //cout << "DEBUG: WRITELINE" << endl; if(rc_fstream[f_stream]!=NULL) @@ -835,17 +859,17 @@ inline int rc_intern_fileWrite(int f_stream, string line) return 1; } -inline int rc_intern_fileWriteLine(int f_stream, string line) +inline int rc_intern_fileWriteLine(int f_stream, std::string line) { //cout << "DEBUG: WRITELINE" << endl; - string line_out = line + "\n"; + std::string line_out = line + "\n"; if(rc_fstream[f_stream]!=NULL) SDL_RWwrite(rc_fstream[f_stream], line_out.c_str(), line_out.length(), 1); //cout << "WRITELINE_END" << endl; return 1; } -inline int rc_intern_fileCopy(string src_file, string dst_file) +inline int rc_intern_fileCopy(std::string src_file, std::string dst_file) { std::ifstream src(src_file.c_str(), std::ios::binary); std::ofstream dst(dst_file.c_str(), std::ios::binary); @@ -863,7 +887,7 @@ inline int rc_intern_fileCopy(string src_file, string dst_file) return 1; } -inline int rc_intern_fileDelete(string tgt_file) +inline int rc_intern_fileDelete(std::string tgt_file) { if(remove(tgt_file.c_str())==0) return 1; @@ -871,7 +895,7 @@ inline int rc_intern_fileDelete(string tgt_file) return 0; } -inline int rc_intern_fileExist(string tgt_file) +inline int rc_intern_fileExist(std::string tgt_file) { std::ifstream infile(tgt_file.c_str()); bool fx = infile.good(); @@ -879,7 +903,7 @@ inline int rc_intern_fileExist(string tgt_file) return (int)fx; } -inline int rc_intern_fileMove(string src, string dst) +inline int rc_intern_fileMove(std::string src, std::string dst) { int fm = rename(src.c_str(), dst.c_str()); if(fm == 0) @@ -888,7 +912,7 @@ inline int rc_intern_fileMove(string src, string dst) return 0; } -inline int rc_intern_fileRename(string src, string dst) +inline int rc_intern_fileRename(std::string src, std::string dst) { int fm = rename(src.c_str(), dst.c_str()); if(fm == 0) @@ -897,7 +921,7 @@ inline int rc_intern_fileRename(string src, string dst) return 0; } -inline unsigned long rc_intern_fileLength(string filename) +inline unsigned long rc_intern_fileLength(std::string filename) { //struct stat st; SDL_RWops * fl_file = SDL_RWFromFile(filename.c_str(), "r"); @@ -925,18 +949,11 @@ inline int rc_intern_eof(int f_stream) return rc_eof[f_stream]; } -inline int rc_intern_freeFile() -{ - for(int i = 0; i < RC_MAX_FILES; i++) - if(rc_fstream[i] == NULL) - return i; - return -1; -} #ifndef RC_WINDOWS #ifdef RC_LINUX -inline int rc_intern_dirChange(string ch_path) +inline int rc_intern_dirChange(std::string ch_path) { if(chdir(ch_path.c_str())!=0) { @@ -948,7 +965,7 @@ inline int rc_intern_dirChange(string ch_path) } #endif // RC_LINUX -inline int rc_intern_dirExist(string d_path) +inline int rc_intern_dirExist(std::string d_path) { struct stat info; @@ -960,7 +977,7 @@ inline int rc_intern_dirExist(string d_path) return 0; } -inline string rc_intern_dirFirst () +inline std::string rc_intern_dirFirst () { rc_dir = opendir (rc_dir_path.c_str()); //string s = ""; @@ -974,24 +991,24 @@ inline string rc_intern_dirFirst () } #ifdef RC_GETCWD -string getcwd_str() +std::string getcwd_str() { char *buffer = new char[MAXPATHLEN]; getcwd(buffer,MAXPATHLEN); if(buffer != NULL) { - string ret(buffer); + std::string ret(buffer); delete[] buffer; return ret; } else { - return string(); + return std::string(); } } -inline int rc_intern_dirChange(string ch_path) +inline int rc_intern_dirChange(std::string ch_path) { if(chdir(ch_path.c_str())!=0) { @@ -1002,9 +1019,9 @@ inline int rc_intern_dirChange(string ch_path) return 0; } -inline string rc_intern_dir() +inline std::string rc_intern_dir() { - string d = getcwd_str(); + std::string d = getcwd_str(); //__android_log_print(ANDROID_LOG_ERROR, "RC_DEBUG_DIR", "%s", SDL_GetPrefPath("rcbasic","lucky")); if(d.compare("")==0) { @@ -1017,9 +1034,9 @@ inline string rc_intern_dir() #else -inline string rc_intern_dir() +inline std::string rc_intern_dir() { - string d = get_current_dir_name(); + std::string d = get_current_dir_name(); if(d.compare("")==0) { cout << "Could not get current directory" << endl; @@ -1031,14 +1048,14 @@ inline string rc_intern_dir() #endif // RC_ANDROID -inline string rc_intern_dirNext() +inline std::string rc_intern_dirNext() { if( (rc_entry = readdir(rc_dir))!=NULL) return rc_entry->d_name; return ""; } -inline int rc_intern_dirCreate(string d_path) +inline int rc_intern_dirCreate(std::string d_path) { if(mkdir(d_path.c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH)!=0) { @@ -1048,7 +1065,7 @@ inline int rc_intern_dirCreate(string d_path) return 1; } -inline int rc_intern_dirDelete(string d_path) +inline int rc_intern_dirDelete(std::string d_path) { if(rmdir(d_path.c_str())!=0) { @@ -1058,7 +1075,7 @@ inline int rc_intern_dirDelete(string d_path) return 1; } -inline string rc_intern_OS() +inline std::string rc_intern_OS() { #ifdef RC_WEB return "WEB"; @@ -1115,7 +1132,7 @@ std::wstring ConvertUtf8ToWide(const std::string& str) return wstr; } -inline int rc_intern_dirChange(string dpath) +inline int rc_intern_dirChange(std::string dpath) { if(SetCurrentDirectoryW(ConvertUtf8ToWide(dpath).c_str())==0) { @@ -1144,7 +1161,7 @@ bool dirExists(const std::string& dirName_in) return false; // this is not a directory! } -inline int rc_intern_dirExist(string dpath) +inline int rc_intern_dirExist(std::string dpath) { return dirExists(dpath); } @@ -1152,7 +1169,7 @@ inline int rc_intern_dirExist(string dpath) HANDLE hFind; WIN32_FIND_DATAW ffd; -string rc_intern_dirFirst() +std::string rc_intern_dirFirst() { //char* path = new char[rc_dir_path.length()+1]; @@ -1168,7 +1185,7 @@ string rc_intern_dirFirst() //_tcscat(path, _T("*.*")); - string path = rc_dir_path; + std::string path = rc_dir_path; if(path.substr(path.length()-1, 1).compare("\\")!=0) path += "\\"; @@ -1185,11 +1202,11 @@ string rc_intern_dirFirst() cerr << _T("Invalid handle value.") << GetLastError() << endl; return ""; } - string fname_utf8 = ConvertWideToUtf8(ffd.cFileName); + std::string fname_utf8 = ConvertWideToUtf8(ffd.cFileName); return fname_utf8; } -inline string rc_intern_dir() +inline std::string rc_intern_dir() { wchar_t buf[MAX_PATH+1]; GetCurrentDirectoryW(MAX_PATH, buf); @@ -1204,14 +1221,14 @@ inline string rc_intern_dir() return ConvertWideToUtf8(d.c_str()); } -string rc_intern_dirNext() +std::string rc_intern_dirNext() { if(!FindNextFileW(hFind,&ffd)) return ""; return ConvertWideToUtf8(ffd.cFileName); } -inline int rc_intern_dirCreate(string dpath) +inline int rc_intern_dirCreate(std::string dpath) { if(CreateDirectoryW(ConvertUtf8ToWide(dpath).c_str(),NULL)==0) { @@ -1221,7 +1238,7 @@ inline int rc_intern_dirCreate(string dpath) return 1; } -inline int rc_intern_dirDelete(string dpath) +inline int rc_intern_dirDelete(std::string dpath) { if(RemoveDirectoryW(ConvertUtf8ToWide(dpath).c_str())==0) { @@ -1231,7 +1248,7 @@ inline int rc_intern_dirDelete(string dpath) return 1; } -inline string rc_intern_OS() +inline std::string rc_intern_OS() { return "WINDOWS"; } @@ -1239,7 +1256,7 @@ inline string rc_intern_OS() #endif // RC_WINDOWS -inline string rc_intern_date() +inline std::string rc_intern_date() { time_t t = time(0); // get time now struct tm * now = localtime( & t ); @@ -1256,12 +1273,12 @@ inline string rc_intern_date() return d.str(); } -string ZeroPadNumber(int num) +std::string ZeroPadNumber(int num) { stringstream ss; // the number is converted to string with the help of stringstream ss << num; - string ret; + std::string ret; ss >> ret; // Append zero chars int str_length = ret.length(); @@ -1270,7 +1287,7 @@ string ZeroPadNumber(int num) return ret; } -string rc_intern_easter(int X) +std::string rc_intern_easter(int X) { stringstream ss; // X = year to compute int K, M, S, A, D, R, OG, SZ, OE; @@ -1293,7 +1310,7 @@ inline unsigned long rc_intern_ticks() return clock(); } -inline string rc_intern_time() +inline std::string rc_intern_time() { time_t t = time(0); // get time now struct tm * now = localtime( & t ); @@ -1326,7 +1343,7 @@ inline void rc_intern_wait(double m_sec) SDL_Delay(m_sec); } -inline int rc_intern_system(string rc_sys_cmd) +inline int rc_intern_system(std::string rc_sys_cmd) { #ifdef RC_IOS return 0; @@ -1335,7 +1352,7 @@ inline int rc_intern_system(string rc_sys_cmd) #endif } -inline string rc_intern_sysReturnOutput(string rc_sys_cmd) +inline std::string rc_intern_sysReturnOutput(std::string rc_sys_cmd) { #if defined(RC_ANDROID) || defined(RC_IOS) || defined(RC_WEB) return ""; @@ -1358,7 +1375,7 @@ inline string rc_intern_sysReturnOutput(string rc_sys_cmd) #endif } -inline string rc_intern_command(int num) +inline std::string rc_intern_command(int num) { if(num < rc_cmd_count) { @@ -1372,26 +1389,27 @@ inline int rc_intern_numCommands() return rc_cmd_count; } -inline string rc_intern_env(string v) +inline std::string rc_intern_env(std::string v) { #ifdef RC_WINDOWS char * val = new char[32767]; int n = GetEnvironmentVariable(v.c_str(), val, 32767); - string rtn = ""; + std::string rtn = ""; if (n>0) - rtn = (string)val; + rtn = (std::string)val; delete val; return rtn; #else char * c = getenv(v.c_str()); if(c != NULL) - return (string) c; + return (std::string) c; return ""; #endif } -inline int rc_intern_setEnv(string name, string value, int overwrite) +inline int rc_intern_setEnv(std::string name, std::string value) { + int overwrite = 1; #ifdef RC_WINDOWS //string env_cmd = name + "=" + value; return SetEnvironmentVariable(name.c_str(), value.c_str()) ? 1 : 0; @@ -1401,45 +1419,126 @@ inline int rc_intern_setEnv(string name, string value, int overwrite) #endif } -inline string rc_intern_prefPath(string org_name, string app_name) +inline std::string rc_intern_prefPath(std::string org_name, std::string app_name) { - return (string) SDL_GetPrefPath(org_name.c_str(), app_name.c_str()); + return (std::string) SDL_GetPrefPath(org_name.c_str(), app_name.c_str()); } -inline int rc_intern_push_n(double n) + +inline int rc_intern_createStack_N() { - rc_user_n_stack[rc_user_active_n_stack].push(n); - return 1; + int id = -1; + for(int i = 0; i < rc_user_n_stack.size(); i++) + { + if(!rc_user_n_stack[i].active) + { + id = i; + break; + } + } + + if(id < 0) + { + rc_num_stack_obj usr_stack; + usr_stack.active = true; + id = rc_user_n_stack.size(); + rc_user_n_stack.push_back(usr_stack); + } + else + { + while(!rc_user_n_stack[id].data.empty()) + rc_user_n_stack[id].data.pop(); + rc_user_n_stack[id].active = true; + } + + return id; } -inline int rc_intern_push_s(string s) +inline int rc_intern_createStack_S() { - rc_user_s_stack[rc_user_active_s_stack].push(s); - return 1; + int id = -1; + for(int i = 0; i < rc_user_s_stack.size(); i++) + { + if(!rc_user_s_stack[i].active) + { + id = i; + break; + } + } + + if(id < 0) + { + rc_str_stack_obj usr_stack; + usr_stack.active = true; + id = rc_user_s_stack.size(); + rc_user_s_stack.push_back(usr_stack); + } + else + { + while(!rc_user_s_stack[id].data.empty()) + rc_user_s_stack[id].data.pop(); + rc_user_s_stack[id].active = true; + } + + return id; } -inline double rc_intern_pop_n() +inline void rc_intern_clearStack_N( int stack_id ) { - double n = rc_user_n_stack[rc_user_active_n_stack].top(); - rc_user_n_stack[rc_user_active_n_stack].pop(); + while(!rc_user_n_stack[stack_id].data.empty()) + rc_user_n_stack[stack_id].data.pop(); +} + +inline void rc_intern_clearStack_S( int stack_id ) +{ + while(!rc_user_s_stack[stack_id].data.empty()) + rc_user_s_stack[stack_id].data.pop(); +} + +inline void rc_intern_deleteStack_N( int stack_id ) +{ + rc_intern_clearStack_N(stack_id); + rc_user_n_stack[stack_id].active = false; +} + +inline void rc_intern_deleteStack_S( int stack_id ) +{ + rc_intern_clearStack_S(stack_id); + rc_user_s_stack[stack_id].active = false; +} + +inline void rc_intern_push_n( int stack_id, double n) +{ + rc_user_n_stack[stack_id].data.push(n); +} + +inline void rc_intern_push_s( int stack_id, std::string s) +{ + rc_user_s_stack[stack_id].data.push(s); +} + +inline double rc_intern_pop_n( int stack_id ) +{ + double n = rc_user_n_stack[stack_id].data.top(); + rc_user_n_stack[stack_id].data.pop(); return n; } -inline string rc_intern_pop_s() +inline std::string rc_intern_pop_s( int stack_id ) { - string s = rc_user_s_stack[rc_user_active_s_stack].top(); - rc_user_s_stack[rc_user_active_s_stack].pop(); + std::string s = rc_user_s_stack[stack_id].data.top(); + rc_user_s_stack[stack_id].data.pop(); return s; } -inline unsigned long rc_intern_n_stack_size() +inline unsigned long rc_intern_n_stack_size( int stack_id ) { - return rc_user_n_stack[rc_user_active_n_stack].size(); + return rc_user_n_stack[stack_id].data.size(); } -inline unsigned long rc_intern_s_stack_size() +inline unsigned long rc_intern_s_stack_size( int stack_id ) { - return rc_user_s_stack[rc_user_active_s_stack].size(); + return rc_user_s_stack[stack_id].data.size(); } inline void rc_intern_getPowerInfo(double * status, double * secs, double * pct) @@ -1469,12 +1568,12 @@ int rc_intern_systemRam() } #ifdef RC_WEB -string rc_intern_evalJS(string js_code) +std::string rc_intern_evalJS(std::string js_code) { return emscripten_run_script_string(js_code.c_str()); } #else -string rc_intern_evalJS(string js_code) +std::string rc_intern_evalJS(std::string js_code) { return "ONLY IN WEB"; } @@ -1482,7 +1581,7 @@ string rc_intern_evalJS(string js_code) //MOBILE OS STUFF -inline string rc_intern_android_getInternalStoragePath() +inline std::string rc_intern_android_getInternalStoragePath() { #ifdef RC_ANDROID return SDL_AndroidGetInternalStoragePath(); @@ -1491,7 +1590,7 @@ inline string rc_intern_android_getInternalStoragePath() #endif } -inline string rc_intern_android_getExternalStoragePath() +inline std::string rc_intern_android_getExternalStoragePath() { #ifdef RC_ANDROID return SDL_AndroidGetExternalStoragePath(); @@ -1509,7 +1608,7 @@ inline int rc_intern_android_getExternalStorageState() #endif } -string rc_intern_android_jni_message(string arg_c) +std::string rc_intern_android_jni_message(std::string arg_c) { #ifdef RC_ANDROID @@ -1537,7 +1636,7 @@ string rc_intern_android_jni_message(string arg_c) env->DeleteLocalRef(activity); env->DeleteLocalRef(clazz); - return (string)strReturn; + return (std::string)strReturn; #else return ""; @@ -1547,10 +1646,16 @@ string rc_intern_android_jni_message(string arg_c) #ifdef RC_IOS #include "rcbasic_ios_native.h" #else - string rc_intern_runtime_utility(string arg) + std::string rc_intern_runtime_utility(std::string arg) { return ""; } #endif + +int rc_numCPUs() +{ + return SDL_GetCPUCount(); +} + #endif // RC_STDLIB_H_INCLUDED diff --git a/rcbasic_runtime/rc_steam.cpp b/rcbasic_runtime/rc_steam.cpp new file mode 100755 index 0000000..7899add --- /dev/null +++ b/rcbasic_runtime/rc_steam.cpp @@ -0,0 +1,107 @@ +#include "rc_steam.h" + +CSteamAchievements::CSteamAchievements(Achievement_t *Achievements, int NumAchievements): + m_iAppID( 0 ), + m_bInitialized( false ), + m_CallbackUserStatsReceived( this, &CSteamAchievements::OnUserStatsReceived ), + m_CallbackUserStatsStored( this, &CSteamAchievements::OnUserStatsStored ), + m_CallbackAchievementStored( this, &CSteamAchievements::OnAchievementStored ) +{ + m_iAppID = SteamUtils()->GetAppID(); + m_pAchievements = Achievements; + m_iNumAchievements = NumAchievements; + RequestStats(); +} + + +bool CSteamAchievements::RequestStats() +{ + // Is Steam loaded? If not we can't get stats. + if ( NULL == SteamUserStats() || NULL == SteamUser() ) + { + return false; + } + // Is the user logged on? If not we can't get stats. + if ( !SteamUser()->BLoggedOn() ) + { + return false; + } + // Request user stats. + return SteamUserStats()->RequestCurrentStats(); +} + + +bool CSteamAchievements::SetAchievement(const char* ID) +{ + // Have we received a call back from Steam yet? + if (m_bInitialized) + { + SteamUserStats()->SetAchievement(ID); + return SteamUserStats()->StoreStats(); + } + // If not then we can't set achievements yet + return false; +} + + +void CSteamAchievements::OnUserStatsReceived( UserStatsReceived_t *pCallback ) +{ + // we may get callbacks for other games' stats arriving, ignore them + if ( m_iAppID == pCallback->m_nGameID ) + { + if ( k_EResultOK == pCallback->m_eResult ) + { + OutputDebugString("Received stats and achievements from Steam\n"); + m_bInitialized = true; + + // load achievements + for ( int iAch = 0; iAch < m_iNumAchievements; ++iAch ) + { + Achievement_t &ach = m_pAchievements[iAch]; + + SteamUserStats()->GetAchievement(ach.m_pchAchievementID, &ach.m_bAchieved); + _snprintf( ach.m_rgchName, sizeof(ach.m_rgchName), "%s", + SteamUserStats()->GetAchievementDisplayAttribute(ach.m_pchAchievementID, + "name")); + _snprintf( ach.m_rgchDescription, sizeof(ach.m_rgchDescription), "%s", + SteamUserStats()->GetAchievementDisplayAttribute(ach.m_pchAchievementID, + "desc")); + } + } + else + { + char buffer[128]; + _snprintf( buffer, 128, "RequestStats - failed, %d\n", pCallback->m_eResult ); + OutputDebugString( buffer ); + } + } +} + + +void CSteamAchievements::OnUserStatsStored( UserStatsStored_t *pCallback ) +{ + // we may get callbacks for other games' stats arriving, ignore them + if ( m_iAppID == pCallback->m_nGameID ) + { + if ( k_EResultOK == pCallback->m_eResult ) + { + OutputDebugString( "Stored stats for Steam\n" ); + } + else + { + char buffer[128]; + _snprintf( buffer, 128, "StatsStored - failed, %d\n", pCallback->m_eResult ); + OutputDebugString( buffer ); + } + } +} + + +void CSteamAchievements::OnAchievementStored( UserAchievementStored_t *pCallback ) +{ + // we may get callbacks for other games' stats arriving, ignore them + if ( m_iAppID == pCallback->m_nGameID ) + { + OutputDebugString( "Stored Achievement for Steam\n" ); + } +} diff --git a/rcbasic_runtime/rc_steam.h b/rcbasic_runtime/rc_steam.h new file mode 100755 index 0000000..f7329d2 --- /dev/null +++ b/rcbasic_runtime/rc_steam.h @@ -0,0 +1,46 @@ +#ifndef RC_STEAM_H_INCLUDED +#define RC_STEAM_H_INCLUDED + +#include + +#define _ACH_ID( id, name ) { id, #id, name, "", 0, 0 } +struct Achievement_t +{ + int m_eAchievementID; + const char *m_pchAchievementID; + char m_rgchName[128]; + char m_rgchDescription[256]; + bool m_bAchieved; + int m_iIconImage; +}; + + +class CSteamAchievements +{ +private: + int64 m_iAppID; // Our current AppID + Achievement_t *m_pAchievements; // Achievements data + int m_iNumAchievements; // The number of Achievements + bool m_bInitialized; // Have we called Request stats and received the callback? + +public: + CSteamAchievements(Achievement_t *Achievements, int NumAchievements); + ~CSteamAchievements(); + + bool RequestStats(); + bool SetAchievement(const char* ID); + + STEAM_CALLBACK( CSteamAchievements, OnUserStatsReceived, UserStatsReceived_t, + m_CallbackUserStatsReceived ); + STEAM_CALLBACK( CSteamAchievements, OnUserStatsStored, UserStatsStored_t, + m_CallbackUserStatsStored ); + STEAM_CALLBACK( CSteamAchievements, OnAchievementStored, + UserAchievementStored_t, m_CallbackAchievementStored ); +}; + + + + + + +#endif // RC_STEAM_H_INCLUDED diff --git a/rcbasic_runtime/rc_steam_lib.h b/rcbasic_runtime/rc_steam_lib.h new file mode 100755 index 0000000..188f189 --- /dev/null +++ b/rcbasic_runtime/rc_steam_lib.h @@ -0,0 +1,22 @@ +#include + +// Defining our achievements +enum EAchievements +{ + ACH_WIN_ONE_GAME = 0, + ACH_WIN_100_GAMES = 1, + ACH_TRAVEL_FAR_ACCUM = 2, + ACH_TRAVEL_FAR_SINGLE = 3, +}; + +// Achievement array which will hold data about the achievements and their state +Achievement_t g_Achievements[] = +{ + _ACH_ID( ACH_WIN_ONE_GAME, "Winner" ), + _ACH_ID( ACH_WIN_100_GAMES, "Champion" ), + _ACH_ID( ACH_TRAVEL_FAR_ACCUM, "Interstellar" ), + _ACH_ID( ACH_TRAVEL_FAR_SINGLE, "Orbiter" ), +}; + +// Global access to Achievements object +CSteamAchievements* g_SteamAchievements = NULL; diff --git a/rcbasic_runtime/rc_test.h b/rcbasic_runtime/rc_test.h new file mode 100644 index 0000000..3954f38 --- /dev/null +++ b/rcbasic_runtime/rc_test.h @@ -0,0 +1,12 @@ +#ifndef RC_TEST_H_INCLUDED +#define RC_TEST_H_INCLUDED + +void rc_tst(double* z) +{ + std::cout << "this is a test" << std::endl; + *z = 37; + + std::cout << "the end" << std::endl; +} + +#endif // RC_TEST_H_INCLUDED diff --git a/rcbasic_runtime/rc_utf8.h b/rcbasic_runtime/rc_utf8.h new file mode 100644 index 0000000..796e49e --- /dev/null +++ b/rcbasic_runtime/rc_utf8.h @@ -0,0 +1,45 @@ +#ifndef RC_UTF8_H_INCLUDED +#define RC_UTF8_H_INCLUDED + +#include +#include + +std::string rc_utf8_substr(const std::string& str, unsigned int start, unsigned int leng) +{ + if (leng==0) { return ""; } + unsigned int c, i, ix, q, min=std::string::npos, max=std::string::npos; + for (q=0, i=0, ix=str.length(); i < ix; i++, q++) + { + if (q==start){ min=i; } + if (q<=start+leng || leng==std::string::npos){ max=i; } + + c = (unsigned char) str[i]; + if ( + //c>=0 && + c<=127) i+=0; + else if ((c & 0xE0) == 0xC0) i+=1; + else if ((c & 0xF0) == 0xE0) i+=2; + else if ((c & 0xF8) == 0xF0) i+=3; + //else if (($c & 0xFC) == 0xF8) i+=4; // 111110bb //byte 5, unnecessary in 4 byte UTF-8 + //else if (($c & 0xFE) == 0xFC) i+=5; // 1111110b //byte 6, unnecessary in 4 byte UTF-8 + else return "";//invalid utf8 + } + if (q<=start+leng || leng==std::string::npos){ max=i; } + if (min==std::string::npos || max==std::string::npos) { return ""; } + return str.substr(min,max-min); +} + +std::size_t rc_utf8_length(std::string const &s) +{ + return std::count_if(s.begin(), s.end(), + [](char c) { return (static_cast(c) & 0xC0) != 0x80; } ); +} + +// convert UTF-8 string to wstring +std::wstring utf8_to_wstring (const std::string& str) +{ + std::wstring_convert> myconv; + return myconv.from_bytes(str); +} + +#endif // RC_UTF8_H_INCLUDED diff --git a/rcbasic_runtime/rc_video.h b/rcbasic_runtime/rc_video.h new file mode 100644 index 0000000..dbc5d8d --- /dev/null +++ b/rcbasic_runtime/rc_video.h @@ -0,0 +1,109 @@ +#ifndef RC_VIDEO_H_INCLUDED +#define RC_VIDEO_H_INCLUDED + +#include "rc_gfx_core.h" +#include + + + +void rc_loadVideo( std::string vid_file ) +{ + irrtheora::loadVideo(vid_file); +} + +void rc_playVideo( int v_loops ) +{ + if(rc_active_canvas < 0 || rc_active_canvas >= rc_canvas.size()) + { + std::cout << "PlayVideo Error: No Active Canvas available" << std::endl; + return; + } + + if(!rc_canvas[rc_active_canvas].texture) + { + std::cout << "PlayVideo Error: No Active Canvas available" << std::endl; + return; + } + + irrtheora::playVideo(v_loops, rc_canvas[rc_active_canvas].texture); +} + +void rc_pauseVideo( ) +{ + irrtheora::pauseVideo(); +} + +void rc_stopVideo( ) +{ + irrtheora::stopVideo(); +} + +void rc_setVideoPosition(Uint32 pos) +{ + irrtheora::setVideoPosition(pos); +} + +void rc_resumeVideo( ) +{ + irrtheora::resumeVideo(); +} + +Uint32 rc_getVideoPosition( ) +{ + return irrtheora::videoPosition(); +} + +void rc_deleteVideo( ) +{ + irrtheora::deleteVideo(); +} + +bool rc_videoIsPlaying( ) +{ + return irrtheora::videoIsPlaying(); +} + +bool rc_videoEnd( ) +{ + return irrtheora::videoEnd(); +} + +void rc_getVideoStats( std::string vid_file, double* vlen, double* vfps, double* frame_w, double* frame_h ) +{ + irrtheora::getVideoStats(vid_file, vlen, vfps, frame_w, frame_h); +} + +void rc_setVideoDrawRect( double x, double y, double w, double h ) +{ + irrtheora::setVideoDrawRect(x, y, w, h); +} + +void rc_getVideoDrawRect( double* x, double* y, double* w, double* h ) +{ + irrtheora::getVideoDrawRect(x, y, w, h); +} + +void rc_getVideoSize( double* w, double* h ) +{ + irrtheora::getVideoSize(w, h); +} + +bool rc_videoExists( ) +{ + return irrtheora::videoExists(); +} + + +void rc_setVideoVolume( int vol ) +{ + irrtheora::setVideoVolume(vol); +} + +int rc_getVideoVolume( ) +{ + return irrtheora::getVideoVolume(); +} + + + +#endif // RC_VIDEO_H_INCLUDED diff --git a/rcbasic_runtime/rcbasic_runtime.cbp b/rcbasic_runtime/rcbasic_runtime.cbp new file mode 100755 index 0000000..b55c92b --- /dev/null +++ b/rcbasic_runtime/rcbasic_runtime.cbp @@ -0,0 +1,98 @@ + + + + + + diff --git a/rcbasic_runtime/rcbasic_runtime.cscope_file_list b/rcbasic_runtime/rcbasic_runtime.cscope_file_list new file mode 100755 index 0000000..498d585 --- /dev/null +++ b/rcbasic_runtime/rcbasic_runtime.cscope_file_list @@ -0,0 +1,11 @@ +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/theoraplay.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_matrix.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_os_defines.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/theoraplay.c" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_defines.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_process.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/theoraplay_cvtrgb.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_geometry.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_media.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/main.cpp" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_stdlib.h" diff --git a/rcbasic_runtime/rcbasic_runtime.depend b/rcbasic_runtime/rcbasic_runtime.depend new file mode 100755 index 0000000..9a6039d --- /dev/null +++ b/rcbasic_runtime/rcbasic_runtime.depend @@ -0,0 +1,2450 @@ +# depslib dependency file v1.0 +1726536727 source:/home/n00b/Projects/RCBASIC4/rcbasic_runtime/main.cpp + "rc_os_defines.h" + + + + + + + + + + + "SDL.h" + + + + + + + "rc_defines.h" + "rc_stdlib.h" + "rc_gfx.h" + "rc_gfx3D.h" + "rc_matrix.h" + "rc_geometry.h" + "rc_audio.h" + "rc_net.h" + "rc_video.h" + "rc_test.h" + + "rc_func130_cases.h" + +1714359665 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_os_defines.h + +1726536916 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_defines.h + +1726871849 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_stdlib.h + "rc_os_defines.h" + + + + + + + + + + + + + + + + + + + + "SDL.h" + + + + + + + "rcbasic_ios_native.h" + +1701045709 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_media.h + "rc_os_defines.h" + + "SDL.h" + "SDL_image.h" + "SDL2_gfxPrimitives.h" + "SDL_ttf.h" + + + + "SDL_mixer.h" + "SDL_net.h" + + "theoraplay.h" + "SDL2/SDL.h" + "SDL2/SDL_image.h" + "SDL2/SDL2_gfxPrimitives.h" + "SDL2/SDL_ttf.h" + + + + "SDL2/SDL_mixer.h" + "SDL2/SDL_net.h" + + "theoraplay.h" + + + + + + + + + + + + + + "theoraplay.h" + + +1714359665 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/theoraplay.h + +1726447734 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_matrix.h + + + + + + + +1701045709 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_process.h + + "SDL.h" + + + "rc_matrix.h" + "rc_defines.h" + +1726446396 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_geometry.h + "rc_matrix.h" + + +1714359665 source:/home/n00b/Projects/RCBASIC4/rcbasic_runtime/theoraplay.c + + + + + "SDL2/SDL.h" + + + + "theoraplay.h" + "theora/theoradec.h" + "vorbis/codec.h" + "theoraplay_cvtrgb.h" + "theoraplay_cvtrgb.h" + +1714359665 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/theoraplay_cvtrgb.h + +1716017107 source:/home/n00b/Projects/RCBASIC4/rcbasic_runtime/gui_freetype_font.cpp + "gui_freetype_font.h" + + +1716016724 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/gui_freetype_font.h + + + + +1692987172 /usr/include/freetype2/freetype/freetype.h + + + + +1677476384 /usr/include/freetype2/ft2build.h + + +1677476384 /usr/include/freetype2/freetype/config/ftheader.h + +1677476384 /usr/include/freetype2/freetype/fttypes.h + + + + + +1678861224 /usr/include/freetype2/freetype/ftsystem.h + +1682865771 /usr/include/freetype2/freetype/ftimage.h + +1677476384 /usr/include/freetype2/freetype/fterrors.h + + + +1677476384 /usr/include/freetype2/freetype/ftmoderr.h + +1677476384 /usr/include/freetype2/freetype/fterrdef.h + +1715920195 /home/n00b/Projects/RCIrrlicht/include/irrlicht.h + "IrrCompileConfig.h" + "aabbox3d.h" + "CDynamicMeshBuffer.h" + "CIndexBuffer.h" + "CMeshBuffer.h" + "coreutil.h" + "CVertexBuffer.h" + "IProfiler.h" + "dimension2d.h" + "ECullingTypes.h" + "EDebugSceneTypes.h" + "EDriverFeatures.h" + "EDriverTypes.h" + "EGUIAlignment.h" + "EGUIElementTypes.h" + "EHardwareBufferFlags.h" + "EMaterialFlags.h" + "EMaterialTypes.h" + "EMeshWriterEnums.h" + "EMessageBoxFlags.h" + "ESceneNodeAnimatorTypes.h" + "ESceneNodeTypes.h" + "ETerrainElements.h" + "fast_atof.h" + "heapsort.h" + "IAnimatedMesh.h" + "IAnimatedMeshMD2.h" + "IAnimatedMeshMD3.h" + "IAnimatedMeshSceneNode.h" + "IAttributeExchangingObject.h" + "IAttributes.h" + "IBillboardSceneNode.h" + "IBillboardTextSceneNode.h" + "IBoneSceneNode.h" + "ICameraSceneNode.h" + "IContextManager.h" + "ICursorControl.h" + "IDummyTransformationSceneNode.h" + "IDynamicMeshBuffer.h" + "IEventReceiver.h" + "IFileList.h" + "IFileSystem.h" + "IGeometryCreator.h" + "IGPUProgrammingServices.h" + "IGUIButton.h" + "IGUICheckBox.h" + "IGUIColorSelectDialog.h" + "IGUIComboBox.h" + "IGUIContextMenu.h" + "IGUIEditBox.h" + "IGUIElement.h" + "IGUIElementFactory.h" + "IGUIEnvironment.h" + "IGUIFileOpenDialog.h" + "IGUIFont.h" + "IGUIFontBitmap.h" + "IGUIImage.h" + "IGUIInOutFader.h" + "IGUIListBox.h" + "IGUIMeshViewer.h" + "IGUIScrollBar.h" + "IGUISkin.h" + "IGUISpinBox.h" + "IGUISpriteBank.h" + "IGUIStaticText.h" + "IGUITabControl.h" + "IGUITable.h" + "IGUIToolbar.h" + "IGUIWindow.h" + "IGUITreeView.h" + "IGUIProfiler.h" + "IImage.h" + "IImageLoader.h" + "IImageWriter.h" + "IIndexBuffer.h" + "ILightSceneNode.h" + "ILogger.h" + "IMaterialRenderer.h" + "IMaterialRendererServices.h" + "IMesh.h" + "IMeshBuffer.h" + "IMeshCache.h" + "IMeshLoader.h" + "IMeshManipulator.h" + "IMeshSceneNode.h" + "IMeshWriter.h" + "IOctreeSceneNode.h" + "IColladaMeshWriter.h" + "IMetaTriangleSelector.h" + "IOSOperator.h" + "IParticleSystemSceneNode.h" + "IQ3LevelMesh.h" + "IQ3Shader.h" + "IReadFile.h" + "IReferenceCounted.h" + "irrArray.h" + "IRandomizer.h" + "IRenderTarget.h" + "IrrlichtDevice.h" + "irrList.h" + "irrMap.h" + "irrMath.h" + "irrString.h" + "irrTypes.h" + "path.h" + "irrXML.h" + "ISceneCollisionManager.h" + "ISceneLoader.h" + "ISceneManager.h" + "ISceneNode.h" + "ISceneNodeAnimator.h" + "ISceneNodeAnimatorCameraFPS.h" + "ISceneNodeAnimatorCameraMaya.h" + "ISceneNodeAnimatorCollisionResponse.h" + "ISceneNodeAnimatorFactory.h" + "ISceneNodeFactory.h" + "ISceneUserDataSerializer.h" + "IShaderConstantSetCallBack.h" + "IShadowVolumeSceneNode.h" + "ISkinnedMesh.h" + "ITerrainSceneNode.h" + "ITextSceneNode.h" + "ITexture.h" + "ITimer.h" + "ITriangleSelector.h" + "IVertexBuffer.h" + "IVideoDriver.h" + "IVideoModeList.h" + "IVolumeLightSceneNode.h" + "IWriteFile.h" + "IXMLReader.h" + "IXMLWriter.h" + "ILightManager.h" + "Keycodes.h" + "line2d.h" + "line3d.h" + "matrix4.h" + "plane3d.h" + "position2d.h" + "quaternion.h" + "rect.h" + "S3DVertex.h" + "SAnimatedMesh.h" + "SceneParameters.h" + "SColor.h" + "SExposedVideoData.h" + "SIrrCreationParameters.h" + "SKeyMap.h" + "SLight.h" + "SMaterial.h" + "SOverrideMaterial.h" + "SMesh.h" + "SMeshBuffer.h" + "SMeshBufferLightMap.h" + "SMeshBufferTangents.h" + "SParticle.h" + "SSharedMeshBuffer.h" + "SSkinMeshBuffer.h" + "SVertexIndex.h" + "SViewFrustum.h" + "triangle3d.h" + "vector2d.h" + "vector3d.h" + "SIrrCreationParameters.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IrrCompileConfig.h + + + + +1715920195 /home/n00b/Projects/RCIrrlicht/include/aabbox3d.h + "irrMath.h" + "plane3d.h" + "line3d.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/irrMath.h + "IrrCompileConfig.h" + "irrTypes.h" + + + + + +1715920195 /home/n00b/Projects/RCIrrlicht/include/irrTypes.h + "IrrCompileConfig.h" + + + + "assert.h" + + + +1715920195 /home/n00b/Projects/RCIrrlicht/include/plane3d.h + "irrMath.h" + "vector3d.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/vector3d.h + "irrMath.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/line3d.h + "irrTypes.h" + "vector3d.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/CDynamicMeshBuffer.h + "IDynamicMeshBuffer.h" + "CVertexBuffer.h" + "CIndexBuffer.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IDynamicMeshBuffer.h + "IMeshBuffer.h" + "IVertexBuffer.h" + "IIndexBuffer.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IMeshBuffer.h + "IReferenceCounted.h" + "SMaterial.h" + "aabbox3d.h" + "S3DVertex.h" + "SVertexIndex.h" + "EHardwareBufferFlags.h" + "EPrimitiveTypes.h" + "EMeshBufferTypes.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IReferenceCounted.h + "irrTypes.h" + "leakHunter.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/leakHunter.h + "IrrCompileConfig.h" + "irrArray.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/irrArray.h + "irrTypes.h" + "heapsort.h" + "irrAllocator.h" + "irrMath.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/heapsort.h + "irrTypes.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/irrAllocator.h + "irrTypes.h" + + + +1715920195 /home/n00b/Projects/RCIrrlicht/include/SMaterial.h + "SColor.h" + "matrix4.h" + "irrMath.h" + "EMaterialTypes.h" + "EMaterialFlags.h" + "SMaterialLayer.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/SColor.h + "irrTypes.h" + "irrMath.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/matrix4.h + "irrMath.h" + "vector3d.h" + "vector2d.h" + "plane3d.h" + "aabbox3d.h" + "rect.h" + "irrString.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/vector2d.h + "irrMath.h" + "dimension2d.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/dimension2d.h + "irrTypes.h" + "irrMath.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/rect.h + "irrTypes.h" + "dimension2d.h" + "position2d.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/position2d.h + "vector2d.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/irrString.h + "irrTypes.h" + "irrAllocator.h" + "irrMath.h" + + +1715920195 /home/n00b/Projects/RCIrrlicht/include/EMaterialTypes.h + +1715920195 /home/n00b/Projects/RCIrrlicht/include/EMaterialFlags.h + +1715920195 /home/n00b/Projects/RCIrrlicht/include/SMaterialLayer.h + "matrix4.h" + "irrAllocator.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/S3DVertex.h + "vector3d.h" + "vector2d.h" + "SColor.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/SVertexIndex.h + "irrTypes.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/EHardwareBufferFlags.h + +1715920195 /home/n00b/Projects/RCIrrlicht/include/EPrimitiveTypes.h + +1715920195 /home/n00b/Projects/RCIrrlicht/include/EMeshBufferTypes.h + "irrTypes.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IVertexBuffer.h + "IReferenceCounted.h" + "irrArray.h" + "EHardwareBufferFlags.h" + "S3DVertex.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IIndexBuffer.h + "IReferenceCounted.h" + "EHardwareBufferFlags.h" + "SVertexIndex.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/CVertexBuffer.h + "IVertexBuffer.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/CIndexBuffer.h + "IIndexBuffer.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/CMeshBuffer.h + "irrArray.h" + "IMeshBuffer.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/coreutil.h + "irrString.h" + "path.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/path.h + "irrString.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IProfiler.h + "IrrCompileConfig.h" + "irrString.h" + "irrArray.h" + "ITimer.h" + + +1715920195 /home/n00b/Projects/RCIrrlicht/include/ITimer.h + "IReferenceCounted.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/ECullingTypes.h + "irrTypes.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/EDebugSceneTypes.h + +1715920195 /home/n00b/Projects/RCIrrlicht/include/EDriverFeatures.h + +1715920195 /home/n00b/Projects/RCIrrlicht/include/EDriverTypes.h + "irrTypes.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/EGUIAlignment.h + "irrTypes.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/EGUIElementTypes.h + "irrTypes.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/EMeshWriterEnums.h + "irrTypes.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/EMessageBoxFlags.h + +1715920195 /home/n00b/Projects/RCIrrlicht/include/ESceneNodeAnimatorTypes.h + +1715920195 /home/n00b/Projects/RCIrrlicht/include/ESceneNodeTypes.h + "irrTypes.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/ETerrainElements.h + +1715920195 /home/n00b/Projects/RCIrrlicht/include/fast_atof.h + "irrMath.h" + "irrString.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IAnimatedMesh.h + "IMesh.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IMesh.h + "IReferenceCounted.h" + "SMaterial.h" + "EHardwareBufferFlags.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IAnimatedMeshMD2.h + "IAnimatedMesh.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IAnimatedMeshMD3.h + "IAnimatedMesh.h" + "IQ3Shader.h" + "quaternion.h" + "irrpack.h" + "irrunpack.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IQ3Shader.h + "irrArray.h" + "fast_atof.h" + "IFileSystem.h" + "IVideoDriver.h" + "coreutil.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IFileSystem.h + "IReferenceCounted.h" + "IXMLReader.h" + "IXMLWriter.h" + "IFileArchive.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IXMLReader.h + "IReferenceCounted.h" + "irrXML.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/irrXML.h + + "IrrCompileConfig.h" + "irrArray.h" + "irrString.h" + + + + + + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IXMLWriter.h + "IReferenceCounted.h" + "irrXML.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IFileArchive.h + "IReadFile.h" + "IFileList.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IReadFile.h + "IReferenceCounted.h" + "coreutil.h" + "EReadFileType.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/EReadFileType.h + "irrTypes.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IFileList.h + "IReferenceCounted.h" + "path.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IVideoDriver.h + "rect.h" + "SColor.h" + "ITexture.h" + "irrArray.h" + "matrix4.h" + "plane3d.h" + "dimension2d.h" + "position2d.h" + "triangle3d.h" + "EDriverTypes.h" + "EDriverFeatures.h" + "EPrimitiveTypes.h" + "SExposedVideoData.h" + "S3DVertex.h" + "SVertexIndex.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/ITexture.h + "IReferenceCounted.h" + "IImage.h" + "dimension2d.h" + "EDriverTypes.h" + "path.h" + "matrix4.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IImage.h + "IReferenceCounted.h" + "position2d.h" + "rect.h" + "SColor.h" + "irrAllocator.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/triangle3d.h + "vector3d.h" + "line3d.h" + "plane3d.h" + "aabbox3d.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/SExposedVideoData.h + +1715920195 /home/n00b/Projects/RCIrrlicht/include/quaternion.h + "irrTypes.h" + "irrMath.h" + "matrix4.h" + "vector3d.h" + +1447367521 /home/n00b/Projects/RCIrrlicht/include/irrpack.h + +1447367521 /home/n00b/Projects/RCIrrlicht/include/irrunpack.h + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IAnimatedMeshSceneNode.h + "ISceneNode.h" + "IBoneSceneNode.h" + "IAnimatedMeshMD2.h" + "IAnimatedMeshMD3.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/ISceneNode.h + "IAttributeExchangingObject.h" + "ESceneNodeTypes.h" + "ESceneNodeUpdateAbs.h" + "ECullingTypes.h" + "EDebugSceneTypes.h" + "ISceneNodeAnimator.h" + "ITriangleSelector.h" + "SMaterial.h" + "irrString.h" + "aabbox3d.h" + "matrix4.h" + "irrList.h" + "IAttributes.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IAttributeExchangingObject.h + "IReferenceCounted.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/ESceneNodeUpdateAbs.h + +1715920195 /home/n00b/Projects/RCIrrlicht/include/ISceneNodeAnimator.h + "ESceneNodeAnimatorTypes.h" + "IAttributeExchangingObject.h" + "IAttributes.h" + "IEventReceiver.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IAttributes.h + "IReferenceCounted.h" + "SColor.h" + "vector3d.h" + "vector2d.h" + "line2d.h" + "line3d.h" + "triangle3d.h" + "position2d.h" + "rect.h" + "dimension2d.h" + "matrix4.h" + "quaternion.h" + "plane3d.h" + "triangle3d.h" + "line2d.h" + "line3d.h" + "irrString.h" + "irrArray.h" + "IXMLReader.h" + "IXMLWriter.h" + "EAttributes.h" + "path.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/line2d.h + "irrTypes.h" + "vector2d.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/EAttributes.h + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IEventReceiver.h + "ILogger.h" + "Keycodes.h" + "irrString.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/ILogger.h + "IReferenceCounted.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/Keycodes.h + +1715920195 /home/n00b/Projects/RCIrrlicht/include/ITriangleSelector.h + "IReferenceCounted.h" + "triangle3d.h" + "aabbox3d.h" + "matrix4.h" + "line3d.h" + "irrArray.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/irrList.h + "irrTypes.h" + "irrAllocator.h" + "irrMath.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IBoneSceneNode.h + "ISceneNode.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IBillboardSceneNode.h + "ISceneNode.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IBillboardTextSceneNode.h + "IBillboardSceneNode.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/ICameraSceneNode.h + "ISceneNode.h" + "IEventReceiver.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IContextManager.h + "SExposedVideoData.h" + "SIrrCreationParameters.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/SIrrCreationParameters.h + "EDriverTypes.h" + "EDeviceTypes.h" + "dimension2d.h" + "ILogger.h" + "position2d.h" + "path.h" + "IrrCompileConfig.h" + +1718249254 /home/n00b/Projects/RCIrrlicht/include/EDeviceTypes.h + +1715920195 /home/n00b/Projects/RCIrrlicht/include/ICursorControl.h + "IReferenceCounted.h" + "position2d.h" + "rect.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IDummyTransformationSceneNode.h + "ISceneNode.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGeometryCreator.h + "IReferenceCounted.h" + "IMesh.h" + "IImage.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGPUProgrammingServices.h + "EShaderTypes.h" + "EMaterialTypes.h" + "EPrimitiveTypes.h" + "path.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/EShaderTypes.h + "irrTypes.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGUIButton.h + "IGUIElement.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGUIElement.h + "IAttributeExchangingObject.h" + "irrList.h" + "rect.h" + "irrString.h" + "IEventReceiver.h" + "EGUIElementTypes.h" + "EGUIAlignment.h" + "IAttributes.h" + "IGUIEnvironment.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGUIEnvironment.h + "IReferenceCounted.h" + "IGUISkin.h" + "rect.h" + "EMessageBoxFlags.h" + "EFocusFlags.h" + "IEventReceiver.h" + "IXMLReader.h" + "IXMLWriter.h" + "path.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGUISkin.h + "IAttributeExchangingObject.h" + "EGUIAlignment.h" + "SColor.h" + "rect.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/EFocusFlags.h + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGUICheckBox.h + "IGUIElement.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGUIColorSelectDialog.h + "IGUIElement.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGUIComboBox.h + "IGUIElement.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGUIContextMenu.h + "IGUIElement.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGUIEditBox.h + "IGUIElement.h" + "SColor.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGUIElementFactory.h + "IReferenceCounted.h" + "EGUIElementTypes.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGUIFileOpenDialog.h + "IGUIElement.h" + "path.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGUIFont.h + "IReferenceCounted.h" + "SColor.h" + "rect.h" + "irrString.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGUIFontBitmap.h + "IGUIFont.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGUIImage.h + "IGUIElement.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGUIInOutFader.h + "IGUIElement.h" + "SColor.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGUIListBox.h + "IGUIElement.h" + "SColor.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGUIMeshViewer.h + "IGUIElement.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGUIScrollBar.h + "IGUIElement.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGUISpinBox.h + "IGUIElement.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGUISpriteBank.h + "IReferenceCounted.h" + "irrArray.h" + "SColor.h" + "rect.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGUIStaticText.h + "IGUIElement.h" + "SColor.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGUITabControl.h + "IGUIElement.h" + "SColor.h" + "IGUISkin.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGUITable.h + "IGUIElement.h" + "SColor.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGUIToolbar.h + "IGUIElement.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGUIWindow.h + "IGUIElement.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGUITreeView.h + "IGUIElement.h" + "IGUIImageList.h" + "irrTypes.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGUIImageList.h + "rect.h" + "IReferenceCounted.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IGUIProfiler.h + "IGUIElement.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IImageLoader.h + "IReferenceCounted.h" + "IImage.h" + "ITexture.h" + "path.h" + "irrArray.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IImageWriter.h + "IReferenceCounted.h" + "coreutil.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/ILightSceneNode.h + "ISceneNode.h" + "SLight.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/SLight.h + "SColor.h" + "vector3d.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IMaterialRenderer.h + "IReferenceCounted.h" + "SMaterial.h" + "S3DVertex.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IMaterialRendererServices.h + "SMaterial.h" + "S3DVertex.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IMeshCache.h + "IReferenceCounted.h" + "path.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IMeshLoader.h + "IReferenceCounted.h" + "path.h" + "IMeshTextureLoader.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IMeshTextureLoader.h + "path.h" + "IReferenceCounted.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IMeshManipulator.h + "IReferenceCounted.h" + "vector3d.h" + "aabbox3d.h" + "matrix4.h" + "IAnimatedMesh.h" + "IMeshBuffer.h" + "SVertexManipulator.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/SVertexManipulator.h + "matrix4.h" + "S3DVertex.h" + "SColor.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IMeshSceneNode.h + "ISceneNode.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IMeshWriter.h + "IReferenceCounted.h" + "EMeshWriterEnums.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IOctreeSceneNode.h + "IMeshSceneNode.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IColladaMeshWriter.h + "IMeshWriter.h" + "ISceneNode.h" + "SMaterial.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IMetaTriangleSelector.h + "ITriangleSelector.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IOSOperator.h + "IReferenceCounted.h" + "irrString.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IParticleSystemSceneNode.h + "ISceneNode.h" + "IParticleAnimatedMeshSceneNodeEmitter.h" + "IParticleBoxEmitter.h" + "IParticleCylinderEmitter.h" + "IParticleMeshEmitter.h" + "IParticleRingEmitter.h" + "IParticleSphereEmitter.h" + "IParticleAttractionAffector.h" + "IParticleFadeOutAffector.h" + "IParticleGravityAffector.h" + "IParticleRotationAffector.h" + "dimension2d.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IParticleAnimatedMeshSceneNodeEmitter.h + "IParticleEmitter.h" + "IAnimatedMeshSceneNode.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IParticleEmitter.h + "IAttributeExchangingObject.h" + "SParticle.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/SParticle.h + "vector3d.h" + "dimension2d.h" + "SColor.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IParticleBoxEmitter.h + "IParticleEmitter.h" + "aabbox3d.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IParticleCylinderEmitter.h + "IParticleEmitter.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IParticleMeshEmitter.h + "IParticleEmitter.h" + "IMesh.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IParticleRingEmitter.h + "IParticleEmitter.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IParticleSphereEmitter.h + "IParticleEmitter.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IParticleAttractionAffector.h + "IParticleAffector.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IParticleAffector.h + "IAttributeExchangingObject.h" + "SParticle.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IParticleFadeOutAffector.h + "IParticleAffector.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IParticleGravityAffector.h + "IParticleAffector.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IParticleRotationAffector.h + "IParticleAffector.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IQ3LevelMesh.h + "IAnimatedMesh.h" + "IQ3Shader.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IRandomizer.h + "IReferenceCounted.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IRenderTarget.h + "IReferenceCounted.h" + "EDriverTypes.h" + "irrArray.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IrrlichtDevice.h + "IReferenceCounted.h" + "dimension2d.h" + "IVideoDriver.h" + "EDriverTypes.h" + "EDeviceTypes.h" + "IEventReceiver.h" + "ICursorControl.h" + "IVideoModeList.h" + "ITimer.h" + "IOSOperator.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IVideoModeList.h + "IReferenceCounted.h" + "dimension2d.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/irrMap.h + "irrTypes.h" + "irrMath.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/ISceneCollisionManager.h + "IReferenceCounted.h" + "vector3d.h" + "triangle3d.h" + "position2d.h" + "line3d.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/ISceneLoader.h + "IReferenceCounted.h" + "path.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/ISceneManager.h + "IReferenceCounted.h" + "irrArray.h" + "path.h" + "vector3d.h" + "dimension2d.h" + "SColor.h" + "ETerrainElements.h" + "ESceneNodeTypes.h" + "ESceneNodeAnimatorTypes.h" + "EMeshWriterEnums.h" + "SceneParameters.h" + "IGeometryCreator.h" + "ISkinnedMesh.h" + "IXMLWriter.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/SceneParameters.h + "irrTypes.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/ISkinnedMesh.h + "irrArray.h" + "IAnimatedMesh.h" + "SSkinMeshBuffer.h" + "quaternion.h" + "irrString.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/SSkinMeshBuffer.h + "IMeshBuffer.h" + "S3DVertex.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/ISceneNodeAnimatorCameraFPS.h + "ISceneNodeAnimator.h" + "irrArray.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/ISceneNodeAnimatorCameraMaya.h + "ISceneNodeAnimator.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/ISceneNodeAnimatorCollisionResponse.h + "ISceneNode.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/ISceneNodeAnimatorFactory.h + "IReferenceCounted.h" + "ESceneNodeAnimatorTypes.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/ISceneNodeFactory.h + "IReferenceCounted.h" + "ESceneNodeTypes.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/ISceneUserDataSerializer.h + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IShaderConstantSetCallBack.h + "IReferenceCounted.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IShadowVolumeSceneNode.h + "ISceneNode.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/ITerrainSceneNode.h + "ETerrainElements.h" + "ISceneNode.h" + "IDynamicMeshBuffer.h" + "irrArray.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/ITextSceneNode.h + "ISceneNode.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IVolumeLightSceneNode.h + "ISceneNode.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/IWriteFile.h + "IReferenceCounted.h" + "path.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/ILightManager.h + "IReferenceCounted.h" + "irrArray.h" + "ISceneManager.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/SAnimatedMesh.h + "IAnimatedMesh.h" + "IMesh.h" + "aabbox3d.h" + "irrArray.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/SKeyMap.h + "Keycodes.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/SOverrideMaterial.h + "SMaterial.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/SMesh.h + "IMesh.h" + "IMeshBuffer.h" + "aabbox3d.h" + "irrArray.h" + +1364490247 /home/n00b/Projects/RCIrrlicht/include/SMeshBuffer.h + "CMeshBuffer.h" + +1364490247 /home/n00b/Projects/RCIrrlicht/include/SMeshBufferLightMap.h + "CMeshBuffer.h" + +1364490247 /home/n00b/Projects/RCIrrlicht/include/SMeshBufferTangents.h + "CMeshBuffer.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/SSharedMeshBuffer.h + "irrArray.h" + "IMeshBuffer.h" + +1715920195 /home/n00b/Projects/RCIrrlicht/include/SViewFrustum.h + "plane3d.h" + "vector3d.h" + "line3d.h" + "aabbox3d.h" + "matrix4.h" + "IVideoDriver.h" + +1725742730 source:/home/n00b/Projects/RCBASIC4/rcbasic_runtime/RealisticWater.cpp + "RealisticWater.h" + +1725749359 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/RealisticWater.h + + +1726527026 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_gfx.h + + + + + + + + + + "rc_gfx_core.h" + "gui_freetype_font.h" + "rc_utf8.h" + + "rc_sprite2D.h" + + + +1725932838 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_gfx_core.h + + + + + + + + + + "gui_freetype_font.h" + "rc_utf8.h" + "camera.h" + + "rc_sprite2D.h" + + + + +1716144876 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_utf8.h + + + +1724983978 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/camera.h + + + +1724001703 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_sprite2D.h + + + +1608686973 /usr/include/bullet/BulletSoftBody/btSoftRigidDynamicsWorld.h + "BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h" + "btSoftBody.h" + +1608686973 /usr/include/bullet/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h + "btDynamicsWorld.h" + "LinearMath/btAlignedObjectArray.h" + "LinearMath/btThreads.h" + +1608686973 /usr/include/bullet/BulletDynamics/Dynamics/btDynamicsWorld.h + "BulletCollision/CollisionDispatch/btCollisionWorld.h" + "BulletDynamics/ConstraintSolver/btContactSolverInfo.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h + "LinearMath/btVector3.h" + "LinearMath/btTransform.h" + "btCollisionObject.h" + "btCollisionDispatcher.h" + "BulletCollision/BroadphaseCollision/btOverlappingPairCache.h" + "LinearMath/btAlignedObjectArray.h" + +1608686973 /usr/include/bullet/LinearMath/btVector3.h + "btScalar.h" + "btMinMax.h" + "btAlignedAllocator.h" + +1608686973 /usr/include/bullet/LinearMath/btScalar.h + + + + + + + + + + + + + + + + + + + + + +1608686973 /usr/include/bullet/LinearMath/btMinMax.h + "btScalar.h" + +1608686973 /usr/include/bullet/LinearMath/btAlignedAllocator.h + "btScalar.h" + +1608686973 /usr/include/bullet/LinearMath/btTransform.h + "btMatrix3x3.h" + +1608686973 /usr/include/bullet/LinearMath/btMatrix3x3.h + "btVector3.h" + "btQuaternion.h" + + +1608686973 /usr/include/bullet/LinearMath/btQuaternion.h + "btVector3.h" + "btQuadWord.h" + +1608686973 /usr/include/bullet/LinearMath/btQuadWord.h + "btScalar.h" + "btMinMax.h" + + +1608686973 /usr/include/bullet/BulletCollision/CollisionDispatch/btCollisionObject.h + "LinearMath/btTransform.h" + "LinearMath/btMotionState.h" + "LinearMath/btAlignedAllocator.h" + "LinearMath/btAlignedObjectArray.h" + +1608686973 /usr/include/bullet/LinearMath/btMotionState.h + "btTransform.h" + +1608686973 /usr/include/bullet/LinearMath/btAlignedObjectArray.h + "btScalar.h" + "btAlignedAllocator.h" + + + + +1608686973 /usr/include/bullet/BulletCollision/CollisionDispatch/btCollisionDispatcher.h + "BulletCollision/BroadphaseCollision/btDispatcher.h" + "BulletCollision/NarrowPhaseCollision/btPersistentManifold.h" + "BulletCollision/CollisionDispatch/btManifoldResult.h" + "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h" + "LinearMath/btAlignedObjectArray.h" + "btCollisionCreateFunc.h" + +1608686973 /usr/include/bullet/BulletCollision/BroadphaseCollision/btDispatcher.h + "LinearMath/btScalar.h" + +1608686973 /usr/include/bullet/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h + "LinearMath/btVector3.h" + "LinearMath/btTransform.h" + "btManifoldPoint.h" + "LinearMath/btAlignedAllocator.h" + +1608686973 /usr/include/bullet/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h + "LinearMath/btVector3.h" + "LinearMath/btTransformUtil.h" + "physics_effects/base_level/solver/pfx_constraint_row.h" + +1608686973 /usr/include/bullet/LinearMath/btTransformUtil.h + "btTransform.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionDispatch/btManifoldResult.h + "BulletCollision/NarrowPhaseCollision/btPersistentManifold.h" + "BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.h" + "LinearMath/btTransform.h" + "BulletCollision/CollisionDispatch/btCollisionObjectWrapper.h" + "BulletCollision/CollisionDispatch/btCollisionObject.h" + +1608686973 /usr/include/bullet/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.h + "LinearMath/btTransform.h" + "LinearMath/btVector3.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionDispatch/btCollisionObjectWrapper.h + "LinearMath/btScalar.h" + +1608686973 /usr/include/bullet/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h + "LinearMath/btScalar.h" + "LinearMath/btVector3.h" + "LinearMath/btAlignedAllocator.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionDispatch/btCollisionCreateFunc.h + "LinearMath/btAlignedObjectArray.h" + +1608686973 /usr/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h + "btBroadphaseInterface.h" + "btBroadphaseProxy.h" + "btOverlappingPairCallback.h" + "LinearMath/btAlignedObjectArray.h" + +1608686973 /usr/include/bullet/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h + "btBroadphaseProxy.h" + "LinearMath/btVector3.h" + +1608686973 /usr/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h + +1608686973 /usr/include/bullet/BulletDynamics/ConstraintSolver/btContactSolverInfo.h + "LinearMath/btScalar.h" + +1608686973 /usr/include/bullet/LinearMath/btThreads.h + "btScalar.h" + +1608686973 /usr/include/bullet/BulletSoftBody/btSoftBody.h + "LinearMath/btAlignedObjectArray.h" + "LinearMath/btTransform.h" + "LinearMath/btIDebugDraw.h" + "LinearMath/btVector3.h" + "BulletDynamics/Dynamics/btRigidBody.h" + "BulletCollision/CollisionShapes/btConcaveShape.h" + "BulletCollision/CollisionDispatch/btCollisionCreateFunc.h" + "btSparseSDF.h" + "BulletCollision/BroadphaseCollision/btDbvt.h" + "BulletDynamics/Featherstone/btMultiBodyLinkCollider.h" + "BulletDynamics/Featherstone/btMultiBodyConstraint.h" + +1608686973 /usr/include/bullet/LinearMath/btIDebugDraw.h + "btVector3.h" + "btTransform.h" + +1608686973 /usr/include/bullet/BulletDynamics/Dynamics/btRigidBody.h + "LinearMath/btAlignedObjectArray.h" + "LinearMath/btTransform.h" + "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h" + "BulletCollision/CollisionDispatch/btCollisionObject.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btConcaveShape.h + "btCollisionShape.h" + "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h" + "btTriangleCallback.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btCollisionShape.h + "LinearMath/btTransform.h" + "LinearMath/btVector3.h" + "LinearMath/btMatrix3x3.h" + "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btTriangleCallback.h + "LinearMath/btVector3.h" + +1608686973 /usr/include/bullet/BulletSoftBody/btSparseSDF.h + "BulletCollision/CollisionDispatch/btCollisionObject.h" + "BulletCollision/NarrowPhaseCollision/btGjkEpa2.h" + +1608686973 /usr/include/bullet/BulletCollision/NarrowPhaseCollision/btGjkEpa2.h + "BulletCollision/CollisionShapes/btConvexShape.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btConvexShape.h + "btCollisionShape.h" + "LinearMath/btVector3.h" + "LinearMath/btTransform.h" + "LinearMath/btMatrix3x3.h" + "btCollisionMargin.h" + "LinearMath/btAlignedAllocator.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btCollisionMargin.h + +1608686973 /usr/include/bullet/BulletCollision/BroadphaseCollision/btDbvt.h + "LinearMath/btAlignedObjectArray.h" + "LinearMath/btVector3.h" + "LinearMath/btTransform.h" + "LinearMath/btAabbUtil2.h" + + + + +1608686973 /usr/include/bullet/LinearMath/btAabbUtil2.h + "btTransform.h" + "btVector3.h" + "btMinMax.h" + +1608686973 /usr/include/bullet/BulletDynamics/Featherstone/btMultiBodyLinkCollider.h + "BulletCollision/CollisionDispatch/btCollisionObject.h" + "btMultiBody.h" + "LinearMath/btSerializer.h" + +1608686973 /usr/include/bullet/BulletDynamics/Featherstone/btMultiBody.h + "LinearMath/btScalar.h" + "LinearMath/btVector3.h" + "LinearMath/btQuaternion.h" + "LinearMath/btMatrix3x3.h" + "LinearMath/btAlignedObjectArray.h" + "btMultiBodyLink.h" + +1608686973 /usr/include/bullet/BulletDynamics/Featherstone/btMultiBodyLink.h + "LinearMath/btQuaternion.h" + "LinearMath/btVector3.h" + "BulletCollision/CollisionDispatch/btCollisionObject.h" + "LinearMath/btSpatialAlgebra.h" + +1608686973 /usr/include/bullet/LinearMath/btSpatialAlgebra.h + "btMatrix3x3.h" + +1608686973 /usr/include/bullet/LinearMath/btSerializer.h + "btScalar.h" + "btHashMap.h" + + + +1608686973 /usr/include/bullet/LinearMath/btHashMap.h + + "btAlignedObjectArray.h" + +1608686973 /usr/include/bullet/BulletDynamics/Featherstone/btMultiBodyConstraint.h + "LinearMath/btScalar.h" + "LinearMath/btAlignedObjectArray.h" + "btMultiBody.h" + "btMultiBodySolverConstraint.h" + +1608686973 /usr/include/bullet/BulletDynamics/Featherstone/btMultiBodySolverConstraint.h + "LinearMath/btVector3.h" + "LinearMath/btAlignedObjectArray.h" + "BulletDynamics/ConstraintSolver/btSolverBody.h" + "BulletDynamics/ConstraintSolver/btContactSolverInfo.h" + +1608686973 /usr/include/bullet/BulletDynamics/ConstraintSolver/btSolverBody.h + "LinearMath/btVector3.h" + "LinearMath/btMatrix3x3.h" + "LinearMath/btAlignedAllocator.h" + "LinearMath/btTransformUtil.h" + +1724536052 /home/n00b/Projects/irrBullet/include/irrBullet.h + "irrBulletCompileConfig.h" + + + + "irrBulletCommon.h" + "irrBulletWorld.h" + "irrBulletBoxShape.h" + "irrBulletSphereShape.h" + "irrBulletConeShape.h" + "irrBulletCylinderShape.h" + "irrBulletCapsuleShape.h" + "irrBulletGImpactMeshShape.h" + "irrBulletBvhTriangleMeshShape.h" + "irrBulletConvexHullShape.h" + "irrBulletMotionState.h" + "irrBulletRayCastVehicle.h" + "irrBulletCollisionObjectAffector.h" + "irrBulletCollisionObjectAffectorDelete.h" + "irrBulletCollisionObjectAffectorAttract.h" + "irrBulletCollisionCallBackInformation.h" + "irrBulletLiquidBody.h" + "irrBulletKinematicCharacterController.h" + +1725410968 /home/n00b/Projects/irrBullet/include/irrBulletCompileConfig.h + +1608686973 /usr/include/bullet/btBulletDynamicsCommon.h + "btBulletCollisionCommon.h" + "BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h" + "BulletDynamics/Dynamics/btSimpleDynamicsWorld.h" + "BulletDynamics/Dynamics/btRigidBody.h" + "BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h" + "BulletDynamics/ConstraintSolver/btHingeConstraint.h" + "BulletDynamics/ConstraintSolver/btConeTwistConstraint.h" + "BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h" + "BulletDynamics/ConstraintSolver/btSliderConstraint.h" + "BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h" + "BulletDynamics/ConstraintSolver/btUniversalConstraint.h" + "BulletDynamics/ConstraintSolver/btHinge2Constraint.h" + "BulletDynamics/ConstraintSolver/btGearConstraint.h" + "BulletDynamics/ConstraintSolver/btFixedConstraint.h" + "BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h" + "BulletDynamics/Vehicle/btRaycastVehicle.h" + +1608686973 /usr/include/bullet/btBulletCollisionCommon.h + "BulletCollision/CollisionDispatch/btCollisionWorld.h" + "BulletCollision/CollisionDispatch/btCollisionObject.h" + "BulletCollision/CollisionShapes/btBoxShape.h" + "BulletCollision/CollisionShapes/btSphereShape.h" + "BulletCollision/CollisionShapes/btCapsuleShape.h" + "BulletCollision/CollisionShapes/btCylinderShape.h" + "BulletCollision/CollisionShapes/btConeShape.h" + "BulletCollision/CollisionShapes/btStaticPlaneShape.h" + "BulletCollision/CollisionShapes/btConvexHullShape.h" + "BulletCollision/CollisionShapes/btTriangleMesh.h" + "BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h" + "BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h" + "BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h" + "BulletCollision/CollisionShapes/btTriangleMeshShape.h" + "BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h" + "BulletCollision/CollisionShapes/btCompoundShape.h" + "BulletCollision/CollisionShapes/btTetrahedronShape.h" + "BulletCollision/CollisionShapes/btEmptyShape.h" + "BulletCollision/CollisionShapes/btMultiSphereShape.h" + "BulletCollision/CollisionShapes/btUniformScalingShape.h" + "BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h" + "BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h" + "BulletCollision/CollisionDispatch/btCollisionDispatcher.h" + "BulletCollision/BroadphaseCollision/btSimpleBroadphase.h" + "BulletCollision/BroadphaseCollision/btAxisSweep3.h" + "BulletCollision/BroadphaseCollision/btDbvtBroadphase.h" + "LinearMath/btQuaternion.h" + "LinearMath/btTransform.h" + "LinearMath/btDefaultMotionState.h" + "LinearMath/btQuickprof.h" + "LinearMath/btIDebugDraw.h" + "LinearMath/btSerializer.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btBoxShape.h + "btPolyhedralConvexShape.h" + "btCollisionMargin.h" + "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h" + "LinearMath/btVector3.h" + "LinearMath/btMinMax.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h + "LinearMath/btMatrix3x3.h" + "btConvexInternalShape.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btConvexInternalShape.h + "btConvexShape.h" + "LinearMath/btAabbUtil2.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btSphereShape.h + "btConvexInternalShape.h" + "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btCapsuleShape.h + "btConvexInternalShape.h" + "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btCylinderShape.h + "btBoxShape.h" + "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h" + "LinearMath/btVector3.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btConeShape.h + "btConvexInternalShape.h" + "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btStaticPlaneShape.h + "btConcaveShape.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btConvexHullShape.h + "btPolyhedralConvexShape.h" + "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h" + "LinearMath/btAlignedObjectArray.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btTriangleMesh.h + "btTriangleIndexVertexArray.h" + "LinearMath/btVector3.h" + "LinearMath/btAlignedObjectArray.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h + "btStridingMeshInterface.h" + "LinearMath/btAlignedObjectArray.h" + "LinearMath/btScalar.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btStridingMeshInterface.h + "LinearMath/btVector3.h" + "btTriangleCallback.h" + "btConcaveShape.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h + "btPolyhedralConvexShape.h" + "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h + "btTriangleMeshShape.h" + "btOptimizedBvh.h" + "LinearMath/btAlignedAllocator.h" + "btTriangleInfoMap.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btTriangleMeshShape.h + "btConcaveShape.h" + "btStridingMeshInterface.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btOptimizedBvh.h + "BulletCollision/BroadphaseCollision/btQuantizedBvh.h" + +1608686973 /usr/include/bullet/BulletCollision/BroadphaseCollision/btQuantizedBvh.h + + + "LinearMath/btVector3.h" + "LinearMath/btAlignedAllocator.h" + "LinearMath/btAlignedAllocator.h" + "LinearMath/btAlignedObjectArray.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btTriangleInfoMap.h + "LinearMath/btHashMap.h" + "LinearMath/btSerializer.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h + "BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btCompoundShape.h + "btCollisionShape.h" + "LinearMath/btVector3.h" + "LinearMath/btTransform.h" + "LinearMath/btMatrix3x3.h" + "btCollisionMargin.h" + "LinearMath/btAlignedObjectArray.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btTetrahedronShape.h + "btPolyhedralConvexShape.h" + "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btEmptyShape.h + "btConcaveShape.h" + "LinearMath/btVector3.h" + "LinearMath/btTransform.h" + "LinearMath/btMatrix3x3.h" + "btCollisionMargin.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btMultiSphereShape.h + "btConvexInternalShape.h" + "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h" + "LinearMath/btAlignedObjectArray.h" + "LinearMath/btAabbUtil2.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btUniformScalingShape.h + "btConvexShape.h" + "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h + "btActivatingCollisionAlgorithm.h" + "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h" + "BulletCollision/CollisionDispatch/btCollisionCreateFunc.h" + "btCollisionDispatcher.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionDispatch/btActivatingCollisionAlgorithm.h + "BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h" + +1608686973 /usr/include/bullet/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h + "LinearMath/btScalar.h" + "LinearMath/btAlignedObjectArray.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h + "btCollisionConfiguration.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionDispatch/btCollisionConfiguration.h + +1608686973 /usr/include/bullet/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h + "btOverlappingPairCache.h" + +1608686973 /usr/include/bullet/BulletCollision/BroadphaseCollision/btAxisSweep3.h + "LinearMath/btVector3.h" + "btOverlappingPairCache.h" + "btBroadphaseInterface.h" + "btBroadphaseProxy.h" + "btOverlappingPairCallback.h" + "btDbvtBroadphase.h" + "btAxisSweep3Internal.h" + +1608686973 /usr/include/bullet/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h + "BulletCollision/BroadphaseCollision/btDbvt.h" + "BulletCollision/BroadphaseCollision/btOverlappingPairCache.h" + "LinearMath/btQuickprof.h" + +1608686973 /usr/include/bullet/LinearMath/btQuickprof.h + "btScalar.h" + + "btAlignedAllocator.h" + + +1608686973 /usr/include/bullet/BulletCollision/BroadphaseCollision/btAxisSweep3Internal.h + "LinearMath/btVector3.h" + "btOverlappingPairCache.h" + "btBroadphaseInterface.h" + "btBroadphaseProxy.h" + "btOverlappingPairCallback.h" + "btDbvtBroadphase.h" + + +1608686973 /usr/include/bullet/LinearMath/btDefaultMotionState.h + "btMotionState.h" + +1608686973 /usr/include/bullet/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h + "btDynamicsWorld.h" + +1608686973 /usr/include/bullet/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h + "LinearMath/btVector3.h" + "btJacobianEntry.h" + "btTypedConstraint.h" + +1608686973 /usr/include/bullet/BulletDynamics/ConstraintSolver/btJacobianEntry.h + "LinearMath/btMatrix3x3.h" + +1608686973 /usr/include/bullet/BulletDynamics/ConstraintSolver/btTypedConstraint.h + "LinearMath/btScalar.h" + "btSolverConstraint.h" + "BulletDynamics/Dynamics/btRigidBody.h" + +1608686973 /usr/include/bullet/BulletDynamics/ConstraintSolver/btSolverConstraint.h + "LinearMath/btVector3.h" + "LinearMath/btMatrix3x3.h" + "btJacobianEntry.h" + "LinearMath/btAlignedObjectArray.h" + "btSolverBody.h" + +1608686973 /usr/include/bullet/BulletDynamics/ConstraintSolver/btHingeConstraint.h + "LinearMath/btVector3.h" + "btJacobianEntry.h" + "btTypedConstraint.h" + +1608686973 /usr/include/bullet/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h + "LinearMath/btVector3.h" + "btJacobianEntry.h" + "btTypedConstraint.h" + +1608686973 /usr/include/bullet/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h + "LinearMath/btVector3.h" + "btJacobianEntry.h" + "btTypedConstraint.h" + +1608686973 /usr/include/bullet/BulletDynamics/ConstraintSolver/btSliderConstraint.h + "LinearMath/btScalar.h" + "LinearMath/btVector3.h" + "btJacobianEntry.h" + "btTypedConstraint.h" + +1608686973 /usr/include/bullet/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h + "LinearMath/btVector3.h" + "btTypedConstraint.h" + "btGeneric6DofConstraint.h" + +1608686973 /usr/include/bullet/BulletDynamics/ConstraintSolver/btUniversalConstraint.h + "LinearMath/btVector3.h" + "btTypedConstraint.h" + "btGeneric6DofConstraint.h" + +1608686973 /usr/include/bullet/BulletDynamics/ConstraintSolver/btHinge2Constraint.h + "LinearMath/btVector3.h" + "btTypedConstraint.h" + "btGeneric6DofSpring2Constraint.h" + +1608686973 /usr/include/bullet/BulletDynamics/ConstraintSolver/btGeneric6DofSpring2Constraint.h + "LinearMath/btVector3.h" + "btJacobianEntry.h" + "btTypedConstraint.h" + +1608686973 /usr/include/bullet/BulletDynamics/ConstraintSolver/btGearConstraint.h + "BulletDynamics/ConstraintSolver/btTypedConstraint.h" + +1608686973 /usr/include/bullet/BulletDynamics/ConstraintSolver/btFixedConstraint.h + "btGeneric6DofSpring2Constraint.h" + +1608686973 /usr/include/bullet/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h + "BulletDynamics/ConstraintSolver/btTypedConstraint.h" + "BulletDynamics/ConstraintSolver/btContactSolverInfo.h" + "BulletDynamics/ConstraintSolver/btSolverBody.h" + "BulletDynamics/ConstraintSolver/btSolverConstraint.h" + "BulletCollision/NarrowPhaseCollision/btManifoldPoint.h" + "BulletDynamics/ConstraintSolver/btConstraintSolver.h" + +1608686973 /usr/include/bullet/BulletDynamics/ConstraintSolver/btConstraintSolver.h + "LinearMath/btScalar.h" + +1608686973 /usr/include/bullet/BulletDynamics/Vehicle/btRaycastVehicle.h + "BulletDynamics/Dynamics/btRigidBody.h" + "BulletDynamics/ConstraintSolver/btTypedConstraint.h" + "btVehicleRaycaster.h" + "LinearMath/btAlignedObjectArray.h" + "btWheelInfo.h" + "BulletDynamics/Dynamics/btActionInterface.h" + +1608686973 /usr/include/bullet/BulletDynamics/Vehicle/btVehicleRaycaster.h + "LinearMath/btVector3.h" + +1608686973 /usr/include/bullet/BulletDynamics/Vehicle/btWheelInfo.h + "LinearMath/btVector3.h" + "LinearMath/btTransform.h" + +1608686973 /usr/include/bullet/BulletDynamics/Dynamics/btActionInterface.h + "LinearMath/btScalar.h" + "btRigidBody.h" + +1608686973 /usr/include/bullet/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h + "BulletCollision/CollisionDispatch/btActivatingCollisionAlgorithm.h" + "BulletCollision/BroadphaseCollision/btDispatcher.h" + "BulletCollision/BroadphaseCollision/btBroadphaseInterface.h" + "BulletCollision/NarrowPhaseCollision/btPersistentManifold.h" + "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h" + "BulletCollision/CollisionDispatch/btCollisionCreateFunc.h" + "BulletCollision/CollisionDispatch/btCollisionDispatcher.h" + "LinearMath/btAlignedObjectArray.h" + "btGImpactShape.h" + "BulletCollision/CollisionShapes/btStaticPlaneShape.h" + "BulletCollision/CollisionShapes/btCompoundShape.h" + "BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h" + "LinearMath/btIDebugDraw.h" + "BulletCollision/CollisionDispatch/btCollisionObjectWrapper.h" + +1608686973 /usr/include/bullet/BulletCollision/Gimpact/btGImpactShape.h + "BulletCollision/CollisionShapes/btCollisionShape.h" + "BulletCollision/CollisionShapes/btTriangleShape.h" + "BulletCollision/CollisionShapes/btStridingMeshInterface.h" + "BulletCollision/CollisionShapes/btCollisionMargin.h" + "BulletCollision/CollisionDispatch/btCollisionWorld.h" + "BulletCollision/CollisionShapes/btConcaveShape.h" + "BulletCollision/CollisionShapes/btTetrahedronShape.h" + "LinearMath/btVector3.h" + "LinearMath/btTransform.h" + "LinearMath/btMatrix3x3.h" + "LinearMath/btAlignedObjectArray.h" + "btGImpactQuantizedBvh.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionShapes/btTriangleShape.h + "btConvexShape.h" + "btBoxShape.h" + +1608686973 /usr/include/bullet/BulletCollision/Gimpact/btGImpactQuantizedBvh.h + "btGImpactBvh.h" + "btQuantization.h" + "btGImpactQuantizedBvhStructs.h" + +1608686973 /usr/include/bullet/BulletCollision/Gimpact/btGImpactBvh.h + "LinearMath/btAlignedObjectArray.h" + "btBoxCollision.h" + "btTriangleShapeEx.h" + "btGImpactBvhStructs.h" + +1608686973 /usr/include/bullet/BulletCollision/Gimpact/btBoxCollision.h + "LinearMath/btTransform.h" + +1608686973 /usr/include/bullet/BulletCollision/Gimpact/btTriangleShapeEx.h + "BulletCollision/CollisionShapes/btCollisionShape.h" + "BulletCollision/CollisionShapes/btTriangleShape.h" + "btBoxCollision.h" + "btClipPolygon.h" + "btGeometryOperations.h" + +1608686973 /usr/include/bullet/BulletCollision/Gimpact/btClipPolygon.h + "LinearMath/btTransform.h" + "LinearMath/btGeometryUtil.h" + +1608686973 /usr/include/bullet/LinearMath/btGeometryUtil.h + "btVector3.h" + "btAlignedObjectArray.h" + +1608686973 /usr/include/bullet/BulletCollision/Gimpact/btGeometryOperations.h + "btBoxCollision.h" + +1608686973 /usr/include/bullet/BulletCollision/Gimpact/btGImpactBvhStructs.h + "LinearMath/btAlignedObjectArray.h" + "btBoxCollision.h" + "btTriangleShapeEx.h" + "gim_pair.h" + +1608686973 /usr/include/bullet/BulletCollision/Gimpact/gim_pair.h + +1608686973 /usr/include/bullet/BulletCollision/Gimpact/btQuantization.h + "LinearMath/btTransform.h" + +1608686973 /usr/include/bullet/BulletCollision/Gimpact/btGImpactQuantizedBvhStructs.h + "btGImpactBvh.h" + "btQuantization.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h + "btActivatingCollisionAlgorithm.h" + "BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h" + "BulletCollision/NarrowPhaseCollision/btPersistentManifold.h" + "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h" + "BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h" + "btCollisionCreateFunc.h" + "btCollisionDispatcher.h" + "LinearMath/btTransformUtil.h" + "BulletCollision/NarrowPhaseCollision/btPolyhedralContactClipping.h" + +1608686973 /usr/include/bullet/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h + "btDiscreteCollisionDetectorInterface.h" + "BulletCollision/CollisionShapes/btCollisionMargin.h" + "btSimplexSolverInterface.h" + +1608686973 /usr/include/bullet/BulletCollision/NarrowPhaseCollision/btSimplexSolverInterface.h + "LinearMath/btVector3.h" + "btVoronoiSimplexSolver.h" + +1608686973 /usr/include/bullet/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h + "btSimplexSolverInterface.h" + +1608686973 /usr/include/bullet/BulletCollision/NarrowPhaseCollision/btPolyhedralContactClipping.h + "LinearMath/btAlignedObjectArray.h" + "LinearMath/btTransform.h" + "btDiscreteCollisionDetectorInterface.h" + +1724469097 /home/n00b/Projects/irrBullet/include/irrBulletCommon.h + + + + "irrBulletCompileConfig.h" + +1725132607 /home/n00b/Projects/irrBullet/include/irrBulletWorld.h + "irrBulletCommon.h" + "irrBulletRigidBody.h" + "irrBulletSoftBody.h" + "irrBulletGhostObject.h" + "irrBulletPhysicsDebug.h" + + "irrBulletCollisionCallBackInformation.h" + "irrBulletCompileConfig.h" + + + +1724469097 /home/n00b/Projects/irrBullet/include/irrBulletRigidBody.h + "irrBulletCommon.h" + "irrBulletCompileConfig.h" + "irrBulletCollisionObject.h" + + "irrBulletRayCastVehicle.h" + + +1724616487 /home/n00b/Projects/irrBullet/include/irrBulletCollisionObject.h + "irrBulletCommon.h" + "irrBulletCollisionShape.h" + + "irrBulletCollisionObjectAffector.h" + + + +1724628280 /home/n00b/Projects/irrBullet/include/irrBulletCollisionShape.h + + + + + + "irrBulletCommon.h" + +1724469097 /home/n00b/Projects/irrBullet/include/irrBulletCollisionObjectAffector.h + + +1724469097 /home/n00b/Projects/irrBullet/include/irrBulletRayCastVehicle.h + "irrBulletCommon.h" + "IrrCompileConfig.h" + + + +1724469097 /home/n00b/Projects/irrBullet/include/irrBulletSoftBody.h + "irrBulletCollisionObject.h" + + + + + + + + + +1608686973 /usr/include/bullet/BulletSoftBody/btSoftBodyHelpers.h + "btSoftBody.h" + + + +1724613128 /home/n00b/Projects/irrBullet/include/irrBulletGhostObject.h + "irrBulletCommon.h" + "irrBulletCompileConfig.h" + "irrBulletCollisionObject.h" + + "irrBulletRayCastVehicle.h" + + + +1724469097 /home/n00b/Projects/irrBullet/include/irrBulletPhysicsDebug.h + + "irrBulletCommon.h" + + +1724469097 /home/n00b/Projects/irrBullet/include/irrBulletCollisionCallBackInformation.h + + + "irrBulletCommon.h" + + +1724469097 /home/n00b/Projects/irrBullet/include/irrBulletBoxShape.h + "irrBulletCollisionShape.h" + +1724469097 /home/n00b/Projects/irrBullet/include/irrBulletSphereShape.h + "irrBulletCollisionShape.h" + + +1724535063 /home/n00b/Projects/irrBullet/include/irrBulletConeShape.h + "irrBulletCollisionShape.h" + +1724469097 /home/n00b/Projects/irrBullet/include/irrBulletCylinderShape.h + "irrBulletCollisionShape.h" + +1724469097 /home/n00b/Projects/irrBullet/include/irrBulletCapsuleShape.h + "irrBulletCollisionShape.h" + +1724469097 /home/n00b/Projects/irrBullet/include/irrBulletGImpactMeshShape.h + "irrBulletCommon.h" + + "irrBulletTriangleMeshShape.h" + +1724469097 /home/n00b/Projects/irrBullet/include/irrBulletTriangleMeshShape.h + "irrBulletCollisionShape.h" + + "irrBulletCommon.h" + +1724469097 /home/n00b/Projects/irrBullet/include/irrBulletBvhTriangleMeshShape.h + "irrBulletTriangleMeshShape.h" + +1724469097 /home/n00b/Projects/irrBullet/include/irrBulletConvexHullShape.h + "irrBulletCommon.h" + +1724469097 /home/n00b/Projects/irrBullet/include/irrBulletMotionState.h + + "irrBulletCommon.h" + "irrBulletRigidBody.h" + + +1724469097 /home/n00b/Projects/irrBullet/include/irrBulletCollisionObjectAffectorDelete.h + "irrBulletCollisionObjectAffector.h" + + +1724469097 /home/n00b/Projects/irrBullet/include/irrBulletCollisionObjectAffectorAttract.h + "irrBulletCollisionObjectAffector.h" + + + + +1724469097 /home/n00b/Projects/irrBullet/include/irrBulletLiquidBody.h + + + + + + "IrrCompileConfig.h" + +1724469097 /home/n00b/Projects/irrBullet/include/irrBulletKinematicCharacterController.h + + + + + +1726441593 /home/n00b/Projects/irrTheora/irrtheora.h + + + + "theoraplay.h" + +1686539631 /home/n00b/Projects/irrTheora/theoraplay.h + +1726534829 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_gfx3D.h + + + + + + + + + + "camera.h" + "rc_gfx_core.h" + "rc_matrix.h" + "RealisticWater.h" + + + +1726526837 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_audio.h + + "rc_os_defines.h" + + + + + "SDL.h" + "SDL_mixer.h" + + + + "SDL2/SDL.h" + "SDL2/SDL_mixer.h" + + + + + + + +1726527846 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_net.h + "rc_os_defines.h" + + "SDL.h" + + + + + "SDL_net.h" + + + "SDL2/SDL.h" + + + + + + "SDL2/SDL_net.h" + + + + + + + + + + +1726441816 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_video.h + "rc_gfx_core.h" + + +1726536916 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_func130_cases.h + +1724469097 source:/home/n00b/Projects/irrBullet/src/irrBullet.cpp + "irrBullet.h" + +1724469097 source:/home/n00b/Projects/irrBullet/src/irrBulletBoxShape.cpp + + "btBulletDynamicsCommon.h" + "btBulletCollisionCommon.h" + "irrBulletBoxShape.h" + +1724469097 source:/home/n00b/Projects/irrBullet/src/irrBulletBvhTriangleMeshShape.cpp + + + "irrBulletBvhTriangleMeshShape.h" + +1724627004 source:/home/n00b/Projects/irrBullet/src/irrBulletCapsuleShape.cpp + + "btBulletDynamicsCommon.h" + "btBulletCollisionCommon.h" + "irrBulletCapsuleShape.h" + +1725086339 source:/home/n00b/Projects/irrBullet/src/irrBulletCollisionCallBackInformation.cpp + "irrBulletCollisionCallBackInformation.h" + + "irrBulletCollisionObject.h" + "irrBulletWorld.h" + +1724714289 source:/home/n00b/Projects/irrBullet/src/irrBulletCollisionObject.cpp + + + + + + "irrBulletWorld.h" + "irrBulletCollisionObject.h" + "irrBulletCompileConfig.h" + +1724469097 source:/home/n00b/Projects/irrBullet/src/irrBulletCollisionObjectAffector.cpp + + "irrBulletCollisionObjectAffector.h" + "irrBulletCompileConfig.h" + +1724469097 source:/home/n00b/Projects/irrBullet/src/irrBulletCollisionObjectAffectorAttract.cpp + "irrBulletCollisionObjectAffectorAttract.h" + "irrBulletWorld.h" + "irrBulletCollisionObject.h" + + + + + + +1724469097 source:/home/n00b/Projects/irrBullet/src/irrBulletCollisionObjectAffectorDelete.cpp + "irrBulletCollisionObjectAffectorDelete.h" + "irrBulletWorld.h" + "irrBulletCollisionObject.h" + + +1724469097 source:/home/n00b/Projects/irrBullet/src/irrBulletCollisionShape.cpp + + + + "irrBulletCollisionShape.h" + +1724469097 source:/home/n00b/Projects/irrBullet/src/irrBulletcommon.cpp + + + "irrBulletRayCastVehicle.h" + "irrBulletCollisionObject.h" + "irrBulletCommon.h" + +1724535917 source:/home/n00b/Projects/irrBullet/src/irrBulletConeShape.cpp + + "btBulletDynamicsCommon.h" + "btBulletCollisionCommon.h" + "irrBulletConeShape.h" + +1724469097 source:/home/n00b/Projects/irrBullet/src/irrBulletConvexHullShape.cpp + + + + + "irrBulletCollisionShape.h" + "irrBulletConvexHullShape.h" + +1724469097 source:/home/n00b/Projects/irrBullet/src/irrBulletCylinderShape.cpp + + "btBulletDynamicsCommon.h" + "btBulletCollisionCommon.h" + "irrBulletCylinderShape.h" + +1724628551 source:/home/n00b/Projects/irrBullet/src/irrBulletGhostObject.cpp + + + + + + + "irrBulletGhostObject.h" + "irrBulletCollisionShape.h" + "irrBulletMotionState.h" + "irrBulletCompileConfig.h" + "irrBulletWorld.h" + +1724469097 source:/home/n00b/Projects/irrBullet/src/irrBulletGImpactMeshShape.cpp + + + + "irrBulletGImpactMeshShape.h" + +1724469097 source:/home/n00b/Projects/irrBullet/src/irrBulletLiquidBody.cpp + "irrBulletLiquidBody.h" + "irrBulletWorld.h" + + + +1724469097 source:/home/n00b/Projects/irrBullet/src/irrBulletMotionState.cpp + + + "irrBulletMotionState.h" + "irrBulletWorld.h" + + +1724469097 source:/home/n00b/Projects/irrBullet/src/irrBulletPhysicsDebug.cpp + "irrBulletPhysicsDebug.h" + + +1724469097 source:/home/n00b/Projects/irrBullet/src/irrBulletRayCastVehicle.cpp + + + + + "irrBulletRayCastVehicle.h" + "irrBulletWorld.h" + "irrBulletRigidBody.h" + "irrBulletCompileConfig.h" + +1724628462 source:/home/n00b/Projects/irrBullet/src/irrBulletRigidBody.cpp + + + + + + "irrBulletRigidBody.h" + "irrBulletCollisionShape.h" + "irrBulletMotionState.h" + "irrBulletCompileConfig.h" + "irrBulletWorld.h" + +1724469097 source:/home/n00b/Projects/irrBullet/src/irrBulletSoftBody.cpp + "irrBulletSoftBody.h" + + + + + + + + "irrBulletWorld.h" + +1724469097 source:/home/n00b/Projects/irrBullet/src/irrBulletSphereShape.cpp + + + "irrBulletSphereShape.h" + +1724469097 source:/home/n00b/Projects/irrBullet/src/irrBulletTriangleMeshShape.cpp + + + "btBulletDynamicsCommon.h" + "btBulletCollisionCommon.h" + "irrBulletTriangleMeshShape.h" + +1726528529 source:/home/n00b/Projects/irrBullet/src/irrBulletWorld.cpp + + + + + + + + + + "irrBulletLiquidBody.h" + "irrBulletWorld.h" + "irrBulletRayCastVehicle.h" + "irrBulletCompileConfig.h" + +1608686973 /usr/include/bullet/BulletSoftBody/btSoftSoftCollisionAlgorithm.h + "BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h" + "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h" + "BulletCollision/BroadphaseCollision/btDispatcher.h" + "BulletCollision/CollisionDispatch/btCollisionCreateFunc.h" + +1608686973 /usr/include/bullet/BulletCollision/CollisionDispatch/btGhostObject.h + "btCollisionObject.h" + "BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h" + "LinearMath/btAlignedAllocator.h" + "BulletCollision/BroadphaseCollision/btOverlappingPairCache.h" + "btCollisionWorld.h" + +1608686973 /usr/include/bullet/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.h + "BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h" + +1726536152 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_test.h + diff --git a/rcbasic_runtime/rcbasic_runtime.layout b/rcbasic_runtime/rcbasic_runtime.layout new file mode 100755 index 0000000..d081ab9 --- /dev/null +++ b/rcbasic_runtime/rcbasic_runtime.layout @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rcbasic_runtime/resource.rc b/rcbasic_runtime/resource.rc old mode 100644 new mode 100755 diff --git a/rcbasic_runtime/shaders/Water_ps.glsl b/rcbasic_runtime/shaders/Water_ps.glsl new file mode 100755 index 0000000..8282e25 --- /dev/null +++ b/rcbasic_runtime/shaders/Water_ps.glsl @@ -0,0 +1,96 @@ +/* + * Copyright (c) 2013, elvman + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY elvman ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL elvman BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +const float LOG2 = 1.442695; + +uniform vec3 CameraPosition; // Position of main position +uniform float WaveHeight; + +uniform vec4 WaterColor; +uniform float ColorBlendFactor; + +uniform sampler2D WaterBump; //coverage +uniform sampler2D RefractionMap; //coverage +uniform sampler2D ReflectionMap; //coverage + +uniform bool FogEnabled; +uniform int FogMode; + +varying vec2 bumpMapTexCoord; +varying vec3 refractionMapTexCoord; +varying vec3 reflectionMapTexCoord; +varying vec3 position3D; + +void main() +{ + //bump color + vec4 bumpColor = texture2D(WaterBump, bumpMapTexCoord); + vec2 perturbation = WaveHeight * (bumpColor.rg - 0.5); + + //refraction + vec2 ProjectedRefractionTexCoords = clamp(refractionMapTexCoord.xy / refractionMapTexCoord.z + perturbation, 0.0, 1.0); + //calculate final refraction color + vec4 refractiveColor = texture2D(RefractionMap, ProjectedRefractionTexCoords ); + + //reflection + vec2 ProjectedReflectionTexCoords = clamp(reflectionMapTexCoord.xy / reflectionMapTexCoord.z + perturbation, 0.0, 1.0); + //calculate final reflection color + vec4 reflectiveColor = texture2D(ReflectionMap, ProjectedReflectionTexCoords ); + + //fresnel + vec3 eyeVector = normalize(CameraPosition - position3D); + vec3 upVector = vec3(0.0, 1.0, 0.0); + + //fresnel can not be lower than 0 + float fresnelTerm = max( dot(eyeVector, upVector), 0.0 ); + + float fogFactor = 1.0; + + if (FogEnabled) + { + float z = gl_FragCoord.z / gl_FragCoord.w; + + if (FogMode == 1) //exp + { + float fogFactor = exp2(-gl_Fog.density * z * LOG2); + fogFactor = clamp(fogFactor, 0.0, 1.0); + } + else if (FogMode == 0) //linear + { + fogFactor = (gl_Fog.end - z) / (gl_Fog.end - gl_Fog.start); + } + else if (FogMode == 2) //exp2 + { + float fogFactor = exp2(-gl_Fog.density * gl_Fog.density * z * z * LOG2); + fogFactor = clamp(fogFactor, 0.0, 1.0); + } + } + + vec4 combinedColor = refractiveColor * fresnelTerm + reflectiveColor * (1.0 - fresnelTerm); + + vec4 finalColor = ColorBlendFactor * WaterColor + (1.0 - ColorBlendFactor) * combinedColor; + + gl_FragColor = mix(gl_Fog.color, finalColor, fogFactor ); +} + diff --git a/rcbasic_runtime/shaders/Water_ps.hlsl b/rcbasic_runtime/shaders/Water_ps.hlsl new file mode 100755 index 0000000..72a3449 --- /dev/null +++ b/rcbasic_runtime/shaders/Water_ps.hlsl @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2013, elvman + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY elvman ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL elvman BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +float3 CameraPosition; // Position of main position +float WaveHeight; + +float4 WaterColor; +float ColorBlendFactor; + +sampler2D WaterBump; //coverage +sampler2D RefractionMap; //coverage +sampler2D ReflectionMap; //coverage + +// Pixel shader output structure +struct PS_OUTPUT +{ + float4 color : COLOR0; // Pixel color +}; + +struct PS_INPUT +{ + float4 position : POSITION; // vertex position + + float2 bumpMapTexCoord : TEXCOORD0; + float3 refractionMapTexCoord : TEXCOORD1; + float3 reflectionMapTexCoord : TEXCOORD2; + + float3 position3D : TEXCOORD3; +}; + +PS_OUTPUT main( PS_INPUT input ) +{ + PS_OUTPUT output; + + //bump color + float4 bumpColor = tex2D(WaterBump, input.bumpMapTexCoord); + float2 perturbation = WaveHeight * (bumpColor.rg - 0.5); + + //refraction + float2 ProjectedRefractionTexCoords = saturate(input.refractionMapTexCoord.xy / input.refractionMapTexCoord.z + perturbation); + //calculate final refraction color + float4 refractiveColor = tex2D(RefractionMap, ProjectedRefractionTexCoords ); + + //reflection + float2 ProjectedReflectionTexCoords = saturate(input.reflectionMapTexCoord.xy / input.reflectionMapTexCoord.z + perturbation); + //calculate final reflection color + float4 reflectiveColor = tex2D(ReflectionMap, ProjectedReflectionTexCoords ); + + //fresnel + float3 eyeVector = normalize(CameraPosition - input.position3D); + float3 upVector = float3(0.0, 1.0, 0.0); + + //fresnel can not be lower than 0 + float fresnelTerm = max( dot(eyeVector, upVector), 0.0 ); + + float4 combinedColor = refractiveColor * fresnelTerm + reflectiveColor * (1.0 - fresnelTerm); + + output.color = ColorBlendFactor * WaterColor + (1.0 - ColorBlendFactor) * combinedColor; + + return output; +} + diff --git a/rcbasic_runtime/shaders/Water_vs.glsl b/rcbasic_runtime/shaders/Water_vs.glsl new file mode 100755 index 0000000..caae770 --- /dev/null +++ b/rcbasic_runtime/shaders/Water_vs.glsl @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2013, elvman + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY elvman ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL elvman BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +//uniform mat4 View; +uniform mat4 WorldViewProj; // World * View * Projection transformation +uniform mat4 WorldReflectionViewProj; // World * Reflection View * Projection transformation + +uniform float WaveLength; + +uniform float Time; +uniform float WindForce; +uniform vec2 WindDirection; + +// Vertex shader output structure +varying vec2 bumpMapTexCoord; +varying vec3 refractionMapTexCoord; +varying vec3 reflectionMapTexCoord; +varying vec3 position3D; + +void main() +{ + //color = gl_Color; + + // transform position to clip space + vec4 pos = WorldViewProj * gl_Vertex; + gl_Position = pos; + + // calculate vawe coords + bumpMapTexCoord = gl_MultiTexCoord0.xy / WaveLength + Time * WindForce * WindDirection; + + // refraction texcoords + refractionMapTexCoord.x = 0.5 * (pos.w + pos.x); + refractionMapTexCoord.y = 0.5 * (pos.w + pos.y); + refractionMapTexCoord.z = pos.w; + + // reflection texcoords + pos = WorldReflectionViewProj * gl_Vertex; + reflectionMapTexCoord.x = 0.5 * (pos.w + pos.x); + reflectionMapTexCoord.y = 0.5 * (pos.w + pos.y); + reflectionMapTexCoord.z = pos.w; + + // position of the vertex + position3D = gl_Vertex.xyz; +} \ No newline at end of file diff --git a/rcbasic_runtime/shaders/Water_vs.hlsl b/rcbasic_runtime/shaders/Water_vs.hlsl new file mode 100755 index 0000000..22b5e1f --- /dev/null +++ b/rcbasic_runtime/shaders/Water_vs.hlsl @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2013, elvman + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY elvman ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL elvman BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +//float4x4 View; +float4x4 WorldViewProj; // World * View * Projection transformation +float4x4 WorldReflectionViewProj; // World * Reflection View * Projection transformation + +float WaveLength; + +float Time; +float WindForce; +float2 WindDirection; + +// Vertex shader output structure +struct VS_OUTPUT +{ + float4 position : POSITION; // vertex position + + float2 bumpMapTexCoord : TEXCOORD0; + float3 refractionMapTexCoord : TEXCOORD1; + float3 reflectionMapTexCoord : TEXCOORD2; + + float3 position3D : TEXCOORD3; +}; + +struct VS_INPUT +{ + float4 position : POSITION; + float4 color : COLOR0; + float2 texCoord0 : TEXCOORD0; +}; + +VS_OUTPUT main(VS_INPUT input) +{ + VS_OUTPUT output; + + // transform position to clip space + float4 pos = mul(input.position, WorldViewProj); + output.position = pos; + + // calculate vawe coords + output.bumpMapTexCoord = input.texCoord0 / WaveLength + Time * WindForce * WindDirection; + + // refraction texcoords + output.refractionMapTexCoord.x = 0.5 * (pos.w + pos.x); + output.refractionMapTexCoord.y = 0.5 * (pos.w - pos.y); + output.refractionMapTexCoord.z = pos.w; + + // reflection texcoords + pos = mul(input.position, WorldReflectionViewProj); + output.reflectionMapTexCoord.x = 0.5 * (pos.w + pos.x); + output.reflectionMapTexCoord.y = 0.5 * (pos.w - pos.y); + output.reflectionMapTexCoord.z = pos.w; + + // position of the vertex + output.position3D = input.position; + + return output; +} \ No newline at end of file diff --git a/rcbasic_runtime/theoraplay.c b/rcbasic_runtime/theoraplay.c old mode 100644 new mode 100755 diff --git a/rcbasic_runtime/theoraplay.h b/rcbasic_runtime/theoraplay.h old mode 100644 new mode 100755 diff --git a/rcbasic_runtime/theoraplay_cvtrgb.h b/rcbasic_runtime/theoraplay_cvtrgb.h old mode 100644 new mode 100755