diff --git a/doc/doc_files/converttonormalmap.html b/doc/doc_files/converttonormalmap.html new file mode 100644 index 0000000..d13bbf3 --- /dev/null +++ b/doc/doc_files/converttonormalmap.html @@ -0,0 +1,17 @@ + + + + + + ConvertToNormalMap [RCBasic Doc] + + + +

sub ConvertToNormalMap(img_id, amp)

+

+ Converts an image to a format for normal maps +

+

+ + + \ No newline at end of file diff --git a/doc/doc_files/createconemesh.html b/doc/doc_files/createconemesh.html index 469460b..4c829fc 100644 --- a/doc/doc_files/createconemesh.html +++ b/doc/doc_files/createconemesh.html @@ -9,6 +9,9 @@

Function CreateConeMesh( radius, cone_length, tesselation, top_color, bottom_color )

+ Create a cone mesh +

+

\ No newline at end of file diff --git a/doc/doc_files/createcylindermesh.html b/doc/doc_files/createcylindermesh.html index 17db61b..a084b04 100644 --- a/doc/doc_files/createcylindermesh.html +++ b/doc/doc_files/createcylindermesh.html @@ -9,6 +9,9 @@

Function CreateCylinderMesh( radius, cylinder_length, tesselation, color, close_top )

+ Create a cylinder mesh +

+

\ No newline at end of file diff --git a/doc/doc_files/createprojectoractor.html b/doc/doc_files/createprojectoractor.html new file mode 100644 index 0000000..d00b134 --- /dev/null +++ b/doc/doc_files/createprojectoractor.html @@ -0,0 +1,20 @@ + + + + + + CreateProjectorActor [RCBasic Doc] + + + +

Function CreateProjectorActor()

+

+ Create a projector actor. +

+

+ Projector actors can be used to project a texture over objects in its field of view. +

+

+ + + \ No newline at end of file diff --git a/doc/doc_files/createvolumelightmesh.html b/doc/doc_files/createvolumelightmesh.html index 360b576..9be4dbd 100644 --- a/doc/doc_files/createvolumelightmesh.html +++ b/doc/doc_files/createvolumelightmesh.html @@ -9,6 +9,9 @@

Function CreateVolumeLightMesh( u, v, foot_color, tail_color, lp_distance, dim_x, dim_y, dim_z )

+ Create a mesh to represent a light volume. +

+

\ No newline at end of file diff --git a/doc/doc_files/deletean8.html b/doc/doc_files/deletean8.html index 08a5c7f..558a75f 100644 --- a/doc/doc_files/deletean8.html +++ b/doc/doc_files/deletean8.html @@ -9,6 +9,9 @@

Sub DeleteAN8( an8_project )

+ Clears a anim8or project from program memory. +

+

\ No newline at end of file diff --git a/doc/doc_files/getgpuinfo.html b/doc/doc_files/getgpuinfo.html new file mode 100644 index 0000000..923b84e --- /dev/null +++ b/doc/doc_files/getgpuinfo.html @@ -0,0 +1,17 @@ + + + + + + GetGPUInfo$ [RCBasic Doc] + + + +

function GetGPUInfo$()

+

+ Returns the GPU Vendor info +

+

+ + + \ No newline at end of file diff --git a/doc/doc_files/getmaterialconstant.html b/doc/doc_files/getmaterialconstant.html new file mode 100644 index 0000000..8a8120c --- /dev/null +++ b/doc/doc_files/getmaterialconstant.html @@ -0,0 +1,20 @@ + + + + + + GetMaterialConstant [RCBasic Doc] + + + +

Sub GetMaterialConstant(material, m_constant$, ByRef n1, ByRef n2, ByRef n3, ByRef n4)

+

+ Gets the constant value of an FX material +

+

Related: + SetMaterialConstant +

+

+ + + \ No newline at end of file diff --git a/doc/doc_files/getmaterialconstantname.html b/doc/doc_files/getmaterialconstantname.html new file mode 100644 index 0000000..b4fb73c --- /dev/null +++ b/doc/doc_files/getmaterialconstantname.html @@ -0,0 +1,23 @@ + + + + + + GetMaterialConstantName$ [RCBasic Doc] + + + +

Function GetMaterialConstantName$(material_type, index)

+

+ Returns the name of a uniform for an FX material type +

+

+ NOTE: index should be a number between 0 and NumMaterialConstants +

+

Related: + NumMaterialConstants +

+

+ + + \ No newline at end of file diff --git a/doc/doc_files/getprojectorfov.html b/doc/doc_files/getprojectorfov.html new file mode 100644 index 0000000..25efbdc --- /dev/null +++ b/doc/doc_files/getprojectorfov.html @@ -0,0 +1,20 @@ + + + + + + GetProjectorFOV [RCBasic Doc] + + + +

Function GetProjectorFOV(actor)

+

+ Returns the field of view for a projector +

+

Related: + SetProjectorFOV +

+

+ + + \ No newline at end of file diff --git a/doc/doc_files/getprojectortarget.html b/doc/doc_files/getprojectortarget.html new file mode 100644 index 0000000..7c0d6e2 --- /dev/null +++ b/doc/doc_files/getprojectortarget.html @@ -0,0 +1,20 @@ + + + + + + GetProjectorTarget [RCBasic Doc] + + + +

Sub GetProjectorTarget(actor, ByRef x, ByRef y, ByRef z)

+

+ Get the point a projector is looking at +

+

Related: + SetProjectorTarget +

+

+ + + \ No newline at end of file diff --git a/doc/doc_files/getsceneambientcolor.html b/doc/doc_files/getsceneambientcolor.html new file mode 100644 index 0000000..7ebcc57 --- /dev/null +++ b/doc/doc_files/getsceneambientcolor.html @@ -0,0 +1,20 @@ + + + + + + GetSceneAmbientColor [RCBasic Doc] + + + +

Function GetSceneAmbientColor()

+

+ Returns the ambient light color of the scene +

+

Related: + SetSceneAmbientColor +

+

+ + + \ No newline at end of file diff --git a/doc/doc_files/getsceneshadowcolor.html b/doc/doc_files/getsceneshadowcolor.html new file mode 100644 index 0000000..2a594c0 --- /dev/null +++ b/doc/doc_files/getsceneshadowcolor.html @@ -0,0 +1,20 @@ + + + + + + GetSceneShadowColor [RCBasic Doc] + + + +

Function GetSceneShadowColor()

+

+ Returns the shadow color of the scene +

+

Related: + SetSceneShadowColor +

+

+ + + \ No newline at end of file diff --git a/doc/doc_files/nav_bottom.html b/doc/doc_files/nav_bottom.html index cea7c8c..522add6 100644 --- a/doc/doc_files/nav_bottom.html +++ b/doc/doc_files/nav_bottom.html @@ -665,6 +665,8 @@ ul, #myUL {

  • GetAntiAliasMode
  • +
  • ConvertToNormalMap
  • + @@ -1021,6 +1023,8 @@ ul, #myUL {
  • SystemRam
  • +
  • GetGPUInfo$
  • + @@ -1697,6 +1701,8 @@ ul, #myUL {
  • ActorExists
  • +
  • CreateProjectorActor
  • + @@ -2163,6 +2169,14 @@ ul, #myUL {
  • ClearScene
  • +
  • SetSceneShadowColor
  • + +
  • GetSceneShadowColor
  • + +
  • SetSceneAmbientColor
  • + +
  • GetSceneAmbientColor
  • + @@ -2334,6 +2348,22 @@ ul, #myUL {
  • SetTerrainPatchLOD
  • + + + + + @@ -2459,6 +2489,14 @@ ul, #myUL {
  • MaterialExists
  • +
  • NumMaterialConstants
  • + +
  • GetMaterialConstantName$
  • + +
  • SetMaterialConstant
  • + +
  • GetMaterialConstant
  • + diff --git a/doc/doc_files/nummaterialconstants.html b/doc/doc_files/nummaterialconstants.html new file mode 100644 index 0000000..5908042 --- /dev/null +++ b/doc/doc_files/nummaterialconstants.html @@ -0,0 +1,17 @@ + + + + + + NumMaterialConstants [RCBasic Doc] + + + +

    Function NumMaterialConstants(material_type)

    +

    + Returns the number of shader uniforms for an FX material +

    +

    + + + \ No newline at end of file diff --git a/doc/doc_files/setmaterialconstant.html b/doc/doc_files/setmaterialconstant.html new file mode 100644 index 0000000..5e01075 --- /dev/null +++ b/doc/doc_files/setmaterialconstant.html @@ -0,0 +1,20 @@ + + + + + + SetMaterialConstant [RCBasic Doc] + + + +

    Sub SetMaterialConstant(material, m_constant$, n1, n2, n3, n4)

    +

    + Sets the constant value of an FX material +

    +

    Related: + GetMaterialConstant +

    +

    + + + \ No newline at end of file diff --git a/doc/doc_files/setprojectorfov.html b/doc/doc_files/setprojectorfov.html new file mode 100644 index 0000000..81cf9f7 --- /dev/null +++ b/doc/doc_files/setprojectorfov.html @@ -0,0 +1,20 @@ + + + + + + SetProjectorFOV [RCBasic Doc] + + + +

    Sub SetProjectorFOV(actor, fov)

    +

    + Set the field of view for a projector +

    +

    Related: + GetProjectorFOV +

    +

    + + + \ No newline at end of file diff --git a/doc/doc_files/setprojectortarget.html b/doc/doc_files/setprojectortarget.html new file mode 100644 index 0000000..fd5f831 --- /dev/null +++ b/doc/doc_files/setprojectortarget.html @@ -0,0 +1,17 @@ + + + + + + SetProjectorTarget [RCBasic Doc] + + + +

    Sub SetProjectorTarget(actor, x, y, z)

    +

    + Set the point a projector is pointed at +

    +

    + + + \ No newline at end of file diff --git a/doc/doc_files/setsceneambientcolor.html b/doc/doc_files/setsceneambientcolor.html new file mode 100644 index 0000000..0898a6c --- /dev/null +++ b/doc/doc_files/setsceneambientcolor.html @@ -0,0 +1,20 @@ + + + + + + SetSceneAmbientColor [RCBasic Doc] + + + +

    Sub SetSceneAmbientColor(color)

    +

    + Sets the ambient light color of the scene +

    +

    Related: + GetSceneAmbientColor +

    +

    + + + \ No newline at end of file diff --git a/doc/doc_files/setsceneshadowcolor.html b/doc/doc_files/setsceneshadowcolor.html new file mode 100644 index 0000000..80b66d9 --- /dev/null +++ b/doc/doc_files/setsceneshadowcolor.html @@ -0,0 +1,20 @@ + + + + + + SetSceneShadowColor [RCBasic Doc] + + + +

    Sub SetSceneShadowColor(color)

    +

    + Sets the shadow color of the scene +

    +

    Related: + GetSceneShadowColor +

    +

    + + + \ No newline at end of file diff --git a/doc/files/converttonormalmap.txt b/doc/files/converttonormalmap.txt new file mode 100644 index 0000000..88a9edf --- /dev/null +++ b/doc/files/converttonormalmap.txt @@ -0,0 +1,4 @@ +#title ConvertToNormalMap [RCBasic Doc] +#header sub ConvertToNormalMap(img_id, amp) + +Converts an image to a format for normal maps diff --git a/doc/files/createconemesh.txt b/doc/files/createconemesh.txt index eb2631a..faea361 100644 --- a/doc/files/createconemesh.txt +++ b/doc/files/createconemesh.txt @@ -1,4 +1,4 @@ #title CreateConeMesh [RCBasic Doc] #header Function CreateConeMesh( radius, cone_length, tesselation, top_color, bottom_color ) - +Create a cone mesh diff --git a/doc/files/createcylindermesh.txt b/doc/files/createcylindermesh.txt index 8e36ee7..879bfbb 100644 --- a/doc/files/createcylindermesh.txt +++ b/doc/files/createcylindermesh.txt @@ -1,4 +1,4 @@ #title CreateCylinderMesh [RCBasic Doc] #header Function CreateCylinderMesh( radius, cylinder_length, tesselation, color, close_top ) - +Create a cylinder mesh diff --git a/doc/files/createprojectoractor.txt b/doc/files/createprojectoractor.txt new file mode 100644 index 0000000..2f69501 --- /dev/null +++ b/doc/files/createprojectoractor.txt @@ -0,0 +1,6 @@ +#title CreateProjectorActor [RCBasic Doc] +#header Function CreateProjectorActor() + +Create a projector actor. + +Projector actors can be used to project a texture over objects in its field of view. diff --git a/doc/files/createvolumelightmesh.txt b/doc/files/createvolumelightmesh.txt index 82e6f13..2b257ed 100644 --- a/doc/files/createvolumelightmesh.txt +++ b/doc/files/createvolumelightmesh.txt @@ -1,4 +1,4 @@ #title CreateVolumeLightMesh [RCBasic Doc] #header Function CreateVolumeLightMesh( u, v, foot_color, tail_color, lp_distance, dim_x, dim_y, dim_z ) - +Create a mesh to represent a light volume. diff --git a/doc/files/deletean8.txt b/doc/files/deletean8.txt index ad60000..e671f13 100644 --- a/doc/files/deletean8.txt +++ b/doc/files/deletean8.txt @@ -1,4 +1,4 @@ #title DeleteAN8 [RCBasic Doc] #header Sub DeleteAN8( an8_project ) - +Clears a anim8or project from program memory. diff --git a/doc/files/getgpuinfo.txt b/doc/files/getgpuinfo.txt new file mode 100644 index 0000000..c3cee0b --- /dev/null +++ b/doc/files/getgpuinfo.txt @@ -0,0 +1,4 @@ +#title GetGPUInfo$ [RCBasic Doc] +#header function GetGPUInfo$() + +Returns the GPU Vendor info diff --git a/doc/files/getmaterialconstant.txt b/doc/files/getmaterialconstant.txt new file mode 100644 index 0000000..d78ef3b --- /dev/null +++ b/doc/files/getmaterialconstant.txt @@ -0,0 +1,6 @@ +#title GetMaterialConstant [RCBasic Doc] +#header Sub GetMaterialConstant(material, m_constant$, ByRef n1, ByRef n2, ByRef n3, ByRef n4) + +Gets the constant value of an FX material + +#ref SetMaterialConstant diff --git a/doc/files/getmaterialconstantname.txt b/doc/files/getmaterialconstantname.txt new file mode 100644 index 0000000..20d5acf --- /dev/null +++ b/doc/files/getmaterialconstantname.txt @@ -0,0 +1,8 @@ +#title GetMaterialConstantName$ [RCBasic Doc] +#header Function GetMaterialConstantName$(material_type, index) + +Returns the name of a uniform for an FX material type + +NOTE: index should be a number between 0 and NumMaterialConstants + +#ref NumMaterialConstants diff --git a/doc/files/getprojectorfov.txt b/doc/files/getprojectorfov.txt new file mode 100644 index 0000000..6504fd2 --- /dev/null +++ b/doc/files/getprojectorfov.txt @@ -0,0 +1,6 @@ +#title GetProjectorFOV [RCBasic Doc] +#header Function GetProjectorFOV(actor) + +Returns the field of view for a projector + +#ref SetProjectorFOV diff --git a/doc/files/getprojectortarget.txt b/doc/files/getprojectortarget.txt new file mode 100644 index 0000000..2b265fb --- /dev/null +++ b/doc/files/getprojectortarget.txt @@ -0,0 +1,6 @@ +#title GetProjectorTarget [RCBasic Doc] +#header Sub GetProjectorTarget(actor, ByRef x, ByRef y, ByRef z) + +Get the point a projector is looking at + +#ref SetProjectorTarget diff --git a/doc/files/getsceneambientcolor.txt b/doc/files/getsceneambientcolor.txt new file mode 100644 index 0000000..590d5cc --- /dev/null +++ b/doc/files/getsceneambientcolor.txt @@ -0,0 +1,6 @@ +#title GetSceneAmbientColor [RCBasic Doc] +#header Function GetSceneAmbientColor() + +Returns the ambient light color of the scene + +#ref SetSceneAmbientColor diff --git a/doc/files/getsceneshadowcolor.txt b/doc/files/getsceneshadowcolor.txt new file mode 100644 index 0000000..d7bfbf0 --- /dev/null +++ b/doc/files/getsceneshadowcolor.txt @@ -0,0 +1,6 @@ +#title GetSceneShadowColor [RCBasic Doc] +#header Function GetSceneShadowColor() + +Returns the shadow color of the scene + +#ref SetSceneShadowColor diff --git a/doc/files/nummaterialconstants.txt b/doc/files/nummaterialconstants.txt new file mode 100644 index 0000000..87b574c --- /dev/null +++ b/doc/files/nummaterialconstants.txt @@ -0,0 +1,4 @@ +#title NumMaterialConstants [RCBasic Doc] +#header Function NumMaterialConstants(material_type) + +Returns the number of shader uniforms for an FX material diff --git a/doc/files/setmaterialconstant.txt b/doc/files/setmaterialconstant.txt new file mode 100644 index 0000000..b7da217 --- /dev/null +++ b/doc/files/setmaterialconstant.txt @@ -0,0 +1,6 @@ +#title SetMaterialConstant [RCBasic Doc] +#header Sub SetMaterialConstant(material, m_constant$, n1, n2, n3, n4) + +Sets the constant value of an FX material + +#ref GetMaterialConstant diff --git a/doc/files/setprojectorfov.txt b/doc/files/setprojectorfov.txt new file mode 100644 index 0000000..f76e05d --- /dev/null +++ b/doc/files/setprojectorfov.txt @@ -0,0 +1,6 @@ +#title SetProjectorFOV [RCBasic Doc] +#header Sub SetProjectorFOV(actor, fov) + +Set the field of view for a projector + +#ref GetProjectorFOV diff --git a/doc/files/setprojectortarget.txt b/doc/files/setprojectortarget.txt new file mode 100644 index 0000000..6dd807b --- /dev/null +++ b/doc/files/setprojectortarget.txt @@ -0,0 +1,4 @@ +#title SetProjectorTarget [RCBasic Doc] +#header Sub SetProjectorTarget(actor, x, y, z) + +Set the point a projector is pointed at diff --git a/doc/files/setsceneambientcolor.txt b/doc/files/setsceneambientcolor.txt new file mode 100644 index 0000000..2f7b618 --- /dev/null +++ b/doc/files/setsceneambientcolor.txt @@ -0,0 +1,6 @@ +#title SetSceneAmbientColor [RCBasic Doc] +#header Sub SetSceneAmbientColor(color) + +Sets the ambient light color of the scene + +#ref GetSceneAmbientColor diff --git a/doc/files/setsceneshadowcolor.txt b/doc/files/setsceneshadowcolor.txt new file mode 100644 index 0000000..d8a5d65 --- /dev/null +++ b/doc/files/setsceneshadowcolor.txt @@ -0,0 +1,6 @@ +#title SetSceneShadowColor [RCBasic Doc] +#header Sub SetSceneShadowColor(color) + +Sets the shadow color of the scene + +#ref GetSceneShadowColor diff --git a/rcbasic_build/embedded_functions.bas b/rcbasic_build/embedded_functions.bas index 44c17aa..7d5fc31 100644 --- a/rcbasic_build/embedded_functions.bas +++ b/rcbasic_build/embedded_functions.bas @@ -43,4 +43,5 @@ Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/particles.bas" Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/lights.bas" Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/terrain.bas" Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/water.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/projector.bas" Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/materials.bas" diff --git a/rcbasic_build/intern_inc/switch_cases.h b/rcbasic_build/intern_inc/switch_cases.h index f98dd94..cc7ded0 100644 --- a/rcbasic_build/intern_inc/switch_cases.h +++ b/rcbasic_build/intern_inc/switch_cases.h @@ -246,6 +246,7 @@ rc_drawImage_Flip( DRAWIMAGE_FLIP_SLOT, DRAWIMAGE_FLIP_X, DRAWIMAGE_FLIP_Y, D 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_setAntiAliasMode( SETANTIALIASMODE_AA_MODE ) rc_getAntiAliasMode( ) +rc_convertToNormalMap( CONVERTTONORMALMAP_IMG_ID, CONVERTTONORMALMAP_AMP ) rc_inKey( ) rc_key( KEY_KEY_CODE ) rc_waitKey( ) @@ -392,6 +393,7 @@ rc_messageBox( MESSAGEBOX_TITLE$, MESSAGEBOX_MSG$ ) #/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_inc/exceptions/rc_runtime.h rc_numCPUs( ) rc_intern_systemRam( ) +rc_getGPUInfo( ) rc_dimMatrix( DIMMATRIX_M_ROWS, DIMMATRIX_M_COLS ) rc_deleteMatrix( DELETEMATRIX_MA ) rc_addMatrix( ADDMATRIX_MA, ADDMATRIX_MB, ADDMATRIX_MC ) @@ -554,8 +556,8 @@ rc_getWorld2DAutoClearForces( ) rc_castRay2D( CASTRAY2D_FROM_X, CASTRAY2D_FROM_Y, CASTRAY2D_TO_X, CASTRAY2D_TO_Y ) rc_castRay2D_All( CASTRAY2D_ALL_FROM_X, CASTRAY2D_ALL_FROM_Y, CASTRAY2D_ALL_TO_X, CASTRAY2D_ALL_TO_Y ) rc_getRayHit2D( GETRAYHIT2D_INDEX, &GETRAYHIT2D_SPR_ID, &GETRAYHIT2D_X, &GETRAYHIT2D_Y, &GETRAYHIT2D_NORMAL_X, &GETRAYHIT2D_NORMAL_Y ) -rc_setSpriteCollisionShape( SETSPRITECOLLISIONSHAPE_SPR_ID, SETSPRITECOLLISIONSHAPE_SHAPE ) -rc_getSpriteCollisionShape( GETSPRITECOLLISIONSHAPE_SPR_ID ) +rc_setSpriteCollisionShape( SETSPRITESHAPE_SPR_ID, SETSPRITESHAPE_SHAPE ) +rc_getSpriteCollisionShape( GETSPRITESHAPE_SPR_ID ) rc_setSpriteRadius( SETSPRITERADIUS_SPR_ID, SETSPRITERADIUS_RADIUS ) rc_getSpriteRadius( GETSPRITERADIUS_SPR_ID ) rc_setSpriteBox( SETSPRITEBOX_SPR_ID, SETSPRITEBOX_W, SETSPRITEBOX_H ) @@ -563,6 +565,8 @@ rc_getSpriteBoxSize( GETSPRITEBOXSIZE_SPR_ID, &GETSPRITEBOXSIZE_W, &GETSPRITEB rc_setSpriteChain( SETSPRITECHAIN_SPR_ID, &SETSPRITECHAIN_VX, &SETSPRITECHAIN_VY, SETSPRITECHAIN_V_COUNT, SETSPRITECHAIN_PREV_X, SETSPRITECHAIN_PREV_Y, SETSPRITECHAIN_NEXT_X, SETSPRITECHAIN_NEXT_Y ) rc_setSpriteChainLoop( SETSPRITECHAINLOOP_SPR_ID, &SETSPRITECHAINLOOP_VX, &SETSPRITECHAINLOOP_VY, SETSPRITECHAINLOOP_V_COUNT ) rc_setSpritePolygon( SETSPRITEPOLYGON_SPR_ID, &SETSPRITEPOLYGON_VX, &SETSPRITEPOLYGON_VY, SETSPRITEPOLYGON_V_COUNT ) +rc_setSpriteShapeOffset( SETSPRITESHAPEOFFSET_SPR_ID, SETSPRITESHAPEOFFSET_X, SETSPRITESHAPEOFFSET_Y ) +rc_getSpriteShapeOffset( GETSPRITESHAPEOFFSET_SPR_ID, &GETSPRITESHAPEOFFSET_X, &GETSPRITESHAPEOFFSET_Y ) rc_createDistanceJoint( CREATEDISTANCEJOINT_SPRITEA, CREATEDISTANCEJOINT_SPRITEB, CREATEDISTANCEJOINT_AX, CREATEDISTANCEJOINT_AY, CREATEDISTANCEJOINT_BX, CREATEDISTANCEJOINT_BY, CREATEDISTANCEJOINT_COLLIDE_CONNECT ) rc_createFrictionJoint( CREATEFRICTIONJOINT_SPRITEA, CREATEFRICTIONJOINT_SPRITEB, CREATEFRICTIONJOINT_X, CREATEFRICTIONJOINT_Y, CREATEFRICTIONJOINT_COLLIDE_CONNECT ) rc_createGearJoint( CREATEGEARJOINT_JOINTA, CREATEGEARJOINT_JOINTB, CREATEGEARJOINT_G_RATIO, CREATEGEARJOINT_COLLIDE_CONNECT ) @@ -648,6 +652,8 @@ rc_fillTile( FILLTILE_TILEMAP, FILLTILE_TILE, FILLTILE_X, FILLTILE_Y, FILLTI rc_drawTileMap( DRAWTILEMAP_TILEMAP, DRAWTILEMAP_X, DRAWTILEMAP_Y, DRAWTILEMAP_W, DRAWTILEMAP_H, DRAWTILEMAP_OFFSET_X, DRAWTILEMAP_OFFSET_Y ) rc_deleteTileSet( DELETETILESET_TILESET ) rc_deleteTileMap( DELETETILEMAP_TILEMAP ) +rc_tileSetExists( TILESETEXISTS_TILESET ) +rc_tileMapExists( TILEMAPEXISTS_TILEMAP ) rc_loadMesh( LOADMESH_MESH_FILE$ ) rc_deleteMesh( DELETEMESH_MESH ) rc_createMesh( ) @@ -690,6 +696,7 @@ rc_getActorAutoCulling( GETACTORAUTOCULLING_ACTOR ) rc_addActorShadow( ADDACTORSHADOW_ACTOR ) rc_removeActorShadow( REMOVEACTORSHADOW_ACTOR ) rc_actorExists( ACTOREXISTS_ACTOR ) +rc_createProjectorActor( ) rc_createActorAnimation( CREATEACTORANIMATION_ACTOR, CREATEACTORANIMATION_START_FRAME, CREATEACTORANIMATION_END_FRAME, CREATEACTORANIMATION_SPEED ) rc_setActorAnimation( SETACTORANIMATION_ACTOR, SETACTORANIMATION_ANIMATION, SETACTORANIMATION_NUM_LOOPS ) rc_setActorAnimationSpeed( SETACTORANIMATIONSPEED_ACTOR, SETACTORANIMATIONSPEED_ANIMATION, SETACTORANIMATIONSPEED_SPEED ) @@ -707,8 +714,8 @@ rc_setActorMD2AnimationByName( SETACTORMD2ANIMATIONBYNAME_ACTOR, SETACTORMD2ANI rc_deleteActorAnimation( DELETEACTORANIMATION_ACTOR, DELETEACTORANIMATION_ANIMATION ) 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_setActorCollisionShape( SETACTORSHAPE_ACTOR, SETACTORSHAPE_SHAPE_TYPE, SETACTORSHAPE_MASS ) +rc_getActorCollisionShape( GETACTORSHAPE_ACTOR ) rc_setActorSolid( SETACTORSOLID_ACTOR, SETACTORSOLID_FLAG ) rc_actorIsSolid( ACTORISSOLID_ACTOR ) rc_getActorCollision( GETACTORCOLLISION_ACTOR1, GETACTORCOLLISION_ACTOR2 ) @@ -903,6 +910,10 @@ rc_getWorld3DTimeStep( ) rc_setSceneFog( SETSCENEFOG_COLOR, SETSCENEFOG_FOG_TYPE, SETSCENEFOG_START_VAL, SETSCENEFOG_END_VAL, SETSCENEFOG_DENSITY, SETSCENEFOG_PIXELFOG, SETSCENEFOG_RANGEFOG ) rc_getSceneFog( &GETSCENEFOG_COLOR, &GETSCENEFOG_FOG_TYPE, &GETSCENEFOG_START_VAL, &GETSCENEFOG_END_VAL, &GETSCENEFOG_DENSITY, &GETSCENEFOG_PIXELFOG, &GETSCENEFOG_RANGEFOG ) rc_clearScene( ) +rc_setSceneShadowColor( SETSCENESHADOWCOLOR_COLOR ) +rc_getSceneShadowColor( ) +rc_setSceneAmbientColor( SETSCENEAMBIENTCOLOR_COLOR ) +rc_getSceneAmbientColor( ) rc_startParticleEmitter( STARTPARTICLEEMITTER_ACTOR ) rc_stopParticleEmitter( STOPPARTICLEEMITTER_ACTOR ) rc_setParticleDirection( SETPARTICLEDIRECTION_ACTOR, SETPARTICLEDIRECTION_X, SETPARTICLEDIRECTION_Y, SETPARTICLEDIRECTION_Z ) @@ -976,6 +987,10 @@ rc_scaleTerrainTexture( SCALETERRAINTEXTURE_ACTOR, SCALETERRAINTEXTURE_SCALE, rc_setTerrainCameraMovementDelta( SETTERRAINCAMERAMOVEMENTDELTA_ACTOR, SETTERRAINCAMERAMOVEMENTDELTA_DELTA ) rc_setTerrainCameraRotationDelta( SETTERRAINCAMERAROTATIONDELTA_ACTOR, SETTERRAINCAMERAROTATIONDELTA_DELTA ) rc_setTerrainPatchLOD( SETTERRAINPATCHLOD_ACTOR, SETTERRAINPATCHLOD_PATCHX, SETTERRAINPATCHLOD_PATCHZ, SETTERRAINPATCHLOD_LOD ) +rc_setProjectorTarget( SETPROJECTORTARGET_ACTOR, SETPROJECTORTARGET_X, SETPROJECTORTARGET_Y, SETPROJECTORTARGET_Z ) +rc_getProjectorTarget( GETPROJECTORTARGET_ACTOR, &GETPROJECTORTARGET_X, &GETPROJECTORTARGET_Y, &GETPROJECTORTARGET_Z ) +rc_setProjectorFOV( SETPROJECTORFOV_ACTOR, SETPROJECTORFOV_FOV ) +rc_getProjectorFOV( GETPROJECTORFOV_ACTOR ) rc_createMaterial( ) rc_deleteMaterial( DELETEMATERIAL_MATERIAL_ID ) rc_setActorMaterial( SETACTORMATERIAL_ACTOR, SETACTORMATERIAL_MATERIAL_NUM, SETACTORMATERIAL_MATERIAL_ID ) @@ -1035,3 +1050,7 @@ rc_getActorMaterialFlag( GETACTORMATERIALFLAG_ACTOR, GETACTORMATERIALFLAG_MAT rc_setActorMaterialType( SETACTORMATERIALTYPE_ACTOR, SETACTORMATERIALTYPE_MATERIAL_TYPE ) rc_getActorMaterialType( GETACTORMATERIALTYPE_ACTOR, GETACTORMATERIALTYPE_MATERIAL ) rc_materialExists( MATERIALEXISTS_MATERIAL ) +rc_numMaterialConstants( NUMMATERIALCONSTANTS_MATERIAL_TYPE ) +rc_getMaterialConstantName( GETMATERIALCONSTANTNAME$_MATERIAL_TYPE, GETMATERIALCONSTANTNAME$_INDEX ) +rc_setMaterialConstant( SETMATERIALCONSTANT_MATERIAL, SETMATERIALCONSTANT_M_CONSTANT$, SETMATERIALCONSTANT_N1, SETMATERIALCONSTANT_N2, SETMATERIALCONSTANT_N3, SETMATERIALCONSTANT_N4 ) +rc_getMaterialConstant( GETMATERIALCONSTANT_MATERIAL, GETMATERIALCONSTANT_M_CONSTANT$, &GETMATERIALCONSTANT_N1, &GETMATERIALCONSTANT_N2, &GETMATERIALCONSTANT_N3, &GETMATERIALCONSTANT_N4 ) diff --git a/rcbasic_build/intern_lib/actor.bas b/rcbasic_build/intern_lib/actor.bas index c60185a..734b799 100644 --- a/rcbasic_build/intern_lib/actor.bas +++ b/rcbasic_build/intern_lib/actor.bas @@ -26,3 +26,4 @@ function GetActorAutoCulling( actor ) sub AddActorShadow( actor ) sub RemoveActorShadow( actor ) function ActorExists( actor ) +Function CreateProjectorActor() diff --git a/rcbasic_build/intern_lib/actor_physics.bas b/rcbasic_build/intern_lib/actor_physics.bas index 8da4efb..369de8a 100644 --- a/rcbasic_build/intern_lib/actor_physics.bas +++ b/rcbasic_build/intern_lib/actor_physics.bas @@ -1,7 +1,7 @@ sub SetGravity3D(x, y, z) sub GetGravity3D(ByRef x, ByRef y, ByRef z) -sub SetActorCollisionShape( actor, shape_type, mass) -function GetActorCollisionShape(actor) +sub SetActorShape( actor, shape_type, mass) +function GetActorShape(actor) sub SetActorSolid(actor, flag) function ActorIsSolid(actor) function GetActorCollision(actor1, actor2) diff --git a/rcbasic_build/intern_lib/images.bas b/rcbasic_build/intern_lib/images.bas index ae3635f..eb5c295 100644 --- a/rcbasic_build/intern_lib/images.bas +++ b/rcbasic_build/intern_lib/images.bas @@ -29,3 +29,4 @@ sub DrawImage_Flip(slot, x, y, h, v) sub DrawImage_FlipEx(slot, x, y, src_x, src_y, src_w, src_h, h, v) sub SetAntiAliasMode( aa_mode ) function GetAntiAliasMode( ) +sub ConvertToNormalMap(img_id, amp) diff --git a/rcbasic_build/intern_lib/materials.bas b/rcbasic_build/intern_lib/materials.bas index 20ef4b5..05e01fe 100644 --- a/rcbasic_build/intern_lib/materials.bas +++ b/rcbasic_build/intern_lib/materials.bas @@ -57,3 +57,7 @@ function getActorMaterialFlag( actor, material, flag) sub setActorMaterialType( actor, material_type) function getActorMaterialType( actor, material) function MaterialExists( material ) +Function NumMaterialConstants(material_type) +Function GetMaterialConstantName$(material_type, index) +Sub SetMaterialConstant(material, m_constant$, n1, n2, n3, n4) +Sub GetMaterialConstant(material, m_constant$, ByRef n1, ByRef n2, ByRef n3, ByRef n4) diff --git a/rcbasic_build/intern_lib/projector.bas b/rcbasic_build/intern_lib/projector.bas new file mode 100644 index 0000000..761b8e6 --- /dev/null +++ b/rcbasic_build/intern_lib/projector.bas @@ -0,0 +1,4 @@ +Sub SetProjectorTarget(actor, x, y, z) +Sub GetProjectorTarget(actor, ByRef x, ByRef y, ByRef z) +Sub SetProjectorFOV(actor, fov) +Function GetProjectorFOV(actor) diff --git a/rcbasic_build/intern_lib/scene.bas b/rcbasic_build/intern_lib/scene.bas index 60937b9..fcf454a 100644 --- a/rcbasic_build/intern_lib/scene.bas +++ b/rcbasic_build/intern_lib/scene.bas @@ -9,3 +9,7 @@ function GetWorld3DTimeStep() Sub SetSceneFog(color, fog_type, start_val, end_val, density, pixelFog, rangeFog) Sub GetSceneFog(ByRef color, ByRef fog_type, ByRef start_val, ByRef end_val, ByRef density, ByRef pixelFog, ByRef rangeFog) Sub ClearScene() +Sub SetSceneShadowColor(color) +Function GetSceneShadowColor() +Sub SetSceneAmbientColor(color) +Function GetSceneAmbientColor() diff --git a/rcbasic_build/intern_lib/sprite_physics.bas b/rcbasic_build/intern_lib/sprite_physics.bas index b97ee2f..71eb7d4 100644 --- a/rcbasic_build/intern_lib/sprite_physics.bas +++ b/rcbasic_build/intern_lib/sprite_physics.bas @@ -52,8 +52,8 @@ function GetWorld2DAutoClearForces() function CastRay2D( from_x, from_y, to_x, to_y ) function CastRay2D_All( from_x, from_y, to_x, to_y ) sub GetRayHit2D( index, ByRef spr_id, ByRef x, ByRef y, ByRef normal_x, ByRef normal_y ) -Sub SetSpriteCollisionShape(spr_id, shape) -Function GetSpriteCollisionShape(spr_id) +Sub SetSpriteShape(spr_id, shape) +Function GetSpriteShape(spr_id) Sub SetSpriteRadius(spr_id, radius) Function GetSpriteRadius(spr_id) Sub SetSpriteBox(spr_id, w, h) @@ -61,3 +61,5 @@ Sub GetSpriteBoxSize(spr_id, ByRef w, ByRef h) Sub SetSpriteChain(spr_id, ByRef vx, ByRef vy, v_count, prev_x, prev_y, next_x, next_y) Sub SetSpriteChainLoop(spr_id, ByRef vx, ByRef vy, v_count) Sub SetSpritePolygon(spr_id, ByRef vx, ByRef vy, v_count) +Sub SetSpriteShapeOffset( spr_id, x, y ) +Sub GetSpriteShapeOffset( spr_id, ByRef x, ByRef y ) diff --git a/rcbasic_build/intern_lib/system.bas b/rcbasic_build/intern_lib/system.bas index c3ad89d..84b655e 100644 --- a/rcbasic_build/intern_lib/system.bas +++ b/rcbasic_build/intern_lib/system.bas @@ -19,3 +19,4 @@ function MessageBox(title$, msg$) function Runtime$() function NumCPUs() function SystemRam() +function GetGPUInfo$() diff --git a/rcbasic_build/intern_lib/tilemaps.bas b/rcbasic_build/intern_lib/tilemaps.bas index 4ef783f..88d3619 100644 --- a/rcbasic_build/intern_lib/tilemaps.bas +++ b/rcbasic_build/intern_lib/tilemaps.bas @@ -14,3 +14,5 @@ Sub FillTile(tilemap, tile, x, y, widthInTiles, heightInTiles) Sub DrawTileMap(tilemap, x, y, w, h, offset_x, offset_y) Sub DeleteTileSet(tileset) Sub DeleteTileMap(tilemap) +Function TileSetExists(tileset) +Function TileMapExists(tilemap) diff --git a/rcbasic_build/main.cpp b/rcbasic_build/main.cpp index c9fc9e7..a16f901 100755 --- a/rcbasic_build/main.cpp +++ b/rcbasic_build/main.cpp @@ -923,7 +923,9 @@ int main(int argc, char * argv[]) //rc_filename = "/home/n00b/test/stp/serenity_main.bas"; //rc_filename = "/home/n00b/test/SpriteShapeTest/main.bas"; //rc_filename = "/home/n00b/Programs/RCBasic_v400_Linux64/examples/Constraint/main.bas"; - //rc_filename = "/home/n00b/Programs/RCBasic_v400_Linux64/examples/Simple 3D Platformer/main.bas"; + //rc_filename = "/home/n00b/Programs/RCBasic_v401_Linux64/examples/Simple_3D_Platformer/main.bas"; + //chdir("/home/n00b/Pictures/UNTITLED"); + //rc_filename = "/home/n00b/Pictures/UNTITLED/nv_test.bas"; //DEBUG END //enable_presets = true; @@ -957,7 +959,7 @@ int main(int argc, char * argv[]) if(rc_filename.compare("--version")==0) { - cout << "RCBASIC Compiler v4.2a" << endl; + cout << "RCBASIC Compiler v4.2" << endl; return 0; } diff --git a/rcbasic_build/rc_builtin.h b/rcbasic_build/rc_builtin.h index edb8f0c..980fe4a 100755 --- a/rcbasic_build/rc_builtin.h +++ b/rcbasic_build/rc_builtin.h @@ -749,6 +749,9 @@ void init_embedded_functions() embed_function("SetAntiAliasMode", ID_TYPE_SUB); add_embedded_arg("aa_mode", ID_TYPE_NUM); embed_function("GetAntiAliasMode", ID_TYPE_FN_NUM); + embed_function("ConvertToNormalMap", ID_TYPE_SUB); + add_embedded_arg("img_id", ID_TYPE_NUM); + add_embedded_arg("amp", 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); @@ -1085,6 +1088,7 @@ void init_embedded_functions() embed_function("Runtime$", ID_TYPE_FN_STR); embed_function("NumCPUs", ID_TYPE_FN_NUM); embed_function("SystemRam", ID_TYPE_FN_NUM); + embed_function("GetGPUInfo$", ID_TYPE_FN_STR); embed_function("DimMatrix", ID_TYPE_FN_NUM); add_embedded_arg("m_rows", ID_TYPE_NUM); add_embedded_arg("m_cols", ID_TYPE_NUM); @@ -1625,10 +1629,10 @@ void init_embedded_functions() add_embedded_arg("y", ID_TYPE_BYREF_NUM); add_embedded_arg("normal_x", ID_TYPE_BYREF_NUM); add_embedded_arg("normal_y", ID_TYPE_BYREF_NUM); - embed_function("SetSpriteCollisionShape", ID_TYPE_SUB); + embed_function("SetSpriteShape", ID_TYPE_SUB); add_embedded_arg("spr_id", ID_TYPE_NUM); add_embedded_arg("shape", ID_TYPE_NUM); - embed_function("GetSpriteCollisionShape", ID_TYPE_FN_NUM); + embed_function("GetSpriteShape", ID_TYPE_FN_NUM); add_embedded_arg("spr_id", ID_TYPE_NUM); embed_function("SetSpriteRadius", ID_TYPE_SUB); add_embedded_arg("spr_id", ID_TYPE_NUM); @@ -1662,6 +1666,14 @@ void init_embedded_functions() add_embedded_arg("vx", ID_TYPE_BYREF_NUM); add_embedded_arg("vy", ID_TYPE_BYREF_NUM); add_embedded_arg("v_count", ID_TYPE_NUM); + embed_function("SetSpriteShapeOffset", ID_TYPE_SUB); + add_embedded_arg("spr_id", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("GetSpriteShapeOffset", ID_TYPE_SUB); + add_embedded_arg("spr_id", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); embed_function("createDistanceJoint", ID_TYPE_FN_NUM); add_embedded_arg("spriteA", ID_TYPE_NUM); add_embedded_arg("spriteB", ID_TYPE_NUM); @@ -1956,6 +1968,10 @@ void init_embedded_functions() add_embedded_arg("tileset", ID_TYPE_NUM); embed_function("DeleteTileMap", ID_TYPE_SUB); add_embedded_arg("tilemap", ID_TYPE_NUM); + embed_function("TileSetExists", ID_TYPE_FN_NUM); + add_embedded_arg("tileset", ID_TYPE_NUM); + embed_function("TileMapExists", ID_TYPE_FN_NUM); + add_embedded_arg("tilemap", ID_TYPE_NUM); embed_function("LoadMesh", ID_TYPE_FN_NUM); add_embedded_arg("mesh_file$", ID_TYPE_STR); embed_function("DeleteMesh", ID_TYPE_SUB); @@ -2102,6 +2118,7 @@ void init_embedded_functions() add_embedded_arg("actor", ID_TYPE_NUM); embed_function("ActorExists", ID_TYPE_FN_NUM); add_embedded_arg("actor", ID_TYPE_NUM); + embed_function("CreateProjectorActor", ID_TYPE_FN_NUM); embed_function("CreateActorAnimation", ID_TYPE_FN_NUM); add_embedded_arg("actor", ID_TYPE_NUM); add_embedded_arg("start_frame", ID_TYPE_NUM); @@ -2159,11 +2176,11 @@ void init_embedded_functions() 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); + embed_function("SetActorShape", 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); + embed_function("GetActorShape", ID_TYPE_FN_NUM); add_embedded_arg("actor", ID_TYPE_NUM); embed_function("SetActorSolid", ID_TYPE_SUB); add_embedded_arg("actor", ID_TYPE_NUM); @@ -2866,6 +2883,12 @@ void init_embedded_functions() add_embedded_arg("pixelFog", ID_TYPE_BYREF_NUM); add_embedded_arg("rangeFog", ID_TYPE_BYREF_NUM); embed_function("ClearScene", ID_TYPE_SUB); + embed_function("SetSceneShadowColor", ID_TYPE_SUB); + add_embedded_arg("color", ID_TYPE_NUM); + embed_function("GetSceneShadowColor", ID_TYPE_FN_NUM); + embed_function("SetSceneAmbientColor", ID_TYPE_SUB); + add_embedded_arg("color", ID_TYPE_NUM); + embed_function("GetSceneAmbientColor", ID_TYPE_FN_NUM); embed_function("startParticleEmitter", ID_TYPE_SUB); add_embedded_arg("actor", ID_TYPE_NUM); embed_function("stopParticleEmitter", ID_TYPE_SUB); @@ -3104,6 +3127,21 @@ void init_embedded_functions() add_embedded_arg("patchX", ID_TYPE_NUM); add_embedded_arg("patchZ", ID_TYPE_NUM); add_embedded_arg("LOD", ID_TYPE_NUM); + embed_function("SetProjectorTarget", 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("GetProjectorTarget", 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("SetProjectorFOV", ID_TYPE_SUB); + add_embedded_arg("actor", ID_TYPE_NUM); + add_embedded_arg("fov", ID_TYPE_NUM); + embed_function("GetProjectorFOV", ID_TYPE_FN_NUM); + add_embedded_arg("actor", ID_TYPE_NUM); embed_function("createMaterial", ID_TYPE_FN_NUM); embed_function("deleteMaterial", ID_TYPE_SUB); add_embedded_arg("material_id", ID_TYPE_NUM); @@ -3260,6 +3298,25 @@ void init_embedded_functions() add_embedded_arg("material", ID_TYPE_NUM); embed_function("MaterialExists", ID_TYPE_FN_NUM); add_embedded_arg("material", ID_TYPE_NUM); + embed_function("NumMaterialConstants", ID_TYPE_FN_NUM); + add_embedded_arg("material_type", ID_TYPE_NUM); + embed_function("GetMaterialConstantName$", ID_TYPE_FN_STR); + add_embedded_arg("material_type", ID_TYPE_NUM); + add_embedded_arg("index", ID_TYPE_NUM); + embed_function("SetMaterialConstant", ID_TYPE_SUB); + add_embedded_arg("material", ID_TYPE_NUM); + add_embedded_arg("m_constant$", ID_TYPE_STR); + add_embedded_arg("n1", ID_TYPE_NUM); + add_embedded_arg("n2", ID_TYPE_NUM); + add_embedded_arg("n3", ID_TYPE_NUM); + add_embedded_arg("n4", ID_TYPE_NUM); + embed_function("GetMaterialConstant", ID_TYPE_SUB); + add_embedded_arg("material", ID_TYPE_NUM); + add_embedded_arg("m_constant$", ID_TYPE_STR); + add_embedded_arg("n1", ID_TYPE_BYREF_NUM); + add_embedded_arg("n2", ID_TYPE_BYREF_NUM); + add_embedded_arg("n3", ID_TYPE_BYREF_NUM); + add_embedded_arg("n4", ID_TYPE_BYREF_NUM); } void init_embedded_types() diff --git a/rcbasic_build/rcbasic4_changes.ods b/rcbasic_build/rcbasic4_changes.ods index 52b03fa..e218adb 100644 Binary files a/rcbasic_build/rcbasic4_changes.ods and b/rcbasic_build/rcbasic4_changes.ods differ diff --git a/rcbasic_build/rcbasic_build.depend b/rcbasic_build/rcbasic_build.depend index 9024781..d2b8733 100755 --- a/rcbasic_build/rcbasic_build.depend +++ b/rcbasic_build/rcbasic_build.depend @@ -1,5 +1,5 @@ # depslib dependency file v1.0 -1742442082 source:/home/n00b/Projects/RCBASIC4/rcbasic_build/main.cpp +1747541932 source:/home/n00b/Projects/RCBASIC4/rcbasic_build/main.cpp @@ -14,7 +14,7 @@ "env_resolve.h" "identifier.h" -1742438422 /home/n00b/Projects/RCBASIC4/rcbasic_build/tokenizer.h +1744318795 /home/n00b/Projects/RCBASIC4/rcbasic_build/tokenizer.h @@ -54,7 +54,7 @@ 1734372057 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_global.h -1742442075 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_builtin.h +1747541797 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_builtin.h "identifier.h" 1734372057 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_vm_asm.h diff --git a/rcbasic_build/rcbasic_build.layout b/rcbasic_build/rcbasic_build.layout index 7582a5d..510b4bd 100755 --- a/rcbasic_build/rcbasic_build.layout +++ b/rcbasic_build/rcbasic_build.layout @@ -2,35 +2,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -41,6 +12,21 @@ + + + + + + + + + + + + + + + @@ -54,14 +40,24 @@ - - - - - + + + + + + + + + + + + + + + diff --git a/rcbasic_build/rcbasic_dev.txt b/rcbasic_build/rcbasic_dev.txt index 701bda8..5db7d27 100644 --- a/rcbasic_build/rcbasic_dev.txt +++ b/rcbasic_build/rcbasic_dev.txt @@ -743,6 +743,9 @@ add_embedded_arg("v", ID_TYPE_NUM); embed_function("SetAntiAliasMode", ID_TYPE_SUB); add_embedded_arg("aa_mode", ID_TYPE_NUM); embed_function("GetAntiAliasMode", ID_TYPE_FN_NUM); +embed_function("ConvertToNormalMap", ID_TYPE_SUB); +add_embedded_arg("img_id", ID_TYPE_NUM); +add_embedded_arg("amp", 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); @@ -1079,6 +1082,7 @@ 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("GetGPUInfo$", ID_TYPE_FN_STR); embed_function("DimMatrix", ID_TYPE_FN_NUM); add_embedded_arg("m_rows", ID_TYPE_NUM); add_embedded_arg("m_cols", ID_TYPE_NUM); @@ -1619,10 +1623,10 @@ add_embedded_arg("x", ID_TYPE_BYREF_NUM); add_embedded_arg("y", ID_TYPE_BYREF_NUM); add_embedded_arg("normal_x", ID_TYPE_BYREF_NUM); add_embedded_arg("normal_y", ID_TYPE_BYREF_NUM); -embed_function("SetSpriteCollisionShape", ID_TYPE_SUB); +embed_function("SetSpriteShape", ID_TYPE_SUB); add_embedded_arg("spr_id", ID_TYPE_NUM); add_embedded_arg("shape", ID_TYPE_NUM); -embed_function("GetSpriteCollisionShape", ID_TYPE_FN_NUM); +embed_function("GetSpriteShape", ID_TYPE_FN_NUM); add_embedded_arg("spr_id", ID_TYPE_NUM); embed_function("SetSpriteRadius", ID_TYPE_SUB); add_embedded_arg("spr_id", ID_TYPE_NUM); @@ -1656,6 +1660,14 @@ add_embedded_arg("spr_id", ID_TYPE_NUM); add_embedded_arg("vx", ID_TYPE_BYREF_NUM); add_embedded_arg("vy", ID_TYPE_BYREF_NUM); add_embedded_arg("v_count", ID_TYPE_NUM); +embed_function("SetSpriteShapeOffset", ID_TYPE_SUB); +add_embedded_arg("spr_id", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_NUM); +add_embedded_arg("y", ID_TYPE_NUM); +embed_function("GetSpriteShapeOffset", ID_TYPE_SUB); +add_embedded_arg("spr_id", ID_TYPE_NUM); +add_embedded_arg("x", ID_TYPE_BYREF_NUM); +add_embedded_arg("y", ID_TYPE_BYREF_NUM); embed_function("createDistanceJoint", ID_TYPE_FN_NUM); add_embedded_arg("spriteA", ID_TYPE_NUM); add_embedded_arg("spriteB", ID_TYPE_NUM); @@ -1950,6 +1962,10 @@ embed_function("DeleteTileSet", ID_TYPE_SUB); add_embedded_arg("tileset", ID_TYPE_NUM); embed_function("DeleteTileMap", ID_TYPE_SUB); add_embedded_arg("tilemap", ID_TYPE_NUM); +embed_function("TileSetExists", ID_TYPE_FN_NUM); +add_embedded_arg("tileset", ID_TYPE_NUM); +embed_function("TileMapExists", ID_TYPE_FN_NUM); +add_embedded_arg("tilemap", ID_TYPE_NUM); embed_function("LoadMesh", ID_TYPE_FN_NUM); add_embedded_arg("mesh_file$", ID_TYPE_STR); embed_function("DeleteMesh", ID_TYPE_SUB); @@ -2096,6 +2112,7 @@ embed_function("RemoveActorShadow", ID_TYPE_SUB); add_embedded_arg("actor", ID_TYPE_NUM); embed_function("ActorExists", ID_TYPE_FN_NUM); add_embedded_arg("actor", ID_TYPE_NUM); +embed_function("CreateProjectorActor", ID_TYPE_FN_NUM); embed_function("CreateActorAnimation", ID_TYPE_FN_NUM); add_embedded_arg("actor", ID_TYPE_NUM); add_embedded_arg("start_frame", ID_TYPE_NUM); @@ -2153,11 +2170,11 @@ 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); +embed_function("SetActorShape", 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); +embed_function("GetActorShape", ID_TYPE_FN_NUM); add_embedded_arg("actor", ID_TYPE_NUM); embed_function("SetActorSolid", ID_TYPE_SUB); add_embedded_arg("actor", ID_TYPE_NUM); @@ -2860,6 +2877,12 @@ add_embedded_arg("density", ID_TYPE_BYREF_NUM); add_embedded_arg("pixelFog", ID_TYPE_BYREF_NUM); add_embedded_arg("rangeFog", ID_TYPE_BYREF_NUM); embed_function("ClearScene", ID_TYPE_SUB); +embed_function("SetSceneShadowColor", ID_TYPE_SUB); +add_embedded_arg("color", ID_TYPE_NUM); +embed_function("GetSceneShadowColor", ID_TYPE_FN_NUM); +embed_function("SetSceneAmbientColor", ID_TYPE_SUB); +add_embedded_arg("color", ID_TYPE_NUM); +embed_function("GetSceneAmbientColor", ID_TYPE_FN_NUM); embed_function("startParticleEmitter", ID_TYPE_SUB); add_embedded_arg("actor", ID_TYPE_NUM); embed_function("stopParticleEmitter", ID_TYPE_SUB); @@ -3098,6 +3121,21 @@ 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("SetProjectorTarget", 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("GetProjectorTarget", 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("SetProjectorFOV", ID_TYPE_SUB); +add_embedded_arg("actor", ID_TYPE_NUM); +add_embedded_arg("fov", ID_TYPE_NUM); +embed_function("GetProjectorFOV", ID_TYPE_FN_NUM); +add_embedded_arg("actor", ID_TYPE_NUM); embed_function("createMaterial", ID_TYPE_FN_NUM); embed_function("deleteMaterial", ID_TYPE_SUB); add_embedded_arg("material_id", ID_TYPE_NUM); @@ -3254,3 +3292,22 @@ add_embedded_arg("actor", ID_TYPE_NUM); add_embedded_arg("material", ID_TYPE_NUM); embed_function("MaterialExists", ID_TYPE_FN_NUM); add_embedded_arg("material", ID_TYPE_NUM); +embed_function("NumMaterialConstants", ID_TYPE_FN_NUM); +add_embedded_arg("material_type", ID_TYPE_NUM); +embed_function("GetMaterialConstantName$", ID_TYPE_FN_STR); +add_embedded_arg("material_type", ID_TYPE_NUM); +add_embedded_arg("index", ID_TYPE_NUM); +embed_function("SetMaterialConstant", ID_TYPE_SUB); +add_embedded_arg("material", ID_TYPE_NUM); +add_embedded_arg("m_constant$", ID_TYPE_STR); +add_embedded_arg("n1", ID_TYPE_NUM); +add_embedded_arg("n2", ID_TYPE_NUM); +add_embedded_arg("n3", ID_TYPE_NUM); +add_embedded_arg("n4", ID_TYPE_NUM); +embed_function("GetMaterialConstant", ID_TYPE_SUB); +add_embedded_arg("material", ID_TYPE_NUM); +add_embedded_arg("m_constant$", ID_TYPE_STR); +add_embedded_arg("n1", ID_TYPE_BYREF_NUM); +add_embedded_arg("n2", ID_TYPE_BYREF_NUM); +add_embedded_arg("n3", ID_TYPE_BYREF_NUM); +add_embedded_arg("n4", ID_TYPE_BYREF_NUM); diff --git a/rcbasic_build/rcbasic_dev2.txt b/rcbasic_build/rcbasic_dev2.txt index 8434110..608fb95 100644 --- a/rcbasic_build/rcbasic_dev2.txt +++ b/rcbasic_build/rcbasic_dev2.txt @@ -743,901 +743,905 @@ #define FN_SetAntiAliasMode 246 #define SETANTIALIASMODE_AA_MODE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define FN_GetAntiAliasMode 247 -#define FN_InKey 248 -#define FN_Key 249 +#define FN_ConvertToNormalMap 248 +#define CONVERTTONORMALMAP_IMG_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CONVERTTONORMALMAP_AMP num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_InKey 249 +#define FN_Key 250 #define KEY_KEY_CODE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_WaitKey 250 -#define FN_HideMouse 251 -#define FN_ShowMouse 252 -#define FN_MouseIsVisible 253 -#define FN_GetMouse 254 +#define FN_WaitKey 251 +#define FN_HideMouse 252 +#define FN_ShowMouse 253 +#define FN_MouseIsVisible 254 +#define FN_GetMouse 255 #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 255 -#define FN_MouseY 256 -#define FN_MouseButton 257 +#define FN_MouseX 256 +#define FN_MouseY 257 +#define FN_MouseButton 258 #define MOUSEBUTTON_MB num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetMouseWheel 258 +#define FN_GetMouseWheel 259 #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 259 -#define FN_MouseWheelY 260 -#define FN_GetGlobalMouse 261 +#define FN_MouseWheelX 260 +#define FN_MouseWheelY 261 +#define FN_GetGlobalMouse 262 #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 262 -#define FN_GlobalMouseY 263 -#define FN_WarpMouse 264 +#define FN_GlobalMouseX 263 +#define FN_GlobalMouseY 264 +#define FN_WarpMouse 265 #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 265 +#define FN_WarpMouseGlobal 266 #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 266 +#define FN_SetMouseZone 267 #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 267 -#define FN_CreateSound 268 +#define FN_ClearMouseZone 268 +#define FN_CreateSound 269 #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 269 +#define FN_LoadSound 270 #define LOADSOUND_SND_FILE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_LoadMusic 270 +#define FN_LoadMusic 271 #define LOADMUSIC_MUSIC_FILE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_PlaySound 271 +#define FN_PlaySound 272 #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 272 +#define FN_PlaySoundTimed 273 #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 273 +#define FN_PlayMusic 274 #define PLAYMUSIC_MLOOPS num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_PauseSound 274 +#define FN_PauseSound 275 #define PAUSESOUND_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_ResumeSound 275 +#define FN_ResumeSound 276 #define RESUMESOUND_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_PauseMusic 276 -#define FN_ResumeMusic 277 -#define FN_DeleteSound 278 +#define FN_PauseMusic 277 +#define FN_ResumeMusic 278 +#define FN_DeleteSound 279 #define DELETESOUND_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_DeleteMusic 279 -#define FN_FadeMusicIn 280 +#define FN_DeleteMusic 280 +#define FN_FadeMusicIn 281 #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 281 +#define FN_FadeMusicOut 282 #define FADEMUSICOUT_FADE_TIME num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_MusicExists 282 -#define FN_SetMusicVolume 283 +#define FN_MusicExists 283 +#define FN_SetMusicVolume 284 #define SETMUSICVOLUME_VOL num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetMusicVolume 284 -#define FN_SetMusicPosition 285 +#define FN_GetMusicVolume 285 +#define FN_SetMusicPosition 286 #define SETMUSICPOSITION_POS num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetMusicPosition 286 -#define FN_RewindMusic 287 -#define FN_SetSoundChannels 288 +#define FN_GetMusicPosition 287 +#define FN_RewindMusic 288 +#define FN_SetSoundChannels 289 #define SETSOUNDCHANNELS_MAX_CHANNELS num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_NumSoundChannels 289 -#define FN_SoundIsEnabled 290 -#define FN_SoundExists 291 +#define FN_NumSoundChannels 290 +#define FN_SoundIsEnabled 291 +#define FN_SoundExists 292 #define SOUNDEXISTS_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetChannelVolume 292 +#define FN_SetChannelVolume 293 #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 293 +#define FN_GetChannelVolume 294 #define GETCHANNELVOLUME_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSoundVolume 294 +#define FN_SetSoundVolume 295 #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 295 +#define FN_GetSoundVolume 296 #define GETSOUNDVOLUME_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_StopMusic 296 -#define FN_StopSound 297 +#define FN_StopMusic 297 +#define FN_StopSound 298 #define STOPSOUND_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetChannelPanning 298 +#define FN_SetChannelPanning 299 #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 299 +#define FN_SetChannelDistance 300 #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 300 +#define FN_ChannelIsPlaying 301 #define CHANNELISPLAYING_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_ChannelIsPaused 301 +#define FN_ChannelIsPaused 302 #define CHANNELISPAUSED_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_QueryAudioSpec 302 +#define FN_QueryAudioSpec 303 #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 303 -#define FN_SetChannelSpacePosition 304 +#define FN_MusicIsPlaying 304 +#define FN_SetChannelSpacePosition 305 #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 305 -#define FN_NumJoyAxes 306 +#define FN_NumJoysticks 306 +#define FN_NumJoyAxes 307 #define NUMJOYAXES_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_NumJoyButtons 307 +#define FN_NumJoyButtons 308 #define NUMJOYBUTTONS_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_NumJoyHats 308 +#define FN_NumJoyHats 309 #define NUMJOYHATS_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_NumJoyTrackBalls 309 +#define FN_NumJoyTrackBalls 310 #define NUMJOYTRACKBALLS_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_JoyAxis 310 +#define FN_JoyAxis 311 #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 311 +#define FN_JoyButton 312 #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 312 +#define FN_JoyHat 313 #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 313 +#define FN_GetJoyTrackBall 314 #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$ 314 +#define FN_JoyName$ 315 #define JOYNAME$_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_JoystickIsConnected 315 +#define FN_JoystickIsConnected 316 #define JOYSTICKISCONNECTED_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_JoyRumblePlay 316 +#define FN_JoyRumblePlay 317 #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 317 +#define FN_JoyRumbleStop 318 #define JOYRUMBLESTOP_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_JoystickIsHaptic 318 +#define FN_JoystickIsHaptic 319 #define JOYSTICKISHAPTIC_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_LoadFont 319 +#define FN_LoadFont 320 #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 320 +#define FN_DeleteFont 321 #define DELETEFONT_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_FontExists 321 +#define FN_FontExists 322 #define FONTEXISTS_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetFont 322 +#define FN_SetFont 323 #define SETFONT_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_DrawText 323 +#define FN_DrawText 324 #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 324 +#define FN_GetTextSize 325 #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_TextWidth 325 +#define FN_TextWidth 326 #define TEXTWIDTH_TXT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_TextHeight 326 +#define FN_TextHeight 327 #define TEXTHEIGHT_TXT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_TouchPressure 327 -#define FN_GetTouch 328 +#define FN_TouchPressure 328 +#define FN_GetTouch 329 #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 329 +#define FN_GetMultiTouch 330 #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 330 +#define FN_GetTouchFinger 331 #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 331 -#define FN_GetAccel 332 +#define FN_NumFingers 332 +#define FN_GetAccel 333 #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$ 333 +#define FN_AccelName$ 334 #define ACCELNAME$_ACCEL_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_NumAccels 334 -#define FN_GetGyro 335 +#define FN_NumAccels 335 +#define FN_GetGyro 336 #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$ 336 +#define FN_GyroName$ 337 #define GYRONAME$_GYRO_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_NumGyros 337 -#define FN_CheckSockets 338 +#define FN_NumGyros 338 +#define FN_CheckSockets 339 #define CHECKSOCKETS_TIMEOUT_MS num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_TCP_SocketReady 339 +#define FN_TCP_SocketReady 340 #define TCP_SOCKETREADY_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_UDP_SocketReady 340 +#define FN_UDP_SocketReady 341 #define UDP_SOCKETREADY_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_TCP_OpenSocket 341 +#define FN_TCP_OpenSocket 342 #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 342 +#define FN_TCP_CloseSocket 343 #define TCP_CLOSESOCKET_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_TCP_RemoteHost 343 +#define FN_TCP_RemoteHost 344 #define TCP_REMOTEHOST_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_TCP_RemotePort 344 +#define FN_TCP_RemotePort 345 #define TCP_REMOTEPORT_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_TCP_GetData 345 +#define FN_TCP_GetData 346 #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 346 +#define FN_TCP_SendData 347 #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 347 +#define FN_TCP_AcceptSocket 348 #define TCP_ACCEPTSOCKET_SERVER num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_UDP_OpenSocket 348 +#define FN_UDP_OpenSocket 349 #define UDP_OPENSOCKET_PORT num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_UDP_CloseSocket 349 +#define FN_UDP_CloseSocket 350 #define UDP_CLOSESOCKET_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_UDP_GetData 350 +#define FN_UDP_GetData 351 #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 351 -#define FN_UDP_MaxLength 352 -#define FN_UDP_RemoteHost$ 353 +#define FN_UDP_Length 352 +#define FN_UDP_MaxLength 353 +#define FN_UDP_RemoteHost$ 354 #define UDP_REMOTEHOST$_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_UDP_RemotePort 354 +#define FN_UDP_RemotePort 355 #define UDP_REMOTEPORT_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_UDP_SendData 355 +#define FN_UDP_SendData 356 #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 356 +#define FN_LoadVideo 357 #define LOADVIDEO_VID$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_PlayVideo 357 +#define FN_PlayVideo 358 #define PLAYVIDEO_VLOOPS num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_PauseVideo 358 -#define FN_StopVideo 359 -#define FN_SetVideoPosition 360 +#define FN_PauseVideo 359 +#define FN_StopVideo 360 +#define FN_SetVideoPosition 361 #define SETVIDEOPOSITION_POS num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_ResumeVideo 361 -#define FN_GetVideoPosition 362 -#define FN_DeleteVideo 363 -#define FN_VideoIsPlaying 364 -#define FN_VideoEnd 365 -#define FN_GetVideoStats 366 +#define FN_ResumeVideo 362 +#define FN_GetVideoPosition 363 +#define FN_DeleteVideo 364 +#define FN_VideoIsPlaying 365 +#define FN_VideoEnd 366 +#define FN_GetVideoStats 367 #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 367 +#define FN_SetVideoDrawRect 368 #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 368 +#define FN_GetVideoDrawRect 369 #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 369 +#define FN_GetVideoSize 370 #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 370 -#define FN_SetVideoVolume 371 +#define FN_VideoExists 371 +#define FN_SetVideoVolume 372 #define SETVIDEOVOLUME_VOL num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetVideoVolume 372 -#define FN_System 373 +#define FN_GetVideoVolume 373 +#define FN_System 374 #define SYSTEM_CMD$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_OS$ 374 -#define FN_Command$ 375 +#define FN_OS$ 375 +#define FN_Command$ 376 #define COMMAND$_ARG num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_NumCommands 376 -#define FN_Env$ 377 +#define FN_NumCommands 377 +#define FN_Env$ 378 #define ENV$_V$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_SetEnv 378 +#define FN_SetEnv 379 #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$ 379 +#define FN_PrefPath$ 380 #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$ 380 -#define FN_Android_GetExternalStorageState 381 -#define FN_Android_GetInternalStoragePath$ 382 -#define FN_Android_JNI_Message$ 383 +#define FN_Android_GetExternalStoragePath$ 381 +#define FN_Android_GetExternalStorageState 382 +#define FN_Android_GetInternalStoragePath$ 383 +#define FN_Android_JNI_Message$ 384 #define ANDROID_JNI_MESSAGE$_ARG$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_Runtime_Utility_Message$ 384 +#define FN_Runtime_Utility_Message$ 385 #define RUNTIME_UTILITY_MESSAGE$_ARG$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_GetDesktopDisplayMode 385 +#define FN_GetDesktopDisplayMode 386 #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 386 +#define FN_GetPowerInfo 387 #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$ 387 +#define FN_EvalJS$ 388 #define EVALJS$_JS_CODE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_SystemReturnStdOut$ 388 +#define FN_SystemReturnStdOut$ 389 #define SYSTEMRETURNSTDOUT$_CMD$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_OpenURL 389 +#define FN_OpenURL 390 #define OPENURL_URL$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_MessageBox 390 +#define FN_MessageBox 391 #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$ 391 -#define FN_NumCPUs 392 -#define FN_SystemRam 393 -#define FN_DimMatrix 394 +#define FN_Runtime$ 392 +#define FN_NumCPUs 393 +#define FN_SystemRam 394 +#define FN_GetGPUInfo$ 395 +#define FN_DimMatrix 396 #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 395 +#define FN_DeleteMatrix 397 #define DELETEMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_AddMatrix 396 +#define FN_AddMatrix 398 #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 397 +#define FN_AugmentMatrix 399 #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 398 +#define FN_CopyMatrix 400 #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 399 +#define FN_InsertMatrixColumns 401 #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 400 +#define FN_InsertMatrixRows 402 #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 401 +#define FN_MultiplyMatrix 403 #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 402 +#define FN_CubeMatrix 404 #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 403 +#define FN_DeleteMatrixColumns 405 #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 404 +#define FN_DeleteMatrixRows 406 #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 405 +#define FN_ClearMatrix 407 #define CLEARMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_ClearMatrixColumns 406 +#define FN_ClearMatrixColumns 408 #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 407 +#define FN_ClearMatrixRows 409 #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 408 +#define FN_FillMatrix 410 #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 409 +#define FN_FillMatrixColumns 411 #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 410 +#define FN_FillMatrixRows 412 #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 411 +#define FN_CopyMatrixColumns 413 #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 412 +#define FN_CopyMatrixRows 414 #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 413 +#define FN_SetIdentityMatrix 415 #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 414 +#define FN_SolveMatrix 416 #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 415 +#define FN_IsEqualMatrix 417 #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 416 +#define FN_Determinant 418 #define DETERMINANT_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_AdjointMatrix 417 +#define FN_AdjointMatrix 419 #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 418 +#define FN_InvertMatrix 420 #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 419 +#define FN_MatrixFromBuffer 421 #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 420 +#define FN_BufferFromMatrix 422 #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 421 +#define FN_RandomizeMatrix 423 #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 422 +#define FN_MatrixValue 424 #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 423 +#define FN_SetMatrixValue 425 #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 424 +#define FN_ScalarMatrix 426 #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 425 +#define FN_ScalarMatrixColumns 427 #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 426 +#define FN_ScalarMatrixRows 428 #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 427 +#define FN_SquareMatrix 429 #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 428 +#define FN_CofactorMatrix 430 #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 429 +#define FN_SubtractMatrix 431 #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 430 +#define FN_SwapMatrix 432 #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 431 +#define FN_SwapMatrixColumn 433 #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 432 +#define FN_SwapMatrixRow 434 #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 433 +#define FN_TransposeMatrix 435 #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 434 +#define FN_UnAugmentMatrix 436 #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 435 +#define FN_ZeroMatrix 437 #define ZEROMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetMatrixSize 436 +#define FN_GetMatrixSize 438 #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 437 +#define FN_IncrementMatrixRows 439 #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 438 +#define FN_IncrementMatrixColumns 440 #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 439 +#define FN_JoinMatrixRows 441 #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 440 +#define FN_JoinMatrixColumns 442 #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 441 +#define FN_ClipMatrix 443 #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 442 +#define FN_SetMatrixTranslation 444 #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 443 +#define FN_SetMatrixRotation 445 #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 444 +#define FN_SetMatrixScale 446 #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 445 +#define FN_GetMatrixTranslation 447 #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 446 +#define FN_GetMatrixRotation 448 #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 447 +#define FN_GetMatrixScale 449 #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$ 448 -#define FN_SetClipboardText 449 +#define FN_GetClipboardText$ 450 +#define FN_SetClipboardText 451 #define SETCLIPBOARDTEXT_TXT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_HasClipboardText 450 -#define FN_ReadInput_Start 451 -#define FN_ReadInput_Stop 452 -#define FN_ReadInput_GetText$ 453 -#define FN_ReadInput_SetText 454 +#define FN_HasClipboardText 452 +#define FN_ReadInput_Start 453 +#define FN_ReadInput_Stop 454 +#define FN_ReadInput_GetText$ 455 +#define FN_ReadInput_SetText 456 #define READINPUT_SETTEXT_TXT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_ReadInput_ToggleBackspace 455 +#define FN_ReadInput_ToggleBackspace 457 #define READINPUT_TOGGLEBACKSPACE_FLAG num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_CreateSprite 456 +#define FN_CreateSprite 458 #define CREATESPRITE_IMG num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATESPRITE_FRAME_W num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATESPRITE_FRAME_H num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_DeleteSprite 457 +#define FN_DeleteSprite 459 #define DELETESPRITE_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpritePosition 458 +#define FN_SetSpritePosition 460 #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_TranslateSprite 459 +#define FN_TranslateSprite 461 #define TRANSLATESPRITE_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define TRANSLATESPRITE_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define TRANSLATESPRITE_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_GetSpritePosition 460 +#define FN_GetSpritePosition 462 #define GETSPRITEPOSITION_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITEPOSITION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSPRITEPOSITION_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_SpriteX 461 +#define FN_SpriteX 463 #define SPRITEX_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SpriteY 462 +#define FN_SpriteY 464 #define SPRITEY_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpriteRotation 463 +#define FN_SetSpriteRotation 465 #define SETSPRITEROTATION_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEROTATION_ANGLE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_RotateSprite 464 +#define FN_RotateSprite 466 #define ROTATESPRITE_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define ROTATESPRITE_ANGLE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetSpriteRotation 465 +#define FN_GetSpriteRotation 467 #define GETSPRITEROTATION_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpriteScale 466 +#define FN_SetSpriteScale 468 #define SETSPRITESCALE_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITESCALE_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETSPRITESCALE_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_ScaleSprite 467 +#define FN_ScaleSprite 469 #define SCALESPRITE_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SCALESPRITE_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SCALESPRITE_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_GetSpriteScale 468 +#define FN_GetSpriteScale 470 #define GETSPRITESCALE_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITESCALE_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSPRITESCALE_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_SetSpriteZ 469 +#define FN_SetSpriteZ 471 #define SETSPRITEZ_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEZ_Z num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_SpriteZ 470 +#define FN_SpriteZ 472 #define SPRITEZ_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetSpriteSize 471 +#define FN_GetSpriteSize 473 #define GETSPRITESIZE_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITESIZE_W num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSPRITESIZE_H num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_SpriteWidth 472 +#define FN_SpriteWidth 474 #define SPRITEWIDTH_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SpriteHeight 473 +#define FN_SpriteHeight 475 #define SPRITEHEIGHT_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpriteVisible 474 +#define FN_SetSpriteVisible 476 #define SETSPRITEVISIBLE_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEVISIBLE_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_SpriteIsVisible 475 +#define FN_SpriteIsVisible 477 #define SPRITEISVISIBLE_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpriteSolid 476 +#define FN_SetSpriteSolid 478 #define SETSPRITESOLID_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITESOLID_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_SpriteIsSolid 477 +#define FN_SpriteIsSolid 479 #define SPRITEISSOLID_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpriteType 478 +#define FN_SetSpriteType 480 #define SETSPRITETYPE_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITETYPE_SPRITE_TYPE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetSpriteType 479 +#define FN_GetSpriteType 481 #define GETSPRITETYPE_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpriteSource 480 +#define FN_SetSpriteSource 482 #define SETSPRITESOURCE_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITESOURCE_IMG num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetSpriteSource 481 +#define FN_GetSpriteSource 483 #define GETSPRITESOURCE_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SpriteExists 482 +#define FN_SpriteExists 484 #define SPRITEEXISTS_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpriteColorMod 483 +#define FN_SetSpriteColorMod 485 #define SETSPRITECOLORMOD_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITECOLORMOD_COLOR num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_SetSpriteAlpha 484 +#define FN_SetSpriteAlpha 486 #define SETSPRITEALPHA_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEALPHA_ALPHA num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetSpriteColorMod 485 +#define FN_GetSpriteColorMod 487 #define GETSPRITECOLORMOD_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetSpriteAlpha 486 +#define FN_GetSpriteAlpha 488 #define GETSPRITEALPHA_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_CreateSpriteAnimation 487 +#define FN_CreateSpriteAnimation 489 #define CREATESPRITEANIMATION_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATESPRITEANIMATION_ANIM_LENGTH num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATESPRITEANIMATION_SPEED num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_SetSpriteFrame 488 +#define FN_SetSpriteFrame 490 #define SETSPRITEFRAME_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEFRAME_FRAME num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetSpriteFrame 489 +#define FN_GetSpriteFrame 491 #define GETSPRITEFRAME_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpriteAnimationFrame 490 +#define FN_SetSpriteAnimationFrame 492 #define SETSPRITEANIMATIONFRAME_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEANIMATIONFRAME_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETSPRITEANIMATIONFRAME_ANIM_FRAME num_var[2].nref[0].value[ num_var[2].byref_offset ] #define SETSPRITEANIMATIONFRAME_FRAME num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_GetSpriteAnimationFrame 491 +#define FN_GetSpriteAnimationFrame 493 #define GETSPRITEANIMATIONFRAME_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITEANIMATIONFRAME_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSPRITEANIMATIONFRAME_ANIM_FRAME num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_SetSpriteAnimationLength 492 +#define FN_SetSpriteAnimationLength 494 #define SETSPRITEANIMATIONLENGTH_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEANIMATIONLENGTH_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETSPRITEANIMATIONLENGTH_ANIM_LENGTH num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_GetSpriteAnimationLength 493 +#define FN_GetSpriteAnimationLength 495 #define GETSPRITEANIMATIONLENGTH_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITEANIMATIONLENGTH_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_SetSpriteAnimationSpeed 494 +#define FN_SetSpriteAnimationSpeed 496 #define SETSPRITEANIMATIONSPEED_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEANIMATIONSPEED_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETSPRITEANIMATIONSPEED_SPEED num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_GetSpriteAnimationSpeed 495 +#define FN_GetSpriteAnimationSpeed 497 #define GETSPRITEANIMATIONSPEED_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITEANIMATIONSPEED_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_SetSpriteAnimation 496 +#define FN_SetSpriteAnimation 498 #define SETSPRITEANIMATION_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEANIMATION_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETSPRITEANIMATION_NUM_LOOPS num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_GetSpriteAnimation 497 +#define FN_GetSpriteAnimation 499 #define GETSPRITEANIMATION_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetSpriteCurrentAnimationFrame 498 +#define FN_GetSpriteCurrentAnimationFrame 500 #define GETSPRITECURRENTANIMATIONFRAME_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_NumSpriteAnimationLoops 499 +#define FN_NumSpriteAnimationLoops 501 #define NUMSPRITEANIMATIONLOOPS_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SpriteAnimationIsPlaying 500 +#define FN_SpriteAnimationIsPlaying 502 #define SPRITEANIMATIONISPLAYING_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_DeleteSpriteAnimation 501 +#define FN_DeleteSpriteAnimation 503 #define DELETESPRITEANIMATION_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define DELETESPRITEANIMATION_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getSpriteCenter 502 +#define FN_getSpriteCenter 504 #define GETSPRITECENTER_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITECENTER_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSPRITECENTER_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_setSpriteLinearVelocity 503 +#define FN_setSpriteLinearVelocity 505 #define SETSPRITELINEARVELOCITY_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITELINEARVELOCITY_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETSPRITELINEARVELOCITY_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_getSpriteLinearVelocity 504 +#define FN_getSpriteLinearVelocity 506 #define GETSPRITELINEARVELOCITY_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITELINEARVELOCITY_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSPRITELINEARVELOCITY_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_setSpriteAngularVelocity 505 +#define FN_setSpriteAngularVelocity 507 #define SETSPRITEANGULARVELOCITY_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEANGULARVELOCITY_AV num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getSpriteAngularVelocity 506 +#define FN_getSpriteAngularVelocity 508 #define GETSPRITEANGULARVELOCITY_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_applySpriteForce 507 +#define FN_applySpriteForce 509 #define APPLYSPRITEFORCE_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define APPLYSPRITEFORCE_FX num_var[1].nref[0].value[ num_var[1].byref_offset ] #define APPLYSPRITEFORCE_FY num_var[2].nref[0].value[ num_var[2].byref_offset ] #define APPLYSPRITEFORCE_PX num_var[3].nref[0].value[ num_var[3].byref_offset ] #define APPLYSPRITEFORCE_PY num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_applySpriteCentralForce 508 +#define FN_applySpriteCentralForce 510 #define APPLYSPRITECENTRALFORCE_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define APPLYSPRITECENTRALFORCE_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define APPLYSPRITECENTRALFORCE_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_applySpriteTorque 509 +#define FN_applySpriteTorque 511 #define APPLYSPRITETORQUE_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define APPLYSPRITETORQUE_TORQUE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_applySpriteLinearImpulse 510 +#define FN_applySpriteLinearImpulse 512 #define APPLYSPRITELINEARIMPULSE_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define APPLYSPRITELINEARIMPULSE_IX num_var[1].nref[0].value[ num_var[1].byref_offset ] #define APPLYSPRITELINEARIMPULSE_IY num_var[2].nref[0].value[ num_var[2].byref_offset ] #define APPLYSPRITELINEARIMPULSE_PX num_var[3].nref[0].value[ num_var[3].byref_offset ] #define APPLYSPRITELINEARIMPULSE_PY num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_applySpriteAngularImpulse 511 +#define FN_applySpriteAngularImpulse 513 #define APPLYSPRITEANGULARIMPULSE_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define APPLYSPRITEANGULARIMPULSE_IMPULSE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getSpriteMass 512 +#define FN_getSpriteMass 514 #define GETSPRITEMASS_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSpriteInertia 513 +#define FN_getSpriteInertia 515 #define GETSPRITEINERTIA_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSpriteWorldPoint 514 +#define FN_getSpriteWorldPoint 516 #define GETSPRITEWORLDPOINT_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITEWORLDPOINT_LX num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSPRITEWORLDPOINT_LY num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETSPRITEWORLDPOINT_X num_var[3].nref[0].value[ num_var[3].byref_offset ] #define GETSPRITEWORLDPOINT_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_getSpriteWorldVector 515 +#define FN_getSpriteWorldVector 517 #define GETSPRITEWORLDVECTOR_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITEWORLDVECTOR_LX num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSPRITEWORLDVECTOR_LY num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETSPRITEWORLDVECTOR_X num_var[3].nref[0].value[ num_var[3].byref_offset ] #define GETSPRITEWORLDVECTOR_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_getSpriteLocalPoint 516 +#define FN_getSpriteLocalPoint 518 #define GETSPRITELOCALPOINT_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITELOCALPOINT_WX num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSPRITELOCALPOINT_WY num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETSPRITELOCALPOINT_X num_var[3].nref[0].value[ num_var[3].byref_offset ] #define GETSPRITELOCALPOINT_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_getSpriteLocalVector 517 +#define FN_getSpriteLocalVector 519 #define GETSPRITELOCALVECTOR_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITELOCALVECTOR_WX num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSPRITELOCALVECTOR_WY num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETSPRITELOCALVECTOR_X num_var[3].nref[0].value[ num_var[3].byref_offset ] #define GETSPRITELOCALVECTOR_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_getSpriteLinearVelocityFromLocalPoint 518 +#define FN_getSpriteLinearVelocityFromLocalPoint 520 #define GETSPRITELINEARVELOCITYFROMLOCALPOINT_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITELINEARVELOCITYFROMLOCALPOINT_PX num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSPRITELINEARVELOCITYFROMLOCALPOINT_PY num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETSPRITELINEARVELOCITYFROMLOCALPOINT_X num_var[3].nref[0].value[ num_var[3].byref_offset ] #define GETSPRITELINEARVELOCITYFROMLOCALPOINT_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_getSpriteLinearVelocityFromWorldPoint 519 +#define FN_getSpriteLinearVelocityFromWorldPoint 521 #define GETSPRITELINEARVELOCITYFROMWORLDPOINT_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITELINEARVELOCITYFROMWORLDPOINT_WX num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSPRITELINEARVELOCITYFROMWORLDPOINT_WY num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETSPRITELINEARVELOCITYFROMWORLDPOINT_X num_var[3].nref[0].value[ num_var[3].byref_offset ] #define GETSPRITELINEARVELOCITYFROMWORLDPOINT_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_getSpriteLinearDamping 520 +#define FN_getSpriteLinearDamping 522 #define GETSPRITELINEARDAMPING_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setSpriteLinearDamping 521 +#define FN_setSpriteLinearDamping 523 #define SETSPRITELINEARDAMPING_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITELINEARDAMPING_LINEARDAMPING num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getSpriteAngularDamping 522 +#define FN_getSpriteAngularDamping 524 #define GETSPRITEANGULARDAMPING_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setSpriteAngularDamping 523 +#define FN_setSpriteAngularDamping 525 #define SETSPRITEANGULARDAMPING_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEANGULARDAMPING_ANGULARDAMPING num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getSpriteGravityScale 524 +#define FN_getSpriteGravityScale 526 #define GETSPRITEGRAVITYSCALE_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setSpriteGravityScale 525 +#define FN_setSpriteGravityScale 527 #define SETSPRITEGRAVITYSCALE_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEGRAVITYSCALE_G_SCALE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSpriteBullet 526 +#define FN_setSpriteBullet 528 #define SETSPRITEBULLET_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEBULLET_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_spriteIsBullet 527 +#define FN_spriteIsBullet 529 #define SPRITEISBULLET_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setSpriteSleepAllowed 528 +#define FN_setSpriteSleepAllowed 530 #define SETSPRITESLEEPALLOWED_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITESLEEPALLOWED_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_spriteSleepAllowed 529 +#define FN_spriteSleepAllowed 531 #define SPRITESLEEPALLOWED_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setSpriteAwake 530 +#define FN_setSpriteAwake 532 #define SETSPRITEAWAKE_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEAWAKE_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_spriteIsAwake 531 +#define FN_spriteIsAwake 533 #define SPRITEISAWAKE_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setSpriteFixedRotation 532 +#define FN_setSpriteFixedRotation 534 #define SETSPRITEFIXEDROTATION_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEFIXEDROTATION_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_spriteIsFixedRotation 533 +#define FN_spriteIsFixedRotation 535 #define SPRITEISFIXEDROTATION_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpriteDensity 534 +#define FN_SetSpriteDensity 536 #define SETSPRITEDENSITY_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEDENSITY_DENSITY num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetSpriteDensity 535 +#define FN_GetSpriteDensity 537 #define GETSPRITEDENSITY_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpriteFriction 536 +#define FN_SetSpriteFriction 538 #define SETSPRITEFRICTION_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEFRICTION_FRICTION num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetSpriteFriction 537 +#define FN_GetSpriteFriction 539 #define GETSPRITEFRICTION_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpriteRestitution 538 +#define FN_SetSpriteRestitution 540 #define SETSPRITERESTITUTION_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITERESTITUTION_RESTITUTION num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetSpriteRestitution 539 +#define FN_GetSpriteRestitution 541 #define GETSPRITERESTITUTION_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpriteRestitutionThreshold 540 +#define FN_SetSpriteRestitutionThreshold 542 #define SETSPRITERESTITUTIONTHRESHOLD_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITERESTITUTIONTHRESHOLD_THRESHOLD num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetSpriteRestitutionThreshold 541 +#define FN_GetSpriteRestitutionThreshold 543 #define GETSPRITERESTITUTIONTHRESHOLD_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetSpriteAABB 542 +#define FN_GetSpriteAABB 544 #define GETSPRITEAABB_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITEAABB_X1 num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSPRITEAABB_Y1 num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETSPRITEAABB_X2 num_var[3].nref[0].value[ num_var[3].byref_offset ] #define GETSPRITEAABB_Y2 num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_SetGravity2D 543 +#define FN_SetGravity2D 545 #define SETGRAVITY2D_X num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETGRAVITY2D_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetGravity2D 544 +#define FN_GetGravity2D 546 #define GETGRAVITY2D_X num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETGRAVITY2D_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_SetWorld2DTimeStep 545 +#define FN_SetWorld2DTimeStep 547 #define SETWORLD2DTIMESTEP_TS num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetWorld2DVelocityIterations 546 +#define FN_SetWorld2DVelocityIterations 548 #define SETWORLD2DVELOCITYITERATIONS_V num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetWorld2DPositionIterations 547 +#define FN_SetWorld2DPositionIterations 549 #define SETWORLD2DPOSITIONITERATIONS_P num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetWorld2DTimeStep 548 -#define FN_GetWorld2DVelocityIterations 549 -#define FN_GetWorld2DPositionIterations 550 -#define FN_SetWorld2DAutoClearForces 551 +#define FN_GetWorld2DTimeStep 550 +#define FN_GetWorld2DVelocityIterations 551 +#define FN_GetWorld2DPositionIterations 552 +#define FN_SetWorld2DAutoClearForces 553 #define SETWORLD2DAUTOCLEARFORCES_FLAG num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetWorld2DAutoClearForces 552 -#define FN_CastRay2D 553 +#define FN_GetWorld2DAutoClearForces 554 +#define FN_CastRay2D 555 #define CASTRAY2D_FROM_X num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CASTRAY2D_FROM_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CASTRAY2D_TO_X num_var[2].nref[0].value[ num_var[2].byref_offset ] #define CASTRAY2D_TO_Y num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_CastRay2D_All 554 +#define FN_CastRay2D_All 556 #define CASTRAY2D_ALL_FROM_X num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CASTRAY2D_ALL_FROM_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CASTRAY2D_ALL_TO_X num_var[2].nref[0].value[ num_var[2].byref_offset ] #define CASTRAY2D_ALL_TO_Y num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_GetRayHit2D 555 +#define FN_GetRayHit2D 557 #define GETRAYHIT2D_INDEX num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETRAYHIT2D_SPR_ID num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETRAYHIT2D_X num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETRAYHIT2D_Y num_var[3].nref[0].value[ num_var[3].byref_offset ] #define GETRAYHIT2D_NORMAL_X num_var[4].nref[0].value[ num_var[4].byref_offset ] #define GETRAYHIT2D_NORMAL_Y num_var[5].nref[0].value[ num_var[5].byref_offset ] -#define FN_SetSpriteCollisionShape 556 -#define SETSPRITECOLLISIONSHAPE_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define SETSPRITECOLLISIONSHAPE_SHAPE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetSpriteCollisionShape 557 -#define GETSPRITECOLLISIONSHAPE_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpriteRadius 558 +#define FN_SetSpriteShape 558 +#define SETSPRITESHAPE_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETSPRITESHAPE_SHAPE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetSpriteShape 559 +#define GETSPRITESHAPE_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetSpriteRadius 560 #define SETSPRITERADIUS_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITERADIUS_RADIUS num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetSpriteRadius 559 +#define FN_GetSpriteRadius 561 #define GETSPRITERADIUS_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpriteBox 560 +#define FN_SetSpriteBox 562 #define SETSPRITEBOX_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEBOX_W num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETSPRITEBOX_H num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_GetSpriteBoxSize 561 +#define FN_GetSpriteBoxSize 563 #define GETSPRITEBOXSIZE_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITEBOXSIZE_W num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSPRITEBOXSIZE_H num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_SetSpriteChain 562 +#define FN_SetSpriteChain 564 #define SETSPRITECHAIN_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITECHAIN_VX num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETSPRITECHAIN_VY num_var[2].nref[0].value[ num_var[2].byref_offset ] @@ -1646,17 +1650,25 @@ #define SETSPRITECHAIN_PREV_Y num_var[5].nref[0].value[ num_var[5].byref_offset ] #define SETSPRITECHAIN_NEXT_X num_var[6].nref[0].value[ num_var[6].byref_offset ] #define SETSPRITECHAIN_NEXT_Y num_var[7].nref[0].value[ num_var[7].byref_offset ] -#define FN_SetSpriteChainLoop 563 +#define FN_SetSpriteChainLoop 565 #define SETSPRITECHAINLOOP_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITECHAINLOOP_VX num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETSPRITECHAINLOOP_VY num_var[2].nref[0].value[ num_var[2].byref_offset ] #define SETSPRITECHAINLOOP_V_COUNT num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_SetSpritePolygon 564 +#define FN_SetSpritePolygon 566 #define SETSPRITEPOLYGON_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEPOLYGON_VX num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETSPRITEPOLYGON_VY num_var[2].nref[0].value[ num_var[2].byref_offset ] #define SETSPRITEPOLYGON_V_COUNT num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_createDistanceJoint 565 +#define FN_SetSpriteShapeOffset 567 +#define SETSPRITESHAPEOFFSET_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETSPRITESHAPEOFFSET_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETSPRITESHAPEOFFSET_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_GetSpriteShapeOffset 568 +#define GETSPRITESHAPEOFFSET_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETSPRITESHAPEOFFSET_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETSPRITESHAPEOFFSET_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_createDistanceJoint 569 #define CREATEDISTANCEJOINT_SPRITEA num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATEDISTANCEJOINT_SPRITEB num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATEDISTANCEJOINT_AX num_var[2].nref[0].value[ num_var[2].byref_offset ] @@ -1664,22 +1676,22 @@ #define CREATEDISTANCEJOINT_BX num_var[4].nref[0].value[ num_var[4].byref_offset ] #define CREATEDISTANCEJOINT_BY num_var[5].nref[0].value[ num_var[5].byref_offset ] #define CREATEDISTANCEJOINT_COLLIDE_CONNECT num_var[6].nref[0].value[ num_var[6].byref_offset ] -#define FN_createFrictionJoint 566 +#define FN_createFrictionJoint 570 #define CREATEFRICTIONJOINT_SPRITEA num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATEFRICTIONJOINT_SPRITEB num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATEFRICTIONJOINT_X num_var[2].nref[0].value[ num_var[2].byref_offset ] #define CREATEFRICTIONJOINT_Y num_var[3].nref[0].value[ num_var[3].byref_offset ] #define CREATEFRICTIONJOINT_COLLIDE_CONNECT num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_createGearJoint 567 +#define FN_createGearJoint 571 #define CREATEGEARJOINT_JOINTA num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATEGEARJOINT_JOINTB num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATEGEARJOINT_G_RATIO num_var[2].nref[0].value[ num_var[2].byref_offset ] #define CREATEGEARJOINT_COLLIDE_CONNECT num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_createMotorJoint 568 +#define FN_createMotorJoint 572 #define CREATEMOTORJOINT_SPRITEA num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATEMOTORJOINT_SPRITEB num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATEMOTORJOINT_COLLIDE_CONNECT num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_createPrismaticJoint 569 +#define FN_createPrismaticJoint 573 #define CREATEPRISMATICJOINT_SPRITEA num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATEPRISMATICJOINT_SPRITEB num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATEPRISMATICJOINT_AX num_var[2].nref[0].value[ num_var[2].byref_offset ] @@ -1687,7 +1699,7 @@ #define CREATEPRISMATICJOINT_AXISX num_var[4].nref[0].value[ num_var[4].byref_offset ] #define CREATEPRISMATICJOINT_AXISY num_var[5].nref[0].value[ num_var[5].byref_offset ] #define CREATEPRISMATICJOINT_COLLIDE_CONNECT num_var[6].nref[0].value[ num_var[6].byref_offset ] -#define FN_createPulleyJoint 570 +#define FN_createPulleyJoint 574 #define CREATEPULLEYJOINT_SPRITEA num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATEPULLEYJOINT_SPRITEB num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATEPULLEYJOINT_GAX num_var[2].nref[0].value[ num_var[2].byref_offset ] @@ -1700,19 +1712,19 @@ #define CREATEPULLEYJOINT_BY num_var[9].nref[0].value[ num_var[9].byref_offset ] #define CREATEPULLEYJOINT_J_RATIO num_var[10].nref[0].value[ num_var[10].byref_offset ] #define CREATEPULLEYJOINT_COLLIDE_CONNECT num_var[11].nref[0].value[ num_var[11].byref_offset ] -#define FN_createRevoluteJoint 571 +#define FN_createRevoluteJoint 575 #define CREATEREVOLUTEJOINT_SPRITEA num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATEREVOLUTEJOINT_SPRITEB num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATEREVOLUTEJOINT_X num_var[2].nref[0].value[ num_var[2].byref_offset ] #define CREATEREVOLUTEJOINT_Y num_var[3].nref[0].value[ num_var[3].byref_offset ] #define CREATEREVOLUTEJOINT_COLLIDE_CONNECT num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_createWeldJoint 572 +#define FN_createWeldJoint 576 #define CREATEWELDJOINT_SPRITEA num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATEWELDJOINT_SPRITEB num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATEWELDJOINT_X num_var[2].nref[0].value[ num_var[2].byref_offset ] #define CREATEWELDJOINT_Y num_var[3].nref[0].value[ num_var[3].byref_offset ] #define CREATEWELDJOINT_COLLIDE_CONNECT num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_createWheelJoint 573 +#define FN_createWheelJoint 577 #define CREATEWHEELJOINT_SPRITEA num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATEWHEELJOINT_SPRITEB num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATEWHEELJOINT_AX num_var[2].nref[0].value[ num_var[2].byref_offset ] @@ -1720,225 +1732,225 @@ #define CREATEWHEELJOINT_AXISX num_var[4].nref[0].value[ num_var[4].byref_offset ] #define CREATEWHEELJOINT_AXISY num_var[5].nref[0].value[ num_var[5].byref_offset ] #define CREATEWHEELJOINT_COLLIDE_CONNECT num_var[6].nref[0].value[ num_var[6].byref_offset ] -#define FN_getJointWorldAnchorA 574 +#define FN_getJointWorldAnchorA 578 #define GETJOINTWORLDANCHORA_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETJOINTWORLDANCHORA_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETJOINTWORLDANCHORA_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_getJointWorldAnchorB 575 +#define FN_getJointWorldAnchorB 579 #define GETJOINTWORLDANCHORB_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETJOINTWORLDANCHORB_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETJOINTWORLDANCHORB_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_getJointReactionForce 576 +#define FN_getJointReactionForce 580 #define GETJOINTREACTIONFORCE_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETJOINTREACTIONFORCE_INV_DT num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETJOINTREACTIONFORCE_X num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETJOINTREACTIONFORCE_Y num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_getJointReactionTorque 577 +#define FN_getJointReactionTorque 581 #define GETJOINTREACTIONTORQUE_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETJOINTREACTIONTORQUE_INV_DT num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointLocalAnchorA 578 +#define FN_getJointLocalAnchorA 582 #define GETJOINTLOCALANCHORA_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETJOINTLOCALANCHORA_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETJOINTLOCALANCHORA_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_getJointLocalAnchorB 579 +#define FN_getJointLocalAnchorB 583 #define GETJOINTLOCALANCHORB_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETJOINTLOCALANCHORB_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETJOINTLOCALANCHORB_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_setJointLength 580 +#define FN_setJointLength 584 #define SETJOINTLENGTH_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTLENGTH_JLEN num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointLength 581 +#define FN_getJointLength 585 #define GETJOINTLENGTH_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setJointMinLength 582 +#define FN_setJointMinLength 586 #define SETJOINTMINLENGTH_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTMINLENGTH_JLEN num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointMinLength 583 +#define FN_getJointMinLength 587 #define GETJOINTMINLENGTH_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setJointMaxLength 584 +#define FN_setJointMaxLength 588 #define SETJOINTMAXLENGTH_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTMAXLENGTH_JLEN num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointMaxLength 585 +#define FN_getJointMaxLength 589 #define GETJOINTMAXLENGTH_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getJointCurrentLength 586 +#define FN_getJointCurrentLength 590 #define GETJOINTCURRENTLENGTH_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setJointStiffness 587 +#define FN_setJointStiffness 591 #define SETJOINTSTIFFNESS_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTSTIFFNESS_STIFFNESS num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointStiffness 588 +#define FN_getJointStiffness 592 #define GETJOINTSTIFFNESS_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setJointDamping 589 +#define FN_setJointDamping 593 #define SETJOINTDAMPING_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTDAMPING_DAMPING num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointDamping 590 +#define FN_getJointDamping 594 #define GETJOINTDAMPING_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setJointMaxForce 591 +#define FN_setJointMaxForce 595 #define SETJOINTMAXFORCE_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTMAXFORCE_FORCE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointMaxForce 592 +#define FN_getJointMaxForce 596 #define GETJOINTMAXFORCE_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setJointMaxTorque 593 +#define FN_setJointMaxTorque 597 #define SETJOINTMAXTORQUE_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTMAXTORQUE_TORQUE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointMaxTorque 594 +#define FN_getJointMaxTorque 598 #define GETJOINTMAXTORQUE_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setJointCorrectionFactor 595 +#define FN_setJointCorrectionFactor 599 #define SETJOINTCORRECTIONFACTOR_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTCORRECTIONFACTOR_FACTOR num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointCorrectionFactor 596 +#define FN_getJointCorrectionFactor 600 #define GETJOINTCORRECTIONFACTOR_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setJointRatio 597 +#define FN_setJointRatio 601 #define SETJOINTRATIO_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTRATIO_J_RATIO num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointRatio 598 +#define FN_getJointRatio 602 #define GETJOINTRATIO_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setJointLinearOffset 599 +#define FN_setJointLinearOffset 603 #define SETJOINTLINEAROFFSET_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTLINEAROFFSET_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETJOINTLINEAROFFSET_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_getJointLinearOffset 600 +#define FN_getJointLinearOffset 604 #define GETJOINTLINEAROFFSET_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETJOINTLINEAROFFSET_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETJOINTLINEAROFFSET_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_setJointAngularOffset 601 +#define FN_setJointAngularOffset 605 #define SETJOINTANGULAROFFSET_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTANGULAROFFSET_ANGLEOFFSET num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointAngularOffset 602 +#define FN_getJointAngularOffset 606 #define GETJOINTANGULAROFFSET_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getJointLocalAxisA 603 +#define FN_getJointLocalAxisA 607 #define GETJOINTLOCALAXISA_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETJOINTLOCALAXISA_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETJOINTLOCALAXISA_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_getJointReferenceAngle 604 +#define FN_getJointReferenceAngle 608 #define GETJOINTREFERENCEANGLE_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getJointTranslation 605 +#define FN_getJointTranslation 609 #define GETJOINTTRANSLATION_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getJointSpeed 606 +#define FN_getJointSpeed 610 #define GETJOINTSPEED_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_jointIsLimitEnabled 607 +#define FN_jointIsLimitEnabled 611 #define JOINTISLIMITENABLED_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_enableJointLimit 608 +#define FN_enableJointLimit 612 #define ENABLEJOINTLIMIT_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define ENABLEJOINTLIMIT_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointLowerLimit 609 +#define FN_getJointLowerLimit 613 #define GETJOINTLOWERLIMIT_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getJointUpperLimit 610 +#define FN_getJointUpperLimit 614 #define GETJOINTUPPERLIMIT_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setJointLimits 611 +#define FN_setJointLimits 615 #define SETJOINTLIMITS_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTLIMITS_LOWER_LIMIT num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETJOINTLIMITS_UPPER_LIMIT num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_jointMotorIsEnabled 612 +#define FN_jointMotorIsEnabled 616 #define JOINTMOTORISENABLED_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_enableJointMotor 613 +#define FN_enableJointMotor 617 #define ENABLEJOINTMOTOR_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define ENABLEJOINTMOTOR_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setJointMotorSpeed 614 +#define FN_setJointMotorSpeed 618 #define SETJOINTMOTORSPEED_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTMOTORSPEED_SPEED num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointMotorSpeed 615 +#define FN_getJointMotorSpeed 619 #define GETJOINTMOTORSPEED_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setJointMaxMotorForce 616 +#define FN_setJointMaxMotorForce 620 #define SETJOINTMAXMOTORFORCE_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTMAXMOTORFORCE_FORCE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointMaxMotorForce 617 +#define FN_getJointMaxMotorForce 621 #define GETJOINTMAXMOTORFORCE_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getJointMotorForce 618 +#define FN_getJointMotorForce 622 #define GETJOINTMOTORFORCE_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETJOINTMOTORFORCE_INV_DT num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setJointMaxMotorTorque 619 +#define FN_setJointMaxMotorTorque 623 #define SETJOINTMAXMOTORTORQUE_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTMAXMOTORTORQUE_TORQUE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointMaxMotorTorque 620 +#define FN_getJointMaxMotorTorque 624 #define GETJOINTMAXMOTORTORQUE_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getJointMotorTorque 621 +#define FN_getJointMotorTorque 625 #define GETJOINTMOTORTORQUE_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETJOINTMOTORTORQUE_INV_DT num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointGroundAnchorA 622 +#define FN_getJointGroundAnchorA 626 #define GETJOINTGROUNDANCHORA_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETJOINTGROUNDANCHORA_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETJOINTGROUNDANCHORA_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_getJointGroundAnchorB 623 +#define FN_getJointGroundAnchorB 627 #define GETJOINTGROUNDANCHORB_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETJOINTGROUNDANCHORB_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETJOINTGROUNDANCHORB_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_getJointLengthA 624 +#define FN_getJointLengthA 628 #define GETJOINTLENGTHA_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getJointLengthB 625 +#define FN_getJointLengthB 629 #define GETJOINTLENGTHB_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getJointCurrentLengthA 626 +#define FN_getJointCurrentLengthA 630 #define GETJOINTCURRENTLENGTHA_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getJointCurrentLengthB 627 +#define FN_getJointCurrentLengthB 631 #define GETJOINTCURRENTLENGTHB_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setJointOrigin 628 +#define FN_setJointOrigin 632 #define SETJOINTORIGIN_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTORIGIN_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETJOINTORIGIN_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_getJointAngle 629 +#define FN_getJointAngle 633 #define GETJOINTANGLE_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getJointLinearSpeed 630 +#define FN_getJointLinearSpeed 634 #define GETJOINTLINEARSPEED_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getJointAngularSpeed 631 +#define FN_getJointAngularSpeed 635 #define GETJOINTANGULARSPEED_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_DeleteJoint 632 +#define FN_DeleteJoint 636 #define DELETEJOINT_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_JointExists 633 +#define FN_JointExists 637 #define JOINTEXISTS_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_CreateTileSet 634 +#define FN_CreateTileSet 638 #define CREATETILESET_IMG_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATETILESET_TILE_W num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATETILESET_TILE_H num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_SetTileAnimationLength 635 +#define FN_SetTileAnimationLength 639 #define SETTILEANIMATIONLENGTH_TILESET num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETTILEANIMATIONLENGTH_BASE_TILE num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETTILEANIMATIONLENGTH_NUM_FRAMES num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_GetTileAnimationLength 636 +#define FN_GetTileAnimationLength 640 #define GETTILEANIMATIONLENGTH_TILESET num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETTILEANIMATIONLENGTH_BASE_TILE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_SetTileAnimationFrame 637 +#define FN_SetTileAnimationFrame 641 #define SETTILEANIMATIONFRAME_TILESET num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETTILEANIMATIONFRAME_BASE_TILE num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETTILEANIMATIONFRAME_ANIM_FRAME num_var[2].nref[0].value[ num_var[2].byref_offset ] #define SETTILEANIMATIONFRAME_TILE_FRAME num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_GetTileAnimationFrame 638 +#define FN_GetTileAnimationFrame 642 #define GETTILEANIMATIONFRAME_TILESET num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETTILEANIMATIONFRAME_BASE_TILE num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETTILEANIMATIONFRAME_ANIM_FRAME num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_SetTileAnimationSpeed 639 +#define FN_SetTileAnimationSpeed 643 #define SETTILEANIMATIONSPEED_TILESET num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETTILEANIMATIONSPEED_BASE_TILE num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETTILEANIMATIONSPEED_SPEED num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_GetTileAnimationSpeed 640 +#define FN_GetTileAnimationSpeed 644 #define GETTILEANIMATIONSPEED_TILESET num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETTILEANIMATIONSPEED_BASE_TILE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_CreateTileMap 641 +#define FN_CreateTileMap 645 #define CREATETILEMAP_TILESET num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATETILEMAP_WIDTHINTILES num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATETILEMAP_HEIGHTINTILES num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_SetTileMapSize 642 +#define FN_SetTileMapSize 646 #define SETTILEMAPSIZE_TILEMAP num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETTILEMAPSIZE_WIDTHINTILES num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETTILEMAPSIZE_HEIGHTINTILES num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_GetTileMapSize 643 +#define FN_GetTileMapSize 647 #define GETTILEMAPSIZE_TILEMAP num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETTILEMAPSIZE_WIDTHINTILES num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETTILEMAPSIZE_HEIGHTINTILES num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_SetTile 644 +#define FN_SetTile 648 #define SETTILE_TILEMAP num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETTILE_TILE num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETTILE_X num_var[2].nref[0].value[ num_var[2].byref_offset ] #define SETTILE_Y num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_GetTile 645 +#define FN_GetTile 649 #define GETTILE_TILEMAP num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETTILE_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETTILE_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_FillTile 646 +#define FN_FillTile 650 #define FILLTILE_TILEMAP num_var[0].nref[0].value[ num_var[0].byref_offset ] #define FILLTILE_TILE num_var[1].nref[0].value[ num_var[1].byref_offset ] #define FILLTILE_X num_var[2].nref[0].value[ num_var[2].byref_offset ] #define FILLTILE_Y num_var[3].nref[0].value[ num_var[3].byref_offset ] #define FILLTILE_WIDTHINTILES num_var[4].nref[0].value[ num_var[4].byref_offset ] #define FILLTILE_HEIGHTINTILES num_var[5].nref[0].value[ num_var[5].byref_offset ] -#define FN_DrawTileMap 647 +#define FN_DrawTileMap 651 #define DRAWTILEMAP_TILEMAP num_var[0].nref[0].value[ num_var[0].byref_offset ] #define DRAWTILEMAP_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define DRAWTILEMAP_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] @@ -1946,16 +1958,20 @@ #define DRAWTILEMAP_H num_var[4].nref[0].value[ num_var[4].byref_offset ] #define DRAWTILEMAP_OFFSET_X num_var[5].nref[0].value[ num_var[5].byref_offset ] #define DRAWTILEMAP_OFFSET_Y num_var[6].nref[0].value[ num_var[6].byref_offset ] -#define FN_DeleteTileSet 648 +#define FN_DeleteTileSet 652 #define DELETETILESET_TILESET num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_DeleteTileMap 649 +#define FN_DeleteTileMap 653 #define DELETETILEMAP_TILEMAP num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_LoadMesh 650 +#define FN_TileSetExists 654 +#define TILESETEXISTS_TILESET num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_TileMapExists 655 +#define TILEMAPEXISTS_TILEMAP num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_LoadMesh 656 #define LOADMESH_MESH_FILE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_DeleteMesh 651 +#define FN_DeleteMesh 657 #define DELETEMESH_MESH num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_CreateMesh 652 -#define FN_AddMeshBuffer 653 +#define FN_CreateMesh 658 +#define FN_AddMeshBuffer 659 #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 ] @@ -1963,39 +1979,39 @@ #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 654 +#define FN_LoadMeshFromArchive 660 #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_CreatePlaneMesh 655 +#define FN_CreatePlaneMesh 661 #define CREATEPLANEMESH_W num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATEPLANEMESH_H num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATEPLANEMESH_TILECOUNT_W num_var[2].nref[0].value[ num_var[2].byref_offset ] #define CREATEPLANEMESH_TILECOUNT_H num_var[3].nref[0].value[ num_var[3].byref_offset ] #define CREATEPLANEMESH_TXREPEAT_X num_var[4].nref[0].value[ num_var[4].byref_offset ] #define CREATEPLANEMESH_TXREPEAT_Y num_var[5].nref[0].value[ num_var[5].byref_offset ] -#define FN_LoadAN8 656 +#define FN_LoadAN8 662 #define LOADAN8_AN8_FILE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_LoadMeshFromAN8 657 +#define FN_LoadMeshFromAN8 663 #define LOADMESHFROMAN8_AN8_PROJECT num_var[0].nref[0].value[ num_var[0].byref_offset ] #define LOADMESHFROMAN8_AN8_SCENE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_GetNumAN8Scenes 658 +#define FN_GetNumAN8Scenes 664 #define GETNUMAN8SCENES_AN8_PROJECT num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetAN8SceneName$ 659 +#define FN_GetAN8SceneName$ 665 #define GETAN8SCENENAME$_AN8_PROJECT num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETAN8SCENENAME$_SCENE_NUM num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_CreateConeMesh 660 +#define FN_CreateConeMesh 666 #define CREATECONEMESH_RADIUS num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATECONEMESH_CONE_LENGTH num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATECONEMESH_TESSELATION num_var[2].nref[0].value[ num_var[2].byref_offset ] #define CREATECONEMESH_TOP_COLOR num_var[3].nref[0].value[ num_var[3].byref_offset ] #define CREATECONEMESH_BOTTOM_COLOR num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_CreateCylinderMesh 661 +#define FN_CreateCylinderMesh 667 #define CREATECYLINDERMESH_RADIUS num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATECYLINDERMESH_CYLINDER_LENGTH num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATECYLINDERMESH_TESSELATION num_var[2].nref[0].value[ num_var[2].byref_offset ] #define CREATECYLINDERMESH_COLOR num_var[3].nref[0].value[ num_var[3].byref_offset ] #define CREATECYLINDERMESH_CLOSE_TOP num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_CreateVolumeLightMesh 662 +#define FN_CreateVolumeLightMesh 668 #define CREATEVOLUMELIGHTMESH_U num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATEVOLUMELIGHTMESH_V num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATEVOLUMELIGHTMESH_FOOT_COLOR num_var[2].nref[0].value[ num_var[2].byref_offset ] @@ -2004,260 +2020,261 @@ #define CREATEVOLUMELIGHTMESH_DIM_X num_var[5].nref[0].value[ num_var[5].byref_offset ] #define CREATEVOLUMELIGHTMESH_DIM_Y num_var[6].nref[0].value[ num_var[6].byref_offset ] #define CREATEVOLUMELIGHTMESH_DIM_Z num_var[7].nref[0].value[ num_var[7].byref_offset ] -#define FN_DeleteAN8 663 +#define FN_DeleteAN8 669 #define DELETEAN8_AN8_PROJECT num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_CreateAnimatedActor 664 +#define FN_CreateAnimatedActor 670 #define CREATEANIMATEDACTOR_MESH num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_CreateOctreeActor 665 +#define FN_CreateOctreeActor 671 #define CREATEOCTREEACTOR_MESH num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_CreateCubeActor 666 +#define FN_CreateCubeActor 672 #define CREATECUBEACTOR_CUBE_SIZE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_CreateSphereActor 667 +#define FN_CreateSphereActor 673 #define CREATESPHEREACTOR_RADIUS num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_CreateWaterActor 668 +#define FN_CreateWaterActor 674 #define CREATEWATERACTOR_MESH num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATEWATERACTOR_WAVEHEIGHT num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATEWATERACTOR_WAVESPEED num_var[2].nref[0].value[ num_var[2].byref_offset ] #define CREATEWATERACTOR_WAVELENGTH num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_CreateLightActor 669 -#define FN_CreateBillboardActor 670 -#define FN_CreateTerrainActor 671 +#define FN_CreateLightActor 675 +#define FN_CreateBillboardActor 676 +#define FN_CreateTerrainActor 677 #define CREATETERRAINACTOR_HMAP_FILE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_CreateParticleActor 672 +#define FN_CreateParticleActor 678 #define CREATEPARTICLEACTOR_PARTICLE_TYPE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_DeleteActor 673 +#define FN_DeleteActor 679 #define DELETEACTOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetActorTransform 674 +#define FN_GetActorTransform 680 #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 675 +#define FN_SetActorPosition 681 #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_TranslateActorLocal 676 +#define FN_TranslateActorLocal 682 #define TRANSLATEACTORLOCAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define TRANSLATEACTORLOCAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define TRANSLATEACTORLOCAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] #define TRANSLATEACTORLOCAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_TranslateActorWorld 677 +#define FN_TranslateActorWorld 683 #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 678 +#define FN_GetActorPosition 684 #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 679 +#define FN_SetActorScale 685 #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 680 +#define FN_ScaleActor 686 #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 681 +#define FN_GetActorScale 687 #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 682 +#define FN_SetActorRotation 688 #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 683 +#define FN_RotateActor 689 #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 684 +#define FN_GetActorRotation 690 #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 685 +#define FN_SetActorVisible 691 #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 686 +#define FN_ActorIsVisible 692 #define ACTORISVISIBLE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetActorAutoCulling 687 +#define FN_SetActorAutoCulling 693 #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 688 +#define FN_GetActorAutoCulling 694 #define GETACTORAUTOCULLING_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_AddActorShadow 689 +#define FN_AddActorShadow 695 #define ADDACTORSHADOW_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_RemoveActorShadow 690 +#define FN_RemoveActorShadow 696 #define REMOVEACTORSHADOW_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_ActorExists 691 +#define FN_ActorExists 697 #define ACTOREXISTS_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_CreateActorAnimation 692 +#define FN_CreateProjectorActor 698 +#define FN_CreateActorAnimation 699 #define CREATEACTORANIMATION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATEACTORANIMATION_START_FRAME num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATEACTORANIMATION_END_FRAME num_var[2].nref[0].value[ num_var[2].byref_offset ] #define CREATEACTORANIMATION_SPEED num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_SetActorAnimation 693 +#define FN_SetActorAnimation 700 #define SETACTORANIMATION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETACTORANIMATION_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETACTORANIMATION_NUM_LOOPS num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_SetActorAnimationSpeed 694 +#define FN_SetActorAnimationSpeed 701 #define SETACTORANIMATIONSPEED_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETACTORANIMATIONSPEED_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETACTORANIMATIONSPEED_SPEED num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_SetActorAnimationFrames 695 +#define FN_SetActorAnimationFrames 702 #define SETACTORANIMATIONFRAMES_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETACTORANIMATIONFRAMES_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETACTORANIMATIONFRAMES_START_FRAME num_var[2].nref[0].value[ num_var[2].byref_offset ] #define SETACTORANIMATIONFRAMES_END_FRAME num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_GetActorCurrentAnimation 696 +#define FN_GetActorCurrentAnimation 703 #define GETACTORCURRENTANIMATION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetActorAnimationSpeed 697 +#define FN_GetActorAnimationSpeed 704 #define GETACTORANIMATIONSPEED_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETACTORANIMATIONSPEED_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetActorAnimationStartFrame 698 +#define FN_GetActorAnimationStartFrame 705 #define GETACTORANIMATIONSTARTFRAME_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETACTORANIMATIONSTARTFRAME_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetActorAnimationEndFrame 699 +#define FN_GetActorAnimationEndFrame 706 #define GETACTORANIMATIONENDFRAME_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETACTORANIMATIONENDFRAME_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_SetActorFrame 700 +#define FN_SetActorFrame 707 #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_GetActorFrame 701 +#define FN_GetActorFrame 708 #define GETACTORFRAME_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_ActorAnimationIsPlaying 702 +#define FN_ActorAnimationIsPlaying 709 #define ACTORANIMATIONISPLAYING_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_NumActorAnimationLoops 703 +#define FN_NumActorAnimationLoops 710 #define NUMACTORANIMATIONLOOPS_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetActorMD2Animation 704 +#define FN_SetActorMD2Animation 711 #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 SETACTORMD2ANIMATION_NUM_LOOPS num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_SetActorMD2AnimationByName 705 +#define FN_SetActorMD2AnimationByName 712 #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 SETACTORMD2ANIMATIONBYNAME_NUM_LOOPS num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_DeleteActorAnimation 706 +#define FN_DeleteActorAnimation 713 #define DELETEACTORANIMATION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define DELETEACTORANIMATION_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_SetGravity3D 707 +#define FN_SetGravity3D 714 #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 708 +#define FN_GetGravity3D 715 #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 709 -#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 710 -#define GETACTORCOLLISIONSHAPE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetActorSolid 711 +#define FN_SetActorShape 716 +#define SETACTORSHAPE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORSHAPE_SHAPE_TYPE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORSHAPE_MASS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_GetActorShape 717 +#define GETACTORSHAPE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetActorSolid 718 #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 712 +#define FN_ActorIsSolid 719 #define ACTORISSOLID_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetActorCollision 713 +#define FN_GetActorCollision 720 #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 714 +#define FN_SetActorGravity 721 #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 715 +#define FN_GetActorGravity 722 #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 716 +#define FN_setActorDamping 723 #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 717 +#define FN_getActorLinearDamping 724 #define GETACTORLINEARDAMPING_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getActorAngularDamping 718 +#define FN_getActorAngularDamping 725 #define GETACTORANGULARDAMPING_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getActorLinearSleepThreshold 719 +#define FN_getActorLinearSleepThreshold 726 #define GETACTORLINEARSLEEPTHRESHOLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getActorAngularSleepThreshold 720 +#define FN_getActorAngularSleepThreshold 727 #define GETACTORANGULARSLEEPTHRESHOLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_applyActorDamping 721 +#define FN_applyActorDamping 728 #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 722 +#define FN_setActorMassProperties 729 #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 723 +#define FN_getActorLinearFactor 730 #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 724 +#define FN_setActorLinearFactor 731 #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 725 +#define FN_getActorInverseMass 732 #define GETACTORINVERSEMASS_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_integrateActorVelocities 726 +#define FN_integrateActorVelocities 733 #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 727 +#define FN_applyActorCentralForceLocal 734 #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 728 +#define FN_applyActorCentralForceWorld 735 #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 729 +#define FN_getActorTotalForce 736 #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 730 +#define FN_getActorTotalTorque 737 #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 731 +#define FN_getActorInverseInertiaDiagLocal 738 #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 732 +#define FN_setActorInverseInertiaDiagLocal 739 #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 733 +#define FN_setActorSleepThresholds 740 #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 734 +#define FN_applyActorTorqueLocal 741 #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 735 +#define FN_applyActorTorqueWorld 742 #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 736 +#define FN_applyActorForceLocal 743 #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 ] @@ -2265,7 +2282,7 @@ #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 737 +#define FN_applyActorForceWorld 744 #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 ] @@ -2273,27 +2290,27 @@ #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 738 +#define FN_applyActorCentralImpulseLocal 745 #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 739 +#define FN_applyActorCentralImpulseWorld 746 #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 740 +#define FN_applyActorTorqueImpulseLocal 747 #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 741 +#define FN_applyActorTorqueImpulseWorld 748 #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 742 +#define FN_applyActorImpulseLocal 749 #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 ] @@ -2301,7 +2318,7 @@ #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 743 +#define FN_applyActorImpulseWorld 750 #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 ] @@ -2309,52 +2326,52 @@ #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 744 +#define FN_clearActorForces 751 #define CLEARACTORFORCES_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_updateActorInertiaTensor 745 +#define FN_updateActorInertiaTensor 752 #define UPDATEACTORINERTIATENSOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getActorCenter 746 +#define FN_getActorCenter 753 #define GETACTORCENTER_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETACTORCENTER_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETACTORCENTER_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETACTORCENTER_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_getActorRotationQ 747 +#define FN_getActorRotationQ 754 #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_getActorLinearVelocityWorld 748 +#define FN_getActorLinearVelocityWorld 755 #define GETACTORLINEARVELOCITYWORLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETACTORLINEARVELOCITYWORLD_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETACTORLINEARVELOCITYWORLD_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETACTORLINEARVELOCITYWORLD_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_getActorAngularVelocityWorld 749 +#define FN_getActorAngularVelocityWorld 756 #define GETACTORANGULARVELOCITYWORLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETACTORANGULARVELOCITYWORLD_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETACTORANGULARVELOCITYWORLD_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETACTORANGULARVELOCITYWORLD_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_setActorLinearVelocityLocal 750 +#define FN_setActorLinearVelocityLocal 757 #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 751 +#define FN_setActorLinearVelocityWorld 758 #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 752 +#define FN_setActorAngularVelocityLocal 759 #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 753 +#define FN_setActorAngularVelocityWorld 760 #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_getActorVelocityInLocalPoint 754 +#define FN_getActorVelocityInLocalPoint 761 #define GETACTORVELOCITYINLOCALPOINT_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETACTORVELOCITYINLOCALPOINT_REL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETACTORVELOCITYINLOCALPOINT_REL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] @@ -2362,17 +2379,17 @@ #define GETACTORVELOCITYINLOCALPOINT_X num_var[4].nref[0].value[ num_var[4].byref_offset ] #define GETACTORVELOCITYINLOCALPOINT_Y num_var[5].nref[0].value[ num_var[5].byref_offset ] #define GETACTORVELOCITYINLOCALPOINT_Z num_var[6].nref[0].value[ num_var[6].byref_offset ] -#define FN_getActorLinearVelocityLocal 755 +#define FN_getActorLinearVelocityLocal 762 #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 756 +#define FN_getActorAngularVelocityLocal 763 #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 757 +#define FN_getActorAABB 764 #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 ] @@ -2380,7 +2397,7 @@ #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 758 +#define FN_computeActorImpulseDenominator 765 #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 ] @@ -2388,56 +2405,56 @@ #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 759 +#define FN_computeActorAngularImpulseDenominator 766 #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 760 +#define FN_setActorAngularFactor 767 #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 761 +#define FN_getActorAngularFactor 768 #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 762 +#define FN_computeActorGyroImpulseLocal 769 #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 763 +#define FN_computeActorGyroImpulseWorld 770 #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 764 +#define FN_getActorLocalInertia 771 #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_SetActorSleepState 765 +#define FN_SetActorSleepState 772 #define SETACTORSLEEPSTATE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETACTORSLEEPSTATE_STATE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_CastRay3D 766 +#define FN_CastRay3D 773 #define CASTRAY3D_FROM_X num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CASTRAY3D_FROM_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CASTRAY3D_FROM_Z num_var[2].nref[0].value[ num_var[2].byref_offset ] #define CASTRAY3D_TO_X num_var[3].nref[0].value[ num_var[3].byref_offset ] #define CASTRAY3D_TO_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] #define CASTRAY3D_TO_Z num_var[5].nref[0].value[ num_var[5].byref_offset ] -#define FN_CastRay3D_All 767 +#define FN_CastRay3D_All 774 #define CASTRAY3D_ALL_FROM_X num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CASTRAY3D_ALL_FROM_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CASTRAY3D_ALL_FROM_Z num_var[2].nref[0].value[ num_var[2].byref_offset ] #define CASTRAY3D_ALL_TO_X num_var[3].nref[0].value[ num_var[3].byref_offset ] #define CASTRAY3D_ALL_TO_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] #define CASTRAY3D_ALL_TO_Z num_var[5].nref[0].value[ num_var[5].byref_offset ] -#define FN_GetRayHit3D 768 +#define FN_GetRayHit3D 775 #define GETRAYHIT3D_INDEX num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETRAYHIT3D_ACTOR_ID num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETRAYHIT3D_X num_var[2].nref[0].value[ num_var[2].byref_offset ] @@ -2446,12 +2463,12 @@ #define GETRAYHIT3D_NORMAL_X num_var[5].nref[0].value[ num_var[5].byref_offset ] #define GETRAYHIT3D_NORMAL_Y num_var[6].nref[0].value[ num_var[6].byref_offset ] #define GETRAYHIT3D_NORMAL_Z num_var[7].nref[0].value[ num_var[7].byref_offset ] -#define FN_createPointConstraint 769 +#define FN_createPointConstraint 776 #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 770 +#define FN_createPointConstraintEx 777 #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 ] @@ -2460,47 +2477,47 @@ #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_setPointPivotA 771 +#define FN_setPointPivotA 778 #define SETPOINTPIVOTA_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETPOINTPIVOTA_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETPOINTPIVOTA_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] #define SETPOINTPIVOTA_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_setPointPivotB 772 +#define FN_setPointPivotB 779 #define SETPOINTPIVOTB_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETPOINTPIVOTB_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETPOINTPIVOTB_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] #define SETPOINTPIVOTB_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_createHingeConstraint 773 +#define FN_createHingeConstraint 780 #define CREATEHINGECONSTRAINT_ACTORA num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATEHINGECONSTRAINT_FRAMEA num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATEHINGECONSTRAINT_USEREFERENCEFRAMEA num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_createHingeConstraintEx 774 +#define FN_createHingeConstraintEx 781 #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_FRAMEA num_var[2].nref[0].value[ num_var[2].byref_offset ] #define CREATEHINGECONSTRAINTEX_FRAMEB num_var[3].nref[0].value[ num_var[3].byref_offset ] #define CREATEHINGECONSTRAINTEX_USEREFERENCEFRAMEA num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_createSlideConstraint 775 +#define FN_createSlideConstraint 782 #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 776 +#define FN_createSlideConstraintEx 783 #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 777 +#define FN_createConeConstraint 784 #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 778 +#define FN_createConeConstraintEx 785 #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 779 +#define FN_deleteConstraint 786 #define DELETECONSTRAINT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConstraintFrameOffsetA 780 +#define FN_getConstraintFrameOffsetA 787 #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 ] @@ -2508,7 +2525,7 @@ #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 781 +#define FN_getConstraintFrameOffsetB 788 #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 ] @@ -2516,43 +2533,43 @@ #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 782 +#define FN_useConstraintFrameOffset 789 #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 783 +#define FN_getHingeAngle 790 #define GETHINGEANGLE_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getHingeAngleEx 784 +#define FN_getHingeAngleEx 791 #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 785 +#define FN_getConstraintBreakingImpulseThreshold 792 #define GETCONSTRAINTBREAKINGIMPULSETHRESHOLD_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConstraintAFrame 786 +#define FN_getConstraintAFrame 793 #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 787 +#define FN_getConstraintBFrame 794 #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_setHingeAxis 788 +#define FN_setHingeAxis 795 #define SETHINGEAXIS_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETHINGEAXIS_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETHINGEAXIS_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] #define SETHINGEAXIS_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_setConstraintBreakingImpulseThreshold 789 +#define FN_setConstraintBreakingImpulseThreshold 796 #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 790 +#define FN_setConstraintFrames 797 #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 791 +#define FN_setHingeLimit 798 #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 792 +#define FN_setConeLimit 799 #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 ] @@ -2560,290 +2577,290 @@ #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_getHingeLimitBiasFactor 793 +#define FN_getHingeLimitBiasFactor 800 #define GETHINGELIMITBIASFACTOR_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getHingeLimitRelaxationFactor 794 +#define FN_getHingeLimitRelaxationFactor 801 #define GETHINGELIMITRELAXATIONFACTOR_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getHingeLimitSign 795 +#define FN_getHingeLimitSign 802 #define GETHINGELIMITSIGN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getHingeSolveLimit 796 +#define FN_getHingeSolveLimit 803 #define GETHINGESOLVELIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_useHingeReferenceFrameA 797 +#define FN_useHingeReferenceFrameA 804 #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 798 +#define FN_getConstraintAppliedImpulse 805 #define GETCONSTRAINTAPPLIEDIMPULSE_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConstraintFixedActor 799 +#define FN_getConstraintFixedActor 806 #define GETCONSTRAINTFIXEDACTOR_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getPointPivotA 800 +#define FN_getPointPivotA 807 #define GETPOINTPIVOTA_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETPOINTPIVOTA_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETPOINTPIVOTA_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETPOINTPIVOTA_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_getPointPivotB 801 +#define FN_getPointPivotB 808 #define GETPOINTPIVOTB_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETPOINTPIVOTB_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETPOINTPIVOTB_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETPOINTPIVOTB_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_getConstraintActorA 802 +#define FN_getConstraintActorA 809 #define GETCONSTRAINTACTORA_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConstraintActorB 803 +#define FN_getConstraintActorB 810 #define GETCONSTRAINTACTORB_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setConstraintSolverIterations 804 +#define FN_setConstraintSolverIterations 811 #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_getConeBiasFactor 805 +#define FN_getConeBiasFactor 812 #define GETCONEBIASFACTOR_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConeDamping 806 +#define FN_getConeDamping 813 #define GETCONEDAMPING_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConeFixThresh 807 +#define FN_getConeFixThresh 814 #define GETCONEFIXTHRESH_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConeLimit 808 +#define FN_getConeLimit 815 #define GETCONELIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETCONELIMIT_LIMIT_INDEX num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getConstraintLimitSoftness 809 +#define FN_getConstraintLimitSoftness 816 #define GETCONSTRAINTLIMITSOFTNESS_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConstraintSolverIterations 810 +#define FN_getConstraintSolverIterations 817 #define GETCONSTRAINTSOLVERITERATIONS_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConeAnglePoint 811 +#define FN_getConeAnglePoint 818 #define GETCONEANGLEPOINT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETCONEANGLEPOINT_ANGLE num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETCONEANGLEPOINT_C_LEN num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETCONEANGLEPOINT_X num_var[3].nref[0].value[ num_var[3].byref_offset ] #define GETCONEANGLEPOINT_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] #define GETCONEANGLEPOINT_Z num_var[5].nref[0].value[ num_var[5].byref_offset ] -#define FN_getConstraintAngularOnly 812 +#define FN_getConstraintAngularOnly 819 #define GETCONSTRAINTANGULARONLY_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConeSolveSwingLimit 813 +#define FN_getConeSolveSwingLimit 820 #define GETCONESOLVESWINGLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConeSolveTwistLimit 814 +#define FN_getConeSolveTwistLimit 821 #define GETCONESOLVETWISTLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConeSwingSpan1 815 +#define FN_getConeSwingSpan1 822 #define GETCONESWINGSPAN1_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConeSwingSpan2 816 +#define FN_getConeSwingSpan2 823 #define GETCONESWINGSPAN2_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConeTwistAngle 817 +#define FN_getConeTwistAngle 824 #define GETCONETWISTANGLE_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConeTwistLimitSign 818 +#define FN_getConeTwistLimitSign 825 #define GETCONETWISTLIMITSIGN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConeTwistSpan 819 +#define FN_getConeTwistSpan 826 #define GETCONETWISTSPAN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setConstraintAngularOnly 820 +#define FN_setConstraintAngularOnly 827 #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_setConeDamping 821 +#define FN_setConeDamping 828 #define SETCONEDAMPING_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETCONEDAMPING_DAMPING num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setConeFixThresh 822 +#define FN_setConeFixThresh 829 #define SETCONEFIXTHRESH_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETCONEFIXTHRESH_FIXTHRESH num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getSlideAnchorA 823 +#define FN_getSlideAnchorA 830 #define GETSLIDEANCHORA_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSLIDEANCHORA_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSLIDEANCHORA_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETSLIDEANCHORA_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_getSlideAnchorB 824 +#define FN_getSlideAnchorB 831 #define GETSLIDEANCHORB_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSLIDEANCHORB_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSLIDEANCHORB_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETSLIDEANCHORB_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_getSlideAngDepth 825 +#define FN_getSlideAngDepth 832 #define GETSLIDEANGDEPTH_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideAngularPos 826 +#define FN_getSlideAngularPos 833 #define GETSLIDEANGULARPOS_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideDampingDirAng 827 +#define FN_getSlideDampingDirAng 834 #define GETSLIDEDAMPINGDIRANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideDampingDirLin 828 +#define FN_getSlideDampingDirLin 835 #define GETSLIDEDAMPINGDIRLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideDampingLimAng 829 +#define FN_getSlideDampingLimAng 836 #define GETSLIDEDAMPINGLIMANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideDampingLimLin 830 +#define FN_getSlideDampingLimLin 837 #define GETSLIDEDAMPINGLIMLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideDampingOrthoAng 831 +#define FN_getSlideDampingOrthoAng 838 #define GETSLIDEDAMPINGORTHOANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideDampingOrthoLin 832 +#define FN_getSlideDampingOrthoLin 839 #define GETSLIDEDAMPINGORTHOLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideLinearPos 833 +#define FN_getSlideLinearPos 840 #define GETSLIDELINEARPOS_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideLinDepth 834 +#define FN_getSlideLinDepth 841 #define GETSLIDELINDEPTH_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideLowerAngLimit 835 +#define FN_getSlideLowerAngLimit 842 #define GETSLIDELOWERANGLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideLowerLinLimit 836 +#define FN_getSlideLowerLinLimit 843 #define GETSLIDELOWERLINLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideRestitutionDirAng 837 +#define FN_getSlideRestitutionDirAng 844 #define GETSLIDERESTITUTIONDIRANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideRestitutionDirLin 838 +#define FN_getSlideRestitutionDirLin 845 #define GETSLIDERESTITUTIONDIRLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideRestitutionLimAng 839 +#define FN_getSlideRestitutionLimAng 846 #define GETSLIDERESTITUTIONLIMANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideRestitutionLimLin 840 +#define FN_getSlideRestitutionLimLin 847 #define GETSLIDERESTITUTIONLIMLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideRestitutionOrthoAng 841 +#define FN_getSlideRestitutionOrthoAng 848 #define GETSLIDERESTITUTIONORTHOANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideRestitutionOrthoLin 842 +#define FN_getSlideRestitutionOrthoLin 849 #define GETSLIDERESTITUTIONORTHOLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideSoftnessDirAng 843 +#define FN_getSlideSoftnessDirAng 850 #define GETSLIDESOFTNESSDIRANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideSoftnessDirLin 844 +#define FN_getSlideSoftnessDirLin 851 #define GETSLIDESOFTNESSDIRLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideSoftnessLimAng 845 +#define FN_getSlideSoftnessLimAng 852 #define GETSLIDESOFTNESSLIMANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideSoftnessLimLin 846 +#define FN_getSlideSoftnessLimLin 853 #define GETSLIDESOFTNESSLIMLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideSoftnessOrthoAng 847 +#define FN_getSlideSoftnessOrthoAng 854 #define GETSLIDESOFTNESSORTHOANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideSoftnessOrthoLin 848 +#define FN_getSlideSoftnessOrthoLin 855 #define GETSLIDESOFTNESSORTHOLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideSolveAngLimit 849 +#define FN_getSlideSolveAngLimit 856 #define GETSLIDESOLVEANGLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideSolveLinLimit 850 +#define FN_getSlideSolveLinLimit 857 #define GETSLIDESOLVELINLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideUpperAngLimit 851 +#define FN_getSlideUpperAngLimit 858 #define GETSLIDEUPPERANGLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideUpperLinLimit 852 +#define FN_getSlideUpperLinLimit 859 #define GETSLIDEUPPERLINLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideUseFrameOffset 853 +#define FN_getSlideUseFrameOffset 860 #define GETSLIDEUSEFRAMEOFFSET_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setSlideDampingDirAng 854 +#define FN_setSlideDampingDirAng 861 #define SETSLIDEDAMPINGDIRANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDEDAMPINGDIRANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideDampingDirLin 855 +#define FN_setSlideDampingDirLin 862 #define SETSLIDEDAMPINGDIRLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDEDAMPINGDIRLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideDampingLimAng 856 +#define FN_setSlideDampingLimAng 863 #define SETSLIDEDAMPINGLIMANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDEDAMPINGLIMANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideDampingLimLin 857 +#define FN_setSlideDampingLimLin 864 #define SETSLIDEDAMPINGLIMLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDEDAMPINGLIMLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideDampingOrthoAng 858 +#define FN_setSlideDampingOrthoAng 865 #define SETSLIDEDAMPINGORTHOANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDEDAMPINGORTHOANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideDampingOrthoLin 859 +#define FN_setSlideDampingOrthoLin 866 #define SETSLIDEDAMPINGORTHOLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDEDAMPINGORTHOLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideLowerAngLimit 860 +#define FN_setSlideLowerAngLimit 867 #define SETSLIDELOWERANGLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDELOWERANGLIMIT_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideLowerLinLimit 861 +#define FN_setSlideLowerLinLimit 868 #define SETSLIDELOWERLINLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDELOWERLINLIMIT_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideRestitutionDirAng 862 +#define FN_setSlideRestitutionDirAng 869 #define SETSLIDERESTITUTIONDIRANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDERESTITUTIONDIRANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideRestitutionDirLin 863 +#define FN_setSlideRestitutionDirLin 870 #define SETSLIDERESTITUTIONDIRLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDERESTITUTIONDIRLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideRestitutionLimAng 864 +#define FN_setSlideRestitutionLimAng 871 #define SETSLIDERESTITUTIONLIMANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDERESTITUTIONLIMANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideRestitutionLimLin 865 +#define FN_setSlideRestitutionLimLin 872 #define SETSLIDERESTITUTIONLIMLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDERESTITUTIONLIMLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideRestitutionOrthoAng 866 +#define FN_setSlideRestitutionOrthoAng 873 #define SETSLIDERESTITUTIONORTHOANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDERESTITUTIONORTHOANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideRestitutionOrthoLin 867 +#define FN_setSlideRestitutionOrthoLin 874 #define SETSLIDERESTITUTIONORTHOLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDERESTITUTIONORTHOLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideSoftnessDirAng 868 +#define FN_setSlideSoftnessDirAng 875 #define SETSLIDESOFTNESSDIRANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDESOFTNESSDIRANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideSoftnessDirLin 869 +#define FN_setSlideSoftnessDirLin 876 #define SETSLIDESOFTNESSDIRLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDESOFTNESSDIRLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideSoftnessLimAng 870 +#define FN_setSlideSoftnessLimAng 877 #define SETSLIDESOFTNESSLIMANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDESOFTNESSLIMANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideSoftnessLimLin 871 +#define FN_setSlideSoftnessLimLin 878 #define SETSLIDESOFTNESSLIMLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDESOFTNESSLIMLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideSoftnessOrthoAng 872 +#define FN_setSlideSoftnessOrthoAng 879 #define SETSLIDESOFTNESSORTHOANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDESOFTNESSORTHOANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideSoftnessOrthoLin 873 +#define FN_setSlideSoftnessOrthoLin 880 #define SETSLIDESOFTNESSORTHOLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDESOFTNESSORTHOLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideUpperAngLimit 874 +#define FN_setSlideUpperAngLimit 881 #define SETSLIDEUPPERANGLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDEUPPERANGLIMIT_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideUpperLinLimit 875 +#define FN_setSlideUpperLinLimit 882 #define SETSLIDEUPPERLINLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDEUPPERLINLIMIT_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_ConstraintExists 876 +#define FN_ConstraintExists 883 #define CONSTRAINTEXISTS_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetCameraPosition 877 +#define FN_SetCameraPosition 884 #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 878 +#define FN_GetCameraPosition 885 #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 879 +#define FN_TranslateCamera 886 #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 880 +#define FN_SetCameraRotation 887 #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 881 +#define FN_GetCameraRotation 888 #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 882 +#define FN_RotateCamera 889 #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 883 +#define FN_SetCameraFOV 890 #define SETCAMERAFOV_FOV num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetCameraFOV 884 -#define FN_SetCameraAspectRatio 885 +#define FN_GetCameraFOV 891 +#define FN_SetCameraAspectRatio 892 #define SETCAMERAASPECTRATIO_ASPECT num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetCameraAspectRatio 886 -#define FN_SetCameraFarValue 887 +#define FN_GetCameraAspectRatio 893 +#define FN_SetCameraFarValue 894 #define SETCAMERAFARVALUE_ZF num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetCameraFarValue 888 -#define FN_SetCameraNearValue 889 +#define FN_GetCameraFarValue 895 +#define FN_SetCameraNearValue 896 #define SETCAMERANEARVALUE_ZN num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetCameraNearValue 890 -#define FN_SetProjectionMatrix 891 +#define FN_GetCameraNearValue 897 +#define FN_SetProjectionMatrix 898 #define SETPROJECTIONMATRIX_MATA num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETPROJECTIONMATRIX_PROJECTION_TYPE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetProjectionMatrix 892 +#define FN_GetProjectionMatrix 899 #define GETPROJECTIONMATRIX_MATA num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetWorldToViewportPosition 893 +#define FN_GetWorldToViewportPosition 900 #define GETWORLDTOVIEWPORTPOSITION_X num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETWORLDTOVIEWPORTPOSITION_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETWORLDTOVIEWPORTPOSITION_Z num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETWORLDTOVIEWPORTPOSITION_VX num_var[3].nref[0].value[ num_var[3].byref_offset ] #define GETWORLDTOVIEWPORTPOSITION_VY num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_AddSceneSkyBox 894 +#define FN_AddSceneSkyBox 901 #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 895 +#define FN_AddSceneSkyDome 902 #define ADDSCENESKYDOME_IMG num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_AddSceneSkyDomeEx 896 +#define FN_AddSceneSkyDomeEx 903 #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 897 -#define FN_SetWorld3DMaxSubSteps 898 +#define FN_RemoveSceneSky 904 +#define FN_SetWorld3DMaxSubSteps 905 #define SETWORLD3DMAXSUBSTEPS_STEPS num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetWorld3DTimeStep 899 +#define FN_SetWorld3DTimeStep 906 #define SETWORLD3DTIMESTEP_TS num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetWorld3DMaxSubSteps 900 -#define FN_GetWorld3DTimeStep 901 -#define FN_SetSceneFog 902 +#define FN_GetWorld3DMaxSubSteps 907 +#define FN_GetWorld3DTimeStep 908 +#define FN_SetSceneFog 909 #define SETSCENEFOG_COLOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSCENEFOG_FOG_TYPE num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETSCENEFOG_START_VAL num_var[2].nref[0].value[ num_var[2].byref_offset ] @@ -2851,7 +2868,7 @@ #define SETSCENEFOG_DENSITY num_var[4].nref[0].value[ num_var[4].byref_offset ] #define SETSCENEFOG_PIXELFOG num_var[5].nref[0].value[ num_var[5].byref_offset ] #define SETSCENEFOG_RANGEFOG num_var[6].nref[0].value[ num_var[6].byref_offset ] -#define FN_GetSceneFog 903 +#define FN_GetSceneFog 910 #define GETSCENEFOG_COLOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSCENEFOG_FOG_TYPE num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSCENEFOG_START_VAL num_var[2].nref[0].value[ num_var[2].byref_offset ] @@ -2859,111 +2876,117 @@ #define GETSCENEFOG_DENSITY num_var[4].nref[0].value[ num_var[4].byref_offset ] #define GETSCENEFOG_PIXELFOG num_var[5].nref[0].value[ num_var[5].byref_offset ] #define GETSCENEFOG_RANGEFOG num_var[6].nref[0].value[ num_var[6].byref_offset ] -#define FN_ClearScene 904 -#define FN_startParticleEmitter 905 +#define FN_ClearScene 911 +#define FN_SetSceneShadowColor 912 +#define SETSCENESHADOWCOLOR_COLOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetSceneShadowColor 913 +#define FN_SetSceneAmbientColor 914 +#define SETSCENEAMBIENTCOLOR_COLOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetSceneAmbientColor 915 +#define FN_startParticleEmitter 916 #define STARTPARTICLEEMITTER_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_stopParticleEmitter 906 +#define FN_stopParticleEmitter 917 #define STOPPARTICLEEMITTER_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setParticleDirection 907 +#define FN_setParticleDirection 918 #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 908 +#define FN_getParticleDirection 919 #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 909 +#define FN_useParticleEveryMeshVertex 920 #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 910 +#define FN_particleIsUsingEveryMeshVertex 921 #define PARTICLEISUSINGEVERYMESHVERTEX_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setParticleNormalDirectionMod 911 +#define FN_setParticleNormalDirectionMod 922 #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 912 +#define FN_getParticleNormalDirectionMod 923 #define GETPARTICLENORMALDIRECTIONMOD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_useParticleNormalDirection 913 +#define FN_useParticleNormalDirection 924 #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 914 +#define FN_particleIsUsingNormalDirection 925 #define PARTICLEISUSINGNORMALDIRECTION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setParticleMesh 915 +#define FN_setParticleMesh 926 #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_setMinParticlesPerSecond 916 +#define FN_setMinParticlesPerSecond 927 #define SETMINPARTICLESPERSECOND_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETMINPARTICLESPERSECOND_MINPARTICLESPERSECOND num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getMinParticlesPerSecond 917 +#define FN_getMinParticlesPerSecond 928 #define GETMINPARTICLESPERSECOND_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaxParticlesPerSecond 918 +#define FN_setMaxParticlesPerSecond 929 #define SETMAXPARTICLESPERSECOND_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETMAXPARTICLESPERSECOND_MAXPARTICLESPERSECOND num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getMaxParticlesPerSecond 919 +#define FN_getMaxParticlesPerSecond 930 #define GETMAXPARTICLESPERSECOND_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setParticleMinStartColor 920 +#define FN_setParticleMinStartColor 931 #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 921 +#define FN_getParticleMinStartColor 932 #define GETPARTICLEMINSTARTCOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setParticleMaxStartColor 922 +#define FN_setParticleMaxStartColor 933 #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 923 +#define FN_getParticleMaxStartColor 934 #define GETPARTICLEMAXSTARTCOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setParticleMinLife 924 +#define FN_setParticleMinLife 935 #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 925 +#define FN_getParticleMinLife 936 #define GETPARTICLEMINLIFE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setParticleMaxLife 926 +#define FN_setParticleMaxLife 937 #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 927 +#define FN_getParticleMaxLife 938 #define GETPARTICLEMAXLIFE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setParticleMaxAngle 928 +#define FN_setParticleMaxAngle 939 #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 929 +#define FN_getParticleMaxAngle 940 #define GETPARTICLEMAXANGLE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setParticleMinStartSize 930 +#define FN_setParticleMinStartSize 941 #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 931 +#define FN_getParticleMinStartSize 942 #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 932 +#define FN_setParticleMaxStartSize 943 #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 933 +#define FN_getParticleMaxStartSize 944 #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 934 +#define FN_setParticleCenter 945 #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 935 +#define FN_getParticleCenter 946 #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 936 +#define FN_setParticleRadius 947 #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 937 +#define FN_getParticleRadius 948 #define GETPARTICLERADIUS_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setParticleRingThickness 938 +#define FN_setParticleRingThickness 949 #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 939 +#define FN_getParticleRingThickness 950 #define GETPARTICLERINGTHICKNESS_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setParticleBox 940 +#define FN_setParticleBox 951 #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 ] @@ -2971,7 +2994,7 @@ #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 941 +#define FN_getParticleBox 952 #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 ] @@ -2979,84 +3002,84 @@ #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 942 +#define FN_setParticleNormal 953 #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 943 +#define FN_getParticleNormal 954 #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 944 +#define FN_setParticleLength 955 #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 945 +#define FN_getParticleLength 956 #define GETPARTICLELENGTH_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_useParticleOutlineOnly 946 +#define FN_useParticleOutlineOnly 957 #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 947 +#define FN_particleIsUsingOutlineOnly 958 #define PARTICLEISUSINGOUTLINEONLY_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getParticleType 948 +#define FN_getParticleType 959 #define GETPARTICLETYPE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_lightIsCastingShadow 949 +#define FN_lightIsCastingShadow 960 #define LIGHTISCASTINGSHADOW_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getLightType 950 +#define FN_getLightType 961 #define GETLIGHTTYPE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getLightRadius 951 +#define FN_getLightRadius 962 #define GETLIGHTRADIUS_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setLightType 952 +#define FN_setLightType 963 #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 953 +#define FN_setLightRadius 964 #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 954 +#define FN_setLightShadowCast 965 #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 955 +#define FN_SetLightAmbientColor 966 #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 956 +#define FN_GetLightAmbientColor 967 #define GETLIGHTAMBIENTCOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetLightAttenuation 957 +#define FN_SetLightAttenuation 968 #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 958 +#define FN_GetLightAttenuation 969 #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 959 +#define FN_SetLightDiffuseColor 970 #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 960 +#define FN_GetLightDiffuseColor 971 #define GETLIGHTDIFFUSECOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetLightFalloff 961 +#define FN_SetLightFalloff 972 #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 962 +#define FN_GetLightFalloff 973 #define GETLIGHTFALLOFF_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetLightInnerCone 963 +#define FN_SetLightInnerCone 974 #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 964 +#define FN_GetLightInnerCone 975 #define GETLIGHTINNERCONE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetLightOuterCone 965 +#define FN_SetLightOuterCone 976 #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 966 +#define FN_GetLightOuterCone 977 #define GETLIGHTOUTERCONE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetLightSpecularColor 967 +#define FN_SetLightSpecularColor 978 #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 968 +#define FN_GetLightSpecularColor 979 #define GETLIGHTSPECULARCOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetTerrainPatchAABB 969 +#define FN_GetTerrainPatchAABB 980 #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 ] @@ -3066,191 +3089,225 @@ #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 970 +#define FN_GetTerrainPatchLOD 981 #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 971 +#define FN_GetTerrainHeight 982 #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 972 +#define FN_GetTerrainCenter 983 #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 973 +#define FN_SetTerrainLODDistance 984 #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 974 +#define FN_ScaleTerrainTexture 985 #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 975 +#define FN_SetTerrainCameraMovementDelta 986 #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 976 +#define FN_SetTerrainCameraRotationDelta 987 #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 977 +#define FN_SetTerrainPatchLOD 988 #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_createMaterial 978 -#define FN_deleteMaterial 979 +#define FN_SetProjectorTarget 989 +#define SETPROJECTORTARGET_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPROJECTORTARGET_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETPROJECTORTARGET_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETPROJECTORTARGET_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_GetProjectorTarget 990 +#define GETPROJECTORTARGET_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETPROJECTORTARGET_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETPROJECTORTARGET_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETPROJECTORTARGET_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_SetProjectorFOV 991 +#define SETPROJECTORFOV_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPROJECTORFOV_FOV num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetProjectorFOV 992 +#define GETPROJECTORFOV_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_createMaterial 993 +#define FN_deleteMaterial 994 #define DELETEMATERIAL_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setActorMaterial 980 +#define FN_setActorMaterial 995 #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 981 +#define FN_getActorMaterial 996 #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 982 +#define FN_copyActorMaterial 997 #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 983 +#define FN_copyMaterial 998 #define COPYMATERIAL_SMATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialTextureCanvas 984 +#define FN_setMaterialTextureCanvas 999 #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 985 +#define FN_setMaterialAmbientColor 1000 #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 986 +#define FN_getMaterialAmbientColor 1001 #define GETMATERIALAMBIENTCOLOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialAntiAliasing 987 +#define FN_setMaterialAntiAliasing 1002 #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 988 +#define FN_getMaterialAntiAliasing 1003 #define GETMATERIALANTIALIASING_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialBackfaceCulling 989 +#define FN_setMaterialBackfaceCulling 1004 #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 990 +#define FN_getMaterialBackfaceCulling 1005 #define GETMATERIALBACKFACECULLING_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialBlendFactor 991 +#define FN_setMaterialBlendFactor 1006 #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 992 +#define FN_getMaterialBlendFactor 1007 #define GETMATERIALBLENDFACTOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialBlendMode 993 +#define FN_setMaterialBlendMode 1008 #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 994 +#define FN_getMaterialBlendMode 1009 #define GETMATERIALBLENDMODE_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialColorMask 995 +#define FN_setMaterialColorMask 1010 #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 996 +#define FN_getMaterialColorMask 1011 #define GETMATERIALCOLORMASK_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialColorMode 997 +#define FN_setMaterialColorMode 1012 #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 998 +#define FN_getMaterialColorMode 1013 #define GETMATERIALCOLORMODE_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialDiffuseColor 999 +#define FN_setMaterialDiffuseColor 1014 #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 1000 +#define FN_getMaterialDiffuseColor 1015 #define GETMATERIALDIFFUSECOLOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialEmissiveColor 1001 +#define FN_setMaterialEmissiveColor 1016 #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 1002 +#define FN_getMaterialEmissiveColor 1017 #define GETMATERIALEMISSIVECOLOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialFog 1003 +#define FN_setMaterialFog 1018 #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 1004 +#define FN_getMaterialFog 1019 #define GETMATERIALFOG_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialFrontfaceCulling 1005 +#define FN_setMaterialFrontfaceCulling 1020 #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 1006 +#define FN_getMaterialFrontfaceCulling 1021 #define GETMATERIALFRONTFACECULLING_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialGouraudShading 1007 +#define FN_setMaterialGouraudShading 1022 #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 1008 +#define FN_materialIsGouraudShaded 1023 #define MATERIALISGOURAUDSHADED_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_materialIsAplhaBlend 1009 +#define FN_materialIsAplhaBlend 1024 #define MATERIALISAPLHABLEND_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_materialIsTransparent 1010 +#define FN_materialIsTransparent 1025 #define MATERIALISTRANSPARENT_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialLighting 1011 +#define FN_setMaterialLighting 1026 #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 1012 +#define FN_materialIsLit 1027 #define MATERIALISLIT_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialType 1013 +#define FN_setMaterialType 1028 #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 1014 +#define FN_getMaterialType 1029 #define GETMATERIALTYPE_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialNormalize 1015 +#define FN_setMaterialNormalize 1030 #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 1016 +#define FN_materialIsNormalized 1031 #define MATERIALISNORMALIZED_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialPointCloud 1017 +#define FN_setMaterialPointCloud 1032 #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 1018 +#define FN_materialIsPointCloud 1033 #define MATERIALISPOINTCLOUD_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialFlag 1019 +#define FN_setMaterialFlag 1034 #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 1020 +#define FN_getMaterialFlag 1035 #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 1021 +#define FN_setMaterialTexture 1036 #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 1022 +#define FN_setMaterialShininess 1037 #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 1023 +#define FN_getMaterialShininess 1038 #define GETMATERIALSHININESS_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialSpecularColor 1024 +#define FN_setMaterialSpecularColor 1039 #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 1025 +#define FN_getMaterialSpecularColor 1040 #define GETMATERIALSPECULARCOLOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialThickness 1026 +#define FN_setMaterialThickness 1041 #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 1027 +#define FN_getMaterialThickness 1042 #define GETMATERIALTHICKNESS_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialWireframe 1028 +#define FN_setMaterialWireframe 1043 #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 1029 +#define FN_materialIsWireframe 1044 #define MATERIALISWIREFRAME_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setActorTexture 1030 +#define FN_setActorTexture 1045 #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 1031 +#define FN_getActorMaterialCount 1046 #define GETACTORMATERIALCOUNT_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setActorMaterialFlag 1032 +#define FN_setActorMaterialFlag 1047 #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 1033 +#define FN_getActorMaterialFlag 1048 #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 1034 +#define FN_setActorMaterialType 1049 #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 1035 +#define FN_getActorMaterialType 1050 #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 ] -#define FN_MaterialExists 1036 +#define FN_MaterialExists 1051 #define MATERIALEXISTS_MATERIAL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_NumMaterialConstants 1052 +#define NUMMATERIALCONSTANTS_MATERIAL_TYPE num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetMaterialConstantName$ 1053 +#define GETMATERIALCONSTANTNAME$_MATERIAL_TYPE num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETMATERIALCONSTANTNAME$_INDEX num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetMaterialConstant 1054 +#define SETMATERIALCONSTANT_MATERIAL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALCONSTANT_M_CONSTANT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define SETMATERIALCONSTANT_N1 num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETMATERIALCONSTANT_N2 num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETMATERIALCONSTANT_N3 num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define SETMATERIALCONSTANT_N4 num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_GetMaterialConstant 1055 +#define GETMATERIALCONSTANT_MATERIAL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETMATERIALCONSTANT_M_CONSTANT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define GETMATERIALCONSTANT_N1 num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETMATERIALCONSTANT_N2 num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETMATERIALCONSTANT_N3 num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETMATERIALCONSTANT_N4 num_var[4].nref[0].value[ num_var[4].byref_offset ] diff --git a/rcbasic_build/rcbasic_dev3.txt b/rcbasic_build/rcbasic_dev3.txt index 072a50e..a59bfe5 100644 --- a/rcbasic_build/rcbasic_dev3.txt +++ b/rcbasic_build/rcbasic_dev3.txt @@ -769,6 +769,9 @@ case FN_SetAntiAliasMode: //Sub Procedure case FN_GetAntiAliasMode: //Number Function rc_push_num(rc_getAntiAliasMode( )); break; +case FN_ConvertToNormalMap: //Sub Procedure + rc_convertToNormalMap( CONVERTTONORMALMAP_IMG_ID, CONVERTTONORMALMAP_AMP ); + break; case FN_InKey: //Number Function rc_push_num(rc_inKey( )); break; @@ -1208,6 +1211,9 @@ case FN_NumCPUs: //Number Function case FN_SystemRam: //Number Function rc_push_num(rc_intern_systemRam( )); break; +case FN_GetGPUInfo$: //String Function + rc_push_str(rc_getGPUInfo( )); + break; case FN_DimMatrix: //Number Function rc_push_num(rc_dimMatrix( DIMMATRIX_M_ROWS, DIMMATRIX_M_COLS )); break; @@ -1694,11 +1700,11 @@ case FN_CastRay2D_All: //Number Function case FN_GetRayHit2D: //Sub Procedure rc_getRayHit2D( GETRAYHIT2D_INDEX, &GETRAYHIT2D_SPR_ID, &GETRAYHIT2D_X, &GETRAYHIT2D_Y, &GETRAYHIT2D_NORMAL_X, &GETRAYHIT2D_NORMAL_Y ); break; -case FN_SetSpriteCollisionShape: //Sub Procedure - rc_setSpriteCollisionShape( SETSPRITECOLLISIONSHAPE_SPR_ID, SETSPRITECOLLISIONSHAPE_SHAPE ); +case FN_SetSpriteShape: //Sub Procedure + rc_setSpriteCollisionShape( SETSPRITESHAPE_SPR_ID, SETSPRITESHAPE_SHAPE ); break; -case FN_GetSpriteCollisionShape: //Number Function - rc_push_num(rc_getSpriteCollisionShape( GETSPRITECOLLISIONSHAPE_SPR_ID )); +case FN_GetSpriteShape: //Number Function + rc_push_num(rc_getSpriteCollisionShape( GETSPRITESHAPE_SPR_ID )); break; case FN_SetSpriteRadius: //Sub Procedure rc_setSpriteRadius( SETSPRITERADIUS_SPR_ID, SETSPRITERADIUS_RADIUS ); @@ -1721,6 +1727,12 @@ case FN_SetSpriteChainLoop: //Sub Procedure case FN_SetSpritePolygon: //Sub Procedure rc_setSpritePolygon( SETSPRITEPOLYGON_SPR_ID, &SETSPRITEPOLYGON_VX, &SETSPRITEPOLYGON_VY, SETSPRITEPOLYGON_V_COUNT ); break; +case FN_SetSpriteShapeOffset: //Sub Procedure + rc_setSpriteShapeOffset( SETSPRITESHAPEOFFSET_SPR_ID, SETSPRITESHAPEOFFSET_X, SETSPRITESHAPEOFFSET_Y ); + break; +case FN_GetSpriteShapeOffset: //Sub Procedure + rc_getSpriteShapeOffset( GETSPRITESHAPEOFFSET_SPR_ID, &GETSPRITESHAPEOFFSET_X, &GETSPRITESHAPEOFFSET_Y ); + break; case FN_createDistanceJoint: //Number Function rc_push_num(rc_createDistanceJoint( CREATEDISTANCEJOINT_SPRITEA, CREATEDISTANCEJOINT_SPRITEB, CREATEDISTANCEJOINT_AX, CREATEDISTANCEJOINT_AY, CREATEDISTANCEJOINT_BX, CREATEDISTANCEJOINT_BY, CREATEDISTANCEJOINT_COLLIDE_CONNECT )); break; @@ -1976,6 +1988,12 @@ case FN_DeleteTileSet: //Sub Procedure case FN_DeleteTileMap: //Sub Procedure rc_deleteTileMap( DELETETILEMAP_TILEMAP ); break; +case FN_TileSetExists: //Number Function + rc_push_num(rc_tileSetExists( TILESETEXISTS_TILESET )); + break; +case FN_TileMapExists: //Number Function + rc_push_num(rc_tileMapExists( TILEMAPEXISTS_TILEMAP )); + break; case FN_LoadMesh: //Number Function rc_push_num(rc_loadMesh( LOADMESH_MESH_FILE$ )); break; @@ -2102,6 +2120,9 @@ case FN_RemoveActorShadow: //Sub Procedure case FN_ActorExists: //Number Function rc_push_num(rc_actorExists( ACTOREXISTS_ACTOR )); break; +case FN_CreateProjectorActor: //Number Function + rc_push_num(rc_createProjectorActor( )); + break; case FN_CreateActorAnimation: //Number Function rc_push_num(rc_createActorAnimation( CREATEACTORANIMATION_ACTOR, CREATEACTORANIMATION_START_FRAME, CREATEACTORANIMATION_END_FRAME, CREATEACTORANIMATION_SPEED )); break; @@ -2153,11 +2174,11 @@ case FN_SetGravity3D: //Sub Procedure 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 ); +case FN_SetActorShape: //Sub Procedure + rc_setActorCollisionShape( SETACTORSHAPE_ACTOR, SETACTORSHAPE_SHAPE_TYPE, SETACTORSHAPE_MASS ); break; -case FN_GetActorCollisionShape: //Number Function - rc_push_num(rc_getActorCollisionShape( GETACTORCOLLISIONSHAPE_ACTOR )); +case FN_GetActorShape: //Number Function + rc_push_num(rc_getActorCollisionShape( GETACTORSHAPE_ACTOR )); break; case FN_SetActorSolid: //Sub Procedure rc_setActorSolid( SETACTORSOLID_ACTOR, SETACTORSOLID_FLAG ); @@ -2741,6 +2762,18 @@ case FN_GetSceneFog: //Sub Procedure case FN_ClearScene: //Sub Procedure rc_clearScene( ); break; +case FN_SetSceneShadowColor: //Sub Procedure + rc_setSceneShadowColor( SETSCENESHADOWCOLOR_COLOR ); + break; +case FN_GetSceneShadowColor: //Number Function + rc_push_num(rc_getSceneShadowColor( )); + break; +case FN_SetSceneAmbientColor: //Sub Procedure + rc_setSceneAmbientColor( SETSCENEAMBIENTCOLOR_COLOR ); + break; +case FN_GetSceneAmbientColor: //Number Function + rc_push_num(rc_getSceneAmbientColor( )); + break; case FN_startParticleEmitter: //Sub Procedure rc_startParticleEmitter( STARTPARTICLEEMITTER_ACTOR ); break; @@ -2960,6 +2993,18 @@ case FN_SetTerrainCameraRotationDelta: //Sub Procedure case FN_SetTerrainPatchLOD: //Sub Procedure rc_setTerrainPatchLOD( SETTERRAINPATCHLOD_ACTOR, SETTERRAINPATCHLOD_PATCHX, SETTERRAINPATCHLOD_PATCHZ, SETTERRAINPATCHLOD_LOD ); break; +case FN_SetProjectorTarget: //Sub Procedure + rc_setProjectorTarget( SETPROJECTORTARGET_ACTOR, SETPROJECTORTARGET_X, SETPROJECTORTARGET_Y, SETPROJECTORTARGET_Z ); + break; +case FN_GetProjectorTarget: //Sub Procedure + rc_getProjectorTarget( GETPROJECTORTARGET_ACTOR, &GETPROJECTORTARGET_X, &GETPROJECTORTARGET_Y, &GETPROJECTORTARGET_Z ); + break; +case FN_SetProjectorFOV: //Sub Procedure + rc_setProjectorFOV( SETPROJECTORFOV_ACTOR, SETPROJECTORFOV_FOV ); + break; +case FN_GetProjectorFOV: //Number Function + rc_push_num(rc_getProjectorFOV( GETPROJECTORFOV_ACTOR )); + break; case FN_createMaterial: //Number Function rc_push_num(rc_createMaterial( )); break; @@ -3137,3 +3182,15 @@ case FN_getActorMaterialType: //Number Function case FN_MaterialExists: //Number Function rc_push_num(rc_materialExists( MATERIALEXISTS_MATERIAL )); break; +case FN_NumMaterialConstants: //Number Function + rc_push_num(rc_numMaterialConstants( NUMMATERIALCONSTANTS_MATERIAL_TYPE )); + break; +case FN_GetMaterialConstantName$: //String Function + rc_push_str(rc_getMaterialConstantName( GETMATERIALCONSTANTNAME$_MATERIAL_TYPE, GETMATERIALCONSTANTNAME$_INDEX )); + break; +case FN_SetMaterialConstant: //Sub Procedure + rc_setMaterialConstant( SETMATERIALCONSTANT_MATERIAL, SETMATERIALCONSTANT_M_CONSTANT$, SETMATERIALCONSTANT_N1, SETMATERIALCONSTANT_N2, SETMATERIALCONSTANT_N3, SETMATERIALCONSTANT_N4 ); + break; +case FN_GetMaterialConstant: //Sub Procedure + rc_getMaterialConstant( GETMATERIALCONSTANT_MATERIAL, GETMATERIALCONSTANT_M_CONSTANT$, &GETMATERIALCONSTANT_N1, &GETMATERIALCONSTANT_N2, &GETMATERIALCONSTANT_N3, &GETMATERIALCONSTANT_N4 ); + break; diff --git a/rcbasic_build/tokenizer.h b/rcbasic_build/tokenizer.h index 9a7a2e6..8826740 100755 --- a/rcbasic_build/tokenizer.h +++ b/rcbasic_build/tokenizer.h @@ -1112,8 +1112,30 @@ string rc_keywordToken(string sline) return "22"; else if(sline.compare("MATERIAL_TYPE_ONETEXTURE_BLEND")==0) return "23"; - else if(sline.compare("MATERIAL_TYPE_FORCE_32BIT")==0) - return "24"; + else if(sline.compare("FX_MATERIAL_TYPE_NORMAL_BLEND")==0) + return "128"; + else if(sline.compare("FX_MATERIAL_TYPE_REFRACTION")==0) + return "129"; + else if(sline.compare("FX_MATERIAL_TYPE_REFRACTION2")==0) + return "130"; + else if(sline.compare("FX_MATERIAL_TYPE_GOOCH")==0) + return "131"; + else if(sline.compare("FX_MATERIAL_TYPE_PLASTIC")==0) + return "132"; + else if(sline.compare("FX_MATERIAL_TYPE_TANGENT")==0) + return "133"; + else if(sline.compare("FX_MATERIAL_TYPE_SPEAKER")==0) + return "134"; + else if(sline.compare("FX_MATERIAL_TYPE_PHONG_TEXTURE")==0) + return "135"; + else if(sline.compare("FX_MATERIAL_TYPE_STYLE")==0) + return "136"; + else if(sline.compare("FX_MATERIAL_TYPE_STYLE2")==0) + return "137"; + else if(sline.compare("FX_MATERIAL_TYPE_STYLE3")==0) + return "138"; + else if(sline.compare("FX_MATERIAL_TYPE_STYLE4")==0) + return "139"; else if(sline.compare("BLEND_MODE_NONE")==0) return "0"; else if(sline.compare("BLEND_MODE_ADD")==0) diff --git a/rcbasic_runtime/CShader.cpp b/rcbasic_runtime/CShader.cpp new file mode 100755 index 0000000..2d0d2f9 --- /dev/null +++ b/rcbasic_runtime/CShader.cpp @@ -0,0 +1,400 @@ +/************************************************************** +file: CShader.h +author: Stephan Gödecker (Masterhawk studios) +version: rev. 5 + +description: this file was created to achieve a dynamic +management for GLSL shaders with irrlicht. After implementing +this code-snippet the user is able to dynamically load GLSL- +shader in his irrlicht application. The shader just have to +be additionally defined by a special xml-file. You can get +further information at: + +http://www.masterhawk.dyndns.org/wordpress?p=267 + +***************************************************************/ + +#include +#include +#include "CShader.h" + +rc_shader_value_obj rc_shader_float(float n) +{ + rc_shader_value_obj v; + v.type = RC_SHADER_VALUE_TYPE_FLOAT; + v.fvalue = n; + return v; +} + +rc_shader_value_obj rc_shader_string(std::string s) +{ + rc_shader_value_obj v; + v.type = RC_SHADER_VALUE_TYPE_STRING; + v.svalue = s; + return v; +} + +CShader::CShader(IrrlichtDevice* device, rc_shader_material_obj shader_material) +{ + + dev=device; + + f_old_cycle_time = dev->getTimer()->getRealTime(); + + driver = device->getVideoDriver(); + + //Missing xml-handling + + irr::video::IGPUProgrammingServices* gpu = driver->getGPUProgrammingServices(); + p_material = 0; + + obj_node = 0; + + if(gpu) + { + //std::cout << "Compiling Shader" << std::endl; + //std::cout << shader_material.vert_shader << std::endl << std::endl; + //std::cout << shader_material.frag_shader << std::endl << std::endl; + p_material = gpu->addHighLevelShaderMaterial( + shader_material.vert_shader.c_str(), "vertexMain", video::EVST_VS_4_1, + shader_material.frag_shader.c_str(), "pixelMain", video::EPST_PS_4_1, + this, video::EMT_SOLID); + + //std::cout << "Result: " << p_material << std::endl; + } + + + for(s32 i=0; ipredefinition = ESPV_NONE; + + irr::core::stringc type( shader_material.shader_object[i].type.c_str() ); + + if(type.equals_ignore_case("float")) + shader_var->type = ESVT_FLOAT; + else if(type.equals_ignore_case("vec2")) + shader_var->type = ESVT_VEC2; + else if(type.equals_ignore_case("vec3")) + shader_var->type = ESVT_VEC3; + else if(type.equals_ignore_case("vec4")) + shader_var->type = ESVT_VEC4; + else if(type.equals_ignore_case("mat4")) + shader_var->type = ESVT_MAT4; + else if(type.equals_ignore_case("sampler2d")) + shader_var->type = ESVT_SAMPLER2D; + else if(type.equals_ignore_case("predefined")) + shader_var->type = ESVT_PREDEFINED; + + shader_var->name = core::stringc( shader_material.shader_object[i].name.c_str() ); + + + shader_var->b_frag_var = shader_material.shader_object[i].fragVar; + + switch(shader_var->type) + { + case ESVT_SAMPLER2D: + case ESVT_FLOAT: + { + float* vars = new float[1]; + vars[0] = shader_material.shader_object[i].value[0].fvalue; + shader_var->value = vars; + + }break; + + /*case ESVT_SAMPLER2D: + { + int tex = 0; + + TiXmlNode* value = node->FirstChild("value"); + + tex = ((TiXmlElement*)value)->FirstAttribute()->IntValue(); + + float* vars = new float[1]; + vars = (float*)(&tex); + shader_var->value = vars; + }break;*/ + + case ESVT_VEC2: + { + float* vars = new float[2]; + + for(s32 j=0; j<2; j++) + { + vars[j] = shader_material.shader_object[i].value[j].fvalue; + } + shader_var->value = vars; + }break; + + case ESVT_VEC3: + { + float* vars = new float[3]; + + for(s32 j=0; j<3; j++) + { + vars[j] = shader_material.shader_object[i].value[j].fvalue; + } + shader_var->value = vars; + }break; + + case ESVT_VEC4: + { + float* vars = new float[4]; + + for(s32 j=0; j<4; j++) + { + vars[j] = shader_material.shader_object[i].value[j].fvalue; + } + shader_var->value = vars; + }break; + + case ESVT_MAT4: + break; + + case ESVT_PREDEFINED: + { + core::stringc str_val(shader_material.shader_object[i].value[0].svalue.c_str()); + + shader_var->value = 0; + + if(str_val.equals_ignore_case("predefined_eye_position")) + shader_var->predefinition = ESPV_EYEPOSITION; + else if(str_val.equals_ignore_case("predefined_mat4_view_proj")) + { + shader_var->predefinition = ESPV_MAT4_VIEW_PROJ; + } + else if(str_val.equals_ignore_case("predefined_mat4_view")) + { + shader_var->predefinition = ESPV_MAT4_VIEW; + } + else if(str_val.equals_ignore_case("predefined_float_time0x")) + { + shader_var->predefinition = ESPV_FLOAT_TIME0X; + shader_var->value = new float[1]; + shader_var->value[0] = 0.f; + } + else if(str_val.equals_ignore_case("predefined_rtt_view")) + { + shader_var->predefinition = ESPV_NONE; + shader_var->type = ESVT_SAMPLER2D; + + float* vars = new float[1]; + + vars[0] = (shader_material.shader_object[i].additional_value.size() > 0 ? shader_material.shader_object[i].additional_value[0].fvalue : 0); + + shader_var->value = vars; + + //registering for RTT_VIEW + S_RTT_Info* rtt_info = new S_RTT_Info(); + rtt_info->type = ERT_VIEW; + rtt_info->tex_channel = (int)vars[0]; + rtt_infos.push_back(rtt_info); + + rtt_info = 0; + + } + else if(str_val.equals_ignore_case("predefined_toonLightPos_position")) + { + shader_var->predefinition = ESPV_RC_TOON_LIGHTPOS; + } + else + printf("ERROR: Unknown predefinition: %s\n",str_val.c_str()); + + + break; + } + + default: +/// printf("(XML PARSER) ERROR: No type for uniform shader variable specified: %s\n",shader_var->name); + break; + }//end switch + + uniform_variables.push_back(shader_var); + } + //printf("(MATERIAL PARSER) Initialized %i uniform variables\n",uniform_variables.size()); + for(s32 i=0; iname.c_str()); + if(uniform_variables[i]->type == ESVT_PREDEFINED) + { + continue; + } + s32 element_count = (uniform_variables[i]->type != ESVT_SAMPLER2D) ? (s32)uniform_variables[i]->type : 1; + //for(s32 j=0; jtype != ESVT_SAMPLER2D) + //printf("%f ",(uniform_variables[i]->value[j])); + //else + //printf("%i",*uniform_variables[i]->value); + //printf("\n\n"); + } +} + +void CShader::OnSetConstants(video::IMaterialRendererServices* services, s32 userData) +{ + for(s32 i=0; itype) + { + case ESVT_SAMPLER2D: + element_count = 1; + break; + case ESVT_PREDEFINED: + { + switch(uniform_variables[i]->predefinition) + { + case ESPV_EYEPOSITION: + { + if(uniform_variables[i]->value) + { + delete[] uniform_variables[i]->value; + uniform_variables[i]->value = 0; + } + + uniform_variables[i]->value = new float[3]; + core::vector3df cam_pos = dev->getSceneManager()->getActiveCamera()->getAbsolutePosition(); + uniform_variables[i]->value[0] = cam_pos.X; + uniform_variables[i]->value[1] = cam_pos.Y; + uniform_variables[i]->value[2] = cam_pos.Z; + + element_count = 3; + } + break; + + case ESPV_MAT4_VIEW: + { + core::matrix4 mat_view = dev->getVideoDriver()->getTransform(video::ETS_VIEW); + + uniform_variables[i]->value = mat_view.pointer(); + + element_count = 16; + } + break; + + case ESPV_MAT4_VIEW_PROJ: + { + core::matrix4 mat_view_proj = dev->getVideoDriver()->getTransform(video::ETS_PROJECTION); + + mat_view_proj *= dev->getVideoDriver()->getTransform(video::ETS_VIEW); + + uniform_variables[i]->value = mat_view_proj.pointer(); + + element_count = 16; + + /*printf("VIEW_PROJECTION_MATRIX\n"); + for(int k=0; k<16; k++) + { + printf("%f ",uniform_variables[i]->value[k]); + if(k==3 || k==7 || k==11 || k==15) printf("\n"); + }*/ + } + break; + + case ESPV_FLOAT_TIME0X: + { + + f32 f_time_diff = dev->getTimer()->getRealTime() - f_old_cycle_time; + + uniform_variables[i]->value[0] += f_time_diff / 1000; + + s32 i_tmp = uniform_variables[i]->value[0] / 120; + + uniform_variables[i]->value[0] = uniform_variables[i]->value[0] - (i_tmp*120); + + f_old_cycle_time = dev->getTimer()->getRealTime(); + + element_count = 1; + + //printf("FLOAT_TIME0X = %f\n",uniform_variables[i]->value[0]); + } + break; + + case ESPV_RC_TOON_LIGHTPOS: + { + if(this->obj_node != NULL) + { + core::vector3df pos_in_world_space = dev->getSceneManager()->getActiveCamera()->getAbsolutePosition(); + core::vector3df pos_in_node_space(pos_in_world_space); + + core::matrix4 world_to_local = this->obj_node->getAbsoluteTransformation(); + world_to_local.makeInverse(); + + world_to_local.transformVect(pos_in_world_space); + f32 lightPos[3] = { pos_in_world_space.X, pos_in_world_space.Y, pos_in_world_space.Z }; + services->setVertexShaderConstant("lightPos", lightPos, 3); + } + } + break; + } + } + default: + element_count = (s32)uniform_variables[i]->type; + } + if(uniform_variables[i]->b_frag_var) + if(uniform_variables[i]->type != ESVT_SAMPLER2D) + services->setPixelShaderConstant(uniform_variables[i]->name.c_str(),uniform_variables[i]->value,element_count); + else + { + int tex = *uniform_variables[i]->value; + services->setPixelShaderConstant(uniform_variables[i]->name.c_str(),(float*)(&tex),element_count); + } + + else + if(uniform_variables[i]->type != ESVT_SAMPLER2D) + services->setVertexShaderConstant(uniform_variables[i]->name.c_str(),uniform_variables[i]->value,element_count); + else + { + int tex = *uniform_variables[i]->value; + services->setVertexShaderConstant(uniform_variables[i]->name.c_str(),(int*)(&tex),element_count); + } + + } + +} + +void CShader::setObjectNode(irr::scene::ISceneNode* node) +{ + this->obj_node = node; +} + +s32 CShader::getMaterial() +{ + return p_material; +} + +int CShader::getUniformVariableCount() +{ + return uniform_variables.size(); +} + +SShaderVariable* CShader::getUniformVariable(int i) +{ + if(i < 0 || i >= uniform_variables.size()) + return NULL; + + return uniform_variables[i]; +} + +S_RTT_Info* CShader::getRTTInfo(E_RTT_TEXTURE rtt) +{ + for(s32 i=0; itype) + return rtt_infos[i]; + } + return 0; +} + +CShader::~CShader() +{ + for(s32 i=0; ipredefinition != ESPV_MAT4_VIEW_PROJ && uniform_variables[i]->predefinition != ESPV_MAT4_VIEW) + delete[] uniform_variables[i]->value; + + delete uniform_variables[i]; + uniform_variables[i] = 0; + } + uniform_variables.clear(); +} diff --git a/rcbasic_runtime/CShader.h b/rcbasic_runtime/CShader.h new file mode 100755 index 0000000..a8f6b46 --- /dev/null +++ b/rcbasic_runtime/CShader.h @@ -0,0 +1,128 @@ +#ifndef CSHADER_H_INCLUDED +#define CSHADER_H_INCLUDED + +/************************************************************** +file: CShader.h +author: Stephan Gödecker (Masterhawk studios) +version: rev. 5 + +description: this file was created to achieve a dynamic +management for GLSL shaders with irrlicht. After implementing +this code-snippet the user is able to dynamically load GLSL- +shader in his irrlicht application. The shader just have to +be additionally defined by a special xml-file. You can get +further information at: + +http://www.masterhawk.dyndns.org/wordpress?p=267 + +***************************************************************/ + +//#include "stdafx.h" +#include +#include + +using namespace irr; + +#define RC_SHADER_VALUE_TYPE_FLOAT 0 +#define RC_SHADER_VALUE_TYPE_STRING 1 + +struct rc_shader_value_obj +{ + int type; + float fvalue; + std::string svalue; +}; + +rc_shader_value_obj rc_shader_float(float n); +rc_shader_value_obj rc_shader_string(std::string s); + +struct rc_shader_obj +{ + std::string name; + std::string type; + bool fragVar; + bool artistVar; + irr::core::array value; + irr::core::array additional_value; +}; + +struct rc_shader_material_obj +{ + std::string frag_shader; + std::string vert_shader; + irr::core::array shader_object; +}; + +enum E_SHADER_VAR_TYPE +{ + ESVT_FLOAT = 1, + ESVT_VEC2 = 2, + ESVT_VEC3 = 3, + ESVT_VEC4 = 4, + ESVT_MAT4 = 16, + ESVT_SAMPLER2D, + ESVT_PREDEFINED +}; +enum E_SHADER_PREDEFINED_VARS +{ + ESPV_NONE, + ESPV_FLOAT_TIME0X, + ESPV_EYEPOSITION, + ESPV_MAT4_VIEW, + ESPV_MAT4_VIEW_PROJ, + ESPV_RTT_VIEW, + ESPV_RC_TOON_LIGHTPOS +}; + +enum E_RTT_TEXTURE +{ + ERT_VIEW = 0x0001 +}; + +struct S_RTT_Info +{ + E_RTT_TEXTURE type; + s32 tex_channel; +}; + +struct SShaderVariable +{ + core::stringc name; + E_SHADER_VAR_TYPE type; + E_SHADER_PREDEFINED_VARS predefinition; + bool b_frag_var; + float* value; +}; + +class CShader : public video::IShaderConstantSetCallBack +{ +private: + s32 p_material; //material which has to be applied to a scene_node + IrrlichtDevice* dev; + video::IVideoDriver* driver; + + //temporarily + core::array uniform_variables; + + core::array rtt_infos; + + f32 f_old_cycle_time; + + irr::scene::ISceneNode* obj_node; + +public: + CShader(IrrlichtDevice* device, rc_shader_material_obj shader_material); + ~CShader(); + + virtual void OnSetConstants(video::IMaterialRendererServices* services, s32 userData); + + void setObjectNode(irr::scene::ISceneNode* node); + + s32 getMaterial(); + int getUniformVariableCount(); + SShaderVariable* getUniformVariable(int i); + + S_RTT_Info* getRTTInfo(E_RTT_TEXTURE rtt); +}; + +#endif // CSHADER_H_INCLUDED diff --git a/rcbasic_runtime/ProjectiveTextures.cpp b/rcbasic_runtime/ProjectiveTextures.cpp new file mode 100755 index 0000000..c9121ca --- /dev/null +++ b/rcbasic_runtime/ProjectiveTextures.cpp @@ -0,0 +1,196 @@ +#include "ProjectiveTextures.h" +#include + +/* CONSTRUCTOR */ +CProjectiveTextures::CProjectiveTextures(irr::IrrlichtDevice* dev, irr::scene::ISceneNode* parent, irr::scene::ISceneManager* mgr, irr::s32 id, + const irr::core::vector3df& position, const irr::core::vector3df& lookat) + : irr::scene::ISceneNode(parent, mgr, id, position) +{ + pDevice = dev; + pVideo = pDevice->getVideoDriver(); + pScene = pDevice->getSceneManager(); + pGUI = pDevice->getGUIEnvironment(); + pGPU = pVideo->getGPUProgrammingServices(); + pCollision = pScene->getSceneCollisionManager(); + pLog = pDevice->getLogger(); + + // set default projection + Fovy = irr::core::PI / 2.5f; // Field of view, in radians. + + Target = lookat; + + recalculateProjectionMatrix(); + recalculateViewArea(); + + std::string projector_vert = + "!!ARBvp1.0 \n" + "# cgc version 2.1.0016, build date Nov 20 2008 \n" + "# command line args: -oglsl -bestprecision -O3 -profile arbvp1 \n" + "# source file: projector.vert \n" + "#vendor NVIDIA Corporation \n" + "#version 2.1.0.16 \n" + "#profile arbvp1 \n" + "#program main \n" + "#semantic gl_ModelViewProjectionMatrixTranspose : state.matrix.mvp \n" + "#semantic TexGenMat \n" + "#var float4 gl_TexCoord[0] : $vout.TEX0 : TEX0 : -1 : 1 \n" + "#var float4 gl_TexCoord[1] : : : -1 : 0 \n" + "#var float4 gl_TexCoord[2] : : : -1 : 0 \n" + "#var float4 gl_TexCoord[3] : : : -1 : 0 \n" + "#var float4 gl_TexCoord[4] : : : -1 : 0 \n" + "#var float4 gl_TexCoord[5] : : : -1 : 0 \n" + "#var float4 gl_TexCoord[6] : : : -1 : 0 \n" + "#var float4 gl_TexCoord[7] : : : -1 : 0 \n" + "#var float4 gl_Vertex : $vin.POSITION : POSITION : -1 : 1 \n" + "#var float4 gl_Position : $vout.POSITION : HPOS : -1 : 1 \n" + "#var float4x4 gl_ModelViewProjectionMatrixTranspose : state.matrix.mvp : c[1], 4 : -1 : 1 \n" + "#var float4x4 TexGenMat : : c[5], 4 : -1 : 1 \n" + "PARAM c[9] = { program.local[0], \n" + " state.matrix.mvp, \n" + " program.local[5..8] }; \n" + "TEMP R0; \n" + "MUL R0, vertex.position.y, c[6]; \n" + "MAD R0, vertex.position.x, c[5], R0; \n" + "MAD R0, vertex.position.z, c[7], R0; \n" + "MAD result.texcoord[0], vertex.position.w, c[8], R0; \n" + "DP4 result.position.w, vertex.position, c[4]; \n" + "DP4 result.position.z, vertex.position, c[3]; \n" + "DP4 result.position.y, vertex.position, c[2]; \n" + "DP4 result.position.x, vertex.position, c[1]; \n" + "END \n" + "# 8 instructions, 1 R-regs \n" + ; + + + std::string projector_frag = + "!!ARBfp1.0 \n" + "OPTION ARB_precision_hint_nicest; \n" + "# cgc version 2.1.0016, build date Nov 20 2008 \n" + "# command line args: -oglsl -bestprecision -O3 -profile arbfp1 \n" + "# source file: projector.frag \n" + "#vendor NVIDIA Corporation \n" + "#version 2.1.0.16 \n" + "#profile arbfp1 \n" + "#program main \n" + "#semantic projMap \n" + "#var float4 gl_TexCoord[0] : $vin.TEX0 : TEX0 : -1 : 1 \n" + "#var float4 gl_TexCoord[1] : : : -1 : 0 \n" + "#var float4 gl_TexCoord[2] : : : -1 : 0 \n" + "#var float4 gl_TexCoord[3] : : : -1 : 0 \n" + "#var float4 gl_TexCoord[4] : : : -1 : 0 \n" + "#var float4 gl_TexCoord[5] : : : -1 : 0 \n" + "#var float4 gl_TexCoord[6] : : : -1 : 0 \n" + "#var float4 gl_TexCoord[7] : : : -1 : 0 \n" + "#var float4 gl_FragColor : $vout.COLOR : COL : -1 : 1 \n" + "#var sampler2D projMap : : texunit 0 : -1 : 1 \n" + "#const c[0] = 0 \n" + "PARAM c[1] = { { 0 } }; \n" + "TEMP R0; \n" + "TXP R0, fragment.texcoord[0], texture[0], 2D; \n" + "CMP result.color, -fragment.texcoord[0].w, R0, c[0].x; \n" + "END \n" + "# 2 instructions, 1 R-regs \n" + ; + + // Load the shaders. + projTex = pGPU->addShaderMaterial(projector_vert.c_str(), + projector_frag.c_str(), + this,irr::video::EMT_TRANSPARENT_ADD_COLOR,0); +} + +/* DESTRUCTOR */ +CProjectiveTextures::~CProjectiveTextures() +{ + // Remove the texture used. + pVideo->removeTexture(texture); +} + +//! sets the look at target of the projector +void CProjectiveTextures::setTarget(const irr::core::vector3df& pos) +{ + Target = pos; + const irr::core::vector3df toTarget = Target - getAbsolutePosition(); +} + +//! Gets the current look at target of the projector +const irr::core::vector3df& CProjectiveTextures::getTarget() const +{ + return Target; +} + +void CProjectiveTextures::setFOV(irr::f32 f) +{ + Fovy = f; + recalculateProjectionMatrix(); +} + +irr::f32 CProjectiveTextures::getFOV() +{ + return Fovy; +} + +//! returns the axis aligned bounding box of this node +const irr::core::aabbox3d& CProjectiveTextures::getBoundingBox() const +{ + return ViewArea.getBoundingBox(); +} + +/* UPDATE */ +void CProjectiveTextures::render() +{ + irr::core::vector3df pos = getAbsolutePosition(); + irr::core::vector3df tgtv = Target - pos; + tgtv.normalize(); + + // if upvector and vector to the target are the same, we have a + // problem. so solve this problem: + irr::core::vector3df up(0.0f,0.0f,1.0f); + + ViewArea.getTransform(irr::video::ETS_VIEW).buildCameraLookAtMatrixLH(pos,Target,up); + + recalculateViewArea(); + + for(irr::u32 i=0; isetTransform(irr::video::ETS_WORLD,nodeArray[i]->getAbsoluteTransformation()); + pVideo->setMaterial(projMat); + + for(irr::u32 j=0; jgetMaterialCount(); ++j) + pVideo->drawMeshBuffer(nodeArray[i]->getMesh()->getMeshBuffer(j)); + } +} + +void CProjectiveTextures::recalculateProjectionMatrix() +{ + ViewArea.getTransform(irr::video::ETS_PROJECTION ).buildProjectionMatrixPerspectiveFovLH(Fovy,1.0f,1.0f,3000.0f); +} + +void CProjectiveTextures::recalculateViewArea() +{ + ViewArea.cameraPosition = getAbsolutePosition(); + + irr::core::matrix4 m(irr::core::matrix4::EM4CONST_NOTHING); + m.setbyproduct_nocheck(ViewArea.getTransform(irr::video::ETS_PROJECTION),ViewArea.getTransform(irr::video::ETS_VIEW)); + ViewArea.setFrom(m, true); +} + +void CProjectiveTextures::OnSetConstants(irr::video::IMaterialRendererServices* services,irr::s32 userData) +{ + if(userData == 0) + { + irr::core::matrix4 bias; + bias.makeIdentity(); + bias.setTranslation(irr::core::vector3df(0.5f,0.5f,0)); + bias.setScale(irr::core::vector3df(0.5f,-0.5f,1.0f)); + + irr::core::matrix4 worldViewProj; + worldViewProj = bias * ViewArea.getTransform(irr::video::ETS_PROJECTION); + worldViewProj *= ViewArea.getTransform(irr::video::ETS_VIEW); + worldViewProj *= pVideo->getTransform(irr::video::ETS_WORLD); + services->setVertexShaderConstant(reinterpret_cast(worldViewProj.pointer()),5,4); + } +} diff --git a/rcbasic_runtime/ProjectiveTextures.h b/rcbasic_runtime/ProjectiveTextures.h new file mode 100755 index 0000000..8a757b8 --- /dev/null +++ b/rcbasic_runtime/ProjectiveTextures.h @@ -0,0 +1,68 @@ +//#include "main.h" + +#include + +#ifndef __CProjectiveTextures__ +#define __CProjectiveTextures__ + +class CProjectiveTextures : public irr::video::IShaderConstantSetCallBack, public irr::scene::ISceneNode +{ +public: + + // Constructor / Destructor. + CProjectiveTextures(irr::IrrlichtDevice* dev, irr::scene::ISceneNode* parent, irr::scene::ISceneManager* mgr, irr::s32 id, + const irr::core::vector3df& position = irr::core::vector3df(0,0,0), + const irr::core::vector3df& lookat = irr::core::vector3df(0,0,0)); + + ~CProjectiveTextures(); + + //! Sets the look at target of the projector + virtual void setTarget(const irr::core::vector3df& pos); + + //! Gets the current look at target of the projector + virtual const irr::core::vector3df& getTarget() const; + + //! Sets the field of view (Default: PI / 3.5f) + virtual void setFOV(irr::f32 f); + + //! Gets the field of view (Default: PI / 3.5f) + virtual irr::f32 getFOV(); + + //! Returns the axis aligned bounding box of this node + virtual const irr::core::aabbox3d& getBoundingBox() const; + + //! Render + virtual void render(); + + virtual void OnSetConstants(irr::video::IMaterialRendererServices* services, irr::s32 userData); + + irr::video::ITexture* texture; + irr::core::array nodeArray; + +private: + + int projTex; + irr::video::SMaterial projMat; + +protected: + + void recalculateProjectionMatrix(); + void recalculateViewArea(); + + irr::core::vector3df Target; + + irr::f32 Fovy; // Field of view, in radians. + + irr::scene::SViewFrustum ViewArea; + + irr::IrrlichtDevice * pDevice; + irr::video::IVideoDriver * pVideo; + irr::scene::ISceneManager * pScene; + irr::gui::IGUIEnvironment * pGUI; + irr::video::IGPUProgrammingServices * pGPU; + irr::ILogger * pLog; + irr::scene::ISceneCollisionManager * pCollision; + +}; + +#endif diff --git a/rcbasic_runtime/main.cpp b/rcbasic_runtime/main.cpp index c8397dd..1118b9c 100755 --- a/rcbasic_runtime/main.cpp +++ b/rcbasic_runtime/main.cpp @@ -4310,7 +4310,9 @@ void rcbasic_init() rc_audio_init(); rc_gfx_init(); rc_net_init(); - arr_ref_id.clear(); + arr_ref_id.clear(); + + initFXMaterials(); } void rcbasic_clean() @@ -4322,7 +4324,14 @@ void rcbasic_clean() loop_stack.empty(); n_stack.empty(); s_stack.empty(); - gosub_return_addr.empty(); + gosub_return_addr.empty(); + + for(int i = 0; i < rc_material.size(); i++) + { + if(rc_material[i].isFX && rc_material[i].shader != NULL) + delete rc_material[i].shader; + rc_material[i].shader = NULL; + } } void rcbasic_test() @@ -4389,12 +4398,12 @@ int main(int argc, char * argv[]) if(rc_filename.compare("--version")==0) { - cout << "RCBASIC Runtime v4.2a" << endl; + cout << "RCBASIC Runtime v4.2" << endl; return 0; } #ifdef RCBASIC_DEBUG - rc_filename = "debug.cbc"; + //rc_filename = "debug.cbc"; #endif // RCBASIC_DEBUG //DEBUG START @@ -4443,9 +4452,15 @@ int main(int argc, char * argv[]) //ogles2 test #ifdef RC_TESTING - rc_intern_dirChange("/home/n00b/test/SpriteShapeTest"); + //rc_intern_dirChange("/home/n00b/test/SpriteShapeTest"); //rc_intern_dirChange(""); rc_filename = "main.cbc"; + + rc_intern_dirChange("/home/n00b/Pictures/UNTITLED"); + rc_filename = "nv_test.cbc"; + + rc_intern_dirChange("/home/n00b/test/stp"); + rc_filename = "main.cbc"; #endif //--------------- diff --git a/rcbasic_runtime/rc_actor_material.h b/rcbasic_runtime/rc_actor_material.h index ef723ae..d0ef405 100644 --- a/rcbasic_runtime/rc_actor_material.h +++ b/rcbasic_runtime/rc_actor_material.h @@ -1,6 +1,44 @@ #ifndef RC_ACTOR_MATERIAL_H_INCLUDED #define RC_ACTOR_MATERIAL_H_INCLUDED +#include "rc_fx_materials.h" + +//Create FX Material in given material slot +// Return +bool createShaderMaterial(int material_id, int fx_material_type) +{ + if(material_id < 0 || material_id >= rc_material.size()) + return false; + + if(!rc_material[material_id].isUsed) + return false; + + if(fx_material_type < RC_FX_MATERIAL_BASE_INDEX || fx_material_type >= (RC_FX_MATERIAL_BASE_INDEX + rc_shader_materials.size())) + return false; + + if(rc_material[material_id].shader) + { + delete rc_material[material_id].shader; + rc_material[material_id].shader = NULL; + } + + rc_material[material_id].isFX = false; + + int shader_index = fx_material_type - RC_FX_MATERIAL_BASE_INDEX; + + //std::cout << "Shader Index = " << shader_index << std::endl; + + rc_material[material_id].shader = new CShader(device, rc_shader_materials[shader_index]); + + if(rc_material[material_id].shader) + { + rc_material[material_id].fxMatType = fx_material_type; + rc_material[material_id].isFX = true; + } + + return rc_material[material_id].isFX; +} + //set actor texture void rc_setActorTexture(int actor, int layer, int image_id) { @@ -64,8 +102,11 @@ void rc_setActorMaterialType(int actor, int material_type) if(!rc_actor[actor].mesh_node) return; - irr::video::E_MATERIAL_TYPE n = (irr::video::E_MATERIAL_TYPE) material_type; - rc_actor[actor].mesh_node->setMaterialType(n); + if(material_type >= 0 && material_type < MAX_DEFAULT_MATERIALS) + { + irr::video::E_MATERIAL_TYPE n = (irr::video::E_MATERIAL_TYPE) material_type; + rc_actor[actor].mesh_node->setMaterialType(n); + } } //Set Actor Material Type @@ -77,7 +118,23 @@ int rc_getActorMaterialType(int actor, int material) if(!rc_actor[actor].mesh_node) return 0; - return (int)rc_actor[actor].mesh_node->getMaterial(material).MaterialType; + int material_type = (int)rc_actor[actor].mesh_node->getMaterial(material).MaterialType; + + if(material_type >= 0 && material_type < MAX_DEFAULT_MATERIALS) + return material_type; + else + { + //loop through all the fx materials on the actor + for(int i = 0; i < rc_actor[actor].actor_fx_materials.size(); i++) + { + if(rc_actor[actor].actor_fx_materials[i].inUse && rc_actor[actor].actor_fx_materials[i].actor_material_index == material) + { + int material_id = rc_actor[actor].actor_fx_materials[i].material_id; + return rc_material[material_id].fxMatType; + } + } + } + return -1; } int rc_createMaterial() @@ -89,6 +146,12 @@ int rc_createMaterial() if(!rc_material[i].isUsed) { material_id = i; + rc_material[i].isFX = false; + if(rc_material[i].shader) + { + delete rc_material[i].shader; + rc_material[i].shader = NULL; + } break; } } @@ -99,6 +162,8 @@ int rc_createMaterial() rc_material_obj mat; mat.isUsed = true; mat.isReference = false; + mat.isFX = false; + mat.shader = NULL; rc_material.push_back(mat); } @@ -110,8 +175,43 @@ void rc_deleteMaterial(int material_id) if(material_id < 0 || material_id >= rc_material.size()) return; + if(rc_material[material_id].isFX) + { + //loop through the FX materials in every actor to remove this material + for(int i = 0; i < rc_actor.size(); i++) + { + if(!rc_actor[i].mesh_node) + continue; + + for(int fx_mat = 0; fx_mat < rc_actor[i].actor_fx_materials.size(); fx_mat++) + { + int m_id = rc_actor[i].actor_fx_materials[fx_mat].material_id; + + if(m_id < 0 || m_id >= rc_actor[i].mesh_node->getMaterialCount()) + continue; + + if(m_id == material_id && rc_actor[i].actor_fx_materials[fx_mat].inUse) + { + int actor_mat_index = rc_actor[i].actor_fx_materials[fx_mat].actor_material_index; + irr::video::SMaterial m; + m.MaterialType = irr::video::EMT_SOLID; + rc_actor[i].mesh_node->getMaterial(actor_mat_index) = m; + rc_actor[i].actor_fx_materials[fx_mat].inUse = false; + rc_actor[i].actor_fx_materials[fx_mat].material_id = -1; + rc_actor[i].actor_fx_materials[fx_mat].actor_material_index = -1; + } + } + } + + if(rc_material[material_id].shader) + delete rc_material[material_id].shader; + rc_material[material_id].shader = NULL; + } + rc_material[material_id].isUsed = false; rc_material[material_id].mat = irr::video::SMaterial(); + rc_material[material_id].isFX = false; + rc_material[material_id].fxMatType = -1; } //Set Actor Material Type @@ -128,14 +228,65 @@ void rc_setActorMaterial(int actor, int material_num, int material_id) if(rc_material[material_id].isUsed) { - if(rc_material[material_id].isReference) + if(rc_material[material_id].isFX) + { + if(rc_material[material_id].shader) + { + rc_actor[actor].mesh_node->getMaterial(material_num).MaterialType = (video::E_MATERIAL_TYPE)rc_material[material_id].shader->getMaterial(); + rc_material[material_id].shader->setObjectNode(rc_actor[actor].mesh_node); + + registerSceneNodeForRTT(VideoDriver, rc_actor[actor].mesh_node, rc_material[material_id].shader->getRTTInfo(ERT_VIEW)); + + int fx_index = -1; + int vacant_index = -1; + for(int i = 0; i < rc_actor[actor].actor_fx_materials.size(); i++) + { + if(rc_actor[actor].actor_fx_materials[i].actor_material_index == material_num && + rc_actor[actor].actor_fx_materials[i].inUse) + { + fx_index = i; + break; + } + + if(!rc_actor[actor].actor_fx_materials[i].inUse) + vacant_index = i; + } + + if(fx_index < 0) + fx_index = vacant_index; + + if(fx_index < 0) + { + rc_actor_fx_material_obj actor_fx_mat; + actor_fx_mat.actor_material_index = material_num; + actor_fx_mat.inUse = true; + actor_fx_mat.material_id = material_id; + rc_actor[actor].actor_fx_materials.push_back(actor_fx_mat); + } + else + { + rc_actor[actor].actor_fx_materials[fx_index].actor_material_index = material_num; + rc_actor[actor].actor_fx_materials[fx_index].inUse = true; + rc_actor[actor].actor_fx_materials[fx_index].material_id = material_id; + } + } + else + { + //shader is null then I might as well make sure this material is vacant + rc_material[material_id].isFX = false; + rc_material[material_id].isUsed = false; + } + } + else if(rc_material[material_id].isReference) { int refActor = rc_material[material_id].refActor; int refMatNum = rc_material[material_id].refMatNum; rc_actor[actor].mesh_node->getMaterial(material_num) = rc_actor[ refActor ].mesh_node->getMaterial( refMatNum ); } else + { rc_actor[actor].mesh_node->getMaterial(material_num) = rc_material[material_id].mat; + } } } @@ -171,6 +322,25 @@ int rc_copyActorMaterial(int actor, int material_num) else rc_material[material_id].mat = rc_actor[actor].mesh_node->getMaterial(material_num); + //Check if material is fx + for(int i = 0; i < rc_actor[actor].actor_fx_materials.size(); i++) + { + if(!rc_actor[actor].actor_fx_materials[i].inUse) + continue; + + if(rc_actor[actor].actor_fx_materials[i].actor_material_index == material_num) + { + int fx_mat_id = rc_actor[actor].actor_fx_materials[i].material_id; + + if(fx_mat_id >= 0 && fx_mat_id < rc_material.size()) + { + rc_material[material_id].fxMatType = rc_material[fx_mat_id].fxMatType; + rc_material[material_id].isFX = true; + rc_material[material_id].shader = rc_material[fx_mat_id].shader; + } + } + } + return material_id; } @@ -178,6 +348,9 @@ int rc_copyMaterial(int src_material_id) { int material_id = -1; + if(!rc_material[src_material_id].isUsed) + return -1; + for(int i = 0; i < rc_material.size(); i++) { if(!rc_material[i].isUsed) @@ -203,6 +376,59 @@ int rc_copyMaterial(int src_material_id) else rc_material[material_id] = nmat; + if(rc_material[src_material_id].isFX) + { + if(!rc_material[src_material_id].shader) + { + rc_material[material_id].isUsed = false; + rc_material[material_id].isReference = false; + rc_material[material_id].isFX = false; + rc_material[material_id].shader = NULL; + return -1; + } + + if(!createShaderMaterial(material_id, rc_material[src_material_id].fxMatType)) + { + rc_material[material_id].isUsed = false; + rc_material[material_id].isReference = false; + rc_material[material_id].isFX = false; + rc_material[material_id].shader = NULL; + return -1; + } + + //Copy all the uniforms + for(int i = 0; i < rc_material[src_material_id].shader->getUniformVariableCount(); i++) + { + rc_material[material_id].shader->getUniformVariable(i)->b_frag_var = rc_material[src_material_id].shader->getUniformVariable(i)->b_frag_var; + rc_material[material_id].shader->getUniformVariable(i)->name = rc_material[src_material_id].shader->getUniformVariable(i)->name; + rc_material[material_id].shader->getUniformVariable(i)->predefinition = rc_material[src_material_id].shader->getUniformVariable(i)->predefinition; + rc_material[material_id].shader->getUniformVariable(i)->type = rc_material[src_material_id].shader->getUniformVariable(i)->type; + + switch(rc_material[material_id].shader->getUniformVariable(i)->type) + { + case ESVT_SAMPLER2D: + case ESVT_FLOAT: + rc_material[material_id].shader->getUniformVariable(i)->value[0] = rc_material[src_material_id].shader->getUniformVariable(i)->value[0]; + break; + case ESVT_VEC2: + rc_material[material_id].shader->getUniformVariable(i)->value[0] = rc_material[src_material_id].shader->getUniformVariable(i)->value[0]; + rc_material[material_id].shader->getUniformVariable(i)->value[1] = rc_material[src_material_id].shader->getUniformVariable(i)->value[1]; + break; + case ESVT_VEC3: + rc_material[material_id].shader->getUniformVariable(i)->value[0] = rc_material[src_material_id].shader->getUniformVariable(i)->value[0]; + rc_material[material_id].shader->getUniformVariable(i)->value[1] = rc_material[src_material_id].shader->getUniformVariable(i)->value[1]; + rc_material[material_id].shader->getUniformVariable(i)->value[2] = rc_material[src_material_id].shader->getUniformVariable(i)->value[2]; + break; + case ESVT_VEC4: + rc_material[material_id].shader->getUniformVariable(i)->value[0] = rc_material[src_material_id].shader->getUniformVariable(i)->value[0]; + rc_material[material_id].shader->getUniformVariable(i)->value[1] = rc_material[src_material_id].shader->getUniformVariable(i)->value[1]; + rc_material[material_id].shader->getUniformVariable(i)->value[2] = rc_material[src_material_id].shader->getUniformVariable(i)->value[2]; + rc_material[material_id].shader->getUniformVariable(i)->value[3] = rc_material[src_material_id].shader->getUniformVariable(i)->value[3]; + break; + } + } + } + return material_id; } @@ -237,6 +463,31 @@ int rc_getActorMaterial(int actor, int material_num) nmat.isReference = true; nmat.refActor = actor; nmat.refMatNum = material_num; + + //Check if this material number is FX + for(int i = 0; i < rc_actor[actor].actor_fx_materials.size(); i++) + { + if(!rc_actor[actor].actor_fx_materials[i].inUse) + continue; + + int actor_material_index = rc_actor[actor].actor_fx_materials[i].actor_material_index; + + if(actor_material_index == material_num) + { + int fx_mat_id = rc_actor[actor].actor_fx_materials[i].material_id; + + if(fx_mat_id >= 0 && fx_mat_id < rc_material.size()) + { + if(rc_material[fx_mat_id].isUsed && rc_material[fx_mat_id].isFX) + { + nmat.isFX = true; + nmat.fxMatType = rc_material[fx_mat_id].fxMatType; + nmat.shader = rc_material[fx_mat_id].shader; + } + } + } + } + rc_material.push_back(nmat); } else @@ -247,6 +498,30 @@ int rc_getActorMaterial(int actor, int material_num) nmat.refActor = actor; nmat.refMatNum = material_num; rc_material[material_id] = nmat; + + //Check if this material number is FX + for(int i = 0; i < rc_actor[actor].actor_fx_materials.size(); i++) + { + if(!rc_actor[actor].actor_fx_materials[i].inUse) + continue; + + int actor_material_index = rc_actor[actor].actor_fx_materials[i].actor_material_index; + + if(actor_material_index == material_num) + { + int fx_mat_id = rc_actor[actor].actor_fx_materials[i].material_id; + + if(fx_mat_id >= 0 && fx_mat_id < rc_material.size()) + { + if(rc_material[fx_mat_id].isUsed && rc_material[fx_mat_id].isFX) + { + rc_material[material_id].isFX = true; + rc_material[material_id].fxMatType = rc_material[fx_mat_id].fxMatType; + rc_material[material_id].shader = rc_material[fx_mat_id].shader; + } + } + } + } } return material_id; @@ -706,14 +981,31 @@ void rc_setMaterialType(int material_id, int mat_type) if(material_id < 0 || material_id >= rc_material.size()) return; - if(rc_material[material_id].isReference) + if(!rc_material[material_id].isUsed) + return; + + if(mat_type >= RC_FX_MATERIAL_BASE_INDEX && mat_type < (RC_FX_MATERIAL_BASE_INDEX + rc_shader_materials.size())) { - int refActor = rc_material[material_id].refActor; - int refMatNum = rc_material[material_id].refMatNum; - rc_actor[refActor].mesh_node->getMaterial(refMatNum).MaterialType = (irr::video::E_MATERIAL_TYPE)mat_type; + if(rc_material[material_id].isReference) + { + return; + } + else + { + createShaderMaterial(material_id, mat_type); + } } else - rc_material[material_id].mat.MaterialType = (irr::video::E_MATERIAL_TYPE)mat_type; + { + if(rc_material[material_id].isReference) + { + int refActor = rc_material[material_id].refActor; + int refMatNum = rc_material[material_id].refMatNum; + rc_actor[refActor].mesh_node->getMaterial(refMatNum).MaterialType = (irr::video::E_MATERIAL_TYPE)mat_type; + } + else + rc_material[material_id].mat.MaterialType = (irr::video::E_MATERIAL_TYPE)mat_type; + } } int rc_getMaterialType(int material_id) @@ -725,10 +1017,46 @@ int rc_getMaterialType(int material_id) { int refActor = rc_material[material_id].refActor; int refMatNum = rc_material[material_id].refMatNum; + + //Check if material is an fx material + for(int i = 0; i < rc_actor[refActor].actor_fx_materials.size(); i++) + { + if(!rc_actor[refActor].actor_fx_materials[i].inUse) + continue; + + if(rc_actor[refActor].actor_fx_materials[i].material_id == material_id) + { + if(material_id >= 0 && material_id < rc_material.size()) + { + if(rc_material[material_id].isFX) + return rc_material[material_id].fxMatType; + } + } + } + + if(rc_material[material_id].isFX) + { + int n = rc_actor[refActor].actor_fx_materials[0].material_id; + if(n >= 0 && n < rc_material.size()) + { + if(rc_material[n].isUsed) + return rc_material[n].fxMatType; + } + + //std::cout << "yolo: " << rc_material[n].fxMatType << " ~ " << material_id << std::endl; + } + return (int)rc_actor[refActor].mesh_node->getMaterial(refMatNum).MaterialType; } else - return (int)rc_material[material_id].mat.MaterialType; + { + if(rc_material[material_id].isFX) + { + return rc_material[material_id].fxMatType; + } + else + return (int)rc_material[material_id].mat.MaterialType; + } } void rc_setMaterialNormalize(int material_id, bool flag) diff --git a/rcbasic_runtime/rc_base_actor.h b/rcbasic_runtime/rc_base_actor.h index 00159b6..ff31ef5 100644 --- a/rcbasic_runtime/rc_base_actor.h +++ b/rcbasic_runtime/rc_base_actor.h @@ -1,6 +1,8 @@ #ifndef RC_BASE_ACTOR_H_INCLUDED #define RC_BASE_ACTOR_H_INCLUDED +#include "ProjectiveTextures.h" + void setSolidProperties(int actor) { if(!rc_actor[actor].physics.isSolid) @@ -166,7 +168,7 @@ void rc_setActorCollisionShape(int actor_id, int shape_type, double mass) break; default: - std::cout << "SetActorCollisionShape Error: Invalid shape_type parameter" << std::endl; + std::cout << "SetActorShape Error: Invalid shape_type parameter" << std::endl; } if(rc_actor[actor_id].physics.rigid_body) @@ -727,6 +729,50 @@ int rc_createLightActor() return actor_id; } +int rc_createProjectorActor() +{ + int actor_id = -1; + CProjectiveTextures* node = new CProjectiveTextures(device, 0, SceneManager, -1); + rc_scene_node actor; + actor.node_type = RC_NODE_TYPE_PROJECTOR; + actor.mesh_node = node; + actor.shadow = NULL; + actor.transition = false; + actor.transition_time = 0; + actor.material_ref_index = -1; + + if(!node) + return -1; + + for(int i = 0; i < rc_actor.size(); i++) + { + if(!rc_actor[i].mesh_node) + { + actor_id = i; + break; + } + } + + if(actor_id < 0) + { + actor_id = rc_actor.size(); + rc_actor.push_back(actor); + } + else + { + rc_actor[actor_id] = actor; + } + + //Actor RigidBody + rc_actor[actor_id].physics.shape_type = RC_NODE_SHAPE_TYPE_BOX; + rc_actor[actor_id].physics.rigid_body = NULL; + rc_actor[actor_id].physics.isSolid = false; + + rc_setActorCollisionShape(actor_id, RC_NODE_SHAPE_TYPE_BOX, 1); + + return actor_id; +} + //delete actor void rc_deleteActor(int actor_id) { @@ -1522,4 +1568,62 @@ void rc_setTerrainPatchLOD(int actor, int patchX, int patchZ, int lod) } } + +void rc_setProjectorTarget(int actor, double x, double y, double z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_PROJECTOR: + CProjectiveTextures* projector = (CProjectiveTextures*) rc_actor[actor].mesh_node; + projector->setTarget(irr::core::vector3df(x,y,z)); + break; + } +} + +void rc_getProjectorTarget(int actor, double* x, double* y, double* z) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_PROJECTOR: + CProjectiveTextures* projector = (CProjectiveTextures*) rc_actor[actor].mesh_node; + *x = projector->getTarget().X; + *y = projector->getTarget().Y; + *z = projector->getTarget().Z; + break; + } +} + +void rc_setProjectorFOV(int actor, double fov) +{ + if(actor < 0 || actor >= rc_actor.size()) + return; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_PROJECTOR: + CProjectiveTextures* projector = (CProjectiveTextures*) rc_actor[actor].mesh_node; + return projector->setFOV(fov); + } +} + +double rc_getProjectorFOV(int actor) +{ + if(actor < 0 || actor >= rc_actor.size()) + return 0; + + switch(rc_actor[actor].node_type) + { + case RC_NODE_TYPE_PROJECTOR: + CProjectiveTextures* projector = (CProjectiveTextures*) rc_actor[actor].mesh_node; + return projector->getFOV(); + } +} + + #endif // RC_BASE_ACTOR_H_INCLUDED diff --git a/rcbasic_runtime/rc_defines.h b/rcbasic_runtime/rc_defines.h index 1a606a4..1f56bf3 100755 --- a/rcbasic_runtime/rc_defines.h +++ b/rcbasic_runtime/rc_defines.h @@ -746,901 +746,905 @@ #define FN_SetAntiAliasMode 246 #define SETANTIALIASMODE_AA_MODE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define FN_GetAntiAliasMode 247 -#define FN_InKey 248 -#define FN_Key 249 +#define FN_ConvertToNormalMap 248 +#define CONVERTTONORMALMAP_IMG_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define CONVERTTONORMALMAP_AMP num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_InKey 249 +#define FN_Key 250 #define KEY_KEY_CODE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_WaitKey 250 -#define FN_HideMouse 251 -#define FN_ShowMouse 252 -#define FN_MouseIsVisible 253 -#define FN_GetMouse 254 +#define FN_WaitKey 251 +#define FN_HideMouse 252 +#define FN_ShowMouse 253 +#define FN_MouseIsVisible 254 +#define FN_GetMouse 255 #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 255 -#define FN_MouseY 256 -#define FN_MouseButton 257 +#define FN_MouseX 256 +#define FN_MouseY 257 +#define FN_MouseButton 258 #define MOUSEBUTTON_MB num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetMouseWheel 258 +#define FN_GetMouseWheel 259 #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 259 -#define FN_MouseWheelY 260 -#define FN_GetGlobalMouse 261 +#define FN_MouseWheelX 260 +#define FN_MouseWheelY 261 +#define FN_GetGlobalMouse 262 #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 262 -#define FN_GlobalMouseY 263 -#define FN_WarpMouse 264 +#define FN_GlobalMouseX 263 +#define FN_GlobalMouseY 264 +#define FN_WarpMouse 265 #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 265 +#define FN_WarpMouseGlobal 266 #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 266 +#define FN_SetMouseZone 267 #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 267 -#define FN_CreateSound 268 +#define FN_ClearMouseZone 268 +#define FN_CreateSound 269 #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 269 +#define FN_LoadSound 270 #define LOADSOUND_SND_FILE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_LoadMusic 270 +#define FN_LoadMusic 271 #define LOADMUSIC_MUSIC_FILE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_PlaySound 271 +#define FN_PlaySound 272 #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 272 +#define FN_PlaySoundTimed 273 #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 273 +#define FN_PlayMusic 274 #define PLAYMUSIC_MLOOPS num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_PauseSound 274 +#define FN_PauseSound 275 #define PAUSESOUND_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_ResumeSound 275 +#define FN_ResumeSound 276 #define RESUMESOUND_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_PauseMusic 276 -#define FN_ResumeMusic 277 -#define FN_DeleteSound 278 +#define FN_PauseMusic 277 +#define FN_ResumeMusic 278 +#define FN_DeleteSound 279 #define DELETESOUND_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_DeleteMusic 279 -#define FN_FadeMusicIn 280 +#define FN_DeleteMusic 280 +#define FN_FadeMusicIn 281 #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 281 +#define FN_FadeMusicOut 282 #define FADEMUSICOUT_FADE_TIME num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_MusicExists 282 -#define FN_SetMusicVolume 283 +#define FN_MusicExists 283 +#define FN_SetMusicVolume 284 #define SETMUSICVOLUME_VOL num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetMusicVolume 284 -#define FN_SetMusicPosition 285 +#define FN_GetMusicVolume 285 +#define FN_SetMusicPosition 286 #define SETMUSICPOSITION_POS num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetMusicPosition 286 -#define FN_RewindMusic 287 -#define FN_SetSoundChannels 288 +#define FN_GetMusicPosition 287 +#define FN_RewindMusic 288 +#define FN_SetSoundChannels 289 #define SETSOUNDCHANNELS_MAX_CHANNELS num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_NumSoundChannels 289 -#define FN_SoundIsEnabled 290 -#define FN_SoundExists 291 +#define FN_NumSoundChannels 290 +#define FN_SoundIsEnabled 291 +#define FN_SoundExists 292 #define SOUNDEXISTS_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetChannelVolume 292 +#define FN_SetChannelVolume 293 #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 293 +#define FN_GetChannelVolume 294 #define GETCHANNELVOLUME_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSoundVolume 294 +#define FN_SetSoundVolume 295 #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 295 +#define FN_GetSoundVolume 296 #define GETSOUNDVOLUME_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_StopMusic 296 -#define FN_StopSound 297 +#define FN_StopMusic 297 +#define FN_StopSound 298 #define STOPSOUND_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetChannelPanning 298 +#define FN_SetChannelPanning 299 #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 299 +#define FN_SetChannelDistance 300 #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 300 +#define FN_ChannelIsPlaying 301 #define CHANNELISPLAYING_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_ChannelIsPaused 301 +#define FN_ChannelIsPaused 302 #define CHANNELISPAUSED_CHANNEL num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_QueryAudioSpec 302 +#define FN_QueryAudioSpec 303 #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 303 -#define FN_SetChannelSpacePosition 304 +#define FN_MusicIsPlaying 304 +#define FN_SetChannelSpacePosition 305 #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 305 -#define FN_NumJoyAxes 306 +#define FN_NumJoysticks 306 +#define FN_NumJoyAxes 307 #define NUMJOYAXES_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_NumJoyButtons 307 +#define FN_NumJoyButtons 308 #define NUMJOYBUTTONS_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_NumJoyHats 308 +#define FN_NumJoyHats 309 #define NUMJOYHATS_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_NumJoyTrackBalls 309 +#define FN_NumJoyTrackBalls 310 #define NUMJOYTRACKBALLS_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_JoyAxis 310 +#define FN_JoyAxis 311 #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 311 +#define FN_JoyButton 312 #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 312 +#define FN_JoyHat 313 #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 313 +#define FN_GetJoyTrackBall 314 #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$ 314 +#define FN_JoyName$ 315 #define JOYNAME$_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_JoystickIsConnected 315 +#define FN_JoystickIsConnected 316 #define JOYSTICKISCONNECTED_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_JoyRumblePlay 316 +#define FN_JoyRumblePlay 317 #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 317 +#define FN_JoyRumbleStop 318 #define JOYRUMBLESTOP_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_JoystickIsHaptic 318 +#define FN_JoystickIsHaptic 319 #define JOYSTICKISHAPTIC_JOY_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_LoadFont 319 +#define FN_LoadFont 320 #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 320 +#define FN_DeleteFont 321 #define DELETEFONT_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_FontExists 321 +#define FN_FontExists 322 #define FONTEXISTS_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetFont 322 +#define FN_SetFont 323 #define SETFONT_SLOT num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_DrawText 323 +#define FN_DrawText 324 #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 324 +#define FN_GetTextSize 325 #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_TextWidth 325 +#define FN_TextWidth 326 #define TEXTWIDTH_TXT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_TextHeight 326 +#define FN_TextHeight 327 #define TEXTHEIGHT_TXT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_TouchPressure 327 -#define FN_GetTouch 328 +#define FN_TouchPressure 328 +#define FN_GetTouch 329 #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 329 +#define FN_GetMultiTouch 330 #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 330 +#define FN_GetTouchFinger 331 #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 331 -#define FN_GetAccel 332 +#define FN_NumFingers 332 +#define FN_GetAccel 333 #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$ 333 +#define FN_AccelName$ 334 #define ACCELNAME$_ACCEL_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_NumAccels 334 -#define FN_GetGyro 335 +#define FN_NumAccels 335 +#define FN_GetGyro 336 #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$ 336 +#define FN_GyroName$ 337 #define GYRONAME$_GYRO_NUM num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_NumGyros 337 -#define FN_CheckSockets 338 +#define FN_NumGyros 338 +#define FN_CheckSockets 339 #define CHECKSOCKETS_TIMEOUT_MS num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_TCP_SocketReady 339 +#define FN_TCP_SocketReady 340 #define TCP_SOCKETREADY_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_UDP_SocketReady 340 +#define FN_UDP_SocketReady 341 #define UDP_SOCKETREADY_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_TCP_OpenSocket 341 +#define FN_TCP_OpenSocket 342 #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 342 +#define FN_TCP_CloseSocket 343 #define TCP_CLOSESOCKET_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_TCP_RemoteHost 343 +#define FN_TCP_RemoteHost 344 #define TCP_REMOTEHOST_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_TCP_RemotePort 344 +#define FN_TCP_RemotePort 345 #define TCP_REMOTEPORT_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_TCP_GetData 345 +#define FN_TCP_GetData 346 #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 346 +#define FN_TCP_SendData 347 #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 347 +#define FN_TCP_AcceptSocket 348 #define TCP_ACCEPTSOCKET_SERVER num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_UDP_OpenSocket 348 +#define FN_UDP_OpenSocket 349 #define UDP_OPENSOCKET_PORT num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_UDP_CloseSocket 349 +#define FN_UDP_CloseSocket 350 #define UDP_CLOSESOCKET_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_UDP_GetData 350 +#define FN_UDP_GetData 351 #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 351 -#define FN_UDP_MaxLength 352 -#define FN_UDP_RemoteHost$ 353 +#define FN_UDP_Length 352 +#define FN_UDP_MaxLength 353 +#define FN_UDP_RemoteHost$ 354 #define UDP_REMOTEHOST$_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_UDP_RemotePort 354 +#define FN_UDP_RemotePort 355 #define UDP_REMOTEPORT_SOCKET num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_UDP_SendData 355 +#define FN_UDP_SendData 356 #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 356 +#define FN_LoadVideo 357 #define LOADVIDEO_VID$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_PlayVideo 357 +#define FN_PlayVideo 358 #define PLAYVIDEO_VLOOPS num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_PauseVideo 358 -#define FN_StopVideo 359 -#define FN_SetVideoPosition 360 +#define FN_PauseVideo 359 +#define FN_StopVideo 360 +#define FN_SetVideoPosition 361 #define SETVIDEOPOSITION_POS num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_ResumeVideo 361 -#define FN_GetVideoPosition 362 -#define FN_DeleteVideo 363 -#define FN_VideoIsPlaying 364 -#define FN_VideoEnd 365 -#define FN_GetVideoStats 366 +#define FN_ResumeVideo 362 +#define FN_GetVideoPosition 363 +#define FN_DeleteVideo 364 +#define FN_VideoIsPlaying 365 +#define FN_VideoEnd 366 +#define FN_GetVideoStats 367 #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 367 +#define FN_SetVideoDrawRect 368 #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 368 +#define FN_GetVideoDrawRect 369 #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 369 +#define FN_GetVideoSize 370 #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 370 -#define FN_SetVideoVolume 371 +#define FN_VideoExists 371 +#define FN_SetVideoVolume 372 #define SETVIDEOVOLUME_VOL num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetVideoVolume 372 -#define FN_System 373 +#define FN_GetVideoVolume 373 +#define FN_System 374 #define SYSTEM_CMD$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_OS$ 374 -#define FN_Command$ 375 +#define FN_OS$ 375 +#define FN_Command$ 376 #define COMMAND$_ARG num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_NumCommands 376 -#define FN_Env$ 377 +#define FN_NumCommands 377 +#define FN_Env$ 378 #define ENV$_V$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_SetEnv 378 +#define FN_SetEnv 379 #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$ 379 +#define FN_PrefPath$ 380 #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$ 380 -#define FN_Android_GetExternalStorageState 381 -#define FN_Android_GetInternalStoragePath$ 382 -#define FN_Android_JNI_Message$ 383 +#define FN_Android_GetExternalStoragePath$ 381 +#define FN_Android_GetExternalStorageState 382 +#define FN_Android_GetInternalStoragePath$ 383 +#define FN_Android_JNI_Message$ 384 #define ANDROID_JNI_MESSAGE$_ARG$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_Runtime_Utility_Message$ 384 +#define FN_Runtime_Utility_Message$ 385 #define RUNTIME_UTILITY_MESSAGE$_ARG$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_GetDesktopDisplayMode 385 +#define FN_GetDesktopDisplayMode 386 #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 386 +#define FN_GetPowerInfo 387 #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$ 387 +#define FN_EvalJS$ 388 #define EVALJS$_JS_CODE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_SystemReturnStdOut$ 388 +#define FN_SystemReturnStdOut$ 389 #define SYSTEMRETURNSTDOUT$_CMD$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_OpenURL 389 +#define FN_OpenURL 390 #define OPENURL_URL$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_MessageBox 390 +#define FN_MessageBox 391 #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$ 391 -#define FN_NumCPUs 392 -#define FN_SystemRam 393 -#define FN_DimMatrix 394 +#define FN_Runtime$ 392 +#define FN_NumCPUs 393 +#define FN_SystemRam 394 +#define FN_GetGPUInfo$ 395 +#define FN_DimMatrix 396 #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 395 +#define FN_DeleteMatrix 397 #define DELETEMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_AddMatrix 396 +#define FN_AddMatrix 398 #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 397 +#define FN_AugmentMatrix 399 #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 398 +#define FN_CopyMatrix 400 #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 399 +#define FN_InsertMatrixColumns 401 #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 400 +#define FN_InsertMatrixRows 402 #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 401 +#define FN_MultiplyMatrix 403 #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 402 +#define FN_CubeMatrix 404 #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 403 +#define FN_DeleteMatrixColumns 405 #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 404 +#define FN_DeleteMatrixRows 406 #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 405 +#define FN_ClearMatrix 407 #define CLEARMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_ClearMatrixColumns 406 +#define FN_ClearMatrixColumns 408 #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 407 +#define FN_ClearMatrixRows 409 #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 408 +#define FN_FillMatrix 410 #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 409 +#define FN_FillMatrixColumns 411 #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 410 +#define FN_FillMatrixRows 412 #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 411 +#define FN_CopyMatrixColumns 413 #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 412 +#define FN_CopyMatrixRows 414 #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 413 +#define FN_SetIdentityMatrix 415 #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 414 +#define FN_SolveMatrix 416 #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 415 +#define FN_IsEqualMatrix 417 #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 416 +#define FN_Determinant 418 #define DETERMINANT_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_AdjointMatrix 417 +#define FN_AdjointMatrix 419 #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 418 +#define FN_InvertMatrix 420 #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 419 +#define FN_MatrixFromBuffer 421 #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 420 +#define FN_BufferFromMatrix 422 #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 421 +#define FN_RandomizeMatrix 423 #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 422 +#define FN_MatrixValue 424 #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 423 +#define FN_SetMatrixValue 425 #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 424 +#define FN_ScalarMatrix 426 #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 425 +#define FN_ScalarMatrixColumns 427 #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 426 +#define FN_ScalarMatrixRows 428 #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 427 +#define FN_SquareMatrix 429 #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 428 +#define FN_CofactorMatrix 430 #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 429 +#define FN_SubtractMatrix 431 #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 430 +#define FN_SwapMatrix 432 #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 431 +#define FN_SwapMatrixColumn 433 #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 432 +#define FN_SwapMatrixRow 434 #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 433 +#define FN_TransposeMatrix 435 #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 434 +#define FN_UnAugmentMatrix 436 #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 435 +#define FN_ZeroMatrix 437 #define ZEROMATRIX_MA num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetMatrixSize 436 +#define FN_GetMatrixSize 438 #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 437 +#define FN_IncrementMatrixRows 439 #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 438 +#define FN_IncrementMatrixColumns 440 #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 439 +#define FN_JoinMatrixRows 441 #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 440 +#define FN_JoinMatrixColumns 442 #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 441 +#define FN_ClipMatrix 443 #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 442 +#define FN_SetMatrixTranslation 444 #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 443 +#define FN_SetMatrixRotation 445 #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 444 +#define FN_SetMatrixScale 446 #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 445 +#define FN_GetMatrixTranslation 447 #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 446 +#define FN_GetMatrixRotation 448 #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 447 +#define FN_GetMatrixScale 449 #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$ 448 -#define FN_SetClipboardText 449 +#define FN_GetClipboardText$ 450 +#define FN_SetClipboardText 451 #define SETCLIPBOARDTEXT_TXT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_HasClipboardText 450 -#define FN_ReadInput_Start 451 -#define FN_ReadInput_Stop 452 -#define FN_ReadInput_GetText$ 453 -#define FN_ReadInput_SetText 454 +#define FN_HasClipboardText 452 +#define FN_ReadInput_Start 453 +#define FN_ReadInput_Stop 454 +#define FN_ReadInput_GetText$ 455 +#define FN_ReadInput_SetText 456 #define READINPUT_SETTEXT_TXT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_ReadInput_ToggleBackspace 455 +#define FN_ReadInput_ToggleBackspace 457 #define READINPUT_TOGGLEBACKSPACE_FLAG num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_CreateSprite 456 +#define FN_CreateSprite 458 #define CREATESPRITE_IMG num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATESPRITE_FRAME_W num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATESPRITE_FRAME_H num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_DeleteSprite 457 +#define FN_DeleteSprite 459 #define DELETESPRITE_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpritePosition 458 +#define FN_SetSpritePosition 460 #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_TranslateSprite 459 +#define FN_TranslateSprite 461 #define TRANSLATESPRITE_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define TRANSLATESPRITE_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define TRANSLATESPRITE_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_GetSpritePosition 460 +#define FN_GetSpritePosition 462 #define GETSPRITEPOSITION_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITEPOSITION_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSPRITEPOSITION_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_SpriteX 461 +#define FN_SpriteX 463 #define SPRITEX_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SpriteY 462 +#define FN_SpriteY 464 #define SPRITEY_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpriteRotation 463 +#define FN_SetSpriteRotation 465 #define SETSPRITEROTATION_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEROTATION_ANGLE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_RotateSprite 464 +#define FN_RotateSprite 466 #define ROTATESPRITE_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define ROTATESPRITE_ANGLE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetSpriteRotation 465 +#define FN_GetSpriteRotation 467 #define GETSPRITEROTATION_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpriteScale 466 +#define FN_SetSpriteScale 468 #define SETSPRITESCALE_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITESCALE_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETSPRITESCALE_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_ScaleSprite 467 +#define FN_ScaleSprite 469 #define SCALESPRITE_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SCALESPRITE_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SCALESPRITE_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_GetSpriteScale 468 +#define FN_GetSpriteScale 470 #define GETSPRITESCALE_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITESCALE_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSPRITESCALE_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_SetSpriteZ 469 +#define FN_SetSpriteZ 471 #define SETSPRITEZ_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEZ_Z num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_SpriteZ 470 +#define FN_SpriteZ 472 #define SPRITEZ_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetSpriteSize 471 +#define FN_GetSpriteSize 473 #define GETSPRITESIZE_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITESIZE_W num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSPRITESIZE_H num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_SpriteWidth 472 +#define FN_SpriteWidth 474 #define SPRITEWIDTH_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SpriteHeight 473 +#define FN_SpriteHeight 475 #define SPRITEHEIGHT_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpriteVisible 474 +#define FN_SetSpriteVisible 476 #define SETSPRITEVISIBLE_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEVISIBLE_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_SpriteIsVisible 475 +#define FN_SpriteIsVisible 477 #define SPRITEISVISIBLE_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpriteSolid 476 +#define FN_SetSpriteSolid 478 #define SETSPRITESOLID_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITESOLID_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_SpriteIsSolid 477 +#define FN_SpriteIsSolid 479 #define SPRITEISSOLID_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpriteType 478 +#define FN_SetSpriteType 480 #define SETSPRITETYPE_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITETYPE_SPRITE_TYPE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetSpriteType 479 +#define FN_GetSpriteType 481 #define GETSPRITETYPE_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpriteSource 480 +#define FN_SetSpriteSource 482 #define SETSPRITESOURCE_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITESOURCE_IMG num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetSpriteSource 481 +#define FN_GetSpriteSource 483 #define GETSPRITESOURCE_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SpriteExists 482 +#define FN_SpriteExists 484 #define SPRITEEXISTS_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpriteColorMod 483 +#define FN_SetSpriteColorMod 485 #define SETSPRITECOLORMOD_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITECOLORMOD_COLOR num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_SetSpriteAlpha 484 +#define FN_SetSpriteAlpha 486 #define SETSPRITEALPHA_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEALPHA_ALPHA num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetSpriteColorMod 485 +#define FN_GetSpriteColorMod 487 #define GETSPRITECOLORMOD_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetSpriteAlpha 486 +#define FN_GetSpriteAlpha 488 #define GETSPRITEALPHA_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_CreateSpriteAnimation 487 +#define FN_CreateSpriteAnimation 489 #define CREATESPRITEANIMATION_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATESPRITEANIMATION_ANIM_LENGTH num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATESPRITEANIMATION_SPEED num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_SetSpriteFrame 488 +#define FN_SetSpriteFrame 490 #define SETSPRITEFRAME_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEFRAME_FRAME num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetSpriteFrame 489 +#define FN_GetSpriteFrame 491 #define GETSPRITEFRAME_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpriteAnimationFrame 490 +#define FN_SetSpriteAnimationFrame 492 #define SETSPRITEANIMATIONFRAME_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEANIMATIONFRAME_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETSPRITEANIMATIONFRAME_ANIM_FRAME num_var[2].nref[0].value[ num_var[2].byref_offset ] #define SETSPRITEANIMATIONFRAME_FRAME num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_GetSpriteAnimationFrame 491 +#define FN_GetSpriteAnimationFrame 493 #define GETSPRITEANIMATIONFRAME_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITEANIMATIONFRAME_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSPRITEANIMATIONFRAME_ANIM_FRAME num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_SetSpriteAnimationLength 492 +#define FN_SetSpriteAnimationLength 494 #define SETSPRITEANIMATIONLENGTH_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEANIMATIONLENGTH_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETSPRITEANIMATIONLENGTH_ANIM_LENGTH num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_GetSpriteAnimationLength 493 +#define FN_GetSpriteAnimationLength 495 #define GETSPRITEANIMATIONLENGTH_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITEANIMATIONLENGTH_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_SetSpriteAnimationSpeed 494 +#define FN_SetSpriteAnimationSpeed 496 #define SETSPRITEANIMATIONSPEED_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEANIMATIONSPEED_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETSPRITEANIMATIONSPEED_SPEED num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_GetSpriteAnimationSpeed 495 +#define FN_GetSpriteAnimationSpeed 497 #define GETSPRITEANIMATIONSPEED_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITEANIMATIONSPEED_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_SetSpriteAnimation 496 +#define FN_SetSpriteAnimation 498 #define SETSPRITEANIMATION_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEANIMATION_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETSPRITEANIMATION_NUM_LOOPS num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_GetSpriteAnimation 497 +#define FN_GetSpriteAnimation 499 #define GETSPRITEANIMATION_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetSpriteCurrentAnimationFrame 498 +#define FN_GetSpriteCurrentAnimationFrame 500 #define GETSPRITECURRENTANIMATIONFRAME_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_NumSpriteAnimationLoops 499 +#define FN_NumSpriteAnimationLoops 501 #define NUMSPRITEANIMATIONLOOPS_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SpriteAnimationIsPlaying 500 +#define FN_SpriteAnimationIsPlaying 502 #define SPRITEANIMATIONISPLAYING_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_DeleteSpriteAnimation 501 +#define FN_DeleteSpriteAnimation 503 #define DELETESPRITEANIMATION_SPRITE num_var[0].nref[0].value[ num_var[0].byref_offset ] #define DELETESPRITEANIMATION_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getSpriteCenter 502 +#define FN_getSpriteCenter 504 #define GETSPRITECENTER_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITECENTER_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSPRITECENTER_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_setSpriteLinearVelocity 503 +#define FN_setSpriteLinearVelocity 505 #define SETSPRITELINEARVELOCITY_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITELINEARVELOCITY_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETSPRITELINEARVELOCITY_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_getSpriteLinearVelocity 504 +#define FN_getSpriteLinearVelocity 506 #define GETSPRITELINEARVELOCITY_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITELINEARVELOCITY_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSPRITELINEARVELOCITY_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_setSpriteAngularVelocity 505 +#define FN_setSpriteAngularVelocity 507 #define SETSPRITEANGULARVELOCITY_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEANGULARVELOCITY_AV num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getSpriteAngularVelocity 506 +#define FN_getSpriteAngularVelocity 508 #define GETSPRITEANGULARVELOCITY_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_applySpriteForce 507 +#define FN_applySpriteForce 509 #define APPLYSPRITEFORCE_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define APPLYSPRITEFORCE_FX num_var[1].nref[0].value[ num_var[1].byref_offset ] #define APPLYSPRITEFORCE_FY num_var[2].nref[0].value[ num_var[2].byref_offset ] #define APPLYSPRITEFORCE_PX num_var[3].nref[0].value[ num_var[3].byref_offset ] #define APPLYSPRITEFORCE_PY num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_applySpriteCentralForce 508 +#define FN_applySpriteCentralForce 510 #define APPLYSPRITECENTRALFORCE_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define APPLYSPRITECENTRALFORCE_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define APPLYSPRITECENTRALFORCE_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_applySpriteTorque 509 +#define FN_applySpriteTorque 511 #define APPLYSPRITETORQUE_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define APPLYSPRITETORQUE_TORQUE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_applySpriteLinearImpulse 510 +#define FN_applySpriteLinearImpulse 512 #define APPLYSPRITELINEARIMPULSE_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define APPLYSPRITELINEARIMPULSE_IX num_var[1].nref[0].value[ num_var[1].byref_offset ] #define APPLYSPRITELINEARIMPULSE_IY num_var[2].nref[0].value[ num_var[2].byref_offset ] #define APPLYSPRITELINEARIMPULSE_PX num_var[3].nref[0].value[ num_var[3].byref_offset ] #define APPLYSPRITELINEARIMPULSE_PY num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_applySpriteAngularImpulse 511 +#define FN_applySpriteAngularImpulse 513 #define APPLYSPRITEANGULARIMPULSE_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define APPLYSPRITEANGULARIMPULSE_IMPULSE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getSpriteMass 512 +#define FN_getSpriteMass 514 #define GETSPRITEMASS_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSpriteInertia 513 +#define FN_getSpriteInertia 515 #define GETSPRITEINERTIA_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSpriteWorldPoint 514 +#define FN_getSpriteWorldPoint 516 #define GETSPRITEWORLDPOINT_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITEWORLDPOINT_LX num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSPRITEWORLDPOINT_LY num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETSPRITEWORLDPOINT_X num_var[3].nref[0].value[ num_var[3].byref_offset ] #define GETSPRITEWORLDPOINT_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_getSpriteWorldVector 515 +#define FN_getSpriteWorldVector 517 #define GETSPRITEWORLDVECTOR_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITEWORLDVECTOR_LX num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSPRITEWORLDVECTOR_LY num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETSPRITEWORLDVECTOR_X num_var[3].nref[0].value[ num_var[3].byref_offset ] #define GETSPRITEWORLDVECTOR_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_getSpriteLocalPoint 516 +#define FN_getSpriteLocalPoint 518 #define GETSPRITELOCALPOINT_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITELOCALPOINT_WX num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSPRITELOCALPOINT_WY num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETSPRITELOCALPOINT_X num_var[3].nref[0].value[ num_var[3].byref_offset ] #define GETSPRITELOCALPOINT_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_getSpriteLocalVector 517 +#define FN_getSpriteLocalVector 519 #define GETSPRITELOCALVECTOR_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITELOCALVECTOR_WX num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSPRITELOCALVECTOR_WY num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETSPRITELOCALVECTOR_X num_var[3].nref[0].value[ num_var[3].byref_offset ] #define GETSPRITELOCALVECTOR_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_getSpriteLinearVelocityFromLocalPoint 518 +#define FN_getSpriteLinearVelocityFromLocalPoint 520 #define GETSPRITELINEARVELOCITYFROMLOCALPOINT_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITELINEARVELOCITYFROMLOCALPOINT_PX num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSPRITELINEARVELOCITYFROMLOCALPOINT_PY num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETSPRITELINEARVELOCITYFROMLOCALPOINT_X num_var[3].nref[0].value[ num_var[3].byref_offset ] #define GETSPRITELINEARVELOCITYFROMLOCALPOINT_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_getSpriteLinearVelocityFromWorldPoint 519 +#define FN_getSpriteLinearVelocityFromWorldPoint 521 #define GETSPRITELINEARVELOCITYFROMWORLDPOINT_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITELINEARVELOCITYFROMWORLDPOINT_WX num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSPRITELINEARVELOCITYFROMWORLDPOINT_WY num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETSPRITELINEARVELOCITYFROMWORLDPOINT_X num_var[3].nref[0].value[ num_var[3].byref_offset ] #define GETSPRITELINEARVELOCITYFROMWORLDPOINT_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_getSpriteLinearDamping 520 +#define FN_getSpriteLinearDamping 522 #define GETSPRITELINEARDAMPING_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setSpriteLinearDamping 521 +#define FN_setSpriteLinearDamping 523 #define SETSPRITELINEARDAMPING_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITELINEARDAMPING_LINEARDAMPING num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getSpriteAngularDamping 522 +#define FN_getSpriteAngularDamping 524 #define GETSPRITEANGULARDAMPING_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setSpriteAngularDamping 523 +#define FN_setSpriteAngularDamping 525 #define SETSPRITEANGULARDAMPING_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEANGULARDAMPING_ANGULARDAMPING num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getSpriteGravityScale 524 +#define FN_getSpriteGravityScale 526 #define GETSPRITEGRAVITYSCALE_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setSpriteGravityScale 525 +#define FN_setSpriteGravityScale 527 #define SETSPRITEGRAVITYSCALE_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEGRAVITYSCALE_G_SCALE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSpriteBullet 526 +#define FN_setSpriteBullet 528 #define SETSPRITEBULLET_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEBULLET_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_spriteIsBullet 527 +#define FN_spriteIsBullet 529 #define SPRITEISBULLET_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setSpriteSleepAllowed 528 +#define FN_setSpriteSleepAllowed 530 #define SETSPRITESLEEPALLOWED_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITESLEEPALLOWED_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_spriteSleepAllowed 529 +#define FN_spriteSleepAllowed 531 #define SPRITESLEEPALLOWED_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setSpriteAwake 530 +#define FN_setSpriteAwake 532 #define SETSPRITEAWAKE_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEAWAKE_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_spriteIsAwake 531 +#define FN_spriteIsAwake 533 #define SPRITEISAWAKE_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setSpriteFixedRotation 532 +#define FN_setSpriteFixedRotation 534 #define SETSPRITEFIXEDROTATION_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEFIXEDROTATION_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_spriteIsFixedRotation 533 +#define FN_spriteIsFixedRotation 535 #define SPRITEISFIXEDROTATION_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpriteDensity 534 +#define FN_SetSpriteDensity 536 #define SETSPRITEDENSITY_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEDENSITY_DENSITY num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetSpriteDensity 535 +#define FN_GetSpriteDensity 537 #define GETSPRITEDENSITY_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpriteFriction 536 +#define FN_SetSpriteFriction 538 #define SETSPRITEFRICTION_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEFRICTION_FRICTION num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetSpriteFriction 537 +#define FN_GetSpriteFriction 539 #define GETSPRITEFRICTION_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpriteRestitution 538 +#define FN_SetSpriteRestitution 540 #define SETSPRITERESTITUTION_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITERESTITUTION_RESTITUTION num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetSpriteRestitution 539 +#define FN_GetSpriteRestitution 541 #define GETSPRITERESTITUTION_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpriteRestitutionThreshold 540 +#define FN_SetSpriteRestitutionThreshold 542 #define SETSPRITERESTITUTIONTHRESHOLD_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITERESTITUTIONTHRESHOLD_THRESHOLD num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetSpriteRestitutionThreshold 541 +#define FN_GetSpriteRestitutionThreshold 543 #define GETSPRITERESTITUTIONTHRESHOLD_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetSpriteAABB 542 +#define FN_GetSpriteAABB 544 #define GETSPRITEAABB_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITEAABB_X1 num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSPRITEAABB_Y1 num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETSPRITEAABB_X2 num_var[3].nref[0].value[ num_var[3].byref_offset ] #define GETSPRITEAABB_Y2 num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_SetGravity2D 543 +#define FN_SetGravity2D 545 #define SETGRAVITY2D_X num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETGRAVITY2D_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetGravity2D 544 +#define FN_GetGravity2D 546 #define GETGRAVITY2D_X num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETGRAVITY2D_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_SetWorld2DTimeStep 545 +#define FN_SetWorld2DTimeStep 547 #define SETWORLD2DTIMESTEP_TS num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetWorld2DVelocityIterations 546 +#define FN_SetWorld2DVelocityIterations 548 #define SETWORLD2DVELOCITYITERATIONS_V num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetWorld2DPositionIterations 547 +#define FN_SetWorld2DPositionIterations 549 #define SETWORLD2DPOSITIONITERATIONS_P num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetWorld2DTimeStep 548 -#define FN_GetWorld2DVelocityIterations 549 -#define FN_GetWorld2DPositionIterations 550 -#define FN_SetWorld2DAutoClearForces 551 +#define FN_GetWorld2DTimeStep 550 +#define FN_GetWorld2DVelocityIterations 551 +#define FN_GetWorld2DPositionIterations 552 +#define FN_SetWorld2DAutoClearForces 553 #define SETWORLD2DAUTOCLEARFORCES_FLAG num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetWorld2DAutoClearForces 552 -#define FN_CastRay2D 553 +#define FN_GetWorld2DAutoClearForces 554 +#define FN_CastRay2D 555 #define CASTRAY2D_FROM_X num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CASTRAY2D_FROM_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CASTRAY2D_TO_X num_var[2].nref[0].value[ num_var[2].byref_offset ] #define CASTRAY2D_TO_Y num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_CastRay2D_All 554 +#define FN_CastRay2D_All 556 #define CASTRAY2D_ALL_FROM_X num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CASTRAY2D_ALL_FROM_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CASTRAY2D_ALL_TO_X num_var[2].nref[0].value[ num_var[2].byref_offset ] #define CASTRAY2D_ALL_TO_Y num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_GetRayHit2D 555 +#define FN_GetRayHit2D 557 #define GETRAYHIT2D_INDEX num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETRAYHIT2D_SPR_ID num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETRAYHIT2D_X num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETRAYHIT2D_Y num_var[3].nref[0].value[ num_var[3].byref_offset ] #define GETRAYHIT2D_NORMAL_X num_var[4].nref[0].value[ num_var[4].byref_offset ] #define GETRAYHIT2D_NORMAL_Y num_var[5].nref[0].value[ num_var[5].byref_offset ] -#define FN_SetSpriteCollisionShape 556 -#define SETSPRITECOLLISIONSHAPE_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define SETSPRITECOLLISIONSHAPE_SHAPE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetSpriteCollisionShape 557 -#define GETSPRITECOLLISIONSHAPE_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpriteRadius 558 +#define FN_SetSpriteShape 558 +#define SETSPRITESHAPE_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETSPRITESHAPE_SHAPE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetSpriteShape 559 +#define GETSPRITESHAPE_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetSpriteRadius 560 #define SETSPRITERADIUS_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITERADIUS_RADIUS num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetSpriteRadius 559 +#define FN_GetSpriteRadius 561 #define GETSPRITERADIUS_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetSpriteBox 560 +#define FN_SetSpriteBox 562 #define SETSPRITEBOX_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEBOX_W num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETSPRITEBOX_H num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_GetSpriteBoxSize 561 +#define FN_GetSpriteBoxSize 563 #define GETSPRITEBOXSIZE_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSPRITEBOXSIZE_W num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSPRITEBOXSIZE_H num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_SetSpriteChain 562 +#define FN_SetSpriteChain 564 #define SETSPRITECHAIN_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITECHAIN_VX num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETSPRITECHAIN_VY num_var[2].nref[0].value[ num_var[2].byref_offset ] @@ -1649,17 +1653,25 @@ #define SETSPRITECHAIN_PREV_Y num_var[5].nref[0].value[ num_var[5].byref_offset ] #define SETSPRITECHAIN_NEXT_X num_var[6].nref[0].value[ num_var[6].byref_offset ] #define SETSPRITECHAIN_NEXT_Y num_var[7].nref[0].value[ num_var[7].byref_offset ] -#define FN_SetSpriteChainLoop 563 +#define FN_SetSpriteChainLoop 565 #define SETSPRITECHAINLOOP_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITECHAINLOOP_VX num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETSPRITECHAINLOOP_VY num_var[2].nref[0].value[ num_var[2].byref_offset ] #define SETSPRITECHAINLOOP_V_COUNT num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_SetSpritePolygon 564 +#define FN_SetSpritePolygon 566 #define SETSPRITEPOLYGON_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSPRITEPOLYGON_VX num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETSPRITEPOLYGON_VY num_var[2].nref[0].value[ num_var[2].byref_offset ] #define SETSPRITEPOLYGON_V_COUNT num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_createDistanceJoint 565 +#define FN_SetSpriteShapeOffset 567 +#define SETSPRITESHAPEOFFSET_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETSPRITESHAPEOFFSET_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETSPRITESHAPEOFFSET_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_GetSpriteShapeOffset 568 +#define GETSPRITESHAPEOFFSET_SPR_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETSPRITESHAPEOFFSET_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETSPRITESHAPEOFFSET_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_createDistanceJoint 569 #define CREATEDISTANCEJOINT_SPRITEA num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATEDISTANCEJOINT_SPRITEB num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATEDISTANCEJOINT_AX num_var[2].nref[0].value[ num_var[2].byref_offset ] @@ -1667,22 +1679,22 @@ #define CREATEDISTANCEJOINT_BX num_var[4].nref[0].value[ num_var[4].byref_offset ] #define CREATEDISTANCEJOINT_BY num_var[5].nref[0].value[ num_var[5].byref_offset ] #define CREATEDISTANCEJOINT_COLLIDE_CONNECT num_var[6].nref[0].value[ num_var[6].byref_offset ] -#define FN_createFrictionJoint 566 +#define FN_createFrictionJoint 570 #define CREATEFRICTIONJOINT_SPRITEA num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATEFRICTIONJOINT_SPRITEB num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATEFRICTIONJOINT_X num_var[2].nref[0].value[ num_var[2].byref_offset ] #define CREATEFRICTIONJOINT_Y num_var[3].nref[0].value[ num_var[3].byref_offset ] #define CREATEFRICTIONJOINT_COLLIDE_CONNECT num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_createGearJoint 567 +#define FN_createGearJoint 571 #define CREATEGEARJOINT_JOINTA num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATEGEARJOINT_JOINTB num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATEGEARJOINT_G_RATIO num_var[2].nref[0].value[ num_var[2].byref_offset ] #define CREATEGEARJOINT_COLLIDE_CONNECT num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_createMotorJoint 568 +#define FN_createMotorJoint 572 #define CREATEMOTORJOINT_SPRITEA num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATEMOTORJOINT_SPRITEB num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATEMOTORJOINT_COLLIDE_CONNECT num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_createPrismaticJoint 569 +#define FN_createPrismaticJoint 573 #define CREATEPRISMATICJOINT_SPRITEA num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATEPRISMATICJOINT_SPRITEB num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATEPRISMATICJOINT_AX num_var[2].nref[0].value[ num_var[2].byref_offset ] @@ -1690,7 +1702,7 @@ #define CREATEPRISMATICJOINT_AXISX num_var[4].nref[0].value[ num_var[4].byref_offset ] #define CREATEPRISMATICJOINT_AXISY num_var[5].nref[0].value[ num_var[5].byref_offset ] #define CREATEPRISMATICJOINT_COLLIDE_CONNECT num_var[6].nref[0].value[ num_var[6].byref_offset ] -#define FN_createPulleyJoint 570 +#define FN_createPulleyJoint 574 #define CREATEPULLEYJOINT_SPRITEA num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATEPULLEYJOINT_SPRITEB num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATEPULLEYJOINT_GAX num_var[2].nref[0].value[ num_var[2].byref_offset ] @@ -1703,19 +1715,19 @@ #define CREATEPULLEYJOINT_BY num_var[9].nref[0].value[ num_var[9].byref_offset ] #define CREATEPULLEYJOINT_J_RATIO num_var[10].nref[0].value[ num_var[10].byref_offset ] #define CREATEPULLEYJOINT_COLLIDE_CONNECT num_var[11].nref[0].value[ num_var[11].byref_offset ] -#define FN_createRevoluteJoint 571 +#define FN_createRevoluteJoint 575 #define CREATEREVOLUTEJOINT_SPRITEA num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATEREVOLUTEJOINT_SPRITEB num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATEREVOLUTEJOINT_X num_var[2].nref[0].value[ num_var[2].byref_offset ] #define CREATEREVOLUTEJOINT_Y num_var[3].nref[0].value[ num_var[3].byref_offset ] #define CREATEREVOLUTEJOINT_COLLIDE_CONNECT num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_createWeldJoint 572 +#define FN_createWeldJoint 576 #define CREATEWELDJOINT_SPRITEA num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATEWELDJOINT_SPRITEB num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATEWELDJOINT_X num_var[2].nref[0].value[ num_var[2].byref_offset ] #define CREATEWELDJOINT_Y num_var[3].nref[0].value[ num_var[3].byref_offset ] #define CREATEWELDJOINT_COLLIDE_CONNECT num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_createWheelJoint 573 +#define FN_createWheelJoint 577 #define CREATEWHEELJOINT_SPRITEA num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATEWHEELJOINT_SPRITEB num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATEWHEELJOINT_AX num_var[2].nref[0].value[ num_var[2].byref_offset ] @@ -1723,225 +1735,225 @@ #define CREATEWHEELJOINT_AXISX num_var[4].nref[0].value[ num_var[4].byref_offset ] #define CREATEWHEELJOINT_AXISY num_var[5].nref[0].value[ num_var[5].byref_offset ] #define CREATEWHEELJOINT_COLLIDE_CONNECT num_var[6].nref[0].value[ num_var[6].byref_offset ] -#define FN_getJointWorldAnchorA 574 +#define FN_getJointWorldAnchorA 578 #define GETJOINTWORLDANCHORA_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETJOINTWORLDANCHORA_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETJOINTWORLDANCHORA_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_getJointWorldAnchorB 575 +#define FN_getJointWorldAnchorB 579 #define GETJOINTWORLDANCHORB_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETJOINTWORLDANCHORB_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETJOINTWORLDANCHORB_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_getJointReactionForce 576 +#define FN_getJointReactionForce 580 #define GETJOINTREACTIONFORCE_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETJOINTREACTIONFORCE_INV_DT num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETJOINTREACTIONFORCE_X num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETJOINTREACTIONFORCE_Y num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_getJointReactionTorque 577 +#define FN_getJointReactionTorque 581 #define GETJOINTREACTIONTORQUE_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETJOINTREACTIONTORQUE_INV_DT num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointLocalAnchorA 578 +#define FN_getJointLocalAnchorA 582 #define GETJOINTLOCALANCHORA_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETJOINTLOCALANCHORA_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETJOINTLOCALANCHORA_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_getJointLocalAnchorB 579 +#define FN_getJointLocalAnchorB 583 #define GETJOINTLOCALANCHORB_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETJOINTLOCALANCHORB_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETJOINTLOCALANCHORB_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_setJointLength 580 +#define FN_setJointLength 584 #define SETJOINTLENGTH_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTLENGTH_JLEN num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointLength 581 +#define FN_getJointLength 585 #define GETJOINTLENGTH_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setJointMinLength 582 +#define FN_setJointMinLength 586 #define SETJOINTMINLENGTH_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTMINLENGTH_JLEN num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointMinLength 583 +#define FN_getJointMinLength 587 #define GETJOINTMINLENGTH_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setJointMaxLength 584 +#define FN_setJointMaxLength 588 #define SETJOINTMAXLENGTH_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTMAXLENGTH_JLEN num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointMaxLength 585 +#define FN_getJointMaxLength 589 #define GETJOINTMAXLENGTH_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getJointCurrentLength 586 +#define FN_getJointCurrentLength 590 #define GETJOINTCURRENTLENGTH_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setJointStiffness 587 +#define FN_setJointStiffness 591 #define SETJOINTSTIFFNESS_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTSTIFFNESS_STIFFNESS num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointStiffness 588 +#define FN_getJointStiffness 592 #define GETJOINTSTIFFNESS_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setJointDamping 589 +#define FN_setJointDamping 593 #define SETJOINTDAMPING_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTDAMPING_DAMPING num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointDamping 590 +#define FN_getJointDamping 594 #define GETJOINTDAMPING_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setJointMaxForce 591 +#define FN_setJointMaxForce 595 #define SETJOINTMAXFORCE_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTMAXFORCE_FORCE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointMaxForce 592 +#define FN_getJointMaxForce 596 #define GETJOINTMAXFORCE_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setJointMaxTorque 593 +#define FN_setJointMaxTorque 597 #define SETJOINTMAXTORQUE_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTMAXTORQUE_TORQUE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointMaxTorque 594 +#define FN_getJointMaxTorque 598 #define GETJOINTMAXTORQUE_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setJointCorrectionFactor 595 +#define FN_setJointCorrectionFactor 599 #define SETJOINTCORRECTIONFACTOR_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTCORRECTIONFACTOR_FACTOR num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointCorrectionFactor 596 +#define FN_getJointCorrectionFactor 600 #define GETJOINTCORRECTIONFACTOR_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setJointRatio 597 +#define FN_setJointRatio 601 #define SETJOINTRATIO_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTRATIO_J_RATIO num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointRatio 598 +#define FN_getJointRatio 602 #define GETJOINTRATIO_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setJointLinearOffset 599 +#define FN_setJointLinearOffset 603 #define SETJOINTLINEAROFFSET_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTLINEAROFFSET_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETJOINTLINEAROFFSET_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_getJointLinearOffset 600 +#define FN_getJointLinearOffset 604 #define GETJOINTLINEAROFFSET_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETJOINTLINEAROFFSET_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETJOINTLINEAROFFSET_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_setJointAngularOffset 601 +#define FN_setJointAngularOffset 605 #define SETJOINTANGULAROFFSET_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTANGULAROFFSET_ANGLEOFFSET num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointAngularOffset 602 +#define FN_getJointAngularOffset 606 #define GETJOINTANGULAROFFSET_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getJointLocalAxisA 603 +#define FN_getJointLocalAxisA 607 #define GETJOINTLOCALAXISA_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETJOINTLOCALAXISA_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETJOINTLOCALAXISA_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_getJointReferenceAngle 604 +#define FN_getJointReferenceAngle 608 #define GETJOINTREFERENCEANGLE_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getJointTranslation 605 +#define FN_getJointTranslation 609 #define GETJOINTTRANSLATION_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getJointSpeed 606 +#define FN_getJointSpeed 610 #define GETJOINTSPEED_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_jointIsLimitEnabled 607 +#define FN_jointIsLimitEnabled 611 #define JOINTISLIMITENABLED_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_enableJointLimit 608 +#define FN_enableJointLimit 612 #define ENABLEJOINTLIMIT_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define ENABLEJOINTLIMIT_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointLowerLimit 609 +#define FN_getJointLowerLimit 613 #define GETJOINTLOWERLIMIT_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getJointUpperLimit 610 +#define FN_getJointUpperLimit 614 #define GETJOINTUPPERLIMIT_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setJointLimits 611 +#define FN_setJointLimits 615 #define SETJOINTLIMITS_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTLIMITS_LOWER_LIMIT num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETJOINTLIMITS_UPPER_LIMIT num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_jointMotorIsEnabled 612 +#define FN_jointMotorIsEnabled 616 #define JOINTMOTORISENABLED_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_enableJointMotor 613 +#define FN_enableJointMotor 617 #define ENABLEJOINTMOTOR_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define ENABLEJOINTMOTOR_FLAG num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setJointMotorSpeed 614 +#define FN_setJointMotorSpeed 618 #define SETJOINTMOTORSPEED_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTMOTORSPEED_SPEED num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointMotorSpeed 615 +#define FN_getJointMotorSpeed 619 #define GETJOINTMOTORSPEED_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setJointMaxMotorForce 616 +#define FN_setJointMaxMotorForce 620 #define SETJOINTMAXMOTORFORCE_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTMAXMOTORFORCE_FORCE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointMaxMotorForce 617 +#define FN_getJointMaxMotorForce 621 #define GETJOINTMAXMOTORFORCE_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getJointMotorForce 618 +#define FN_getJointMotorForce 622 #define GETJOINTMOTORFORCE_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETJOINTMOTORFORCE_INV_DT num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setJointMaxMotorTorque 619 +#define FN_setJointMaxMotorTorque 623 #define SETJOINTMAXMOTORTORQUE_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTMAXMOTORTORQUE_TORQUE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointMaxMotorTorque 620 +#define FN_getJointMaxMotorTorque 624 #define GETJOINTMAXMOTORTORQUE_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getJointMotorTorque 621 +#define FN_getJointMotorTorque 625 #define GETJOINTMOTORTORQUE_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETJOINTMOTORTORQUE_INV_DT num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getJointGroundAnchorA 622 +#define FN_getJointGroundAnchorA 626 #define GETJOINTGROUNDANCHORA_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETJOINTGROUNDANCHORA_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETJOINTGROUNDANCHORA_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_getJointGroundAnchorB 623 +#define FN_getJointGroundAnchorB 627 #define GETJOINTGROUNDANCHORB_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETJOINTGROUNDANCHORB_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETJOINTGROUNDANCHORB_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_getJointLengthA 624 +#define FN_getJointLengthA 628 #define GETJOINTLENGTHA_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getJointLengthB 625 +#define FN_getJointLengthB 629 #define GETJOINTLENGTHB_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getJointCurrentLengthA 626 +#define FN_getJointCurrentLengthA 630 #define GETJOINTCURRENTLENGTHA_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getJointCurrentLengthB 627 +#define FN_getJointCurrentLengthB 631 #define GETJOINTCURRENTLENGTHB_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setJointOrigin 628 +#define FN_setJointOrigin 632 #define SETJOINTORIGIN_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETJOINTORIGIN_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETJOINTORIGIN_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_getJointAngle 629 +#define FN_getJointAngle 633 #define GETJOINTANGLE_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getJointLinearSpeed 630 +#define FN_getJointLinearSpeed 634 #define GETJOINTLINEARSPEED_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getJointAngularSpeed 631 +#define FN_getJointAngularSpeed 635 #define GETJOINTANGULARSPEED_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_DeleteJoint 632 +#define FN_DeleteJoint 636 #define DELETEJOINT_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_JointExists 633 +#define FN_JointExists 637 #define JOINTEXISTS_JOINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_CreateTileSet 634 +#define FN_CreateTileSet 638 #define CREATETILESET_IMG_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATETILESET_TILE_W num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATETILESET_TILE_H num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_SetTileAnimationLength 635 +#define FN_SetTileAnimationLength 639 #define SETTILEANIMATIONLENGTH_TILESET num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETTILEANIMATIONLENGTH_BASE_TILE num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETTILEANIMATIONLENGTH_NUM_FRAMES num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_GetTileAnimationLength 636 +#define FN_GetTileAnimationLength 640 #define GETTILEANIMATIONLENGTH_TILESET num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETTILEANIMATIONLENGTH_BASE_TILE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_SetTileAnimationFrame 637 +#define FN_SetTileAnimationFrame 641 #define SETTILEANIMATIONFRAME_TILESET num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETTILEANIMATIONFRAME_BASE_TILE num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETTILEANIMATIONFRAME_ANIM_FRAME num_var[2].nref[0].value[ num_var[2].byref_offset ] #define SETTILEANIMATIONFRAME_TILE_FRAME num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_GetTileAnimationFrame 638 +#define FN_GetTileAnimationFrame 642 #define GETTILEANIMATIONFRAME_TILESET num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETTILEANIMATIONFRAME_BASE_TILE num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETTILEANIMATIONFRAME_ANIM_FRAME num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_SetTileAnimationSpeed 639 +#define FN_SetTileAnimationSpeed 643 #define SETTILEANIMATIONSPEED_TILESET num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETTILEANIMATIONSPEED_BASE_TILE num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETTILEANIMATIONSPEED_SPEED num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_GetTileAnimationSpeed 640 +#define FN_GetTileAnimationSpeed 644 #define GETTILEANIMATIONSPEED_TILESET num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETTILEANIMATIONSPEED_BASE_TILE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_CreateTileMap 641 +#define FN_CreateTileMap 645 #define CREATETILEMAP_TILESET num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATETILEMAP_WIDTHINTILES num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATETILEMAP_HEIGHTINTILES num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_SetTileMapSize 642 +#define FN_SetTileMapSize 646 #define SETTILEMAPSIZE_TILEMAP num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETTILEMAPSIZE_WIDTHINTILES num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETTILEMAPSIZE_HEIGHTINTILES num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_GetTileMapSize 643 +#define FN_GetTileMapSize 647 #define GETTILEMAPSIZE_TILEMAP num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETTILEMAPSIZE_WIDTHINTILES num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETTILEMAPSIZE_HEIGHTINTILES num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_SetTile 644 +#define FN_SetTile 648 #define SETTILE_TILEMAP num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETTILE_TILE num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETTILE_X num_var[2].nref[0].value[ num_var[2].byref_offset ] #define SETTILE_Y num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_GetTile 645 +#define FN_GetTile 649 #define GETTILE_TILEMAP num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETTILE_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETTILE_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_FillTile 646 +#define FN_FillTile 650 #define FILLTILE_TILEMAP num_var[0].nref[0].value[ num_var[0].byref_offset ] #define FILLTILE_TILE num_var[1].nref[0].value[ num_var[1].byref_offset ] #define FILLTILE_X num_var[2].nref[0].value[ num_var[2].byref_offset ] #define FILLTILE_Y num_var[3].nref[0].value[ num_var[3].byref_offset ] #define FILLTILE_WIDTHINTILES num_var[4].nref[0].value[ num_var[4].byref_offset ] #define FILLTILE_HEIGHTINTILES num_var[5].nref[0].value[ num_var[5].byref_offset ] -#define FN_DrawTileMap 647 +#define FN_DrawTileMap 651 #define DRAWTILEMAP_TILEMAP num_var[0].nref[0].value[ num_var[0].byref_offset ] #define DRAWTILEMAP_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define DRAWTILEMAP_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] @@ -1949,16 +1961,20 @@ #define DRAWTILEMAP_H num_var[4].nref[0].value[ num_var[4].byref_offset ] #define DRAWTILEMAP_OFFSET_X num_var[5].nref[0].value[ num_var[5].byref_offset ] #define DRAWTILEMAP_OFFSET_Y num_var[6].nref[0].value[ num_var[6].byref_offset ] -#define FN_DeleteTileSet 648 +#define FN_DeleteTileSet 652 #define DELETETILESET_TILESET num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_DeleteTileMap 649 +#define FN_DeleteTileMap 653 #define DELETETILEMAP_TILEMAP num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_LoadMesh 650 +#define FN_TileSetExists 654 +#define TILESETEXISTS_TILESET num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_TileMapExists 655 +#define TILEMAPEXISTS_TILEMAP num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_LoadMesh 656 #define LOADMESH_MESH_FILE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_DeleteMesh 651 +#define FN_DeleteMesh 657 #define DELETEMESH_MESH num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_CreateMesh 652 -#define FN_AddMeshBuffer 653 +#define FN_CreateMesh 658 +#define FN_AddMeshBuffer 659 #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 ] @@ -1966,39 +1982,39 @@ #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 654 +#define FN_LoadMeshFromArchive 660 #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_CreatePlaneMesh 655 +#define FN_CreatePlaneMesh 661 #define CREATEPLANEMESH_W num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATEPLANEMESH_H num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATEPLANEMESH_TILECOUNT_W num_var[2].nref[0].value[ num_var[2].byref_offset ] #define CREATEPLANEMESH_TILECOUNT_H num_var[3].nref[0].value[ num_var[3].byref_offset ] #define CREATEPLANEMESH_TXREPEAT_X num_var[4].nref[0].value[ num_var[4].byref_offset ] #define CREATEPLANEMESH_TXREPEAT_Y num_var[5].nref[0].value[ num_var[5].byref_offset ] -#define FN_LoadAN8 656 +#define FN_LoadAN8 662 #define LOADAN8_AN8_FILE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_LoadMeshFromAN8 657 +#define FN_LoadMeshFromAN8 663 #define LOADMESHFROMAN8_AN8_PROJECT num_var[0].nref[0].value[ num_var[0].byref_offset ] #define LOADMESHFROMAN8_AN8_SCENE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_GetNumAN8Scenes 658 +#define FN_GetNumAN8Scenes 664 #define GETNUMAN8SCENES_AN8_PROJECT num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetAN8SceneName$ 659 +#define FN_GetAN8SceneName$ 665 #define GETAN8SCENENAME$_AN8_PROJECT num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETAN8SCENENAME$_SCENE_NUM num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_CreateConeMesh 660 +#define FN_CreateConeMesh 666 #define CREATECONEMESH_RADIUS num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATECONEMESH_CONE_LENGTH num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATECONEMESH_TESSELATION num_var[2].nref[0].value[ num_var[2].byref_offset ] #define CREATECONEMESH_TOP_COLOR num_var[3].nref[0].value[ num_var[3].byref_offset ] #define CREATECONEMESH_BOTTOM_COLOR num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_CreateCylinderMesh 661 +#define FN_CreateCylinderMesh 667 #define CREATECYLINDERMESH_RADIUS num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATECYLINDERMESH_CYLINDER_LENGTH num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATECYLINDERMESH_TESSELATION num_var[2].nref[0].value[ num_var[2].byref_offset ] #define CREATECYLINDERMESH_COLOR num_var[3].nref[0].value[ num_var[3].byref_offset ] #define CREATECYLINDERMESH_CLOSE_TOP num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_CreateVolumeLightMesh 662 +#define FN_CreateVolumeLightMesh 668 #define CREATEVOLUMELIGHTMESH_U num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATEVOLUMELIGHTMESH_V num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATEVOLUMELIGHTMESH_FOOT_COLOR num_var[2].nref[0].value[ num_var[2].byref_offset ] @@ -2007,260 +2023,261 @@ #define CREATEVOLUMELIGHTMESH_DIM_X num_var[5].nref[0].value[ num_var[5].byref_offset ] #define CREATEVOLUMELIGHTMESH_DIM_Y num_var[6].nref[0].value[ num_var[6].byref_offset ] #define CREATEVOLUMELIGHTMESH_DIM_Z num_var[7].nref[0].value[ num_var[7].byref_offset ] -#define FN_DeleteAN8 663 +#define FN_DeleteAN8 669 #define DELETEAN8_AN8_PROJECT num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_CreateAnimatedActor 664 +#define FN_CreateAnimatedActor 670 #define CREATEANIMATEDACTOR_MESH num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_CreateOctreeActor 665 +#define FN_CreateOctreeActor 671 #define CREATEOCTREEACTOR_MESH num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_CreateCubeActor 666 +#define FN_CreateCubeActor 672 #define CREATECUBEACTOR_CUBE_SIZE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_CreateSphereActor 667 +#define FN_CreateSphereActor 673 #define CREATESPHEREACTOR_RADIUS num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_CreateWaterActor 668 +#define FN_CreateWaterActor 674 #define CREATEWATERACTOR_MESH num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATEWATERACTOR_WAVEHEIGHT num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATEWATERACTOR_WAVESPEED num_var[2].nref[0].value[ num_var[2].byref_offset ] #define CREATEWATERACTOR_WAVELENGTH num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_CreateLightActor 669 -#define FN_CreateBillboardActor 670 -#define FN_CreateTerrainActor 671 +#define FN_CreateLightActor 675 +#define FN_CreateBillboardActor 676 +#define FN_CreateTerrainActor 677 #define CREATETERRAINACTOR_HMAP_FILE$ str_var[0].sref[0].value[ str_var[0].byref_offset ] -#define FN_CreateParticleActor 672 +#define FN_CreateParticleActor 678 #define CREATEPARTICLEACTOR_PARTICLE_TYPE num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_DeleteActor 673 +#define FN_DeleteActor 679 #define DELETEACTOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetActorTransform 674 +#define FN_GetActorTransform 680 #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 675 +#define FN_SetActorPosition 681 #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_TranslateActorLocal 676 +#define FN_TranslateActorLocal 682 #define TRANSLATEACTORLOCAL_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define TRANSLATEACTORLOCAL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define TRANSLATEACTORLOCAL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] #define TRANSLATEACTORLOCAL_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_TranslateActorWorld 677 +#define FN_TranslateActorWorld 683 #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 678 +#define FN_GetActorPosition 684 #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 679 +#define FN_SetActorScale 685 #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 680 +#define FN_ScaleActor 686 #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 681 +#define FN_GetActorScale 687 #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 682 +#define FN_SetActorRotation 688 #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 683 +#define FN_RotateActor 689 #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 684 +#define FN_GetActorRotation 690 #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 685 +#define FN_SetActorVisible 691 #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 686 +#define FN_ActorIsVisible 692 #define ACTORISVISIBLE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetActorAutoCulling 687 +#define FN_SetActorAutoCulling 693 #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 688 +#define FN_GetActorAutoCulling 694 #define GETACTORAUTOCULLING_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_AddActorShadow 689 +#define FN_AddActorShadow 695 #define ADDACTORSHADOW_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_RemoveActorShadow 690 +#define FN_RemoveActorShadow 696 #define REMOVEACTORSHADOW_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_ActorExists 691 +#define FN_ActorExists 697 #define ACTOREXISTS_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_CreateActorAnimation 692 +#define FN_CreateProjectorActor 698 +#define FN_CreateActorAnimation 699 #define CREATEACTORANIMATION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATEACTORANIMATION_START_FRAME num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATEACTORANIMATION_END_FRAME num_var[2].nref[0].value[ num_var[2].byref_offset ] #define CREATEACTORANIMATION_SPEED num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_SetActorAnimation 693 +#define FN_SetActorAnimation 700 #define SETACTORANIMATION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETACTORANIMATION_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETACTORANIMATION_NUM_LOOPS num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_SetActorAnimationSpeed 694 +#define FN_SetActorAnimationSpeed 701 #define SETACTORANIMATIONSPEED_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETACTORANIMATIONSPEED_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETACTORANIMATIONSPEED_SPEED num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_SetActorAnimationFrames 695 +#define FN_SetActorAnimationFrames 702 #define SETACTORANIMATIONFRAMES_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETACTORANIMATIONFRAMES_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETACTORANIMATIONFRAMES_START_FRAME num_var[2].nref[0].value[ num_var[2].byref_offset ] #define SETACTORANIMATIONFRAMES_END_FRAME num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_GetActorCurrentAnimation 696 +#define FN_GetActorCurrentAnimation 703 #define GETACTORCURRENTANIMATION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetActorAnimationSpeed 697 +#define FN_GetActorAnimationSpeed 704 #define GETACTORANIMATIONSPEED_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETACTORANIMATIONSPEED_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetActorAnimationStartFrame 698 +#define FN_GetActorAnimationStartFrame 705 #define GETACTORANIMATIONSTARTFRAME_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETACTORANIMATIONSTARTFRAME_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetActorAnimationEndFrame 699 +#define FN_GetActorAnimationEndFrame 706 #define GETACTORANIMATIONENDFRAME_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETACTORANIMATIONENDFRAME_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_SetActorFrame 700 +#define FN_SetActorFrame 707 #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_GetActorFrame 701 +#define FN_GetActorFrame 708 #define GETACTORFRAME_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_ActorAnimationIsPlaying 702 +#define FN_ActorAnimationIsPlaying 709 #define ACTORANIMATIONISPLAYING_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_NumActorAnimationLoops 703 +#define FN_NumActorAnimationLoops 710 #define NUMACTORANIMATIONLOOPS_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetActorMD2Animation 704 +#define FN_SetActorMD2Animation 711 #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 SETACTORMD2ANIMATION_NUM_LOOPS num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_SetActorMD2AnimationByName 705 +#define FN_SetActorMD2AnimationByName 712 #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 SETACTORMD2ANIMATIONBYNAME_NUM_LOOPS num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_DeleteActorAnimation 706 +#define FN_DeleteActorAnimation 713 #define DELETEACTORANIMATION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define DELETEACTORANIMATION_ANIMATION num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_SetGravity3D 707 +#define FN_SetGravity3D 714 #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 708 +#define FN_GetGravity3D 715 #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 709 -#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 710 -#define GETACTORCOLLISIONSHAPE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetActorSolid 711 +#define FN_SetActorShape 716 +#define SETACTORSHAPE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETACTORSHAPE_SHAPE_TYPE num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETACTORSHAPE_MASS num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define FN_GetActorShape 717 +#define GETACTORSHAPE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_SetActorSolid 718 #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 712 +#define FN_ActorIsSolid 719 #define ACTORISSOLID_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetActorCollision 713 +#define FN_GetActorCollision 720 #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 714 +#define FN_SetActorGravity 721 #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 715 +#define FN_GetActorGravity 722 #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 716 +#define FN_setActorDamping 723 #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 717 +#define FN_getActorLinearDamping 724 #define GETACTORLINEARDAMPING_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getActorAngularDamping 718 +#define FN_getActorAngularDamping 725 #define GETACTORANGULARDAMPING_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getActorLinearSleepThreshold 719 +#define FN_getActorLinearSleepThreshold 726 #define GETACTORLINEARSLEEPTHRESHOLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getActorAngularSleepThreshold 720 +#define FN_getActorAngularSleepThreshold 727 #define GETACTORANGULARSLEEPTHRESHOLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_applyActorDamping 721 +#define FN_applyActorDamping 728 #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 722 +#define FN_setActorMassProperties 729 #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 723 +#define FN_getActorLinearFactor 730 #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 724 +#define FN_setActorLinearFactor 731 #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 725 +#define FN_getActorInverseMass 732 #define GETACTORINVERSEMASS_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_integrateActorVelocities 726 +#define FN_integrateActorVelocities 733 #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 727 +#define FN_applyActorCentralForceLocal 734 #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 728 +#define FN_applyActorCentralForceWorld 735 #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 729 +#define FN_getActorTotalForce 736 #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 730 +#define FN_getActorTotalTorque 737 #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 731 +#define FN_getActorInverseInertiaDiagLocal 738 #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 732 +#define FN_setActorInverseInertiaDiagLocal 739 #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 733 +#define FN_setActorSleepThresholds 740 #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 734 +#define FN_applyActorTorqueLocal 741 #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 735 +#define FN_applyActorTorqueWorld 742 #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 736 +#define FN_applyActorForceLocal 743 #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 ] @@ -2268,7 +2285,7 @@ #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 737 +#define FN_applyActorForceWorld 744 #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 ] @@ -2276,27 +2293,27 @@ #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 738 +#define FN_applyActorCentralImpulseLocal 745 #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 739 +#define FN_applyActorCentralImpulseWorld 746 #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 740 +#define FN_applyActorTorqueImpulseLocal 747 #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 741 +#define FN_applyActorTorqueImpulseWorld 748 #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 742 +#define FN_applyActorImpulseLocal 749 #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 ] @@ -2304,7 +2321,7 @@ #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 743 +#define FN_applyActorImpulseWorld 750 #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 ] @@ -2312,52 +2329,52 @@ #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 744 +#define FN_clearActorForces 751 #define CLEARACTORFORCES_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_updateActorInertiaTensor 745 +#define FN_updateActorInertiaTensor 752 #define UPDATEACTORINERTIATENSOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getActorCenter 746 +#define FN_getActorCenter 753 #define GETACTORCENTER_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETACTORCENTER_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETACTORCENTER_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETACTORCENTER_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_getActorRotationQ 747 +#define FN_getActorRotationQ 754 #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_getActorLinearVelocityWorld 748 +#define FN_getActorLinearVelocityWorld 755 #define GETACTORLINEARVELOCITYWORLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETACTORLINEARVELOCITYWORLD_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETACTORLINEARVELOCITYWORLD_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETACTORLINEARVELOCITYWORLD_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_getActorAngularVelocityWorld 749 +#define FN_getActorAngularVelocityWorld 756 #define GETACTORANGULARVELOCITYWORLD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETACTORANGULARVELOCITYWORLD_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETACTORANGULARVELOCITYWORLD_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETACTORANGULARVELOCITYWORLD_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_setActorLinearVelocityLocal 750 +#define FN_setActorLinearVelocityLocal 757 #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 751 +#define FN_setActorLinearVelocityWorld 758 #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 752 +#define FN_setActorAngularVelocityLocal 759 #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 753 +#define FN_setActorAngularVelocityWorld 760 #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_getActorVelocityInLocalPoint 754 +#define FN_getActorVelocityInLocalPoint 761 #define GETACTORVELOCITYINLOCALPOINT_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETACTORVELOCITYINLOCALPOINT_REL_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETACTORVELOCITYINLOCALPOINT_REL_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] @@ -2365,17 +2382,17 @@ #define GETACTORVELOCITYINLOCALPOINT_X num_var[4].nref[0].value[ num_var[4].byref_offset ] #define GETACTORVELOCITYINLOCALPOINT_Y num_var[5].nref[0].value[ num_var[5].byref_offset ] #define GETACTORVELOCITYINLOCALPOINT_Z num_var[6].nref[0].value[ num_var[6].byref_offset ] -#define FN_getActorLinearVelocityLocal 755 +#define FN_getActorLinearVelocityLocal 762 #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 756 +#define FN_getActorAngularVelocityLocal 763 #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 757 +#define FN_getActorAABB 764 #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 ] @@ -2383,7 +2400,7 @@ #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 758 +#define FN_computeActorImpulseDenominator 765 #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 ] @@ -2391,56 +2408,56 @@ #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 759 +#define FN_computeActorAngularImpulseDenominator 766 #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 760 +#define FN_setActorAngularFactor 767 #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 761 +#define FN_getActorAngularFactor 768 #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 762 +#define FN_computeActorGyroImpulseLocal 769 #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 763 +#define FN_computeActorGyroImpulseWorld 770 #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 764 +#define FN_getActorLocalInertia 771 #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_SetActorSleepState 765 +#define FN_SetActorSleepState 772 #define SETACTORSLEEPSTATE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETACTORSLEEPSTATE_STATE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_CastRay3D 766 +#define FN_CastRay3D 773 #define CASTRAY3D_FROM_X num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CASTRAY3D_FROM_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CASTRAY3D_FROM_Z num_var[2].nref[0].value[ num_var[2].byref_offset ] #define CASTRAY3D_TO_X num_var[3].nref[0].value[ num_var[3].byref_offset ] #define CASTRAY3D_TO_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] #define CASTRAY3D_TO_Z num_var[5].nref[0].value[ num_var[5].byref_offset ] -#define FN_CastRay3D_All 767 +#define FN_CastRay3D_All 774 #define CASTRAY3D_ALL_FROM_X num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CASTRAY3D_ALL_FROM_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CASTRAY3D_ALL_FROM_Z num_var[2].nref[0].value[ num_var[2].byref_offset ] #define CASTRAY3D_ALL_TO_X num_var[3].nref[0].value[ num_var[3].byref_offset ] #define CASTRAY3D_ALL_TO_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] #define CASTRAY3D_ALL_TO_Z num_var[5].nref[0].value[ num_var[5].byref_offset ] -#define FN_GetRayHit3D 768 +#define FN_GetRayHit3D 775 #define GETRAYHIT3D_INDEX num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETRAYHIT3D_ACTOR_ID num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETRAYHIT3D_X num_var[2].nref[0].value[ num_var[2].byref_offset ] @@ -2449,12 +2466,12 @@ #define GETRAYHIT3D_NORMAL_X num_var[5].nref[0].value[ num_var[5].byref_offset ] #define GETRAYHIT3D_NORMAL_Y num_var[6].nref[0].value[ num_var[6].byref_offset ] #define GETRAYHIT3D_NORMAL_Z num_var[7].nref[0].value[ num_var[7].byref_offset ] -#define FN_createPointConstraint 769 +#define FN_createPointConstraint 776 #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 770 +#define FN_createPointConstraintEx 777 #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 ] @@ -2463,47 +2480,47 @@ #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_setPointPivotA 771 +#define FN_setPointPivotA 778 #define SETPOINTPIVOTA_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETPOINTPIVOTA_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETPOINTPIVOTA_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] #define SETPOINTPIVOTA_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_setPointPivotB 772 +#define FN_setPointPivotB 779 #define SETPOINTPIVOTB_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETPOINTPIVOTB_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETPOINTPIVOTB_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] #define SETPOINTPIVOTB_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_createHingeConstraint 773 +#define FN_createHingeConstraint 780 #define CREATEHINGECONSTRAINT_ACTORA num_var[0].nref[0].value[ num_var[0].byref_offset ] #define CREATEHINGECONSTRAINT_FRAMEA num_var[1].nref[0].value[ num_var[1].byref_offset ] #define CREATEHINGECONSTRAINT_USEREFERENCEFRAMEA num_var[2].nref[0].value[ num_var[2].byref_offset ] -#define FN_createHingeConstraintEx 774 +#define FN_createHingeConstraintEx 781 #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_FRAMEA num_var[2].nref[0].value[ num_var[2].byref_offset ] #define CREATEHINGECONSTRAINTEX_FRAMEB num_var[3].nref[0].value[ num_var[3].byref_offset ] #define CREATEHINGECONSTRAINTEX_USEREFERENCEFRAMEA num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_createSlideConstraint 775 +#define FN_createSlideConstraint 782 #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 776 +#define FN_createSlideConstraintEx 783 #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 777 +#define FN_createConeConstraint 784 #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 778 +#define FN_createConeConstraintEx 785 #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 779 +#define FN_deleteConstraint 786 #define DELETECONSTRAINT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConstraintFrameOffsetA 780 +#define FN_getConstraintFrameOffsetA 787 #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 ] @@ -2511,7 +2528,7 @@ #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 781 +#define FN_getConstraintFrameOffsetB 788 #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 ] @@ -2519,43 +2536,43 @@ #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 782 +#define FN_useConstraintFrameOffset 789 #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 783 +#define FN_getHingeAngle 790 #define GETHINGEANGLE_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getHingeAngleEx 784 +#define FN_getHingeAngleEx 791 #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 785 +#define FN_getConstraintBreakingImpulseThreshold 792 #define GETCONSTRAINTBREAKINGIMPULSETHRESHOLD_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConstraintAFrame 786 +#define FN_getConstraintAFrame 793 #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 787 +#define FN_getConstraintBFrame 794 #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_setHingeAxis 788 +#define FN_setHingeAxis 795 #define SETHINGEAXIS_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETHINGEAXIS_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETHINGEAXIS_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] #define SETHINGEAXIS_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_setConstraintBreakingImpulseThreshold 789 +#define FN_setConstraintBreakingImpulseThreshold 796 #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 790 +#define FN_setConstraintFrames 797 #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 791 +#define FN_setHingeLimit 798 #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 792 +#define FN_setConeLimit 799 #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 ] @@ -2563,290 +2580,290 @@ #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_getHingeLimitBiasFactor 793 +#define FN_getHingeLimitBiasFactor 800 #define GETHINGELIMITBIASFACTOR_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getHingeLimitRelaxationFactor 794 +#define FN_getHingeLimitRelaxationFactor 801 #define GETHINGELIMITRELAXATIONFACTOR_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getHingeLimitSign 795 +#define FN_getHingeLimitSign 802 #define GETHINGELIMITSIGN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getHingeSolveLimit 796 +#define FN_getHingeSolveLimit 803 #define GETHINGESOLVELIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_useHingeReferenceFrameA 797 +#define FN_useHingeReferenceFrameA 804 #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 798 +#define FN_getConstraintAppliedImpulse 805 #define GETCONSTRAINTAPPLIEDIMPULSE_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConstraintFixedActor 799 +#define FN_getConstraintFixedActor 806 #define GETCONSTRAINTFIXEDACTOR_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getPointPivotA 800 +#define FN_getPointPivotA 807 #define GETPOINTPIVOTA_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETPOINTPIVOTA_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETPOINTPIVOTA_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETPOINTPIVOTA_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_getPointPivotB 801 +#define FN_getPointPivotB 808 #define GETPOINTPIVOTB_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETPOINTPIVOTB_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETPOINTPIVOTB_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETPOINTPIVOTB_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_getConstraintActorA 802 +#define FN_getConstraintActorA 809 #define GETCONSTRAINTACTORA_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConstraintActorB 803 +#define FN_getConstraintActorB 810 #define GETCONSTRAINTACTORB_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setConstraintSolverIterations 804 +#define FN_setConstraintSolverIterations 811 #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_getConeBiasFactor 805 +#define FN_getConeBiasFactor 812 #define GETCONEBIASFACTOR_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConeDamping 806 +#define FN_getConeDamping 813 #define GETCONEDAMPING_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConeFixThresh 807 +#define FN_getConeFixThresh 814 #define GETCONEFIXTHRESH_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConeLimit 808 +#define FN_getConeLimit 815 #define GETCONELIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETCONELIMIT_LIMIT_INDEX num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getConstraintLimitSoftness 809 +#define FN_getConstraintLimitSoftness 816 #define GETCONSTRAINTLIMITSOFTNESS_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConstraintSolverIterations 810 +#define FN_getConstraintSolverIterations 817 #define GETCONSTRAINTSOLVERITERATIONS_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConeAnglePoint 811 +#define FN_getConeAnglePoint 818 #define GETCONEANGLEPOINT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETCONEANGLEPOINT_ANGLE num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETCONEANGLEPOINT_C_LEN num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETCONEANGLEPOINT_X num_var[3].nref[0].value[ num_var[3].byref_offset ] #define GETCONEANGLEPOINT_Y num_var[4].nref[0].value[ num_var[4].byref_offset ] #define GETCONEANGLEPOINT_Z num_var[5].nref[0].value[ num_var[5].byref_offset ] -#define FN_getConstraintAngularOnly 812 +#define FN_getConstraintAngularOnly 819 #define GETCONSTRAINTANGULARONLY_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConeSolveSwingLimit 813 +#define FN_getConeSolveSwingLimit 820 #define GETCONESOLVESWINGLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConeSolveTwistLimit 814 +#define FN_getConeSolveTwistLimit 821 #define GETCONESOLVETWISTLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConeSwingSpan1 815 +#define FN_getConeSwingSpan1 822 #define GETCONESWINGSPAN1_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConeSwingSpan2 816 +#define FN_getConeSwingSpan2 823 #define GETCONESWINGSPAN2_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConeTwistAngle 817 +#define FN_getConeTwistAngle 824 #define GETCONETWISTANGLE_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConeTwistLimitSign 818 +#define FN_getConeTwistLimitSign 825 #define GETCONETWISTLIMITSIGN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getConeTwistSpan 819 +#define FN_getConeTwistSpan 826 #define GETCONETWISTSPAN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setConstraintAngularOnly 820 +#define FN_setConstraintAngularOnly 827 #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_setConeDamping 821 +#define FN_setConeDamping 828 #define SETCONEDAMPING_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETCONEDAMPING_DAMPING num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setConeFixThresh 822 +#define FN_setConeFixThresh 829 #define SETCONEFIXTHRESH_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETCONEFIXTHRESH_FIXTHRESH num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getSlideAnchorA 823 +#define FN_getSlideAnchorA 830 #define GETSLIDEANCHORA_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSLIDEANCHORA_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSLIDEANCHORA_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETSLIDEANCHORA_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_getSlideAnchorB 824 +#define FN_getSlideAnchorB 831 #define GETSLIDEANCHORB_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSLIDEANCHORB_X num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSLIDEANCHORB_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETSLIDEANCHORB_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] -#define FN_getSlideAngDepth 825 +#define FN_getSlideAngDepth 832 #define GETSLIDEANGDEPTH_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideAngularPos 826 +#define FN_getSlideAngularPos 833 #define GETSLIDEANGULARPOS_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideDampingDirAng 827 +#define FN_getSlideDampingDirAng 834 #define GETSLIDEDAMPINGDIRANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideDampingDirLin 828 +#define FN_getSlideDampingDirLin 835 #define GETSLIDEDAMPINGDIRLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideDampingLimAng 829 +#define FN_getSlideDampingLimAng 836 #define GETSLIDEDAMPINGLIMANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideDampingLimLin 830 +#define FN_getSlideDampingLimLin 837 #define GETSLIDEDAMPINGLIMLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideDampingOrthoAng 831 +#define FN_getSlideDampingOrthoAng 838 #define GETSLIDEDAMPINGORTHOANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideDampingOrthoLin 832 +#define FN_getSlideDampingOrthoLin 839 #define GETSLIDEDAMPINGORTHOLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideLinearPos 833 +#define FN_getSlideLinearPos 840 #define GETSLIDELINEARPOS_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideLinDepth 834 +#define FN_getSlideLinDepth 841 #define GETSLIDELINDEPTH_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideLowerAngLimit 835 +#define FN_getSlideLowerAngLimit 842 #define GETSLIDELOWERANGLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideLowerLinLimit 836 +#define FN_getSlideLowerLinLimit 843 #define GETSLIDELOWERLINLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideRestitutionDirAng 837 +#define FN_getSlideRestitutionDirAng 844 #define GETSLIDERESTITUTIONDIRANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideRestitutionDirLin 838 +#define FN_getSlideRestitutionDirLin 845 #define GETSLIDERESTITUTIONDIRLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideRestitutionLimAng 839 +#define FN_getSlideRestitutionLimAng 846 #define GETSLIDERESTITUTIONLIMANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideRestitutionLimLin 840 +#define FN_getSlideRestitutionLimLin 847 #define GETSLIDERESTITUTIONLIMLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideRestitutionOrthoAng 841 +#define FN_getSlideRestitutionOrthoAng 848 #define GETSLIDERESTITUTIONORTHOANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideRestitutionOrthoLin 842 +#define FN_getSlideRestitutionOrthoLin 849 #define GETSLIDERESTITUTIONORTHOLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideSoftnessDirAng 843 +#define FN_getSlideSoftnessDirAng 850 #define GETSLIDESOFTNESSDIRANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideSoftnessDirLin 844 +#define FN_getSlideSoftnessDirLin 851 #define GETSLIDESOFTNESSDIRLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideSoftnessLimAng 845 +#define FN_getSlideSoftnessLimAng 852 #define GETSLIDESOFTNESSLIMANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideSoftnessLimLin 846 +#define FN_getSlideSoftnessLimLin 853 #define GETSLIDESOFTNESSLIMLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideSoftnessOrthoAng 847 +#define FN_getSlideSoftnessOrthoAng 854 #define GETSLIDESOFTNESSORTHOANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideSoftnessOrthoLin 848 +#define FN_getSlideSoftnessOrthoLin 855 #define GETSLIDESOFTNESSORTHOLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideSolveAngLimit 849 +#define FN_getSlideSolveAngLimit 856 #define GETSLIDESOLVEANGLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideSolveLinLimit 850 +#define FN_getSlideSolveLinLimit 857 #define GETSLIDESOLVELINLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideUpperAngLimit 851 +#define FN_getSlideUpperAngLimit 858 #define GETSLIDEUPPERANGLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideUpperLinLimit 852 +#define FN_getSlideUpperLinLimit 859 #define GETSLIDEUPPERLINLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getSlideUseFrameOffset 853 +#define FN_getSlideUseFrameOffset 860 #define GETSLIDEUSEFRAMEOFFSET_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setSlideDampingDirAng 854 +#define FN_setSlideDampingDirAng 861 #define SETSLIDEDAMPINGDIRANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDEDAMPINGDIRANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideDampingDirLin 855 +#define FN_setSlideDampingDirLin 862 #define SETSLIDEDAMPINGDIRLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDEDAMPINGDIRLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideDampingLimAng 856 +#define FN_setSlideDampingLimAng 863 #define SETSLIDEDAMPINGLIMANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDEDAMPINGLIMANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideDampingLimLin 857 +#define FN_setSlideDampingLimLin 864 #define SETSLIDEDAMPINGLIMLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDEDAMPINGLIMLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideDampingOrthoAng 858 +#define FN_setSlideDampingOrthoAng 865 #define SETSLIDEDAMPINGORTHOANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDEDAMPINGORTHOANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideDampingOrthoLin 859 +#define FN_setSlideDampingOrthoLin 866 #define SETSLIDEDAMPINGORTHOLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDEDAMPINGORTHOLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideLowerAngLimit 860 +#define FN_setSlideLowerAngLimit 867 #define SETSLIDELOWERANGLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDELOWERANGLIMIT_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideLowerLinLimit 861 +#define FN_setSlideLowerLinLimit 868 #define SETSLIDELOWERLINLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDELOWERLINLIMIT_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideRestitutionDirAng 862 +#define FN_setSlideRestitutionDirAng 869 #define SETSLIDERESTITUTIONDIRANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDERESTITUTIONDIRANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideRestitutionDirLin 863 +#define FN_setSlideRestitutionDirLin 870 #define SETSLIDERESTITUTIONDIRLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDERESTITUTIONDIRLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideRestitutionLimAng 864 +#define FN_setSlideRestitutionLimAng 871 #define SETSLIDERESTITUTIONLIMANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDERESTITUTIONLIMANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideRestitutionLimLin 865 +#define FN_setSlideRestitutionLimLin 872 #define SETSLIDERESTITUTIONLIMLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDERESTITUTIONLIMLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideRestitutionOrthoAng 866 +#define FN_setSlideRestitutionOrthoAng 873 #define SETSLIDERESTITUTIONORTHOANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDERESTITUTIONORTHOANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideRestitutionOrthoLin 867 +#define FN_setSlideRestitutionOrthoLin 874 #define SETSLIDERESTITUTIONORTHOLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDERESTITUTIONORTHOLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideSoftnessDirAng 868 +#define FN_setSlideSoftnessDirAng 875 #define SETSLIDESOFTNESSDIRANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDESOFTNESSDIRANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideSoftnessDirLin 869 +#define FN_setSlideSoftnessDirLin 876 #define SETSLIDESOFTNESSDIRLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDESOFTNESSDIRLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideSoftnessLimAng 870 +#define FN_setSlideSoftnessLimAng 877 #define SETSLIDESOFTNESSLIMANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDESOFTNESSLIMANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideSoftnessLimLin 871 +#define FN_setSlideSoftnessLimLin 878 #define SETSLIDESOFTNESSLIMLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDESOFTNESSLIMLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideSoftnessOrthoAng 872 +#define FN_setSlideSoftnessOrthoAng 879 #define SETSLIDESOFTNESSORTHOANG_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDESOFTNESSORTHOANG_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideSoftnessOrthoLin 873 +#define FN_setSlideSoftnessOrthoLin 880 #define SETSLIDESOFTNESSORTHOLIN_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDESOFTNESSORTHOLIN_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideUpperAngLimit 874 +#define FN_setSlideUpperAngLimit 881 #define SETSLIDEUPPERANGLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDEUPPERANGLIMIT_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_setSlideUpperLinLimit 875 +#define FN_setSlideUpperLinLimit 882 #define SETSLIDEUPPERLINLIMIT_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSLIDEUPPERLINLIMIT_N num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_ConstraintExists 876 +#define FN_ConstraintExists 883 #define CONSTRAINTEXISTS_CONSTRAINT_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetCameraPosition 877 +#define FN_SetCameraPosition 884 #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 878 +#define FN_GetCameraPosition 885 #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 879 +#define FN_TranslateCamera 886 #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 880 +#define FN_SetCameraRotation 887 #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 881 +#define FN_GetCameraRotation 888 #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 882 +#define FN_RotateCamera 889 #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 883 +#define FN_SetCameraFOV 890 #define SETCAMERAFOV_FOV num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetCameraFOV 884 -#define FN_SetCameraAspectRatio 885 +#define FN_GetCameraFOV 891 +#define FN_SetCameraAspectRatio 892 #define SETCAMERAASPECTRATIO_ASPECT num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetCameraAspectRatio 886 -#define FN_SetCameraFarValue 887 +#define FN_GetCameraAspectRatio 893 +#define FN_SetCameraFarValue 894 #define SETCAMERAFARVALUE_ZF num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetCameraFarValue 888 -#define FN_SetCameraNearValue 889 +#define FN_GetCameraFarValue 895 +#define FN_SetCameraNearValue 896 #define SETCAMERANEARVALUE_ZN num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetCameraNearValue 890 -#define FN_SetProjectionMatrix 891 +#define FN_GetCameraNearValue 897 +#define FN_SetProjectionMatrix 898 #define SETPROJECTIONMATRIX_MATA num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETPROJECTIONMATRIX_PROJECTION_TYPE num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_GetProjectionMatrix 892 +#define FN_GetProjectionMatrix 899 #define GETPROJECTIONMATRIX_MATA num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetWorldToViewportPosition 893 +#define FN_GetWorldToViewportPosition 900 #define GETWORLDTOVIEWPORTPOSITION_X num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETWORLDTOVIEWPORTPOSITION_Y num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETWORLDTOVIEWPORTPOSITION_Z num_var[2].nref[0].value[ num_var[2].byref_offset ] #define GETWORLDTOVIEWPORTPOSITION_VX num_var[3].nref[0].value[ num_var[3].byref_offset ] #define GETWORLDTOVIEWPORTPOSITION_VY num_var[4].nref[0].value[ num_var[4].byref_offset ] -#define FN_AddSceneSkyBox 894 +#define FN_AddSceneSkyBox 901 #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 895 +#define FN_AddSceneSkyDome 902 #define ADDSCENESKYDOME_IMG num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_AddSceneSkyDomeEx 896 +#define FN_AddSceneSkyDomeEx 903 #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 897 -#define FN_SetWorld3DMaxSubSteps 898 +#define FN_RemoveSceneSky 904 +#define FN_SetWorld3DMaxSubSteps 905 #define SETWORLD3DMAXSUBSTEPS_STEPS num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetWorld3DTimeStep 899 +#define FN_SetWorld3DTimeStep 906 #define SETWORLD3DTIMESTEP_TS num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetWorld3DMaxSubSteps 900 -#define FN_GetWorld3DTimeStep 901 -#define FN_SetSceneFog 902 +#define FN_GetWorld3DMaxSubSteps 907 +#define FN_GetWorld3DTimeStep 908 +#define FN_SetSceneFog 909 #define SETSCENEFOG_COLOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETSCENEFOG_FOG_TYPE num_var[1].nref[0].value[ num_var[1].byref_offset ] #define SETSCENEFOG_START_VAL num_var[2].nref[0].value[ num_var[2].byref_offset ] @@ -2854,7 +2871,7 @@ #define SETSCENEFOG_DENSITY num_var[4].nref[0].value[ num_var[4].byref_offset ] #define SETSCENEFOG_PIXELFOG num_var[5].nref[0].value[ num_var[5].byref_offset ] #define SETSCENEFOG_RANGEFOG num_var[6].nref[0].value[ num_var[6].byref_offset ] -#define FN_GetSceneFog 903 +#define FN_GetSceneFog 910 #define GETSCENEFOG_COLOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define GETSCENEFOG_FOG_TYPE num_var[1].nref[0].value[ num_var[1].byref_offset ] #define GETSCENEFOG_START_VAL num_var[2].nref[0].value[ num_var[2].byref_offset ] @@ -2862,111 +2879,117 @@ #define GETSCENEFOG_DENSITY num_var[4].nref[0].value[ num_var[4].byref_offset ] #define GETSCENEFOG_PIXELFOG num_var[5].nref[0].value[ num_var[5].byref_offset ] #define GETSCENEFOG_RANGEFOG num_var[6].nref[0].value[ num_var[6].byref_offset ] -#define FN_ClearScene 904 -#define FN_startParticleEmitter 905 +#define FN_ClearScene 911 +#define FN_SetSceneShadowColor 912 +#define SETSCENESHADOWCOLOR_COLOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetSceneShadowColor 913 +#define FN_SetSceneAmbientColor 914 +#define SETSCENEAMBIENTCOLOR_COLOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetSceneAmbientColor 915 +#define FN_startParticleEmitter 916 #define STARTPARTICLEEMITTER_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_stopParticleEmitter 906 +#define FN_stopParticleEmitter 917 #define STOPPARTICLEEMITTER_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setParticleDirection 907 +#define FN_setParticleDirection 918 #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 908 +#define FN_getParticleDirection 919 #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 909 +#define FN_useParticleEveryMeshVertex 920 #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 910 +#define FN_particleIsUsingEveryMeshVertex 921 #define PARTICLEISUSINGEVERYMESHVERTEX_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setParticleNormalDirectionMod 911 +#define FN_setParticleNormalDirectionMod 922 #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 912 +#define FN_getParticleNormalDirectionMod 923 #define GETPARTICLENORMALDIRECTIONMOD_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_useParticleNormalDirection 913 +#define FN_useParticleNormalDirection 924 #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 914 +#define FN_particleIsUsingNormalDirection 925 #define PARTICLEISUSINGNORMALDIRECTION_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setParticleMesh 915 +#define FN_setParticleMesh 926 #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_setMinParticlesPerSecond 916 +#define FN_setMinParticlesPerSecond 927 #define SETMINPARTICLESPERSECOND_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETMINPARTICLESPERSECOND_MINPARTICLESPERSECOND num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getMinParticlesPerSecond 917 +#define FN_getMinParticlesPerSecond 928 #define GETMINPARTICLESPERSECOND_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaxParticlesPerSecond 918 +#define FN_setMaxParticlesPerSecond 929 #define SETMAXPARTICLESPERSECOND_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] #define SETMAXPARTICLESPERSECOND_MAXPARTICLESPERSECOND num_var[1].nref[0].value[ num_var[1].byref_offset ] -#define FN_getMaxParticlesPerSecond 919 +#define FN_getMaxParticlesPerSecond 930 #define GETMAXPARTICLESPERSECOND_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setParticleMinStartColor 920 +#define FN_setParticleMinStartColor 931 #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 921 +#define FN_getParticleMinStartColor 932 #define GETPARTICLEMINSTARTCOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setParticleMaxStartColor 922 +#define FN_setParticleMaxStartColor 933 #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 923 +#define FN_getParticleMaxStartColor 934 #define GETPARTICLEMAXSTARTCOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setParticleMinLife 924 +#define FN_setParticleMinLife 935 #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 925 +#define FN_getParticleMinLife 936 #define GETPARTICLEMINLIFE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setParticleMaxLife 926 +#define FN_setParticleMaxLife 937 #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 927 +#define FN_getParticleMaxLife 938 #define GETPARTICLEMAXLIFE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setParticleMaxAngle 928 +#define FN_setParticleMaxAngle 939 #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 929 +#define FN_getParticleMaxAngle 940 #define GETPARTICLEMAXANGLE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setParticleMinStartSize 930 +#define FN_setParticleMinStartSize 941 #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 931 +#define FN_getParticleMinStartSize 942 #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 932 +#define FN_setParticleMaxStartSize 943 #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 933 +#define FN_getParticleMaxStartSize 944 #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 934 +#define FN_setParticleCenter 945 #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 935 +#define FN_getParticleCenter 946 #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 936 +#define FN_setParticleRadius 947 #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 937 +#define FN_getParticleRadius 948 #define GETPARTICLERADIUS_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setParticleRingThickness 938 +#define FN_setParticleRingThickness 949 #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 939 +#define FN_getParticleRingThickness 950 #define GETPARTICLERINGTHICKNESS_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setParticleBox 940 +#define FN_setParticleBox 951 #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 ] @@ -2974,7 +2997,7 @@ #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 941 +#define FN_getParticleBox 952 #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 ] @@ -2982,84 +3005,84 @@ #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 942 +#define FN_setParticleNormal 953 #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 943 +#define FN_getParticleNormal 954 #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 944 +#define FN_setParticleLength 955 #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 945 +#define FN_getParticleLength 956 #define GETPARTICLELENGTH_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_useParticleOutlineOnly 946 +#define FN_useParticleOutlineOnly 957 #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 947 +#define FN_particleIsUsingOutlineOnly 958 #define PARTICLEISUSINGOUTLINEONLY_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getParticleType 948 +#define FN_getParticleType 959 #define GETPARTICLETYPE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_lightIsCastingShadow 949 +#define FN_lightIsCastingShadow 960 #define LIGHTISCASTINGSHADOW_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getLightType 950 +#define FN_getLightType 961 #define GETLIGHTTYPE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_getLightRadius 951 +#define FN_getLightRadius 962 #define GETLIGHTRADIUS_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setLightType 952 +#define FN_setLightType 963 #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 953 +#define FN_setLightRadius 964 #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 954 +#define FN_setLightShadowCast 965 #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 955 +#define FN_SetLightAmbientColor 966 #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 956 +#define FN_GetLightAmbientColor 967 #define GETLIGHTAMBIENTCOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetLightAttenuation 957 +#define FN_SetLightAttenuation 968 #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 958 +#define FN_GetLightAttenuation 969 #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 959 +#define FN_SetLightDiffuseColor 970 #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 960 +#define FN_GetLightDiffuseColor 971 #define GETLIGHTDIFFUSECOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetLightFalloff 961 +#define FN_SetLightFalloff 972 #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 962 +#define FN_GetLightFalloff 973 #define GETLIGHTFALLOFF_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetLightInnerCone 963 +#define FN_SetLightInnerCone 974 #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 964 +#define FN_GetLightInnerCone 975 #define GETLIGHTINNERCONE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetLightOuterCone 965 +#define FN_SetLightOuterCone 976 #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 966 +#define FN_GetLightOuterCone 977 #define GETLIGHTOUTERCONE_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_SetLightSpecularColor 967 +#define FN_SetLightSpecularColor 978 #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 968 +#define FN_GetLightSpecularColor 979 #define GETLIGHTSPECULARCOLOR_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_GetTerrainPatchAABB 969 +#define FN_GetTerrainPatchAABB 980 #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 ] @@ -3069,194 +3092,228 @@ #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 970 +#define FN_GetTerrainPatchLOD 981 #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 971 +#define FN_GetTerrainHeight 982 #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 972 +#define FN_GetTerrainCenter 983 #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 973 +#define FN_SetTerrainLODDistance 984 #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 974 +#define FN_ScaleTerrainTexture 985 #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 975 +#define FN_SetTerrainCameraMovementDelta 986 #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 976 +#define FN_SetTerrainCameraRotationDelta 987 #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 977 +#define FN_SetTerrainPatchLOD 988 #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_createMaterial 978 -#define FN_deleteMaterial 979 +#define FN_SetProjectorTarget 989 +#define SETPROJECTORTARGET_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPROJECTORTARGET_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETPROJECTORTARGET_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETPROJECTORTARGET_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_GetProjectorTarget 990 +#define GETPROJECTORTARGET_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETPROJECTORTARGET_X num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETPROJECTORTARGET_Y num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETPROJECTORTARGET_Z num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define FN_SetProjectorFOV 991 +#define SETPROJECTORFOV_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETPROJECTORFOV_FOV num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_GetProjectorFOV 992 +#define GETPROJECTORFOV_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_createMaterial 993 +#define FN_deleteMaterial 994 #define DELETEMATERIAL_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setActorMaterial 980 +#define FN_setActorMaterial 995 #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 981 +#define FN_getActorMaterial 996 #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 982 +#define FN_copyActorMaterial 997 #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 983 +#define FN_copyMaterial 998 #define COPYMATERIAL_SMATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialTextureCanvas 984 +#define FN_setMaterialTextureCanvas 999 #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 985 +#define FN_setMaterialAmbientColor 1000 #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 986 +#define FN_getMaterialAmbientColor 1001 #define GETMATERIALAMBIENTCOLOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialAntiAliasing 987 +#define FN_setMaterialAntiAliasing 1002 #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 988 +#define FN_getMaterialAntiAliasing 1003 #define GETMATERIALANTIALIASING_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialBackfaceCulling 989 +#define FN_setMaterialBackfaceCulling 1004 #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 990 +#define FN_getMaterialBackfaceCulling 1005 #define GETMATERIALBACKFACECULLING_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialBlendFactor 991 +#define FN_setMaterialBlendFactor 1006 #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 992 +#define FN_getMaterialBlendFactor 1007 #define GETMATERIALBLENDFACTOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialBlendMode 993 +#define FN_setMaterialBlendMode 1008 #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 994 +#define FN_getMaterialBlendMode 1009 #define GETMATERIALBLENDMODE_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialColorMask 995 +#define FN_setMaterialColorMask 1010 #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 996 +#define FN_getMaterialColorMask 1011 #define GETMATERIALCOLORMASK_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialColorMode 997 +#define FN_setMaterialColorMode 1012 #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 998 +#define FN_getMaterialColorMode 1013 #define GETMATERIALCOLORMODE_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialDiffuseColor 999 +#define FN_setMaterialDiffuseColor 1014 #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 1000 +#define FN_getMaterialDiffuseColor 1015 #define GETMATERIALDIFFUSECOLOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialEmissiveColor 1001 +#define FN_setMaterialEmissiveColor 1016 #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 1002 +#define FN_getMaterialEmissiveColor 1017 #define GETMATERIALEMISSIVECOLOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialFog 1003 +#define FN_setMaterialFog 1018 #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 1004 +#define FN_getMaterialFog 1019 #define GETMATERIALFOG_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialFrontfaceCulling 1005 +#define FN_setMaterialFrontfaceCulling 1020 #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 1006 +#define FN_getMaterialFrontfaceCulling 1021 #define GETMATERIALFRONTFACECULLING_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialGouraudShading 1007 +#define FN_setMaterialGouraudShading 1022 #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 1008 +#define FN_materialIsGouraudShaded 1023 #define MATERIALISGOURAUDSHADED_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_materialIsAplhaBlend 1009 +#define FN_materialIsAplhaBlend 1024 #define MATERIALISAPLHABLEND_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_materialIsTransparent 1010 +#define FN_materialIsTransparent 1025 #define MATERIALISTRANSPARENT_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialLighting 1011 +#define FN_setMaterialLighting 1026 #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 1012 +#define FN_materialIsLit 1027 #define MATERIALISLIT_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialType 1013 +#define FN_setMaterialType 1028 #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 1014 +#define FN_getMaterialType 1029 #define GETMATERIALTYPE_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialNormalize 1015 +#define FN_setMaterialNormalize 1030 #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 1016 +#define FN_materialIsNormalized 1031 #define MATERIALISNORMALIZED_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialPointCloud 1017 +#define FN_setMaterialPointCloud 1032 #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 1018 +#define FN_materialIsPointCloud 1033 #define MATERIALISPOINTCLOUD_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialFlag 1019 +#define FN_setMaterialFlag 1034 #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 1020 +#define FN_getMaterialFlag 1035 #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 1021 +#define FN_setMaterialTexture 1036 #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 1022 +#define FN_setMaterialShininess 1037 #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 1023 +#define FN_getMaterialShininess 1038 #define GETMATERIALSHININESS_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialSpecularColor 1024 +#define FN_setMaterialSpecularColor 1039 #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 1025 +#define FN_getMaterialSpecularColor 1040 #define GETMATERIALSPECULARCOLOR_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialThickness 1026 +#define FN_setMaterialThickness 1041 #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 1027 +#define FN_getMaterialThickness 1042 #define GETMATERIALTHICKNESS_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setMaterialWireframe 1028 +#define FN_setMaterialWireframe 1043 #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 1029 +#define FN_materialIsWireframe 1044 #define MATERIALISWIREFRAME_MATERIAL_ID num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setActorTexture 1030 +#define FN_setActorTexture 1045 #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 1031 +#define FN_getActorMaterialCount 1046 #define GETACTORMATERIALCOUNT_ACTOR num_var[0].nref[0].value[ num_var[0].byref_offset ] -#define FN_setActorMaterialFlag 1032 +#define FN_setActorMaterialFlag 1047 #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 1033 +#define FN_getActorMaterialFlag 1048 #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 1034 +#define FN_setActorMaterialType 1049 #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 1035 +#define FN_getActorMaterialType 1050 #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 ] -#define FN_MaterialExists 1036 +#define FN_MaterialExists 1051 #define MATERIALEXISTS_MATERIAL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_NumMaterialConstants 1052 +#define NUMMATERIALCONSTANTS_MATERIAL_TYPE num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define FN_GetMaterialConstantName$ 1053 +#define GETMATERIALCONSTANTNAME$_MATERIAL_TYPE num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETMATERIALCONSTANTNAME$_INDEX num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define FN_SetMaterialConstant 1054 +#define SETMATERIALCONSTANT_MATERIAL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define SETMATERIALCONSTANT_M_CONSTANT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define SETMATERIALCONSTANT_N1 num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define SETMATERIALCONSTANT_N2 num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define SETMATERIALCONSTANT_N3 num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define SETMATERIALCONSTANT_N4 num_var[4].nref[0].value[ num_var[4].byref_offset ] +#define FN_GetMaterialConstant 1055 +#define GETMATERIALCONSTANT_MATERIAL num_var[0].nref[0].value[ num_var[0].byref_offset ] +#define GETMATERIALCONSTANT_M_CONSTANT$ str_var[0].sref[0].value[ str_var[0].byref_offset ] +#define GETMATERIALCONSTANT_N1 num_var[1].nref[0].value[ num_var[1].byref_offset ] +#define GETMATERIALCONSTANT_N2 num_var[2].nref[0].value[ num_var[2].byref_offset ] +#define GETMATERIALCONSTANT_N3 num_var[3].nref[0].value[ num_var[3].byref_offset ] +#define GETMATERIALCONSTANT_N4 num_var[4].nref[0].value[ num_var[4].byref_offset ] #endif // RC_DEFINES_H_INCLUDED diff --git a/rcbasic_runtime/rc_func130_cases.h b/rcbasic_runtime/rc_func130_cases.h index 06be5fa..4e29673 100644 --- a/rcbasic_runtime/rc_func130_cases.h +++ b/rcbasic_runtime/rc_func130_cases.h @@ -769,6 +769,9 @@ case FN_SetAntiAliasMode: //Sub Procedure case FN_GetAntiAliasMode: //Number Function rc_push_num(rc_getAntiAliasMode( )); break; +case FN_ConvertToNormalMap: //Sub Procedure + rc_convertToNormalMap( CONVERTTONORMALMAP_IMG_ID, CONVERTTONORMALMAP_AMP ); + break; case FN_InKey: //Number Function rc_push_num(rc_inKey( )); break; @@ -1208,6 +1211,9 @@ case FN_NumCPUs: //Number Function case FN_SystemRam: //Number Function rc_push_num(rc_intern_systemRam( )); break; +case FN_GetGPUInfo$: //String Function + rc_push_str(rc_getGPUInfo( )); + break; case FN_DimMatrix: //Number Function rc_push_num(rc_dimMatrix( DIMMATRIX_M_ROWS, DIMMATRIX_M_COLS )); break; @@ -1694,11 +1700,11 @@ case FN_CastRay2D_All: //Number Function case FN_GetRayHit2D: //Sub Procedure rc_getRayHit2D( GETRAYHIT2D_INDEX, &GETRAYHIT2D_SPR_ID, &GETRAYHIT2D_X, &GETRAYHIT2D_Y, &GETRAYHIT2D_NORMAL_X, &GETRAYHIT2D_NORMAL_Y ); break; -case FN_SetSpriteCollisionShape: //Sub Procedure - rc_setSpriteCollisionShape( SETSPRITECOLLISIONSHAPE_SPR_ID, SETSPRITECOLLISIONSHAPE_SHAPE ); +case FN_SetSpriteShape: //Sub Procedure + rc_setSpriteCollisionShape( SETSPRITESHAPE_SPR_ID, SETSPRITESHAPE_SHAPE ); break; -case FN_GetSpriteCollisionShape: //Number Function - rc_push_num(rc_getSpriteCollisionShape( GETSPRITECOLLISIONSHAPE_SPR_ID )); +case FN_GetSpriteShape: //Number Function + rc_push_num(rc_getSpriteCollisionShape( GETSPRITESHAPE_SPR_ID )); break; case FN_SetSpriteRadius: //Sub Procedure rc_setSpriteRadius( SETSPRITERADIUS_SPR_ID, SETSPRITERADIUS_RADIUS ); @@ -1721,6 +1727,12 @@ case FN_SetSpriteChainLoop: //Sub Procedure case FN_SetSpritePolygon: //Sub Procedure rc_setSpritePolygon( SETSPRITEPOLYGON_SPR_ID, &SETSPRITEPOLYGON_VX, &SETSPRITEPOLYGON_VY, SETSPRITEPOLYGON_V_COUNT ); break; +case FN_SetSpriteShapeOffset: //Sub Procedure + rc_setSpriteShapeOffset( SETSPRITESHAPEOFFSET_SPR_ID, SETSPRITESHAPEOFFSET_X, SETSPRITESHAPEOFFSET_Y ); + break; +case FN_GetSpriteShapeOffset: //Sub Procedure + rc_getSpriteShapeOffset( GETSPRITESHAPEOFFSET_SPR_ID, &GETSPRITESHAPEOFFSET_X, &GETSPRITESHAPEOFFSET_Y ); + break; case FN_createDistanceJoint: //Number Function rc_push_num(rc_createDistanceJoint( CREATEDISTANCEJOINT_SPRITEA, CREATEDISTANCEJOINT_SPRITEB, CREATEDISTANCEJOINT_AX, CREATEDISTANCEJOINT_AY, CREATEDISTANCEJOINT_BX, CREATEDISTANCEJOINT_BY, CREATEDISTANCEJOINT_COLLIDE_CONNECT )); break; @@ -1976,6 +1988,12 @@ case FN_DeleteTileSet: //Sub Procedure case FN_DeleteTileMap: //Sub Procedure rc_deleteTileMap( DELETETILEMAP_TILEMAP ); break; +case FN_TileSetExists: //Number Function + rc_push_num(rc_tileSetExists( TILESETEXISTS_TILESET )); + break; +case FN_TileMapExists: //Number Function + rc_push_num(rc_tileMapExists( TILEMAPEXISTS_TILEMAP )); + break; case FN_LoadMesh: //Number Function rc_push_num(rc_loadMesh( LOADMESH_MESH_FILE$ )); break; @@ -2102,6 +2120,9 @@ case FN_RemoveActorShadow: //Sub Procedure case FN_ActorExists: //Number Function rc_push_num(rc_actorExists( ACTOREXISTS_ACTOR )); break; +case FN_CreateProjectorActor: //Number Function + rc_push_num(rc_createProjectorActor( )); + break; case FN_CreateActorAnimation: //Number Function rc_push_num(rc_createActorAnimation( CREATEACTORANIMATION_ACTOR, CREATEACTORANIMATION_START_FRAME, CREATEACTORANIMATION_END_FRAME, CREATEACTORANIMATION_SPEED )); break; @@ -2153,11 +2174,11 @@ case FN_SetGravity3D: //Sub Procedure 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 ); +case FN_SetActorShape: //Sub Procedure + rc_setActorCollisionShape( SETACTORSHAPE_ACTOR, SETACTORSHAPE_SHAPE_TYPE, SETACTORSHAPE_MASS ); break; -case FN_GetActorCollisionShape: //Number Function - rc_push_num(rc_getActorCollisionShape( GETACTORCOLLISIONSHAPE_ACTOR )); +case FN_GetActorShape: //Number Function + rc_push_num(rc_getActorCollisionShape( GETACTORSHAPE_ACTOR )); break; case FN_SetActorSolid: //Sub Procedure rc_setActorSolid( SETACTORSOLID_ACTOR, SETACTORSOLID_FLAG ); @@ -2741,6 +2762,18 @@ case FN_GetSceneFog: //Sub Procedure case FN_ClearScene: //Sub Procedure rc_clearScene( ); break; +case FN_SetSceneShadowColor: //Sub Procedure + rc_setSceneShadowColor( SETSCENESHADOWCOLOR_COLOR ); + break; +case FN_GetSceneShadowColor: //Number Function + rc_push_num(rc_getSceneShadowColor( )); + break; +case FN_SetSceneAmbientColor: //Sub Procedure + rc_setSceneAmbientColor( SETSCENEAMBIENTCOLOR_COLOR ); + break; +case FN_GetSceneAmbientColor: //Number Function + rc_push_num(rc_getSceneAmbientColor( )); + break; case FN_startParticleEmitter: //Sub Procedure rc_startParticleEmitter( STARTPARTICLEEMITTER_ACTOR ); break; @@ -2960,6 +2993,18 @@ case FN_SetTerrainCameraRotationDelta: //Sub Procedure case FN_SetTerrainPatchLOD: //Sub Procedure rc_setTerrainPatchLOD( SETTERRAINPATCHLOD_ACTOR, SETTERRAINPATCHLOD_PATCHX, SETTERRAINPATCHLOD_PATCHZ, SETTERRAINPATCHLOD_LOD ); break; +case FN_SetProjectorTarget: //Sub Procedure + rc_setProjectorTarget( SETPROJECTORTARGET_ACTOR, SETPROJECTORTARGET_X, SETPROJECTORTARGET_Y, SETPROJECTORTARGET_Z ); + break; +case FN_GetProjectorTarget: //Sub Procedure + rc_getProjectorTarget( GETPROJECTORTARGET_ACTOR, &GETPROJECTORTARGET_X, &GETPROJECTORTARGET_Y, &GETPROJECTORTARGET_Z ); + break; +case FN_SetProjectorFOV: //Sub Procedure + rc_setProjectorFOV( SETPROJECTORFOV_ACTOR, SETPROJECTORFOV_FOV ); + break; +case FN_GetProjectorFOV: //Number Function + rc_push_num(rc_getProjectorFOV( GETPROJECTORFOV_ACTOR )); + break; case FN_createMaterial: //Number Function rc_push_num(rc_createMaterial( )); break; @@ -3137,4 +3182,16 @@ case FN_getActorMaterialType: //Number Function case FN_MaterialExists: //Number Function rc_push_num(rc_materialExists( MATERIALEXISTS_MATERIAL )); break; +case FN_NumMaterialConstants: //Number Function + rc_push_num(rc_numMaterialConstants( NUMMATERIALCONSTANTS_MATERIAL_TYPE )); + break; +case FN_GetMaterialConstantName$: //String Function + rc_push_str(rc_getMaterialConstantName( GETMATERIALCONSTANTNAME$_MATERIAL_TYPE, GETMATERIALCONSTANTNAME$_INDEX )); + break; +case FN_SetMaterialConstant: //Sub Procedure + rc_setMaterialConstant( SETMATERIALCONSTANT_MATERIAL, SETMATERIALCONSTANT_M_CONSTANT$, SETMATERIALCONSTANT_N1, SETMATERIALCONSTANT_N2, SETMATERIALCONSTANT_N3, SETMATERIALCONSTANT_N4 ); + break; +case FN_GetMaterialConstant: //Sub Procedure + rc_getMaterialConstant( GETMATERIALCONSTANT_MATERIAL, GETMATERIALCONSTANT_M_CONSTANT$, &GETMATERIALCONSTANT_N1, &GETMATERIALCONSTANT_N2, &GETMATERIALCONSTANT_N3, &GETMATERIALCONSTANT_N4 ); + break; diff --git a/rcbasic_runtime/rc_fx_materials.h b/rcbasic_runtime/rc_fx_materials.h new file mode 100644 index 0000000..d85e577 --- /dev/null +++ b/rcbasic_runtime/rc_fx_materials.h @@ -0,0 +1,669 @@ +#ifndef RC_FX_MATERIALS_H_INCLUDED +#define RC_FX_MATERIALS_H_INCLUDED + +#include +//don't forget to include the CShader source +#include "CShader.h" +#include "rc_fx_shaders.h" + +#define RC_FX_MATERIAL_BASE_INDEX 128 + +irr::core::array rc_shader_materials; + + +//Now we have to set up a simple Render-To-Texture management +//----------------------------------------------------------- +//scenenode_for_rtt_view: +//Here all scenenodes get stored which use a shader with RTT requirement. +//This is currently just the glass refraction shader +core::array scenenodes_for_rtt_view; + +//tex_rtt_view: +//The texture which holds the texture render from the view position. +//There's currently no other RTT-type supported. Each type would need +//its own texture. +video::ITexture* tex_rtt_view = 0; + +//Adds a scenenode to the RTT-queue if it has a RTT-requirement +//These information are all provided and handled by the DynamicShader files. +void registerSceneNodeForRTT(irr::video::IVideoDriver* rtt_driver, irr::scene::ISceneNode* node, S_RTT_Info* rtt_info) +{ + if(node && rtt_info) + { + switch(rtt_info->type) + { + case ERT_VIEW: + { + if(scenenodes_for_rtt_view.size() <= 0) + tex_rtt_view = rtt_driver->addRenderTargetTexture( core::dimension2d(256,256) ); + + scenenodes_for_rtt_view.push_back(node); + node->setMaterialTexture(rtt_info->tex_channel,tex_rtt_view); + } + } + } +} + +void init_refraction1() +{ + rc_shader_material_obj shader_material; + + rc_shader_obj obj; + + obj.name = "BaseColor"; + obj.type = "vec3"; + obj.fragVar = true; + obj.artistVar = true; + obj.value.push_back(rc_shader_float(0.40000)); + obj.value.push_back(rc_shader_float(0.40000)); + obj.value.push_back(rc_shader_float(0.10000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "Depth"; + obj.type = "float"; + obj.fragVar = true; + obj.artistVar = true; + obj.value.push_back(rc_shader_float(0.10000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "MixRatio"; + obj.type = "float"; + obj.fragVar = true; + obj.artistVar = true; + obj.value.push_back(rc_shader_float(1.0000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "FrameHeight"; + obj.type = "float"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_float(255.0000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "FrameWidth"; + obj.type = "float"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_float(255.0000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "EnvMap"; + obj.type = "sampler2d"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_float(0)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "RefractionMap"; + obj.type = "predefined"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_string("predefined_rtt_view")); + obj.additional_value.push_back(rc_shader_float(1)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + shader_material.frag_shader = refraction1_frag; + shader_material.vert_shader = refraction1_vert; + + rc_shader_materials.push_back(shader_material); +} + + + +void init_refraction2() +{ + rc_shader_material_obj shader_material; + + shader_material.frag_shader = refraction2_frag; + shader_material.vert_shader = refraction2_vert; + + rc_shader_materials.push_back(shader_material); +} + + + + +void init_gooch() +{ + rc_shader_material_obj shader_material; + + rc_shader_obj obj; + + obj.name = "SurfaceColor"; + obj.type = "vec3"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_float(0.75000)); + obj.value.push_back(rc_shader_float(0.75000)); + obj.value.push_back(rc_shader_float(0.75000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "WarmColor"; + obj.type = "vec3"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_float(0.60000)); + obj.value.push_back(rc_shader_float(0.60000)); + obj.value.push_back(rc_shader_float(0.00000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "CoolColor"; + obj.type = "vec3"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_float(0.00000)); + obj.value.push_back(rc_shader_float(0.00000)); + obj.value.push_back(rc_shader_float(0.60000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "DiffuseWarm"; + obj.type = "float"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_float(0.45000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "DiffuseCool"; + obj.type = "float"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_float(0.45000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + + shader_material.frag_shader = gooch_frag; + shader_material.vert_shader = gooch_vert; + + rc_shader_materials.push_back(shader_material); +} + + + + +void init_style() +{ + rc_shader_material_obj shader_material; + + rc_shader_obj obj; + + obj.name = "lightPos"; + obj.type = "predefined"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_string("predefined_toonLightPos_position")); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + + shader_material.frag_shader = style_frag; + shader_material.vert_shader = style_vert; + + rc_shader_materials.push_back(shader_material); +} + + + + +void init_normalShade() +{ + rc_shader_material_obj shader_material; + + rc_shader_obj obj; + + obj.name = "Alpha"; + obj.type = "float"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_float(1.0)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + shader_material.frag_shader = glass_frag; + shader_material.vert_shader = glass_vert; + + rc_shader_materials.push_back(shader_material); +} + + + + + +void init_outline() +{ + rc_shader_material_obj shader_material; + + rc_shader_obj obj; + + obj.name = "SurfaceColor"; + obj.type = "vec3"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_float(0.75000)); + obj.value.push_back(rc_shader_float(0.75000)); + obj.value.push_back(rc_shader_float(0.75000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "EnvMap"; + obj.type = "sampler2d"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_float(0)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + + shader_material.frag_shader = outline_frag; + shader_material.vert_shader = outline_vert; + + rc_shader_materials.push_back(shader_material); +} + + + + +void init_plastic() +{ + rc_shader_material_obj shader_material; + + rc_shader_obj obj; + + obj.name = "Color"; + obj.type = "vec4"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_float(0.80000)); + obj.value.push_back(rc_shader_float(0.00000)); + obj.value.push_back(rc_shader_float(0.00000)); + obj.value.push_back(rc_shader_float(1.00000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "intensity"; + obj.type = "float"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_float(1.0)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + + shader_material.frag_shader = plastic_frag; + shader_material.vert_shader = plastic_vert; + + rc_shader_materials.push_back(shader_material); +} + + + + +void init_tangent() +{ + rc_shader_material_obj shader_material; + + rc_shader_obj obj; + + obj.name = "matView"; + obj.type = "predefined"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_string("predefined_mat4_view")); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "bViewSpace"; + obj.type = "float"; + obj.fragVar = false; + obj.artistVar = true; + obj.value.push_back(rc_shader_float(1.0)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + shader_material.frag_shader = tangent_frag; + shader_material.vert_shader = tangent_vert; + + rc_shader_materials.push_back(shader_material); +} + + + + +void init_speaker() +{ + rc_shader_material_obj shader_material; + + rc_shader_obj obj; + + obj.name = "view_proj_matrix"; + obj.type = "predefined"; + obj.fragVar = false; + obj.artistVar = true; + obj.value.push_back(rc_shader_string("predefined_mat4_view_proj")); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "view_matrix"; + obj.type = "predefined"; + obj.fragVar = false; + obj.artistVar = true; + obj.value.push_back(rc_shader_string("predefined_mat4_view")); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "time_0_X"; + obj.type = "predefined"; + obj.fragVar = false; + obj.artistVar = true; + obj.value.push_back(rc_shader_string("predefined_float_time0x")); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "pulseSharpness"; + obj.type = "float"; + obj.fragVar = false; + obj.artistVar = true; + obj.value.push_back(rc_shader_float(14.00000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "beat"; + obj.type = "float"; + obj.fragVar = false; + obj.artistVar = true; + obj.value.push_back(rc_shader_float(2.2500)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "amplitude"; + obj.type = "float"; + obj.fragVar = false; + obj.artistVar = true; + obj.value.push_back(rc_shader_float(2.4000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "bassFrequency"; + obj.type = "float"; + obj.fragVar = false; + obj.artistVar = true; + obj.value.push_back(rc_shader_float(44.0000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "base"; + obj.type = "sampler2d"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_float(0)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + shader_material.frag_shader = speaker_frag; + shader_material.vert_shader = speaker_vert; + + rc_shader_materials.push_back(shader_material); +} + + + + +void init_phong() +{ + rc_shader_material_obj shader_material; + + rc_shader_obj obj; + + obj.name = "fvAmbient"; + obj.type = "vec4"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_float(0.3686)); + obj.value.push_back(rc_shader_float(0.3684)); + obj.value.push_back(rc_shader_float(0.3684)); + obj.value.push_back(rc_shader_float(1.0000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "fvSpecular"; + obj.type = "vec4"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_float(0.4902)); + obj.value.push_back(rc_shader_float(0.4887)); + obj.value.push_back(rc_shader_float(0.4887)); + obj.value.push_back(rc_shader_float(1.0000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "fvDiffuse"; + obj.type = "vec4"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_float(0.8863)); + obj.value.push_back(rc_shader_float(0.8850)); + obj.value.push_back(rc_shader_float(0.8850)); + obj.value.push_back(rc_shader_float(1.0000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "fSpecularPower"; + obj.type = "float"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_float(25.0000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "baseMap"; + obj.type = "sampler2d"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_float(0.0000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "fvEyePosition"; + obj.type = "predefined"; + obj.fragVar = false; + obj.artistVar = true; + obj.value.push_back(rc_shader_string("predefined_eye_position")); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + shader_material.frag_shader = tx_phong_frag; + shader_material.vert_shader = tx_phong_vert; + + rc_shader_materials.push_back(shader_material); +} + + + + +void init_style2() +{ + rc_shader_material_obj shader_material; + + rc_shader_obj obj; + + obj.name = "baseMap"; + obj.type = "sampler2d"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_float(0.0000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + shader_material.frag_shader = style2_frag; + shader_material.vert_shader = style2_vert; + + rc_shader_materials.push_back(shader_material); +} + + + + +void init_style3() +{ + rc_shader_material_obj shader_material; + + rc_shader_obj obj; + + shader_material.frag_shader = style3_frag; + shader_material.vert_shader = style3_vert; + + rc_shader_materials.push_back(shader_material); +} + + + + +void init_style4() +{ + rc_shader_material_obj shader_material; + + rc_shader_obj obj; + + obj.name = "silhouetteThreshold"; + obj.type = "float"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_float(0.2000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "silhouetteColor"; + obj.type = "vec4"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_float(1.0000)); + obj.value.push_back(rc_shader_float(1.0000)); + obj.value.push_back(rc_shader_float(1.0000)); + obj.value.push_back(rc_shader_float(1.0000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "enableLighting"; + obj.type = "float"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_float(1.0000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "tex"; + obj.type = "sampler2d"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_float(0.0000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + shader_material.frag_shader = style4_frag; + shader_material.vert_shader = style4_vert; + + rc_shader_materials.push_back(shader_material); +} + + +void initFXMaterials() +{ + //IMPORTANT NOTE: THESE HAVE TO BE ADDED IN THIS ORDER SO THEY MATCH THE ORDER I SPECIFIED FOR THE CONSTANTS IN THE TOKENIZER + + init_normalShade(); //FX_MATERIAL_TYPE_NORMAL_BLEND + init_refraction1(); //FX_MATERIAL_TYPE_REFRACTION + init_refraction2(); //FX_MATERIAL_TYPE_REFRACTION2 + init_gooch(); //FX_MATERIAL_TYPE_GOOCH + init_plastic(); //FX_MATERIAL_TYPE_PLASTIC + init_tangent(); //FX_MATERIAL_TYPE_TANGENT + init_speaker(); //FX_MATERIAL_TYPE_SPEAKER + init_phong(); //FX_MATERIAL_TYPE_PHONG_TEXTURE + init_style(); //FX_MATERIAL_TYPE_STYLE + init_style2(); //FX_MATERIAL_TYPE_STYLE2 + init_style3(); //FX_MATERIAL_TYPE_STYLE3 + init_style4(); //FX_MATERIAL_TYPE_STYLE4 +} + + +int rc_numMaterialConstants(int material_type) +{ + if(material_type < RC_FX_MATERIAL_BASE_INDEX || material_type >= (RC_FX_MATERIAL_BASE_INDEX + rc_shader_materials.size())) + return 0; + + int shader_m_id = material_type - RC_FX_MATERIAL_BASE_INDEX; + return rc_shader_materials[shader_m_id].shader_object.size(); +} + +std::string rc_getMaterialConstantName(int material_type, int index) +{ + if(material_type < RC_FX_MATERIAL_BASE_INDEX || material_type >= (RC_FX_MATERIAL_BASE_INDEX + rc_shader_materials.size())) + return ""; + + int shader_m_id = material_type - RC_FX_MATERIAL_BASE_INDEX; + if(index < 0 || index >= rc_shader_materials[shader_m_id].shader_object.size()) + return ""; + + return rc_intern_ucase(rc_shader_materials[shader_m_id].shader_object[index].name); +} + +void rc_setMaterialConstant(int material_id, std::string m_constant, double n1, double n2, double n3, double n4) +{ +} + +void rc_getMaterialConstant(int material_id, std::string m_constant, double* n1, double* n2, double* n3, double* n4) +{ +} + + + +#endif // RC_FX_MATERIALS_H_INCLUDED diff --git a/rcbasic_runtime/rc_fx_shaders.h b/rcbasic_runtime/rc_fx_shaders.h new file mode 100644 index 0000000..89dd32e --- /dev/null +++ b/rcbasic_runtime/rc_fx_shaders.h @@ -0,0 +1,807 @@ +#ifndef RC_FX_SHADERS_H_INCLUDED +#define RC_FX_SHADERS_H_INCLUDED + +std::string refraction1_vert = +"varying vec3 Normal; \n" +"varying vec3 EyeDir; \n" +"varying vec4 EyePos; \n" +"varying float LightIntensity; \n" +"\n" +"void main(void) \n" +"{ \n" +" gl_Position = ftransform(); \n" +" Normal = normalize(gl_NormalMatrix * gl_Normal); \n" +" vec4 pos = gl_ModelViewMatrix * gl_Vertex; \n" +" EyeDir = pos.xyz; \n" +" EyePos = gl_ModelViewProjectionMatrix * gl_Vertex; \n" +" LightIntensity = max(dot(normalize(gl_LightSource[0].position.xyz - EyeDir), Normal), 0.0); \n" +"}"; + +std::string refraction1_frag = +"const vec3 Xunitvec = vec3 (1.0, 0.0, 0.0); \n" +"const vec3 Yunitvec = vec3 (0.0, 1.0, 0.0); \n" +" \n" +"uniform vec3 BaseColor; \n" +"uniform float Depth; \n" +"uniform float MixRatio; \n" +" \n" +"// need to scale our framebuffer - it has a fixed width/height of 2048 \n" +"uniform float FrameWidth; \n" +"uniform float FrameHeight; \n" +" \n" +"uniform sampler2D EnvMap; \n" +"uniform sampler2D RefractionMap; \n" +" \n" +"varying vec3 Normal; \n" +"varying vec3 EyeDir; \n" +"varying vec4 EyePos; \n" +"varying float LightIntensity; \n" +" \n" +"void main (void) \n" +"{ \n" +" // Compute reflection vector \n" +" vec3 reflectDir = reflect(EyeDir, Normal); \n" +" \n" +" // Compute altitude and azimuth angles \n" +" \n" +" vec2 index; \n" +" \n" +" index.y = dot(normalize(reflectDir), Yunitvec); \n" +" reflectDir.y = 0.0; \n" +" index.x = dot(normalize(reflectDir), Xunitvec) * 0.5; \n" +" \n" +" // Translate index values into proper range \n" +" \n" +" if (reflectDir.z >= 0.0) \n" +" index = (index + 1.0) * 0.5; \n" +" else \n" +" { \n" +" index.t = (index.t + 1.0) * 0.5; \n" +" index.s = (-index.s) * 0.5 + 1.0; \n" +" } \n" +" \n" +" // if reflectDir.z >= 0.0, s will go from 0.25 to 0.75 \n" +" // if reflectDir.z < 0.0, s will go from 0.75 to 1.25, and \n" +" // that's OK, because we've set the texture to wrap. \n" +" \n" +" // Do a lookup into the environment map. \n" +" \n" +" vec3 envColor = vec3 (texture2D(EnvMap, index)); \n" +" \n" +" // calc fresnels term. This allows a view dependant blend of reflection/refraction \n" +" float fresnel = abs(dot(normalize(EyeDir), Normal)); \n" +" fresnel *= MixRatio; \n" +" fresnel = clamp(fresnel, 0.1, 0.9); \n" +" \n" +" // calc refraction \n" +" vec3 refractionDir = normalize(EyeDir) - normalize(Normal); \n" +" \n" +" // Scale the refraction so the z element is equal to depth \n" +" float depthVal = Depth / -refractionDir.z; \n" +" \n" +" // perform the div by w \n" +" float recipW = 1.0 / EyePos.w; \n" +" vec2 eye = EyePos.xy * vec2(recipW); \n" +" \n" +" // calc the refraction lookup \n" +" index.s = (eye.x + refractionDir.x * depthVal); \n" +" index.t = (eye.y + refractionDir.y * depthVal); \n" +" \n" +" // scale and shift so we're in the range 0-1 \n" +" index.s = index.s / 2.0 + 0.5; \n" +" index.t = index.t / 2.0 + 0.5; \n" +" \n" +" // as we're looking at the framebuffer, we want it clamping at the edge of the rendered scene, not the edge of the texture, \n" +" // so we clamp before scaling to fit \n" +" float recip1k = 1.0 / 255.0; \n" +" index.s = clamp(index.s, 0.0, 1.0 - recip1k); \n" +" index.t = clamp(index.t, 0.0, 1.0 - recip1k); \n" +" \n" +" // scale the texture so we just see the rendered framebuffer \n" +" index.s = index.s * FrameWidth * recip1k; \n" +" index.t = index.t * FrameHeight * recip1k; \n" +" \n" +" vec3 RefractionColor = vec3 (texture2D(RefractionMap, index)); \n" +" \n" +" // Add lighting to base color and mix \n" +" vec3 base = LightIntensity * BaseColor; \n" +" envColor = mix(envColor, RefractionColor, fresnel); \n" +" envColor = mix(envColor, base, 0.2); \n" +" \n" +" gl_FragColor = vec4 (envColor, 1.0); \n" +"}"; + + + +std::string refraction2_frag = +"varying vec3 vertex_light_position; \n" +"varying vec3 vertex_normal; \n" +"\n" +"void main() { \n" +" // Set the diffuse value (darkness). This is done with a dot product between the normal and the light \n" +" // and the maths behind it is explained in the maths section of the site. \n" +" float diffuse_value = max(dot(vertex_normal, vertex_light_position), 0.0); \n" +"\n" +" // Set the output color of our current pixel \n" +" gl_FragColor = gl_Color * diffuse_value; \n" +"}"; + +std::string refraction2_vert = +"varying vec3 vertex_light_position; \n" +"varying vec3 vertex_normal; \n" +"\n" +"void main() { \n" +" // Calculate the normal value for this vertex, in world coordinates (multiply by gl_NormalMatrix) \n" +" vertex_normal = normalize(gl_NormalMatrix * gl_Normal); \n" +" // Calculate the light position for this vertex \n" +" vertex_light_position = normalize(gl_LightSource[0].position.xyz); \n" +"\n" +" // Set the front color to the color passed through with glColor*f \n" +" gl_FrontColor = gl_Color; \n" +" // Set the position of the current vertex \n" +" gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; \n" +"}"; + + + +std::string gooch_vert = +"varying float NdotL; \n" +"varying vec3 ReflectVec; \n" +"varying vec3 ViewVec; \n" +"\n" +"void main(void) \n" +"{ \n" +" vec3 ecPos = vec3 (gl_ModelViewMatrix * gl_Vertex); \n" +" vec3 tnorm = normalize(gl_NormalMatrix * gl_Normal); \n" +" vec3 lightVec = normalize(gl_LightSource[0].position.xyz - ecPos); \n" +" ReflectVec = normalize(reflect(-lightVec, tnorm)); \n" +" ViewVec = normalize(-ecPos); \n" +" NdotL = (dot(lightVec, tnorm) + 1.0) * 0.5; \n" +" gl_Position = ftransform(); \n" +"}"; + +std::string gooch_frag = +"uniform vec3 SurfaceColor; // (0.75, 0.75, 0.75) \n" +"uniform vec3 WarmColor; // (0.6, 0.6, 0.0) \n" +"uniform vec3 CoolColor; // (0.0, 0.0, 0.6) \n" +"uniform float DiffuseWarm; // 0.45 \n" +"uniform float DiffuseCool; // 0.45 \n" +"\n" +"varying float NdotL; \n" +"varying vec3 ReflectVec; \n" +"varying vec3 ViewVec; \n" +"\n" +"void main (void) \n" +"{ \n" +" vec3 kcool = min(CoolColor + DiffuseCool * SurfaceColor, 1.0); \n" +" vec3 kwarm = min(WarmColor + DiffuseWarm * SurfaceColor, 1.0); \n" +" vec3 kfinal = mix(kcool, kwarm, NdotL); \n" +"\n" +" vec3 nreflect = normalize(ReflectVec); \n" +" vec3 nview = normalize(ViewVec); \n" +"\n" +" float spec = max(dot(nreflect, nview), 0.0); \n" +" spec = pow(spec, 32.0); \n" +"\n" +" gl_FragColor = vec4 (min(kfinal + spec, 1.0), 1.0); \n" +"}"; + + + +// OpenGL Vertex Program 1.1 +std::string style_vert = +"//The vertex shader\n" +"varying vec3 normalVec;\n" +"varying vec3 vertVec;\n" +"void main()\n" +"{\n" +" vertVec = gl_Vertex.xyz; \n" +" normalVec = gl_Normal;\n" +" gl_TexCoord[0] = gl_MultiTexCoord0;\n" +" gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;\n" +"}"; + +// -------------------------------------------------------------------------- + +// OpenGL Fragment Program 1.1 +std::string style_frag = +"// Pixel shader\n" +"// based on http://www.clockworkcoders.com/oglsl/tutorial10.htm\n" +"\n" +"uniform sampler2D tex;\n" +"uniform vec3 lightPos;\n " +"varying vec3 normalVec; \n" +"varying vec3 vertVec;\n" +"\n" +"void main() \n" +"{ \n" +" vec4 colorTex = texture2D(tex, vec2(gl_TexCoord[0].st)); \n" +" vec3 eyePos = lightPos; //second light \n " +"\n" +" eyePos.y += 1.0; // shifting second light up \n" +"\n" +" vec3 eyeVec = normalize(eyePos - vertVec); \n" +" vec3 lightVec = normalize(lightPos - vertVec); \n " +"\n" +" // Silhouette / outline color: \n" +" vec4 black = vec4(0.0, 0.0, 0.0, 1.0); \n" +"\n " +" // Angle for silhouette \n" +" float s = max(dot(normalVec, eyeVec),0.0); \n" +" // angle for diffuse light \n" +" float diffuse = max(dot(normalVec, lightVec), 0.0); \n " +"\n" +" //Ambient color \n" +" gl_FragColor = (colorTex)*1.4; \n" +"\n" +" if (s < 0.25) { \n" +" gl_FragColor = black; \n" +" } else { \n" +" // Diffuse part \n" +" if (diffuse < 0.5) { \n" +" gl_FragColor *= 0.4; \n" +" } \n" +" // Specular part \n" +" if (s < 0.9) {\n" +" gl_FragColor *= 0.8;\n" +" } else { // light is directly above the vertex \n" +" gl_FragColor *= 1.4; // make it very bright \n" +" } \n" +" } \n" +"}"; + + + +std::string glass_vert = +"varying vec3 fvNormal;\n" +"varying vec3 fvViewVec;\n" +"void main( void )\n" +"{\n" +" float dist = 0.00087; \n" //maybe this value must be changed depending on the world size +" gl_Position = ftransform();\n" +" fvNormal = gl_NormalMatrix * gl_Normal;\n" +" fvViewVec = vec3(dist * gl_ModelViewMatrix * gl_Vertex);\n" +"}\n" +; +// -------------------------------------------------------------------------- + +// OpenGL Fragment Program 1.1 +std::string glass_frag = +"uniform float Alpha; \n" +"varying vec3 fvNormal; \n" +"varying vec3 fvViewVec; \n" +"\n" +"void main( void ) \n" +"{\n" +" vec4 color; \n" +" vec4 temp; \n" +" temp.xyz=-normalize(fvNormal); \n" +" color.r=temp.r+0.5; \n" +" color.g=temp.g+0.5; \n" +" color.b=temp.b+0.5; \n" +" color.a=Alpha; \n" +" float t=(1.0-fvViewVec.z)/2.0; \n" +" if(t<0.0){t=0.0;} \n" +" gl_FragColor = color; \n" +"}\n" +; + + + + +std::string outline_vert = +"#version 330 \n" +"\n" +"layout (location = 0) in vec3 position; \n" +"layout (location = 1) in vec4 normal; \n" +"layout (location = 2) in vec2 uv; \n" +"\n" +"out vec2 vsUV; \n" +"\n" +"void main() \n" +"{ \n" +" gl_Position = vec4(position, 1.0); \n" +" vsUV = (position.xy * 0.5) + 0.5; \n" +"}" +; +// -------------------------------------------------------------------------- + +// OpenGL Fragment Program 1.1 +std::string outline_frag = +"#version 330 \n" +" \n" +"out vec4 fsColor; \n" +" \n" +"in vec2 vsUV; \n" +" \n" +"uniform vec2 viewportSize; \n" +" \n" +"#define LINE_WEIGHT 4.0 \n" +" \n" +"uniform sampler2D gbufferNormals; \n" +"uniform sampler2D gbufferAlbedo; \n" +"uniform sampler2D gbufferMask; \n" +" \n" +"void main() \n" +"{ \n" +" float dx = (1.0 / viewportSize.x) * LINE_WEIGHT; \n" +" float dy = (1.0 / viewportSize.y) * LINE_WEIGHT; \n" +" \n" +" vec2 uvCenter = vsUV; \n" +" vec2 uvRight = vec2(uvCenter.x + dx, uvCenter.y); \n" +" vec2 uvTop = vec2(uvCenter.x, uvCenter.y - dx); \n" +" vec2 uvTopRight = vec2(uvCenter.x + dx, uvCenter.y - dx); \n" +" \n" +" vec3 mCenter = texture(gbufferNormals, uvCenter).rgb; \n" +" vec3 mTop = texture(gbufferNormals, uvTop).rgb; \n" +" vec3 mRight = texture(gbufferNormals, uvRight).rgb; \n" +" vec3 mTopRight = texture(gbufferNormals, uvTopRight).rgb; \n" +" \n" +" vec3 dT = abs(mCenter - mTop); \n" +" vec3 dR = abs(mCenter - mRight); \n" +" vec3 dTR = abs(mCenter - mTopRight); \n" +" \n" +" float dTmax = max(dT.x, max(dT.y, dT.z)); \n" +" float dRmax = max(dR.x, max(dR.y, dR.z)); \n" +" float dTRmax = max(dTR.x, max(dTR.y, dTR.z)); \n" +" \n" +" float deltaRaw = 0.0; \n" +" deltaRaw = max(deltaRaw, dTmax); \n" +" deltaRaw = max(deltaRaw, dRmax); \n" +" deltaRaw = max(deltaRaw, dTRmax); \n" +" \n" +" // Lower threshold values will discard fewer samples \n" +" // and give darker/thicker lines. \n" +" float threshold = 0.8; \n" +" float deltaClipped = clamp((deltaRaw * 2.0) - threshold, 0.0, 1.0); \n" +" \n" +" float oI = deltaClipped; \n" +" vec4 outline = vec4(oI, oI, oI, 1.0); \n" +" vec4 albedo = texture(gbufferAlbedo, vsUV); \n" +" fsColor = albedo - outline; \n" +"} \n" +; + + + +std::string plastic_vert = +"varying vec3 tnorm; \n" +"varying vec3 lightVec; \n" +"void main(void) \n" +"{ \n" +" vec3 ecPosition = vec3(gl_ModelViewMatrix * gl_Vertex); \n" +" tnorm = normalize(gl_NormalMatrix * gl_Normal); \n" +" lightVec = normalize(vec3(gl_ModelViewMatrix * gl_LightSource[0].position) - ecPosition); \n" +" gl_Position = ftransform(); \n" +"}"; + +std::string plastic_frag = +"uniform vec4 Color; \n" +"uniform float intensity; \n" +"varying vec3 tnorm; \n" +"varying vec3 lightVec; \n" +"void main(void) \n" +"{ \n" +" float v = 0.5 * (1.0 + dot(normalize(lightVec), tnorm)); \n" +" v = pow(v,intensity); \n" +" gl_FragColor = v * Color; \n" +"}"; + + + +std::string tangent_vert = +"uniform mat4 matView; \n" +"uniform float bViewSpace; \n" +" \n" +"varying vec2 TexCoord; \n" +"varying vec3 Normal; \n" +"varying vec3 Binormal; \n" +"varying vec3 Tangent; \n" +" \n" +"//attribute vec3 rm_Binormal; \n" +"//attribute vec3 rm_Tangent; \n" +" \n" +"void main( void ) \n" +"{ \n" +" mat4 matTransform = mat4( 1.0, 0.0, 0.0, 0.0, \n" +" 0.0, 1.0, 0.0, 0.0, \n" +" 0.0, 0.0, 1.0, 0.0, \n" +" 0.0, 0.0, 0.0, 1.0 ); \n" +" \n" +" vec3 rm_Tangent = gl_MultiTexCoord1.xyz; \n" +" vec3 rm_Binormal = -gl_MultiTexCoord2.xyz; \n" +" \n" +" \n" +" if( bViewSpace != 0.0 ) \n" +" { \n" +" matTransform = matView; \n" +" } // end if ( bViewSpace ) \n" +" \n" +" gl_Position = ftransform(); \n" +" TexCoord = gl_MultiTexCoord0.xy; \n" +" Normal = ( ( matTransform * vec4( gl_Normal.xyz, 1.0 ) ).xyz + 1.0 ) / 2.0; \n" +" Binormal = ( ( matTransform * vec4( rm_Binormal.xyz, 1.0 ) ).xyz + 1.0 ) / 2.0; \n" +" Tangent = ( ( matTransform * vec4( rm_Tangent.xyz, 1.0 ) ).xyz + 1.0 ) / 2.0; \n" +" \n" +"} \n" +; + +std::string tangent_frag = +"varying vec2 TexCoord; \n" +"varying vec3 Normal; \n" +"varying vec3 Binormal; \n" +"varying vec3 Tangent; \n" +" \n" +"void main( void ) \n" +"{ \n" +" vec4 color = vec4( 0.0, 0.0, 0.0, 1.0 ); \n" +" \n" +" //color.xy = TexCoord; \n" +" //color.xyz = Normal; \n" +" //color.xyz = Binormal; \n" +" color.xyz = Tangent; \n" +" \n" +" gl_FragColor = color; \n" +" \n" +"} \n" +; + + +std::string speaker_vert = +"uniform mat4 view_proj_matrix; \n" +"uniform mat4 view_matrix; \n" +"uniform float time_0_X; \n" +"uniform float pulseSharpness; \n" +"uniform float bassFrequency; \n" +"uniform float amplitude; \n" +"uniform float beat; \n" +" \n" +"varying vec2 vTexCoord; \n" +"varying vec3 vNormalES; \n" +"varying vec3 vViewVec; \n" +"varying vec3 vLightDir; \n" +" \n" +"// Sample offsets to generate the normal \n" +"const vec2 offY = vec2(0.0, 0.1); \n" +"const vec2 offZ = vec2(0.1, 0.0); \n" +" \n" +"// 2 * pi \n" +"const float PI2 = 6.2831853; \n" +" \n" +" \n" +"float getX(vec2 pos, float pulse) \n" +"{ \n" +" // Speaker shape \n" +" float d = length(pos); \n" +" float x = 15.0 * smoothstep(20.0, 25.0, d) \n" +" - 0.4 * smoothstep(30.0, 62.0, d) * d; \n" +" \n" +" // Add the pulse making it stronger towards the center of the speaker \n" +" return x + pulse * sqrt(80.0 - d); \n" +"} \n" +" \n" +"void main(void) \n" +"{ \n" +" vec4 Pos = gl_Vertex; \n" +" \n" +" // Our model isn't centered around origin, so we'll move it \n" +" // there before doing anything. \n" +" //Pos.y += 3.0; \n" +" //Pos.z -= 6.4; \n" +" \n" +" float t = fract(beat * time_0_X); \n" +" \n" +" // Create a pulse function, that is. starts from 0, does a \n" +" // sharp rise to 1 and a less sharp decline back to 0 again, \n" +" // Using f(t) = t * (1 - t)^p will suit us for this. \n" +" // We want this curve to reach a value of 1 at its maximum in \n" +" // the 0 < r < 1 interval. So we'll need to find the maximum \n" +" // value in this interval, invert and multiply with the curve. \n" +" // Those interested in math might want to derive the invMax \n" +" // calculation below themselves by solving for f'(t) = 0 \n" +" // and inserting into the function. \n" +" float invMax = (pulseSharpness + 1.0) * pow(1.0 + 1.0 / pulseSharpness, pulseSharpness); \n" +" float pulse = amplitude * invMax * t * pow(1.0 - t, pulseSharpness); \n" +" \n" +" // Swing the pulse at a certain frequency \n" +" pulse *= sin(bassFrequency * PI2 * time_0_X); \n" +" \n" +" // Sample at three positions ... \n" +" float x0 = getX(Pos.yz, pulse); \n" +"//#define BOMB \n" +"#ifdef BOMB \n" +" //float x1 = getX(Pos.yz + offY, pulse); \n" +" //float x2 = getX(Pos.yz + offZ, pulse); \n" +" \n" +"#else \n" +" float d = length(Pos.yz + offY); \n" +" float x = 15.0 * smoothstep(20.0, 25.0, d) - 0.4 * smoothstep(30.0, 62.0, d) * d; \n" +" \n" +" // Add the pulse making it stronger towards the center of the speaker \n" +" float x1 = x + pulse * sqrt(80.0 - d); \n" +" \n" +" d = length(Pos.yz + offZ); \n" +" x = 15.0 * smoothstep(20.0, 25.0, d) - 0.4 * smoothstep(30.0, 62.0, d) * d; \n" +" \n" +" // Add the pulse making it stronger towards the center of the speaker \n" +" float x2 = x + pulse * sqrt(80.0 - d); \n" +"#endif \n" +" //Pos.x = x0; \n" +" \n" +" // .. then form the tangent and binormal vectors \n" +" vec3 tangent = vec3(x1 - x0, offY); \n" +" vec3 binormal = vec3(x2 - x0, offZ); \n" +" \n" +" // ... which will give us our normal \n" +" vec3 normal; \n" +" //normal = tangent; \n" +" normal = normalize(cross(tangent, binormal)); \n" +" \n" +" gl_Position = gl_ModelViewProjectionMatrix * Pos; \n" +" \n" +" vTexCoord = 1.0-gl_MultiTexCoord0.yx; \n" +" // Eye-space lighting \n" +" vNormalES = gl_NormalMatrix * normal; \n" +" \n" +" vViewVec = -vec3(gl_ModelViewMatrix * Pos); \n" +" \n" +" vLightDir = vec3(gl_ModelViewMatrix * gl_LightSource[0].position); \n" +" \n" +" \n" +" \n" +" \n" +"} \n" +; + +std::string speaker_frag = +"//uniform vec4 lightDir; \n" +"uniform sampler2D Base; \n" +" \n" +"varying vec2 vTexCoord; \n" +"varying vec3 vNormalES; \n" +"varying vec3 vViewVec; \n" +"varying vec3 vLightDir; \n" +" \n" +"void main(void) \n" +"{ \n" +" \n" +" vec4 base = texture2D(Base, vTexCoord); \n" +" // Make our base texture a little brighter ... \n" +" // Yes, you're right, this should be done in photoshop rather \n" +" // than in the shader, but I'm too lazy to make a brighter version \n" +" // of this texture or even look for a better one. \n" +" base = sqrt(base); \n" +" \n" +" // Make the speaker more glossy in the middle \n" +" vec2 l = vTexCoord - 0.5; \n" +" float gloss = clamp(1.0 - 6.0 * dot(l, l), 0.0, 1.0); \n" +" \n" +" vec3 normal = normalize(vNormalES); \n" +" // Soft diffuse \n" +" vec3 lightDir = normalize(vLightDir); \n" +" float diffuse = 0.5 + 0.5 * dot(lightDir, normal); \n" +" // Standard Phong specular \n" +" float specular = pow(clamp(dot(reflect(-normalize(vViewVec), normal), lightDir.xyz), 0.0, 1.0), 64.0); \n" +" \n" +" gl_FragColor = 0.8 * diffuse * base + gloss * specular ; \n" +" \n" +" \n" +"} \n" +; + + + +std::string tx_phong_vert = +"uniform vec3 fvEyePosition; \n" +" \n" +"varying vec2 Texcoord; \n" +"varying vec3 ViewDirection; \n" +"varying vec3 LightDirection; \n" +"varying vec3 Normal; \n" +" \n" +"void main( void ) \n" +"{ \n" +" gl_Position = ftransform(); \n" +" Texcoord = gl_MultiTexCoord0.xy; \n" +" \n" +" vec4 fvObjectPosition = gl_ModelViewMatrix * gl_Vertex; \n" +" \n" +" ViewDirection = fvEyePosition - fvObjectPosition.xyz; \n" +" LightDirection = (gl_LightSource[0].position).xyz - fvObjectPosition.xyz; \n" +" Normal = gl_NormalMatrix * gl_Normal; \n" +" \n" +"} \n" +; + +std::string tx_phong_frag = +"uniform vec4 fvAmbient; \n" +"uniform vec4 fvSpecular; \n" +"uniform vec4 fvDiffuse; \n" +"uniform float fSpecularPower; \n" +" \n" +"uniform sampler2D baseMap; \n" +" \n" +"varying vec2 Texcoord; \n" +"varying vec3 ViewDirection; \n" +"varying vec3 LightDirection; \n" +"varying vec3 Normal; \n" +" \n" +"void main( void ) \n" +"{ \n" +" vec3 fvLightDirection = normalize( LightDirection ); \n" +" vec3 fvNormal = normalize( Normal ); \n" +" float fNDotL = dot( fvNormal, fvLightDirection ); \n" +" \n" +" vec3 fvReflection = normalize( ( ( 2.0 * fvNormal ) * fNDotL ) - fvLightDirection ); \n" +" vec3 fvViewDirection = normalize( ViewDirection ); \n" +" float fRDotV = max( 0.0, dot( fvReflection, fvViewDirection ) ); \n" +" \n" +" vec4 fvBaseColor = texture2D( baseMap, Texcoord ); \n" +" \n" +" \n" +" vec4 fvTotalAmbient = gl_LightSource[0].ambient * fvBaseColor; \n" +" vec4 fvTotalDiffuse = gl_LightSource[0].diffuse * fNDotL * fvBaseColor; \n" +" vec4 fvTotalSpecular = gl_LightSource[0].specular * ( pow( fRDotV, fSpecularPower ) ); \n" +" \n" +" gl_FragColor = ( fvTotalAmbient + fvTotalDiffuse + fvTotalSpecular ); \n" +" \n" +"} \n" +; + + + +// OpenGL Vertex Program 1.1 +std::string style2_vert = +"varying vec3 normal;" +"varying vec2 Texcoord;" +"void main()" +"{" +" Texcoord = gl_MultiTexCoord0.xy;" +" normal = gl_NormalMatrix * gl_Normal;" +" gl_Position = ftransform();" +"}"; + +// -------------------------------------------------------------------------- + +// OpenGL Fragment Program 1.1 +std::string style2_frag = +"uniform sampler2D baseMap;" +"varying vec3 normal;" +"varying vec2 Texcoord;" +"void main()" +"{" +" vec4 fvBaseColor = texture2D( baseMap, Texcoord ); " +" float intensity;" +" vec4 color;" +" vec3 n = normalize(normal);" +"" +" intensity = dot(vec3(gl_LightSource[0].position),n);" +"" +" if (intensity > 0.95)" +" color = vec4(1.0,0.5,0.5,1.0);" +" else if (intensity > 0.5)" +" color = vec4(0.6,0.3,0.3,1.0);" +" else if (intensity > 0.25)" +" color = vec4(0.4,0.2,0.2,1.0);" +" else" +" color = vec4(0.2,0.1,0.1,1.0);" +" color = color * fvBaseColor; \n" +" color = normalize(color); \n" +" gl_FragColor = color;" +"}"; + + + + +// OpenGL Vertex Program 1.1 +std::string style3_vert = +"varying vec3 normal;" +"varying vec2 Texcoord;" +"void main()" +"{" +" Texcoord = gl_MultiTexCoord0.xy;" +" normal = gl_NormalMatrix * gl_Normal;" +" gl_Position = ftransform();" +"}"; + +// -------------------------------------------------------------------------- + +// OpenGL Fragment Program 1.1 +std::string style3_frag = +"varying vec3 normal;" +"varying vec2 Texcoord;" +"void main()" +"{" +" float intensity;" +" vec4 color;" +" vec3 n = normalize(normal);" +"" +" intensity = dot(vec3(gl_LightSource[0].position),n);" +"" +" if (intensity > 0.95)" +" color = vec4(1.0,0.5,0.5,1.0);" +" else if (intensity > 0.5)" +" color = vec4(0.6,0.3,0.3,1.0);" +" else if (intensity > 0.25)" +" color = vec4(0.4,0.2,0.2,1.0);" +" else" +" color = vec4(0.2,0.1,0.1,1.0);" +" gl_FragColor = color;" +"}"; + + + +// OpenGL Vertex Program 1.1 +std::string style4_vert = +"varying vec3 vNormal; \n" +"varying vec3 vVertex; \n" +" \n" +"void main(void) \n" +"{ \n" +" gl_Position = ftransform(); \n" +" gl_TexCoord[0] = gl_MultiTexCoord0; \n" +" vVertex = vec3(gl_ModelViewMatrix * gl_Vertex); \n" +" vNormal = normalize(gl_NormalMatrix * gl_Normal); \n" +"} \n" +; + +// -------------------------------------------------------------------------- + +// OpenGL Fragment Program 1.1 +std::string style4_frag = +"varying vec3 vNormal; \n" +"varying vec3 vVertex; \n" +" \n" +"uniform float silhouetteThreshold; \n" +"uniform vec4 silhouetteColor; \n" +"uniform float enableLighting; \n" +" \n" +"uniform sampler2D tex; \n" +" \n" +"void main (void) \n" +"{ \n" +" \n" +"vec4 materialColor = gl_FrontMaterial.diffuse; \n" +" \n" +" //vec4 silhouetteColor = vec4(1.0, 1.0, 1.0, 1.0); \n" +" \n" +"vec4 specularColor = gl_FrontMaterial.specular; \n" +" if(enableLighting == 0.0) \n" +" specularColor = vec4(1.0, 1.0, 1.0, 1.0); \n" +" \n" +"vec3 eyePos = normalize(-vVertex); \n" +"vec3 lightPos = gl_LightSource[0].position.xyz; \n" +" \n" +"vec3 Normal = vNormal; //normalize(vNormal); \n" +"vec3 EyeVert = normalize(eyePos - vVertex); \n" +"vec3 LightVert = normalize(lightPos - vVertex); \n" +"vec3 EyeLight = normalize(LightVert+EyeVert); \n" +"vec4 texture = texture2D(tex,gl_TexCoord[0].st); \n" +" \n" +" float sil = max(dot(Normal,EyeVert), 0.0); \n" +" if( sil < silhouetteThreshold ) \n" +" gl_FragColor = silhouetteColor; \n" +" else \n" +" { \n" +" gl_FragColor = materialColor*texture; \n" +" \n" +" float spec = pow(max(dot(Normal,EyeLight),0.0), 5.0); \n" +" if( spec < 0.05 ) \n" +" gl_FragColor *= 0.9; \n" +" else \n" +" gl_FragColor = specularColor*texture; \n" +" \n" +" float diffuse = max(dot(Normal,LightVert),0.0); \n" +" if( diffuse < 0.3 && enableLighting != 0.0 ) \n" +" gl_FragColor *=0.8; \n" +" \n" +" } \n" +"} \n" +; + + + + + + +#endif // RC_FX_SHADERS_H_INCLUDED diff --git a/rcbasic_runtime/rc_gfx.h b/rcbasic_runtime/rc_gfx.h index 4f7b3fc..7e8a0ec 100644 --- a/rcbasic_runtime/rc_gfx.h +++ b/rcbasic_runtime/rc_gfx.h @@ -31,6 +31,7 @@ #include "rc_joints.h" #include + using namespace irr; using namespace core; @@ -1083,6 +1084,10 @@ int rc_canvasOpen(int w, int h, int vx, int vy, int vw, int vh, int mode, int ca canvas_id = rc_canvas.size(); rc_canvas.push_back(canvas); } + else + { + rc_canvas[canvas_id] = canvas; + } if(rc_active_canvas < 0) { @@ -1110,6 +1115,7 @@ int rc_canvasOpen(int w, int h, int vx, int vy, int vw, int vh, int mode, int ca void rc_canvasClose(int canvas_id) { + //std::cout << "Delete Canvas: " << canvas_id << std::endl; if(canvas_id <= 0 || canvas_id >= rc_canvas.size()) //canvas 0 is being excluded because its the back buffer return; @@ -1137,8 +1143,11 @@ void rc_canvasClose(int canvas_id) for(int i = 0; i < rc_canvas[canvas_id].sprite_id.size(); i++) { int spr_id = rc_canvas[canvas_id].sprite_id[i]; - rc_sprite[spr_id].active = false; - rc_sprite[spr_id].physics.body = NULL; + if(spr_id >= 0 && spr_id < rc_sprite.size()) + { + rc_sprite[spr_id].active = false; + rc_sprite[spr_id].physics.body = NULL; + } } rc_canvas[canvas_id].sprite_id.clear(); @@ -2466,7 +2475,7 @@ void rc_deleteImage(int img_id) if(rc_image[img_id].image) { - rc_image[img_id].image->drop(); + VideoDriver->removeTexture(rc_image[img_id].image); rc_image[img_id].image = NULL; rc_image[img_id].alpha = 255; } @@ -2535,6 +2544,17 @@ int rc_createImage(int w, int h, double* pdata) return rc_createImageEx(w, h, pdata, 0, false); } +void rc_convertToNormalMap(int img_id, double amp) +{ + if(img_id < 0 || img_id >= rc_image.size()) + return; + + if(!rc_image[img_id].image) + return; + + VideoDriver->makeNormalMapTexture(rc_image[img_id].image, amp); +} + void rc_getImageBuffer(int img_id, double * pdata) { diff --git a/rcbasic_runtime/rc_gfx_core.h b/rcbasic_runtime/rc_gfx_core.h index 2c91ba3..1f21706 100644 --- a/rcbasic_runtime/rc_gfx_core.h +++ b/rcbasic_runtime/rc_gfx_core.h @@ -31,6 +31,7 @@ #else #include #endif +#include "CShader.h" using namespace irr; @@ -431,8 +432,9 @@ int rc_active_font = -1; bool mobile_active_window_flag = true; - //------------ 3D Graphics ----------------// +#define MAX_DEFAULT_MATERIALS 24 + struct rc_material_obj { irr::video::SMaterial mat; @@ -440,6 +442,9 @@ struct rc_material_obj bool isReference = false; int refActor = -1; int refMatNum = 0; + bool isFX = false; + int fxMatType = -1; //FX MATERIAL TYPE (note: will be between FX_MATERIAL_BASE_INDEX and FX_MATERIAL_BASE_INDEX + rc_shader_materials.size()) + CShader* shader = NULL; }; irr::core::array rc_material; @@ -472,6 +477,7 @@ irr::core::array rc_an8; #define RC_NODE_TYPE_BILLBOARD 6 #define RC_NODE_TYPE_PARTICLE 7 #define RC_NODE_TYPE_STMESH 8 +#define RC_NODE_TYPE_PROJECTOR 9 #define RC_NODE_SHAPE_TYPE_NONE 0 @@ -555,6 +561,13 @@ struct rc_actor_animation_obj irr::u32 frame_swap_time; }; +struct rc_actor_fx_material_obj +{ + bool inUse = false; + int material_id = -1; //index in rc_materials + int actor_material_index = -1; //index from node->getMaterial() +}; + struct rc_scene_node { int node_type = 0; @@ -570,7 +583,8 @@ struct rc_scene_node rc_particle_properties_obj particle_properties; - int material_ref_index = -1; + int material_ref_index = -1; //Not currently used for anything + irr::core::array actor_fx_materials; int current_animation; int num_animation_loops; @@ -681,6 +695,8 @@ void myTickCallback2(btSoftRigidDynamicsWorld* dynamicsWorld, btScalar timeStep) rc_collisions.push_back(collision); rc_actor[actorA].physics.collisions.push_back(c_index); rc_actor[actorB].physics.collisions.push_back(c_index); + + delete manifold; } for(int i = 0; i < rc_actor.size(); i++) @@ -1006,4 +1022,10 @@ SDL_Surface* convertTextureToSurface(irr::video::ITexture* itexture) } +std::string rc_getGPUInfo() +{ + std::string gpu_info = (std::string)device->getVideoDriver()->getVendorInfo().c_str(); + return gpu_info; +} + #endif // RC_GFX_CORE_H_INCLUDED diff --git a/rcbasic_runtime/rc_mesh.h b/rcbasic_runtime/rc_mesh.h index 2a681d8..22e1ee3 100644 --- a/rcbasic_runtime/rc_mesh.h +++ b/rcbasic_runtime/rc_mesh.h @@ -187,7 +187,12 @@ void rc_deleteMesh(int mesh_id) return; if(rc_mesh[mesh_id].mesh) - rc_mesh[mesh_id].mesh->drop(); + { + if(rc_mesh[mesh_id].mesh->getReferenceCount() > 0) + { + SceneManager->getMeshCache()->removeMesh(rc_mesh[mesh_id].mesh); + } + } rc_mesh[mesh_id].mesh = NULL; rc_mesh[mesh_id].mesh_type = 0; diff --git a/rcbasic_runtime/rc_scene.h b/rcbasic_runtime/rc_scene.h index 54bab5a..c288d99 100644 --- a/rcbasic_runtime/rc_scene.h +++ b/rcbasic_runtime/rc_scene.h @@ -44,6 +44,26 @@ void rc_addSceneSkyDomeEx(int img, Uint32 horiRes, Uint32 vertRes, double txPerc rc_scene_properties.sky = SceneManager->addSkyDomeSceneNode(texture, horiRes, vertRes, txPercentage, spherePercentage, radius); } +void rc_setSceneShadowColor( Uint32 color ) +{ + SceneManager->setShadowColor(irr::video::SColor(color)); +} + +Uint32 rc_getSceneShadowColor( ) +{ + return SceneManager->getShadowColor().color; +} + +void rc_setSceneAmbientColor( Uint32 color ) +{ + SceneManager->setAmbientLight(irr::video::SColor(color)); +} + +Uint32 rc_getSceneAmbientColor() +{ + return SceneManager->getAmbientLight().toSColor().color; +} + void rc_removeSceneSky() { if(rc_scene_properties.sky) diff --git a/rcbasic_runtime/rc_sprite2D.h b/rcbasic_runtime/rc_sprite2D.h index 6808f8a..af46a02 100644 --- a/rcbasic_runtime/rc_sprite2D.h +++ b/rcbasic_runtime/rc_sprite2D.h @@ -20,6 +20,9 @@ struct rc_sprite2D_physics_obj int offset_x; int offset_y; + int user_offset_x; + int user_offset_y; + int box_width; int box_height; }; diff --git a/rcbasic_runtime/rc_spritelib.h b/rcbasic_runtime/rc_spritelib.h index 49c5133..b0bdaf8 100644 --- a/rcbasic_runtime/rc_spritelib.h +++ b/rcbasic_runtime/rc_spritelib.h @@ -381,6 +381,8 @@ int rc_createSprite(int img_id, double w, double h) rc_sprite[spr_id].physics.offset_x = w/2; rc_sprite[spr_id].physics.offset_y = h/2; + rc_sprite[spr_id].physics.user_offset_x = 0; + rc_sprite[spr_id].physics.user_offset_y = 0; rc_sprite[spr_id].isSolid = false; if(rc_sprite[spr_id].image_id < 0) @@ -426,18 +428,26 @@ void rc_deleteSprite(int spr_id) rc_sprite[spr_id].physics.body = NULL; } + int parent_canvas = rc_sprite[spr_id].parent_canvas; + rc_sprite[spr_id].active = false; rc_sprite[spr_id].parent_canvas = -1; rc_sprite[spr_id].animation.clear(); - for(int i = 0; i < rc_canvas[rc_active_canvas].sprite_id.size(); i++) - { - int canvas_sprite = rc_canvas[rc_active_canvas].sprite_id[i]; + //std::cout << "DEBUG: Clear " << spr_id << " From " << parent_canvas << std::endl; - if(canvas_sprite == spr_id) + if(parent_canvas >= 0 && parent_canvas < rc_canvas.size()) + { + for(int i = 0; i < rc_canvas[parent_canvas].sprite_id.size(); i++) { - rc_canvas[rc_active_canvas].sprite_id.erase(i); - break; + int canvas_sprite = rc_canvas[parent_canvas].sprite_id[i]; + + if(canvas_sprite == spr_id) + { + //std::cout << "Erase: " << i << std::endl; + rc_canvas[parent_canvas].sprite_id.erase(i); + break; + } } } } @@ -806,6 +816,40 @@ void rc_setSpritePolygon(int spr_id, double* vx, double* vy, int v_count) } } +void rc_setSpriteShapeOffset(int spr_id, int offset_x, int offset_y) +{ + if(spr_id < 0 || spr_id >= rc_sprite.size()) + return; + + if(!rc_sprite[spr_id].active) + return; + + rc_sprite[spr_id].physics.user_offset_x = offset_x; + rc_sprite[spr_id].physics.user_offset_y = offset_y; + + float current_angle = rc_sprite[spr_id].physics.body->GetAngle(); + + double off_x = rc_sprite[spr_id].physics.user_offset_x; + double off_y = rc_sprite[spr_id].physics.user_offset_y; + + double x = rc_sprite[spr_id].physics.body->GetPosition().x; + double y = rc_sprite[spr_id].physics.body->GetPosition().y; + + rc_sprite[spr_id].physics.body->SetTransform(b2Vec2(x+off_x, y+off_y), current_angle); +} + +void rc_getSpriteShapeOffset(int spr_id, double* offset_x, double* offset_y) +{ + if(spr_id < 0 || spr_id >= rc_sprite.size()) + return; + + if(!rc_sprite[spr_id].active) + return; + + *offset_x = (double)rc_sprite[spr_id].physics.user_offset_x; + *offset_y = (double)rc_sprite[spr_id].physics.user_offset_y; +} + void rc_setSpriteType(int spr_id, int body_type) { if(spr_id < 0 || spr_id >= rc_sprite.size()) @@ -862,6 +906,10 @@ void rc_setSpritePosition(int spr_id, double x, double y) float current_angle = rc_sprite[spr_id].physics.body->GetAngle(); double off_x = rc_sprite[spr_id].physics.offset_x; double off_y = rc_sprite[spr_id].physics.offset_y; + + off_x += rc_sprite[spr_id].physics.user_offset_x; + off_y += rc_sprite[spr_id].physics.user_offset_y; + rc_sprite[spr_id].physics.body->SetTransform(b2Vec2(x+off_x, y+off_y), current_angle); } @@ -890,6 +938,9 @@ void rc_getSpritePosition(int spr_id, double* x, double* y) double off_x = rc_sprite[spr_id].physics.offset_x; double off_y = rc_sprite[spr_id].physics.offset_y; + off_x += rc_sprite[spr_id].physics.user_offset_x; + off_y += rc_sprite[spr_id].physics.user_offset_y; + *x = (double)rc_sprite[spr_id].physics.body->GetPosition().x - off_x; *y = (double)rc_sprite[spr_id].physics.body->GetPosition().y - off_y; } @@ -903,6 +954,7 @@ double rc_spriteX(int spr_id) return 0; double off_x = rc_sprite[spr_id].physics.offset_x; + off_x += rc_sprite[spr_id].physics.user_offset_x; return (double)rc_sprite[spr_id].physics.body->GetPosition().x - off_x; } @@ -916,6 +968,7 @@ double rc_spriteY(int spr_id) return 0; double off_y = rc_sprite[spr_id].physics.offset_y; + off_y += rc_sprite[spr_id].physics.user_offset_y; return (double)rc_sprite[spr_id].physics.body->GetPosition().y - off_y; } @@ -1315,11 +1368,11 @@ void drawSprites(int canvas_id) //position.set(x, y); - rotationPoint.set(x + (src_size.Width/2), y + (src_size.Height/2)); //TODO: need to account for offset once that is implemented - rotation = -1 * (sprite->physics.body->GetAngle() * RAD_TO_DEG); //convert Box2D radians to degrees - scale.set(sprite->scale.X, sprite->scale.Y); + rotationPoint.set(x + (src_size.Width/2)*scale.X, y + (src_size.Height/2)*scale.Y); //TODO: need to account for offset once that is implemented + rotation = -1 * (sprite->physics.body->GetAngle() * RAD_TO_DEG); //convert Box2D radians to degrees + color.set(sprite->alpha, sprite->color_mod.getRed(), sprite->color_mod.getGreen(), diff --git a/rcbasic_runtime/rc_stdlib.h b/rcbasic_runtime/rc_stdlib.h index ba8ecb8..b3318fd 100755 --- a/rcbasic_runtime/rc_stdlib.h +++ b/rcbasic_runtime/rc_stdlib.h @@ -1142,7 +1142,7 @@ inline int rc_intern_dirChange(std::string dpath) { if(SetCurrentDirectoryW(ConvertUtf8ToWide(dpath).c_str())==0) { - cout << "[DBG]Error: Could not change directory\n"; + cout << "Error: Could not change directory\n"; return 2; } diff --git a/rcbasic_runtime/rc_tilelib.h b/rcbasic_runtime/rc_tilelib.h index 6c064f4..ce1e0a2 100644 --- a/rcbasic_runtime/rc_tilelib.h +++ b/rcbasic_runtime/rc_tilelib.h @@ -67,6 +67,14 @@ void rc_deleteTileSet(int tileset) rc_deleted_tileset.push_back(tileset); } +bool rc_tileSetExists(int tileset) +{ + if(tileset < 0 || tileset >= rc_tileset.size()) + return false; + + return rc_tileset[tileset].active; +} + void rc_setTileAnimationLength(int tileset, int base_tile, int num_frames) { if(tileset < 0 || tileset >= rc_tileset.size()) @@ -211,6 +219,14 @@ void rc_deleteTileMap(int tilemap) rc_deleted_tilemap.push_back(tilemap); } +bool rc_tileMapExists(int tilemap) +{ + if(tilemap < 0 || tilemap >= rc_tilemap.size()) + return false; + + return rc_tilemap[tilemap].active; +} + void rc_setTileMapSize(int tilemap, int widthInTiles, int heightInTiles) { if(tilemap < 0 || tilemap >= rc_tilemap.size()) @@ -390,9 +406,9 @@ void rc_drawTileMap(int tilemap, int x, int y, int w, int h, int offset_x, int o int num_tiles_in_tset = getNumTilesInTileset(tileset); - for(int iy = 0; iy < vp_heightInTiles+1; iy++) + for(int iy = 0; iy < vp_heightInTiles+2; iy++) { - for(int ix = 0; ix < vp_widthInTiles+1; ix++) + for(int ix = 0; ix < vp_widthInTiles+2; ix++) { int current_frame = 0; //TODO: ADD TIMING int map_x = tile_offset_x + ix; @@ -436,7 +452,7 @@ void rc_drawTileMap(int tilemap, int x, int y, int w, int h, int offset_x, int o irr::core::rect sourceRect( irr::core::vector2d(0, 0), irr::core::dimension2d(w, h)); irr::core::rect dest( irr::core::vector2d(x, y), irr::core::dimension2d(w, h)); - VideoDriver->draw2DImage(rc_tilemap[tilemap].texture, dest, sourceRect, 0, 0, false); + VideoDriver->draw2DImage(rc_tilemap[tilemap].texture, dest, sourceRect, 0, 0, true); VideoDriver->removeTexture(rc_tilemap[tilemap].texture); rc_tilemap[tilemap].texture = NULL; //draw2DImage(VideoDriver, rc_tilemap[tilemap].texture, src, pos,) diff --git a/rcbasic_runtime/rcbasic_runtime.cbp b/rcbasic_runtime/rcbasic_runtime.cbp index 64c8db3..3e24139 100755 --- a/rcbasic_runtime/rcbasic_runtime.cbp +++ b/rcbasic_runtime/rcbasic_runtime.cbp @@ -67,6 +67,10 @@ + + + + @@ -83,6 +87,8 @@ + + diff --git a/rcbasic_runtime/rcbasic_runtime.cscope_file_list b/rcbasic_runtime/rcbasic_runtime.cscope_file_list index 498d585..5bb9023 100755 --- a/rcbasic_runtime/rcbasic_runtime.cscope_file_list +++ b/rcbasic_runtime/rcbasic_runtime.cscope_file_list @@ -1,11 +1,73 @@ -"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/theoraplay.h" +"/home/n00b/Projects/irrBullet/src/irrBulletWorld.cpp" +"/home/n00b/Projects/irrBullet/src/irrBulletMotionState.cpp" +"/home/n00b/Projects/irrBullet/src/irrBulletGImpactMeshShape.cpp" +"/home/n00b/Projects/irrBullet/src/irrBulletCollisionObject.cpp" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_video.h" +"/home/n00b/Projects/irrBullet/src/irrBulletCapsuleShape.cpp" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_base_actor.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/CShader.h" +"/home/n00b/Projects/irrBullet/src/irrBulletLiquidBody.cpp" "/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_matrix.h" -"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_os_defines.h" -"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/theoraplay.c" -"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_defines.h" -"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_process.h" -"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/theoraplay_cvtrgb.h" -"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_geometry.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_fx_shaders.h" "/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_media.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_scene.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_defines.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_spritelib.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_joints.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_gfx3D.h" +"/home/n00b/Projects/irrBullet/src/irrBulletConeShape.cpp" "/home/n00b/Projects/RCBASIC4/rcbasic_runtime/main.cpp" +"/home/n00b/Projects/irrBullet/src/irrBulletCollisionObjectAffectorDelete.cpp" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_sprite_physics.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/RealisticWater.cpp" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_tilelib.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_fx_materials.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_func130_cases.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_physics3D_base.h" +"/home/n00b/Projects/irrBullet/src/irrBulletBvhTriangleMeshShape.cpp" +"/home/n00b/Projects/irrBullet/src/irrBulletPhysicsDebug.cpp" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_actor_animation.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/theoraplay_cvtrgb.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_net.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/ProjectiveTextures.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/gui_freetype_font.cpp" +"/home/n00b/Projects/irrBullet/src/irrBulletTriangleMeshShape.cpp" +"/home/n00b/Projects/irrBullet/src/irrBulletCylinderShape.cpp" +"/home/n00b/Projects/irrBullet/src/irrBulletCollisionObjectAffectorAttract.cpp" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/ProjectiveTextures.cpp" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_camera.h" "/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_stdlib.h" +"/home/n00b/Projects/irrBullet/src/irrBulletCollisionObjectAffector.cpp" +"/home/n00b/Projects/irrBullet/src/irrBulletRayCastVehicle.cpp" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_utf8.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/theoraplay.c" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_gfx_core.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_tilemap.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_gfx.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_sprite2D.h" +"/home/n00b/Projects/irrBullet/src/irrBulletSphereShape.cpp" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_test.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_os_defines.h" +"/home/n00b/Projects/irrBullet/src/irrBulletConvexHullShape.cpp" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_constraint.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_audio.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_actor_physics.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/theoraplay.h" +"/home/n00b/Projects/irrBullet/src/irrBulletcommon.cpp" +"/home/n00b/Projects/irrBullet/src/irrBulletCollisionShape.cpp" +"/home/n00b/Projects/irrBullet/src/irrBulletCollisionCallBackInformation.cpp" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_mesh.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/RealisticWater.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_geometry.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/camera.h" +"/home/n00b/Projects/irrBullet/src/irrBulletGhostObject.cpp" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/gui_freetype_font.h" +"/home/n00b/Projects/irrBullet/src/irrBulletRigidBody.cpp" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_particles.h" +"/home/n00b/Projects/irrBullet/src/irrBullet.cpp" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_actor_material.h" +"/home/n00b/Projects/irrBullet/src/irrBulletSoftBody.cpp" +"/home/n00b/Projects/irrBullet/src/irrBulletBoxShape.cpp" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_windowclose.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_font.h" +"/home/n00b/Projects/RCBASIC4/rcbasic_runtime/CShader.cpp" diff --git a/rcbasic_runtime/rcbasic_runtime.depend b/rcbasic_runtime/rcbasic_runtime.depend index d3671d0..158804b 100755 --- a/rcbasic_runtime/rcbasic_runtime.depend +++ b/rcbasic_runtime/rcbasic_runtime.depend @@ -1,5 +1,5 @@ # depslib dependency file v1.0 -1742479051 source:/home/n00b/Projects/RCBASIC4/rcbasic_runtime/main.cpp +1747837152 source:/home/n00b/Projects/RCBASIC4/rcbasic_runtime/main.cpp "rc_os_defines.h" @@ -33,12 +33,12 @@ "rc_func130_cases.h" -1742504995 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_os_defines.h +1747838947 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_os_defines.h -1742442075 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_defines.h +1747541797 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_defines.h -1734372966 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_stdlib.h +1747870979 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_stdlib.h "rc_os_defines.h" @@ -1248,7 +1248,7 @@ 1734372058 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/RealisticWater.h -1738504435 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_gfx.h +1747870979 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_gfx.h "SDL.h" @@ -1272,7 +1272,7 @@ "rc_joints.h" -1738504435 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_gfx_core.h +1747869115 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_gfx_core.h "SDL.h" "btBulletDynamicsCommon.h" "BulletSoftBody/btSoftRigidDynamicsWorld.h" @@ -1297,6 +1297,7 @@ "an8parser.h" + "CShader.h" 1734372058 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_utf8.h @@ -1306,7 +1307,7 @@ -1742434895 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_sprite2D.h +1747531874 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_sprite2D.h @@ -2042,7 +2043,7 @@ "irrBulletCompileConfig.h" -1725132607 /home/n00b/Projects/irrBullet/include/irrBulletWorld.h +1747846206 /home/n00b/Projects/irrBullet/include/irrBulletWorld.h "irrBulletCommon.h" "irrBulletRigidBody.h" "irrBulletSoftBody.h" @@ -2275,7 +2276,7 @@ "rc_gfx_core.h" -1742442075 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_func130_cases.h +1747541797 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_func130_cases.h 1724469097 source:/home/n00b/Projects/irrBullet/src/irrBullet.cpp "irrBullet.h" @@ -2448,7 +2449,7 @@ "btBulletCollisionCommon.h" "irrBulletTriangleMeshShape.h" -1726528529 source:/home/n00b/Projects/irrBullet/src/irrBulletWorld.cpp +1747870272 source:/home/n00b/Projects/irrBullet/src/irrBulletWorld.cpp @@ -2491,7 +2492,7 @@ -1742504452 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_spritelib.h +1747605357 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_spritelib.h "SDL.h" "rc_sprite2D.h" @@ -2499,7 +2500,7 @@ "rc_sprite_physics.h" "rc_joints.h" -1738504435 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_tilelib.h +1747594179 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_tilelib.h "SDL.h" "rc_tilemap.h" @@ -2521,9 +2522,11 @@ 1734372966 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_physics3D_base.h "rc_gfx_core.h" -1738504435 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_base_actor.h +1747870979 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_base_actor.h + "ProjectiveTextures.h" -1734372966 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_actor_material.h +1744333498 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_actor_material.h + "rc_fx_materials.h" 1734372966 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_actor_animation.h @@ -2531,16 +2534,16 @@ 1734372966 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_constraint.h -1738504435 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_mesh.h +1744478025 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_mesh.h 1734372058 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_particles.h -1738504435 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_scene.h +1744258575 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_scene.h "rc_gfx_core.h" 1734372058 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_camera.h -1738504435 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_windowclose.h +1747839777 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_windowclose.h 1608686973 /usr/include/bullet/BulletCollision/NarrowPhaseCollision/btRaycastCallback.h "BulletCollision/CollisionShapes/btTriangleCallback.h" @@ -2554,3 +2557,26 @@ +1744333498 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_fx_materials.h + + "CShader.h" + "rc_fx_shaders.h" + +1744332513 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/CShader.h + + + +1744322711 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_fx_shaders.h + +1744326520 source:/home/n00b/Projects/RCBASIC4/rcbasic_runtime/CShader.cpp + + + "CShader.h" + +1744345468 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/ProjectiveTextures.h + + +1744345468 source:/home/n00b/Projects/RCBASIC4/rcbasic_runtime/ProjectiveTextures.cpp + "ProjectiveTextures.h" + + diff --git a/rcbasic_runtime/rcbasic_runtime.layout b/rcbasic_runtime/rcbasic_runtime.layout index f2e4c8a..8dfce5b 100755 --- a/rcbasic_runtime/rcbasic_runtime.layout +++ b/rcbasic_runtime/rcbasic_runtime.layout @@ -2,62 +2,9 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -65,24 +12,24 @@ - - - - - - + - + - + - + + + + + + @@ -90,84 +37,19 @@ + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -175,24 +57,52 @@ - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -200,14 +110,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + diff --git a/wip/CShader.cpp b/wip/CShader.cpp new file mode 100755 index 0000000..b264a82 --- /dev/null +++ b/wip/CShader.cpp @@ -0,0 +1,352 @@ +/************************************************************** +file: CShader.h +author: Stephan Gödecker (Masterhawk studios) +version: rev. 5 + +description: this file was created to achieve a dynamic +management for GLSL shaders with irrlicht. After implementing +this code-snippet the user is able to dynamically load GLSL- +shader in his irrlicht application. The shader just have to +be additionally defined by a special xml-file. You can get +further information at: + +http://www.masterhawk.dyndns.org/wordpress?p=267 + +***************************************************************/ + +#include "CShader.h" + +rc_shader_value_obj rc_shader_float(float n) +{ + rc_shader_value_obj v; + v.type = RC_SHADER_VALUE_TYPE_FLOAT; + v.fvalue = n; + return v; +} + +rc_shader_value_obj rc_shader_string(std::string s) +{ + rc_shader_value_obj v; + v.type = RC_SHADER_VALUE_TYPE_STRING; + v.svalue = s; + return v; +} + +CShader::CShader(IrrlichtDevice* device, rc_shader_material_obj shader_material) +{ + + dev=device; + + f_old_cycle_time = dev->getTimer()->getRealTime(); + + driver = device->getVideoDriver(); + + //Missing xml-handling + + video::IGPUProgrammingServices* gpu = driver->getGPUProgrammingServices(); + p_material = 0; + + if(gpu) + { + p_material = gpu->addHighLevelShaderMaterial( + shader_material.vert_shader.c_str(), "vertexMain", video::EVST_VS_4_1, + shader_material.frag_shader.c_str(), "pixelMain", video::EPST_PS_4_1, + this, video::EMT_SOLID); + } + + + for(s32 i=0; ipredefinition = ESPV_NONE; + + irr::core::stringc type( shader_material.shader_object[i].type.c_str() ); + + if(type.equals_ignore_case("float")) + shader_var->type = ESVT_FLOAT; + else if(type.equals_ignore_case("vec2")) + shader_var->type = ESVT_VEC2; + else if(type.equals_ignore_case("vec3")) + shader_var->type = ESVT_VEC3; + else if(type.equals_ignore_case("vec4")) + shader_var->type = ESVT_VEC4; + else if(type.equals_ignore_case("mat4")) + shader_var->type = ESVT_MAT4; + else if(type.equals_ignore_case("sampler2d")) + shader_var->type = ESVT_SAMPLER2D; + else if(type.equals_ignore_case("predefined")) + shader_var->type = ESVT_PREDEFINED; + + shader_var->name = core::stringc( shader_material.shader_object[i].name.c_str() ); + + + shader_var->b_frag_var = shader_material.shader_object[i].fragVar; + + switch(shader_var->type) + { + case ESVT_SAMPLER2D: + case ESVT_FLOAT: + { + float* vars = new float[1]; + vars[0] = shader_material.shader_object[i].value[0].fvalue; + shader_var->value = vars; + + }break; + + /*case ESVT_SAMPLER2D: + { + int tex = 0; + + TiXmlNode* value = node->FirstChild("value"); + + tex = ((TiXmlElement*)value)->FirstAttribute()->IntValue(); + + float* vars = new float[1]; + vars = (float*)(&tex); + shader_var->value = vars; + }break;*/ + + case ESVT_VEC2: + { + float* vars = new float[2]; + + for(s32 j=0; j<2; j++) + { + vars[j] = shader_material.shader_object[i].value[j].fvalue; + } + shader_var->value = vars; + }break; + + case ESVT_VEC3: + { + float* vars = new float[3]; + + for(s32 j=0; j<3; j++) + { + vars[j] = shader_material.shader_object[i].value[j].fvalue; + } + shader_var->value = vars; + }break; + + case ESVT_VEC4: + { + float* vars = new float[4]; + + for(s32 j=0; j<4; j++) + { + vars[j] = shader_material.shader_object[i].value[j].fvalue; + } + shader_var->value = vars; + }break; + + case ESVT_MAT4: + break; + + case ESVT_PREDEFINED: + { + core::stringc str_val(shader_material.shader_object[i].value[0].svalue.c_str()); + + shader_var->value = 0; + + if(str_val.equals_ignore_case("predefined_eye_position")) + shader_var->predefinition = ESPV_EYEPOSITION; + else if(str_val.equals_ignore_case("predefined_mat4_view_proj")) + { + shader_var->predefinition = ESPV_MAT4_VIEW_PROJ; + } + else if(str_val.equals_ignore_case("predefined_mat4_view")) + { + shader_var->predefinition = ESPV_MAT4_VIEW; + } + else if(str_val.equals_ignore_case("predefined_float_time0x")) + { + shader_var->predefinition = ESPV_FLOAT_TIME0X; + shader_var->value = new float[1]; + shader_var->value[0] = 0.f; + } + else if(str_val.equals_ignore_case("predefined_rtt_view")) + { + shader_var->predefinition = ESPV_NONE; + shader_var->type = ESVT_SAMPLER2D; + + float* vars = new float[1]; + + vars[0] = (shader_material.shader_object[i].additional_value.size() > 0 ? shader_material.shader_object[i].additional_value[0].fvalue : 0); + + shader_var->value = vars; + + //registering for RTT_VIEW + S_RTT_Info* rtt_info = new S_RTT_Info(); + rtt_info->type = ERT_VIEW; + rtt_info->tex_channel = (int)vars[0]; + rtt_infos.push_back(rtt_info); + + rtt_info = 0; + + } + else + printf("ERROR: Unknown predefinition: %s\n",str_val.c_str()); + + + break; + } + + default: +/// printf("(XML PARSER) ERROR: No type for uniform shader variable specified: %s\n",shader_var->name); + break; + }//end switch + + uniform_variables.push_back(shader_var); + } + //printf("(MATERIAL PARSER) Initialized %i uniform variables\n",uniform_variables.size()); + for(s32 i=0; iname.c_str()); + if(uniform_variables[i]->type == ESVT_PREDEFINED) + { + continue; + } + s32 element_count = (uniform_variables[i]->type != ESVT_SAMPLER2D) ? (s32)uniform_variables[i]->type : 1; + //for(s32 j=0; jtype != ESVT_SAMPLER2D) + //printf("%f ",(uniform_variables[i]->value[j])); + //else + //printf("%i",*uniform_variables[i]->value); + //printf("\n\n"); + } +} + +void CShader::OnSetConstants(video::IMaterialRendererServices* services, s32 userData) +{ + for(s32 i=0; itype) + { + case ESVT_SAMPLER2D: + element_count = 1; + break; + case ESVT_PREDEFINED: + { + switch(uniform_variables[i]->predefinition) + { + case ESPV_EYEPOSITION: + { + if(uniform_variables[i]->value) + { + delete[] uniform_variables[i]->value; + uniform_variables[i]->value = 0; + } + + uniform_variables[i]->value = new float[3]; + core::vector3df cam_pos = dev->getSceneManager()->getActiveCamera()->getAbsolutePosition(); + uniform_variables[i]->value[0] = cam_pos.X; + uniform_variables[i]->value[1] = cam_pos.Y; + uniform_variables[i]->value[2] = cam_pos.Z; + + element_count = 3; + } + break; + + case ESPV_MAT4_VIEW: + { + core::matrix4 mat_view = dev->getVideoDriver()->getTransform(video::ETS_VIEW); + + uniform_variables[i]->value = mat_view.pointer(); + + element_count = 16; + } + break; + + case ESPV_MAT4_VIEW_PROJ: + { + core::matrix4 mat_view_proj = dev->getVideoDriver()->getTransform(video::ETS_PROJECTION); + + mat_view_proj *= dev->getVideoDriver()->getTransform(video::ETS_VIEW); + + uniform_variables[i]->value = mat_view_proj.pointer(); + + element_count = 16; + + /*printf("VIEW_PROJECTION_MATRIX\n"); + for(int k=0; k<16; k++) + { + printf("%f ",uniform_variables[i]->value[k]); + if(k==3 || k==7 || k==11 || k==15) printf("\n"); + }*/ + } + break; + + case ESPV_FLOAT_TIME0X: + { + + f32 f_time_diff = dev->getTimer()->getRealTime() - f_old_cycle_time; + + uniform_variables[i]->value[0] += f_time_diff / 1000; + + s32 i_tmp = uniform_variables[i]->value[0] / 120; + + uniform_variables[i]->value[0] = uniform_variables[i]->value[0] - (i_tmp*120); + + f_old_cycle_time = dev->getTimer()->getRealTime(); + + element_count = 1; + + //printf("FLOAT_TIME0X = %f\n",uniform_variables[i]->value[0]); + } + break; + } + } + default: + element_count = (s32)uniform_variables[i]->type; + } + if(uniform_variables[i]->b_frag_var) + if(uniform_variables[i]->type != ESVT_SAMPLER2D) + services->setPixelShaderConstant(uniform_variables[i]->name.c_str(),uniform_variables[i]->value,element_count); + else + { + int tex = *uniform_variables[i]->value; + services->setPixelShaderConstant(uniform_variables[i]->name.c_str(),(float*)(&tex),element_count); + } + + else + if(uniform_variables[i]->type != ESVT_SAMPLER2D) + services->setVertexShaderConstant(uniform_variables[i]->name.c_str(),uniform_variables[i]->value,element_count); + else + { + int tex = *uniform_variables[i]->value; + services->setVertexShaderConstant(uniform_variables[i]->name.c_str(),(int*)(&tex),element_count); + } + + } + +} + +s32 CShader::getMaterial() +{ + return p_material; +} + +S_RTT_Info* CShader::getRTTInfo(E_RTT_TEXTURE rtt) +{ + for(s32 i=0; itype) + return rtt_infos[i]; + } + return 0; +} + +CShader::~CShader() +{ + for(s32 i=0; ipredefinition != ESPV_MAT4_VIEW_PROJ && uniform_variables[i]->predefinition != ESPV_MAT4_VIEW) + delete[] uniform_variables[i]->value; + + delete uniform_variables[i]; + uniform_variables[i] = 0; + } + uniform_variables.clear(); +} diff --git a/wip/CShader.h b/wip/CShader.h new file mode 100755 index 0000000..6303161 --- /dev/null +++ b/wip/CShader.h @@ -0,0 +1,117 @@ +/************************************************************** +file: CShader.h +author: Stephan Gödecker (Masterhawk studios) +version: rev. 5 + +description: this file was created to achieve a dynamic +management for GLSL shaders with irrlicht. After implementing +this code-snippet the user is able to dynamically load GLSL- +shader in his irrlicht application. The shader just have to +be additionally defined by a special xml-file. You can get +further information at: + +http://www.masterhawk.dyndns.org/wordpress?p=267 + +***************************************************************/ + +//#include "stdafx.h" +#include +#include "XML/tinyxml.h" + +using namespace irr; + +#define RC_SHADER_VALUE_TYPE_FLOAT 0 +#define RC_SHADER_VALUE_TYPE_STRING 1 + +struct rc_shader_value_obj +{ + int type; + float fvalue; + std::string svalue; +}; + +rc_shader_value_obj rc_shader_float(float n); +rc_shader_value_obj rc_shader_string(std::string s); + +struct rc_shader_obj +{ + std::string name; + std::string type; + bool fragVar; + bool artistVar; + irr::core::array value; + irr::core::array additional_value; +}; + +struct rc_shader_material_obj +{ + std::string frag_shader; + std::string vert_shader; + irr::core::array shader_object; +}; + +enum E_SHADER_VAR_TYPE +{ + ESVT_FLOAT = 1, + ESVT_VEC2 = 2, + ESVT_VEC3 = 3, + ESVT_VEC4 = 4, + ESVT_MAT4 = 16, + ESVT_SAMPLER2D, + ESVT_PREDEFINED +}; +enum E_SHADER_PREDEFINED_VARS +{ + ESPV_NONE, + ESPV_FLOAT_TIME0X, + ESPV_EYEPOSITION, + ESPV_MAT4_VIEW, + ESPV_MAT4_VIEW_PROJ, + ESPV_RTT_VIEW +}; + +enum E_RTT_TEXTURE +{ + ERT_VIEW = 0x0001 +}; + +struct S_RTT_Info +{ + E_RTT_TEXTURE type; + s32 tex_channel; +}; + +struct SShaderVariable +{ + core::stringc name; + E_SHADER_VAR_TYPE type; + E_SHADER_PREDEFINED_VARS predefinition; + bool b_frag_var; + float* value; +}; + +class CShader : public video::IShaderConstantSetCallBack +{ +private: + s32 p_material; //material which has to be applied to a scene_node + IrrlichtDevice* dev; + video::IVideoDriver* driver; + + //temporarily + TiXmlDocument doc; + core::array uniform_variables; + + core::array rtt_infos; + + f32 f_old_cycle_time; + +public: + CShader(IrrlichtDevice* device, rc_shader_material_obj shader_material); + ~CShader(); + + virtual void OnSetConstants(video::IMaterialRendererServices* services, s32 userData); + + s32 getMaterial(); + + S_RTT_Info* getRTTInfo(E_RTT_TEXTURE rtt); +}; diff --git a/wip/DynamicShaderExample.cpp b/wip/DynamicShaderExample.cpp new file mode 100755 index 0000000..f6bc40e --- /dev/null +++ b/wip/DynamicShaderExample.cpp @@ -0,0 +1,354 @@ +/* DynamicShaderExample +* Masterhawk studios 2011 - http://masterhawk.dyndns.org/wordpress +* +* Description: +* This is a simple example how to use the "Dynamic Shaders for Irrlicht" +* by Masterhawk studios in your own application. This example shows how +* to use all provided features, especially the glass refraction, since +* it needs your application to support RTTs +*/ + +////////////////////////////////// +// DON'T FORGET TO LINK // +// // +// IRRLICHT.LIB // +// IRRLICHT-INCLUDE-DIRECTORY // +// TINYXML.LIB // +// TINYXML-INCLUDE-DIRECTORY // +// // +// TO YOUR PROJECT // +////////////////////////////////// + +//stdafx inlcudes the irrlicht.h inclusion +//#include "stdafx.h" +#include +//don't forget to include the CShader source +#include "CShader.h" + + +//simple Irrlicht setup stuff +using namespace irr; + +IrrlichtDevice* device = 0; +video::IVideoDriver* driver = 0; +scene::ISceneManager* smgr = 0; +scene::ICameraSceneNode* cam = 0; + +std::string refraction1_vert = +"varying vec3 Normal; \n" +"varying vec3 EyeDir; \n" +"varying vec4 EyePos; \n" +"varying float LightIntensity; \n" +"\n" +"void main(void) \n" +"{ \n" +" gl_Position = ftransform(); \n" +" Normal = normalize(gl_NormalMatrix * gl_Normal); \n" +" vec4 pos = gl_ModelViewMatrix * gl_Vertex; \n" +" EyeDir = pos.xyz; \n" +" EyePos = gl_ModelViewProjectionMatrix * gl_Vertex; \n" +" LightIntensity = max(dot(normalize(gl_LightSource[0].position.xyz - EyeDir), Normal), 0.0); \n" +"}"; + +std::string refraction1_frag = +"const vec3 Xunitvec = vec3 (1.0, 0.0, 0.0); \n" +"const vec3 Yunitvec = vec3 (0.0, 1.0, 0.0); \n" +" \n" +"uniform vec3 BaseColor; \n" +"uniform float Depth; \n" +"uniform float MixRatio; \n" +" \n" +"// need to scale our framebuffer - it has a fixed width/height of 2048 \n" +"uniform float FrameWidth; \n" +"uniform float FrameHeight; \n" +" \n" +"uniform sampler2D EnvMap; \n" +"uniform sampler2D RefractionMap; \n" +" \n" +"varying vec3 Normal; \n" +"varying vec3 EyeDir; \n" +"varying vec4 EyePos; \n" +"varying float LightIntensity; \n" +" \n" +"void main (void) \n" +"{ \n" +" // Compute reflection vector \n" +" vec3 reflectDir = reflect(EyeDir, Normal); \n" +" \n" +" // Compute altitude and azimuth angles \n" +" \n" +" vec2 index; \n" +" \n" +" index.y = dot(normalize(reflectDir), Yunitvec); \n" +" reflectDir.y = 0.0; \n" +" index.x = dot(normalize(reflectDir), Xunitvec) * 0.5; \n" +" \n" +" // Translate index values into proper range \n" +" \n" +" if (reflectDir.z >= 0.0) \n" +" index = (index + 1.0) * 0.5; \n" +" else \n" +" { \n" +" index.t = (index.t + 1.0) * 0.5; \n" +" index.s = (-index.s) * 0.5 + 1.0; \n" +" } \n" +" \n" +" // if reflectDir.z >= 0.0, s will go from 0.25 to 0.75 \n" +" // if reflectDir.z < 0.0, s will go from 0.75 to 1.25, and \n" +" // that's OK, because we've set the texture to wrap. \n" +" \n" +" // Do a lookup into the environment map. \n" +" \n" +" vec3 envColor = vec3 (texture2D(EnvMap, index)); \n" +" \n" +" // calc fresnels term. This allows a view dependant blend of reflection/refraction \n" +" float fresnel = abs(dot(normalize(EyeDir), Normal)); \n" +" fresnel *= MixRatio; \n" +" fresnel = clamp(fresnel, 0.1, 0.9); \n" +" \n" +" // calc refraction \n" +" vec3 refractionDir = normalize(EyeDir) - normalize(Normal); \n" +" \n" +" // Scale the refraction so the z element is equal to depth \n" +" float depthVal = Depth / -refractionDir.z; \n" +" \n" +" // perform the div by w \n" +" float recipW = 1.0 / EyePos.w; \n" +" vec2 eye = EyePos.xy * vec2(recipW); \n" +" \n" +" // calc the refraction lookup \n" +" index.s = (eye.x + refractionDir.x * depthVal); \n" +" index.t = (eye.y + refractionDir.y * depthVal); \n" +" \n" +" // scale and shift so we're in the range 0-1 \n" +" index.s = index.s / 2.0 + 0.5; \n" +" index.t = index.t / 2.0 + 0.5; \n" +" \n" +" // as we're looking at the framebuffer, we want it clamping at the edge of the rendered scene, not the edge of the texture, \n" +" // so we clamp before scaling to fit \n" +" float recip1k = 1.0 / 255.0; \n" +" index.s = clamp(index.s, 0.0, 1.0 - recip1k); \n" +" index.t = clamp(index.t, 0.0, 1.0 - recip1k); \n" +" \n" +" // scale the texture so we just see the rendered framebuffer \n" +" index.s = index.s * FrameWidth * recip1k; \n" +" index.t = index.t * FrameHeight * recip1k; \n" +" \n" +" vec3 RefractionColor = vec3 (texture2D(RefractionMap, index)); \n" +" \n" +" // Add lighting to base color and mix \n" +" vec3 base = LightIntensity * BaseColor; \n" +" envColor = mix(envColor, RefractionColor, fresnel); \n" +" envColor = mix(envColor, base, 0.2); \n" +" \n" +" gl_FragColor = vec4 (envColor, 1.0); \n" +"}"; + +irr::core::array rc_shader_materials; + +void init_refraction1() +{ + rc_shader_material_obj shader_material; + + rc_shader_obj obj; + + obj.name = "BaseColor"; + obj.type = "vec3"; + obj.fragVar = true; + obj.artistVar = true; + obj.value.push_back(rc_shader_float(0.40000)); + obj.value.push_back(rc_shader_float(0.40000)); + obj.value.push_back(rc_shader_float(0.10000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "Depth"; + obj.type = "float"; + obj.fragVar = true; + obj.artistVar = true; + obj.value.push_back(rc_shader_float(0.10000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "MixRatio"; + obj.type = "float"; + obj.fragVar = true; + obj.artistVar = true; + obj.value.push_back(rc_shader_float(1.0000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "FrameHeight"; + obj.type = "float"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_float(255.0000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "FrameWidth"; + obj.type = "float"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_float(255.0000)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "EnvMap"; + obj.type = "sampler2d"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_float(0)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + obj.name = "RefractionMap"; + obj.type = "predefined"; + obj.fragVar = true; + obj.artistVar = false; + obj.value.push_back(rc_shader_string("predefined_rtt_view")); + obj.additional_value.push_back(rc_shader_float(1)); + shader_material.shader_object.push_back(obj); + obj.value.clear(); + obj.additional_value.clear(); + + shader_material.frag_shader = refraction1_frag; + shader_material.vert_shader = refraction1_vert; + + rc_shader_materials.push_back(shader_material); +} + +std::string refraction2_frag; +std::string refraction2_vert; + +void init_refraction2() +{ + rc_shader_material_obj shader_material; + + shader_material.frag_shader = refraction2_frag; + shader_material.vert_shader = refraction2_vert; + + rc_shader_materials.push_back(shader_material); +} + + +//Now we have to set up a simple Render-To-Texture management +//----------------------------------------------------------- +//scenenode_for_rtt_view: +//Here all scenenodes get stored which use a shader with RTT requirement. +//This is currently just the glass refraction shader +core::array scenenodes_for_rtt_view; + +//tex_rtt_view: +//The texture which holds the texture render from the view position. +//There's currently no other RTT-type supported. Each type would need +//its own texture. +video::ITexture* tex_rtt_view = 0; + + +//Adds a scenenode to the RTT-queue if it has a RTT-requirement +//These information are all provided and handled by the DynamicShader files. +void registerSceneNodeForRTT(scene::ISceneNode* node, S_RTT_Info* rtt_info) +{ + if(node && rtt_info) + { + switch(rtt_info->type) + { + case ERT_VIEW: + { + if(scenenodes_for_rtt_view.size() <= 0) + tex_rtt_view = driver->addRenderTargetTexture( core::dimension2d(256,256) ); + + scenenodes_for_rtt_view.push_back(node); + node->setMaterialTexture(rtt_info->tex_channel,tex_rtt_view); + } + } + } +} + +int main() +{ + //again simple Irrlicht setup/loading stuff + device = createDevice(video::EDT_OPENGL, core::dimension2d(800,600)); + if(!device) return -1; + + driver = device->getVideoDriver(); + if(!driver) return -2; + + smgr = device->getSceneManager(); + if(!smgr) return -3; + + cam = smgr->addCameraSceneNodeMaya(); + + device->setWindowCaption(L"Dynamic Shader Example - Masterhawk studios 2011"); + + + //loading the angel model + scene::ISceneNode* glass_angel = smgr->addMeshSceneNode(smgr->getMesh("./meshes/statue_angel.obj")); + //setting up the environment texture for the simulated reflection. + //In IrrShaderViewer this is achieved by the settings xml files. + glass_angel->setMaterialTexture(0,driver->getTexture("./media/House.jpg")); + + //disable lighting. This shader doesn't need a light source + glass_angel->setMaterialFlag(video::EMF_LIGHTING,false); + + //loading the shader-defintion and create a shader. Don't forget to delete + //the pointer! + init_refraction1(); + CShader* glass_shader = new CShader(device, rc_shader_materials[0]); + + //assigning the shader to the scenenode + if(glass_shader) + glass_angel->setMaterialType((video::E_MATERIAL_TYPE)glass_shader->getMaterial()); + + //register the scenenode for RTT handling. This is made for every scenenode, no + //matter if its shader requires RTT support or not. The registerSceneNodeForRTT() + //takes care of this + registerSceneNodeForRTT(glass_angel,glass_shader->getRTTInfo(ERT_VIEW)); + + //adding a skybox so you can see a transparency effect + smgr->addSkyBoxSceneNode( + driver->getTexture("./media/irrlicht2_up.jpg"), + driver->getTexture("./media/irrlicht2_dn.jpg"), + driver->getTexture("./media/irrlicht2_lf.jpg"), + driver->getTexture("./media/irrlicht2_rt.jpg"), + driver->getTexture("./media/irrlicht2_ft.jpg"), + driver->getTexture("./media/irrlicht2_bk.jpg")); + + while(device->run()) + { + driver->beginScene(true, true, video::SColor(255,100,100,100)); + + //creating the RTT-VIEW texture for every frame + if(scenenodes_for_rtt_view.size() > 0) + { + for(s32 i=0; isetVisible(false); + + driver->setRenderTarget(tex_rtt_view); + smgr->drawAll(); + driver->setRenderTarget(0); + + for(s32 i=0; isetVisible(true); + } + + //just the normal rendering + smgr->drawAll(); + driver->endScene(); + } + + device->drop(); + + //deleting the shader + delete glass_shader; + + return 0; +} +