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
+
+
+
+
+| abc | def | ghi | |
+| dfdf | kljlj | lwllwe | lwlel |
+
+
+This is the start of a par This is line 2 of a par This is the end of a par
+
+
+
+-
+item1
+
+-
+item2
+
+-
+sub_item1
+
+-
+sub_item2
+
+
+
+
+
+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