diff --git a/rc_gfx3D.h b/rc_gfx3D.h new file mode 100644 index 0000000..e0abf46 --- /dev/null +++ b/rc_gfx3D.h @@ -0,0 +1,221 @@ +int rc_loadMesh(std::string mesh_file) +int rc_loadMeshFromArchive(std::string archive, std::string mesh_file) +void rc_deleteMesh(int mesh_id) +int rc_createMesh() +bool rc_addMeshBuffer(int mesh_id, int vertex_count, double* vertex_data, double* normal_data, double* uv_data, int index_count, double* index_data) + +int rc_createMeshActor(int mesh_id) +int rc_createMeshOctreeActor(int mesh_id) +int rc_createCubeActor(double cube_size) +int rc_createSphereActor(double radius) +void rc_deleteActor(int actor_id) + +void rc_setGravity3D(double x, double y, double z) +void rc_setActorCollisionShape(int actor_id, int shape_type, double mass) +int rc_getActorCollisionShape(int actor) +void rc_setActorSolid(int actor_id, bool flag) +bool rc_actorIsSolid(int actor_id) +bool rc_getActorCollision(int actor1, int actor2) + + +//void rc_setActorTexture(int actor, int layer, int image_id) +//void rc_setActorTextureEx(int actor, int material, int layer, int resource_type, int resource_id) +//Uint32 rc_getActorMaterialCount(int actor) +//void rc_setActorMaterialFlag(int actor, int flag, bool flag_value) +//void rc_setActorMaterialFlagEx(int actor, int material, int flag, bool flag_value) +//bool rc_getActorMaterialFlag(int actor, int material, int flag) +//void rc_setActorMaterialType(int actor, int material_type) +//void rc_setActorMaterialTypeEx(int actor, int material, int material_type) +//int rc_getActorMaterialType(int actor, int material) +//void rc_setActorMaterial(int actor, int material_num, int material_id) +//int rc_getActorMaterial(int actor, int material_num) +//int rc_getActorTexture(int actor, int material, int layer) + +void rc_setActorPosition(int actor, double x, double y, double z) +void rc_translateActor(int actor, double x, double y, double z) +void rc_translateActorWorld(int actor, double x, double y, double z) +void rc_getActorPosition(int actor, double* x, double* y, double* z) +void rc_setActorScale(int actor, double x, double y, double z) +void rc_scaleActor(int actor, double x, double y, double z) +void rc_getActorScale(int actor, double* x, double* y, double* z) +void rc_setActorRotation(int actor, double x, double y, double z) +void rc_rotateActor(int actor, double x, double y, double z) +void rc_getActorRotation(int actor, double* x, double* y, double* z) +void rc_setActorGravity(int actor, double x, double y, double z) +void rc_getActorGravity(int actor, double* x, double* y, double* z) +void rc_setActorDamping(int actor, double lin_damping, double ang_damping) +double rc_getActorLinearDamping(int actor) +double rc_getActorAngularDamping(int actor) +double rc_getActorLinearSleepThreshold(int actor) +double rc_getActorAngularSleepThreshold(int actor) +void rc_applyActorDamping(int actor, double timeStep) +void rc_setActorMassProperties(int actor, double mass, double inertia_x, double inertia_y, double inertia_z) +void rc_getActorLinearFactor(int actor, double* x, double* y, double* z) +void rc_setActorLinearFactor(int actor, double x, double y, double z) +double rc_getActorInverseMass(int actor) +void rc_integrateActorVelocities(int actor, double step) +void rc_applyActorCentralForceLocal(int actor, double x, double y, double z) +void rc_applyActorCentralForceWorld(int actor, double x, double y, double z) +void rc_getActorTotalForce(int actor, double* x, double* y, double* z) +void rc_getActorTotalTorque(int actor, double* x, double* y, double* z) +void rc_getActorInverseInertiaDiagLocal(int actor, double* x, double* y, double* z) +void rc_setActorInverseInertiaDiagLocal(int actor, double x, double y, double z) +void rc_setActorSleepThresholds(int actor, double linear, double angular) +void rc_applyActorTorqueLocal(int actor, double x, double y, double z) +void rc_applyActorTorqueWorld(int actor, double x, double y, double z) +void rc_applyActorForceLocal(int actor, double x, double y, double z, double rel_x, double rel_y, double rel_z) +void rc_applyActorForceWorld(int actor, double x, double y, double z, double rel_x, double rel_y, double rel_z) +void rc_applyActorCentralImpulseLocal(int actor, double x, double y, double z) +void rc_applyActorCentralImpulseWorld(int actor, double x, double y, double z) +void rc_applyActorTorqueImpulseLocal(int actor, double x, double y, double z) +void rc_applyActorTorqueImpulseWorld(int actor, double x, double y, double z) +void rc_applyActorImpulseLocal(int actor, double x, double y, double z, double rel_x, double rel_y, double rel_z) +void rc_applyActorImpulseWorld(int actor, double x, double y, double z, double rel_x, double rel_y, double rel_z) +void rc_clearActorForces(int actor) +void rc_updateActorInertiaTensor(int actor) +void rc_getActorCOMPosition(int actor, double* x, double* y, double* z) +void rc_getActorRotationQ(int actor, double* x, double* y, double* z, double* w) +void rc_getActorLinearVelocity(int actor, double* x, double* y, double* z) +void rc_getActorAngularVelocity(int actor, double* x, double* y, double* z) +void rc_setActorLinearVelocityLocal(int actor, double x, double y, double z) +void rc_setActorLinearVelocityWorld(int actor, double x, double y, double z) +void rc_setActorAngularVelocityLocal(int actor, double x, double y, double z) +void rc_setActorAngularVelocityWorld(int actor, double x, double y, double z) +void rc_getActorLocalPointVelocity(int actor, double rel_x, double rel_y, double rel_z, double* x, double* y, double* z) +void rc_getActorLinearVelocityLocal(int actor, double* x, double* y, double* z) +void rc_getActorAngularVelocityLocal(int actor, double* x, double* y, double* z) +void rc_getActorAABB(int actor, double* min_x, double* min_y, double* min_z, double* max_x, double* max_y, double* max_z) +double rc_computeActorImpulseDenominator(int actor, double pos_x, double pos_y, double pos_z, double normal_x, double normal_y, double normal_z) +double rc_computeActorAngularImpulseDenominator(int actor, double x, double y, double z) +void rc_setActorAngularFactor(int actor, double x, double y, double z) +void rc_getActorAngularFactor(int actor, double* x, double* y, double* z) +void rc_computeActorGyroImpulseLocal(int actor, double step, double* x, double* y, double* z) +void rc_computeActorGyroImpulseWorld(int actor, double dt, double* x, double* y, double* z) +void rc_getActorLocalInertia(int actor, double* x, double* y, double* z) +int rc_createPointConstraint(int actorA, double pxA, double pyA, double pzA) +int rc_createPointConstraintEx(int actorA, int actorB, double pxA, double pyA, double pzA, double pxB, double pyB, double pzB) +void rc_setConstraintPivotA(int constraint_id, double x, double y, double z) +void rc_setConstraintPivotB(int constraint_id, double x, double y, double z) +int rc_createHingeConstraint(int actorA, double pxA, double pyA, double pzA, double axA, double ayA, double azA) +int rc_createHingeConstraintEx(int actorA, int actorB, double pxA, double pyA, double pzA, double pxB, double pyB, double pzB, double axA, double ayA, double azA, double axB, double ayB, double azB) +int rc_createSlideConstraint(int actorA, int frameInB_matrix, bool useLinearReferenceFrameA) +int rc_createSlideConstraintEx(int actorA, int actorB, int frameInA_matrix, int frameInB_matrix, bool useLinearReferenceFrameA) +int rc_createConeConstraint(int actorA, int rbAFrame_matrix) +int rc_createConeConstraintEx(int actorA, int actorB, int rbAFrame_matrix, int rbBFrame_matrix) +void rc_deleteConstraint(int constraint_id) +void rc_getConstraintFrameOffsetA(int constraint_id, double* x, double* y, double* z, double* rx, double* ry, double* rz) +void rc_getConstraintFrameOffsetB(int constraint_id, double* x, double* y, double* z, double* rx, double* ry, double* rz) +void rc_useConstraintFrameOffset(int constraint_id, bool flag) +double rc_getHingeAngle(int constraint_id) +double rc_getHingeAngleEx(int constraint_id, int t_matrixA, int t_matrixB) +double rc_getConstraintBreakingImpulseThreshold(int constraint_id) +int rc_getConstraintAFrame(int constraint_id, int mA) +int rc_getConstraintBFrame(int constraint_id, int mA) +void rc_setConstraintAxis(int constraint_id, double x, double y, double z) +void rc_setConstraintBreakingImpulseThreshold(int constraint_id, double threshold) +void rc_setConstraintFrames(int constraint_id, int frameA_matrix, int frameB_matrix) +void rc_setHingeLimit(int constraint_id, double low, double high, double softness, double bias_factor, double relaxation_factor) +void rc_setConeLimit(int constraint_id, double swingSpan1, double swingSpan2, double twistSpan, double softness, double bias_factor, double relaxation_factor) +double rc_getConstraintLimitBiasFactor(int constraint_id) +double rc_getLimitRelaxationFactor(int constraint_id) +double rc_getConstraintLimitSign(int constraint_id) +int rc_getHingeSolveLimit(int constraint_id) +void rc_useHingeReferenceFrameA(int constraint_id, bool flag) +double rc_getConstraintAppliedImpulse(int constraint_id) +int rc_getConstraintFixedActor(int constraint_id) +void rc_getConstraintPivotA(int constraint_id, double* x, double* y, double* z) +void rc_getConstraintPivotB(int constraint_id, double* x, double* y, double* z) +int rc_getConstraintActorA(int constraint_id) +int rc_getConstraintActorB(int constraint_id) +void rc_setConstraintSolverIterations(int constraint_id, int num) +double rc_getConstraintBiasFactor(int constraint_id) +double rc_getConstraintDamping(int constraint_id) +double rc_getConstraintFixThresh(int constraint_id) +double rc_getConstraintLimit(int constraint_id, int limit_index) +double rc_getConstraintLimitSoftness(int constraint_id) +double rc_getConstraintSolverIterations(int constraint_id) +void rc_getConstraintAnglePoint(int constraint_id, double angle, double len, double* x, double* y, double* z) +bool rc_getConstraintAngularOnly(int constraint_id) +int rc_getConstraintSolveSwingLimit(int constraint_id) +int rc_getConstraintSolveTwistLimit(int constraint_id) +int rc_getConstraintSolveLimit(int constraint_id) +double rc_getConstraintSwingSpan1(int constraint_id) +int rc_getConstraintSwingSpan2(int constraint_id) +double rc_getConstraintTwistAngle(int constraint_id) +double rc_getConstraintTwistLimitSign(int constraint_id) +int rc_getConstraintTwistSpan(int constraint_id) +void rc_setConstraintAngularOnly(int constraint_id, bool flag) +void rc_setConstraintDamping(int constraint_id, double damping) +void rc_setConstraintFixThresh(int constraint_id, double fixThresh) +void rc_getConstraintAnchorA(int constraint_id, double* x, double* y, double* z) +void rc_getConstraintAnchorB(int constraint_id, double* x, double* y, double* z) +double rc_getConstraintAngDepth(int constraint_id) +double rc_getConstraintAngularPos(int constraint_id) +double rc_getConstraintDampingDirAng(int constraint_id) +double rc_getConstraintDampingDirLin(int constraint_id) +double rc_getConstraintDampingLimAng(int constraint_id) +double rc_getConstraintDampingLimLin(int constraint_id) +double rc_getConstraintDampingOrthoAng(int constraint_id) +double rc_getConstraintDampingOrthoLin(int constraint_id) +double rc_getConstraintLinearPos(int constraint_id) +double rc_getConstraintLinDepth(int constraint_id) +double rc_getConstraintLowerAngLimit(int constraint_id) +double rc_getConstraintLowerLinLimit(int constraint_id) +double rc_getConstraintRestitutionDirAng(int constraint_id) +double rc_getConstraintRestitutionDirLin(int constraint_id) +double rc_getConstraintRestitutionLimAng(int constraint_id) +double rc_getConstraintRestitutionLimLin(int constraint_id) +double rc_getConstraintRestitutionOrthoAng(int constraint_id) +double rc_getConstraintRestitutionOrthoLin(int constraint_id) +double rc_getConstraintSoftnessDirAng(int constraint_id) +double rc_getConstraintSoftnessDirLin(int constraint_id) +double rc_getConstraintSoftnessLimAng(int constraint_id) +double rc_getConstraintSoftnessLimLin(int constraint_id) +double rc_getConstraintSoftnessOrthoAng(int constraint_id) +double rc_getConstraintSoftnessOrthoLin(int constraint_id) +bool rc_getConstraintSolveAngLimit(int constraint_id) +bool rc_getConstraintSolveLinLimit(int constraint_id) +double rc_getConstraintUpperAngLimit(int constraint_id) +double rc_getConstraintUpperLinLimit(int constraint_id) +bool rc_getConstraintUseFrameOffset(int constraint_id) +void rc_setConstraintDampingDirAng(int constraint_id, double n) +void rc_setConstraintDampingDirLin(int constraint_id, double n) +void rc_setConstraintDampingLimAng(int constraint_id, double n) +void rc_setConstraintDampingLimLin(int constraint_id, double n) +void rc_setConstraintDampingOrthoAng(int constraint_id, double n) +void rc_setConstraintDampingOrthoLin(int constraint_id, double n) +void rc_setConstraintLowerAngLimit(int constraint_id, double n) +void rc_setConstraintLowerLinLimit(int constraint_id, double n) +void rc_setConstraintRestitutionDirAng(int constraint_id, double n) +void rc_setConstraintRestitutionDirLin(int constraint_id, double n) +void rc_setConstraintRestitutionLimAng(int constraint_id, double n) +void rc_setConstraintRestitutionLimLin(int constraint_id, double n) +void rc_setConstraintRestitutionOrthoAng(int constraint_id, double n) +void rc_setConstraintRestitutionOrthoLin(int constraint_id, double n) +void rc_setConstraintSoftnessDirAng(int constraint_id, double n) +void rc_setConstraintSoftnessDirLin(int constraint_id, double n) +void rc_setConstraintSoftnessLimAng(int constraint_id, double n) +void rc_setConstraintSoftnessLimLin(int constraint_id, double n) +void rc_setConstraintSoftnessOrthoAng(int constraint_id, double n) +void rc_setConstraintSoftnessOrthoLin(int constraint_id, double n) +void rc_setConstraintUpperAngLimit(int constraint_id, double n) +void rc_setConstraintUpperLinLimit(int constraint_id, double n) + + +void rc_setWorld3DDeltaTime(double dt) +void rc_setWorld3DMaxSubSteps(double steps) +void rc_setWorld3DTimeStep(double ts) + + + + +void rc_setActorAnimation(int actor, int start_frame, int end_frame) +void rc_setActorAnimationSpeed(int actor, double speed) + +void rc_setCameraPosition(double x, double y, double z) +void rc_getCameraPosition(double* x, double* y, double* z) +void rc_translateCamera(double x, double y, double z) +void rc_translateCameraW(double x, double y, double z) +void rc_setCameraRotation(double x, double y, double z) +void rc_getCameraRotation(double* x, double* y, double* z) +void rc_rotateCamera(double x, double y, double z) diff --git a/rcbasic_build/.~lock.rcbasic4_changes.ods# b/rcbasic_build/.~lock.rcbasic4_changes.ods# new file mode 100644 index 0000000..f9ca4e1 --- /dev/null +++ b/rcbasic_build/.~lock.rcbasic4_changes.ods# @@ -0,0 +1 @@ +,n00b,fedora,07.09.2024 21:47,file:///home/n00b/.config/libreoffice/4; \ No newline at end of file diff --git a/rcbasic_build/bin/Release/rcbasic_build b/rcbasic_build/bin/Release/rcbasic_build index c1de5dc..7c95302 100755 Binary files a/rcbasic_build/bin/Release/rcbasic_build and b/rcbasic_build/bin/Release/rcbasic_build differ diff --git a/rcbasic_build/embedded_functions.bas b/rcbasic_build/embedded_functions.bas old mode 100755 new mode 100644 index 40b7519..be6cb03 --- a/rcbasic_build/embedded_functions.bas +++ b/rcbasic_build/embedded_functions.bas @@ -1,527 +1,37 @@ -'StringFill -'Stack_Size_N -'Stack_Size_S -'Text I/O -sub FPrint(txt$) -function Input$(prompt$) -'Arrays -function ArrayDim(Byref id) -function StringArrayDim(Byref id$) -function NumberArrayDim(Byref id) -function ArraySize(Byref id, array_dim) -function StringArraySize(Byref id$, array_dim) -function NumberArraySize(Byref id, array_dim) -'Math -function Abs(n) -function ACos(n) -function AndBit(a,b) -function ASin(n) -function ATan(n) -function Bin$(n) -function CInt32(i) -function CInt64(i) -function Cos(n) -function Degrees(r) -function Exp(n) -function Frac(n) -function Hex$(n) -function HexVal(n$) -function Int(n) -function Log(n) -function Max(a, b) -function Min(a, b) -function OrBit(a, b) -function Radians(d) -function Randomize(n) -function Rand(n) -function Round(n) -function Sign(n) -function Sin(n) -function Sqrt(n) -function Tan(n) -function XOrBit(a, b) -'Strings -function Asc(c$) -function Chr$(n) -function Insert$(src$, tgt$, pos) -function InStr(src$, substr$) -function LCase$(src$) -function Left$(src$, n) -function Length(src$) -function Len(src$) -function LTrim$(src$) -function Mid$(src$, start, n) -function ReplaceSubstr$(src$, rpc$, pos) -function Replace$(src$, tgt$, rpc$) -function Reverse$(src$) -function Right$(src$, n) -function RTrim$(src$) -function StringFill$(src$, n) -function Str$(n) -function Str_F$(n) -function Str_S$(n) -function Tally(src$, substr$) -function Trim$(src$) -function UCase$(src$) -function Val(n$) -'Stacks -sub Stack_N(n) -sub Stack_S(n) -sub Push_N(n) -function Pop_N() -sub Push_S(s$) -function Pop_S$() -function Stack_Size_N() -function Stack_Size_S() -'File I/O -function FileOpen(stream, fileName$, mode) -sub FileClose(stream) -function ReadByte(stream) -sub WriteByte(stream, byte) -function ReadLine$(stream) -sub Write(stream, txt$) -sub WriteLine(stream, txt$) -sub CopyFile(src$, dst$) -function RemoveFile(fileName$) -function FileExists(fileName$) -function MoveFile(src$, dst$) -function RenameFile(src$, dst$) -function FileLength(fileName$) -function Tell(stream) -function Seek(stream, pos) -function EOF(stream) -function FreeFile() -'Directories -sub ChangeDir(p$) -function DirExists(p$) -function DirFirst$() -function Dir$() -function DirNext$() -function MakeDir(p$) -function RemoveDir(p$) -'Date and Time -function Date$() -function Easter$(year) -function Ticks() -function Time$() -function Timer() -sub Wait(m_sec) -'Window Management -sub WindowOpen(win, title$, x, y, w, h, flag, vsync) -sub WindowClose(win) -sub RaiseWindow(win) -sub Window(win) -sub Update() -sub Cls() -sub SetClearColor(c) -sub ShowWindow(win) -sub HideWindow(win) -sub SetWindowTitle(win, title$) -function WindowTitle$(win) -sub SetWindowPosition(win, x, y) -sub GetWindowPosition(win, byref x, byref y) -sub SetWindowSize(win, w, h) -sub GetWindowSize(win, byref w, byref h) -sub SetWindowMinSize(win, w, h) -sub GetWindowMinSize(win, byref w, byref h) -sub SetWindowMaxSize(win, w, h) -sub GetWindowMaxSize(win, byref w, byref h) -function WindowIsFullscreen(win) -function WindowIsVisible(win) -function WindowIsBordered(win) -function WindowIsResizable(win) -function WindowIsMinimized(win) -function WindowIsMaximized(win) -function WindowHasInputFocus(win) -function WindowHasMouseFocus(win) -sub SetWindowFullscreen(win, flag) -sub MaximizeWindow(win) -sub MinimizeWindow(win) -sub SetWindowBorder(win, flag) -sub WindowClip(slot, x, y, w, h) -function WindowExists(win) -function NumWindows() -function WindowEvent_Close(win) -function WindowEvent_Maximize(win) -function WindowEvent_Minimize(win) -function ActiveWindow() -function FPS() -sub SetWindowIcon(win, slot) -'Canvases -sub CanvasOpen(c_num, w, h, viewport_x, viewport_y, viewport_w, viewport_h, mode) -sub CanvasClose(c_num) -sub SetCanvasVisible(c_num, flag) -function CanvasIsVisible(c_num) -sub SetCanvasViewport(cnum, x, y, w, h) -sub GetCanvasViewport(c_num, byref x, byref y, byref w, byref h) -sub Canvas(c_num) -sub SetCanvasOffset(c_num, x, y) -sub GetCanvasOffset(c_num, byref x, byref y) -sub GetCanvasSize(c_num, byref w, byref h) -sub ClearCanvas() -sub SetCanvasAlpha(c_num, a) -function CanvasAlpha(c_num) -function SetCanvasBlendMode(c_num, blend_mode) -function CanvasBlendMode(c_num) -function SetCanvasColorMod(c_num, c) -function CanvasColorMod(c_num) -sub CopyCanvas(src, x, y, w, h, dst, dx, dy) -sub CloneCanvas(src, dst) -sub SetCanvasZ(c_num, z) -function CanvasZ(c_num) -sub CanvasClip(slot, x, y, w, h, flag) -function ActiveCanvas() -'Graphics Primitives -sub Box(x1, y1, x2, y2) -sub BoxFill(x1, y1, x2, y2) -sub Circle(x,y,radius) -sub CircleFill(x,y,radius) -sub Ellipse(x,y,rx,ry) -sub EllipseFill(x,y,rx,ry) -sub FloodFill(x,y) -function GetPixel(x,y) -sub SetColor(c) -sub Line(x1, y1, x2, y2) -sub Poly(n, byref x, byref y) -sub PolyFill(n, byref x, byref y) -sub Rect(x, y, w, h) -sub RectFill(x, y, w, h) -sub RoundRect(x, y, w, h, r) -sub RoundRectFill(x, y, w, h, r) -function RGB(r,g,b) -function RGBA(r,g,b,a) -sub PSet(x,y) -'Images -sub LoadImage(slot, img$) -sub LoadImage_Ex(slot, img$, colkey) -sub ImageFromBuffer(slot, w, h, byref buffer) -sub ImageFromBuffer_Ex(slot, w, h, byref buffer, colkey) -sub BufferFromImage(slot, byref buffer) -function ImageExists(slot) -sub ColorKey(slot, c) -sub CopyImage(src, dst) -sub DeleteImage(slot) -sub SetImageAlpha(slot, a) -function ImageAlpha(slot) -sub GetImageSize(slot, byref w, byref h) -function SetImageBlendMode(slot, blend_mode) -function ImageBlendMode(slot) -function SetImageColorMod(slot, c) -function ImageColorMod(slot) -sub DrawImage(slot, x, y) -sub DrawImage_Blit(slot, x, y, src_x, src_y, src_w, src_h) -sub DrawImage_Blit_Ex(slot, x, y, w, h, src_x, src_y, src_w, src_h) -sub DrawImage_Rotate(slot, x, y, angle) -sub DrawImage_Rotate_Ex(slot, x, y, src_x, src_y, src_w, src_h, angle) -sub DrawImage_Zoom(slot, x, y, zx, zy) -sub DrawImage_Zoom_Ex(slot, x, y, src_x, src_y, src_w, src_h, zx, zy) -sub DrawImage_Rotozoom(slot, x, y, angle, zx, zy) -sub DrawImage_Rotozoom_Ex(slot, x, y, src_x, src_y, src_w, src_h, angle, zx, zy) -sub DrawImage_Flip(slot, x, y, h, v) -sub DrawImage_Flip_Ex(slot, x, y, src_x, src_y, src_w, src_h, h, v) -'Keyboard and Mouse -function InKey() -function Key(key_code) -function WaitKey() -sub HideMouse() -sub ShowMouse() -function MouseIsVisible() -sub GetMouse(byref x, byref y, byref mb1, byref mb2, byref mb3) -function MouseX() -function MouseY() -function MouseButton(mb) -sub GetMouseWheel(byref x_axis, byref y_axis) -function MouseWheelX() -function MouseWheelY() -'Sound and Music -sub SoundFromBuffer(slot, byref buffer, buffer_size, vol) -sub LoadSound(slot, snd_file$) -sub LoadMusic(music_file$) -sub PlaySound(slot, channel, loops) -sub PlaySoundTimed(slot, channel, loops, ms) -sub PlayMusic(mLoops) -sub PauseSound(channel) -sub ResumeSound(channel) -sub PauseMusic() -sub ResumeMusic() -sub DeleteSound(slot) -sub DeleteMusic() -sub FadeMusicIn(fade_time, loops) -sub FadeMusicOut(fade_time) -function MusicExists() -sub SetMusicVolume(vol) -function MusicVolume() -sub SetMusicPosition(pos) -function MusicPosition() -sub RewindMusic() -sub SetSoundChannels(max_channels) -function NumSoundChannels() -function SoundIsEnabled() -function SoundExists(slot) -sub SetChannelVolume(channel, vol) -function ChannelVolume(channel) -sub SetSoundVolume(slot, vol) -function SoundVolume(slot) -sub StopMusic() -sub StopSound(channel) -function SetChannelPanning(channel, left_value, right_value) -function SetChannelDistance(channel, dist_value) -function ChannelIsPlaying(channel) -function ChannelIsPaused(channel) -'Joysticks -function NumJoysticks() -function NumJoyAxes(joy_num) -function NumJoyButtons(joy_num) -function NumJoyHats(joy_num) -function NumJoyTrackBalls(joy_num) -function JoyAxis(joy_num, joy_axis) -function JoyButton(joy_num, joy_button) -function JoyHat(joy_num, joy_hat) -sub GetJoyTrackBall(joy_num, ball, byref dx, byref dy) -function JoyName$(joy_num) -function JoystickIsConnected(joy_num) -'Screen Console -sub GetCursor(byref x, byref y) -sub PrintS(txt$) -function InputS$(prompt$) -function ZoneInputS$(x, y, w, h) -sub Locate(x, y) -'Text Editing -sub ReadInput_Start() -sub ReadInput_Stop() -function ReadInput_Text$() -sub ReadInput_SetText(txt$) -sub ReadInput_ToggleBackspace(flag) -'Text Drawing -sub LoadFont(slot, fnt_file$, size) -sub DeleteFont(slot) -function FontIsLoaded(slot) -sub Font(slot) -sub SetFontStyle(slot, style) -sub DrawText(txt$, x, y) -sub DrawText_Shaded(txt$, x, y, fg_color, bg_color) -sub DrawText_Blended(txt$, x, y) -sub RenderText(slot, txt$) -sub GetTextSize(slot, txt$, byref w, byref h) -'Touch Events -function TouchPressure() -sub GetTouch(byref status, byref x, byref y, byref dx, byref dy) -sub GetMultiTouch(byref status, byref x, byref y, byref fingers, byref dist, byref theta) -sub GetTouchFinger(finger, byref x, byref y, byref pressure) -function NumFingers() -'Networking -function CheckSockets(timeout_ms) -function TCP_SocketReady(socket) -function UDP_SocketReady(socket) -function TCP_SocketOpen(socket, host$, port) -sub TCP_SocketClose(socket) -function TCP_RemoteHost(socket) -function TCP_RemotePort(socket) -function TCP_GetData(socket, ByRef sData$, numBytes) -sub TCP_SendData(socket, sData$) -function TCP_AcceptSocket(server, client) -function UDP_SocketOpen(socket, port) -function UDP_SocketClose(socket) -function UDP_GetData(socket, byref sData$, byref host$, byref port) -function UDP_Length() -function UDP_MaxLength() -function UDP_RemoteHost$(socket) -function UDP_RemotePort(socket) -sub UDP_SendData(socket, sData$, host$, port) -'Video Playback -sub LoadVideo(vid$) -sub PlayVideo(vLoops) -sub PauseVideo() -sub StopVideo() -sub SetVideoPosition(pos) -sub ResumeVideo() -function VideoPosition() -sub DeleteVideo() -function VideoIsPlaying() -function VideoEnd() -sub GetVideoStats(vFile$, byref vLen, byref vfps, byref frame_w, byref frame_h) -sub SetVideoDrawRect(x, y, w, h) -sub GetVideoDrawRect(byref x, byref y, byref w, byref h) -sub GetVideoSize(byref w, byref h) -function VideoExists() -sub SetVideoAlpha(a) -'Operating System -function System(cmd$) -function OS$() -function Command$(arg) -function NumCommands() -function Env$(v$) -sub SetEnv(var$, value$, overwrite) -function PrefPath$(org_name$, app_name$) -function Android_GetExternalStoragePath$() -function Android_GetExternalStorageState() -function Android_GetInternalStoragePath$() -function Android_JNI_Message$(arg$) -function Runtime_Utility_Message$(arg$) -'Clipboard -function ClipboardText$() -sub SetClipboardText(txt$) -function HasClipboardText() - -'v3.12 -Sub GetDesktopDisplayMode(index, ByRef w, ByRef h, ByRef freq) -Sub DrawImage_Transform(slot, x, y, w, h, src_x, src_y, src_w, src_h, angle, center_x, center_y, flip_h, flip_v) -Sub GetPowerInfo(ByRef status, ByRef secs, ByRef pct) -Function SystemRam() -Function SetRenderScaleQuality(n) -Function EvalJS$(js_code$) 'Only useable in Emscripten -Function GetRenderScaleQuality() - -'v3.14 -sub GetGlobalMouse(ByRef x, ByRef y, ByRef mb1, ByRef mb2, ByRef mb3) -function GlobalMouseX() -function GlobalMouseY() -sub GetAccel(accel_num, ByRef x, ByRef y, ByRef z) -function AccelName$(accel_num) -function NumAccels() -sub GetGyro(gyro_num, ByRef x, ByRef y, ByRef z) -function GyroName$(gyro_num) -function NumGyros() -sub JoyRumblePlay(joy_num, strength, duration) -sub JoyRumbleStop(joy_num) -function JoystickIsHaptic(joy_num) -function WriteByteBuffer(stream, ByRef buf, buf_size) -function ReadByteBuffer(stream, ByRef buf, buf_size) -function WindowEvent_Resize(win) -sub SetWindowAutoClose( win, exit_on_close ) -sub SetWindowResizable(win, flag) 'new -function SystemReturnStdOut$(cmd$) 'new -function WindowMode(visible, fullscreen, resizable, borderless, highDPI) -function WindowFlags(win) -sub RestoreWindow(win) -sub UpdateAllWindows() 'new -function QueryAudioSpec(ByRef freq, ByRef format, ByRef channels) 'new - -'v3.15 -function MusicIsPlaying() - -'v3.19 -function DrawGeometry(slot, num_vertices, ByRef vertices, num_indices, ByRef Indices) - -'v3.20 -function Size(s$) -function BufferFromString(s$, ByRef buffer) -function StringFromBuffer$(ByRef buffer, buffer_size) -sub GrabInput(flag) -function GrabbedWindow() -sub WarpMouse(x, y) -sub WarpMouseGlobal(x, y) -sub SetMouseZone(x, y, w, h) -sub ClearMouseZone() -sub SetWindowAlwaysOnTop(win, flag) -sub SetMouseRelative(flag) -sub SetWindowVSync(win, flag) -function OpenURL(url$) -function APIVersion$() -function FlashWindow(win) -function MessageBox(title$, msg$) -sub NumberArrayCopy(ByRef src, ByRef dst) -sub StringArrayCopy(ByRef src$, ByRef dst$) -sub ArrayCopy(ByRef src, ByRef dst) -sub NumberArrayFill(ByRef src, fdata) -sub StringArrayFill(ByRef src$, fdata$) -sub ArrayFill(ByRef src, fdata) -function Runtime$() - -'More v3.20 (Matrices and Parrallism) -sub DimMatrix(m, m_rows, m_cols, preserve_flag) -function AddMatrix(mA, mB, mC) -function AugmentMatrix (mA, mB, mC) -sub CopyMatrix(mA, mB) -function InsertMatrixColumns(mA, c, num_cols) -function InsertMatrixRows(mA, r, num_rows) -function MultiplyMatrix (mA, mB, mC) -function CubeMatrix(mA, mB) -function DeleteMatrixColumns(mA, c, num_cols) -function DeleteMatrixRows(mA, r, num_rows) -sub ClearMatrix(mA) -function ClearMatrixColumns (mA, c, num_cols) -function ClearMatrixRows(mA, r, num_rows) -sub FillMatrix(mA, v) -function FillMatrixColumns(mA, c, num_cols, v) -function FillMatrixRows(mA, r, num_rows, v) -function CopyMatrixColumns(mA, mB, c, num_cols) -function CopyMatrixRows (mA, mB, r, num_rows) -sub IdentityMatrix(mA, n) -function SolveMatrix(mA, mB, mC) -function IsEqualMatrix(mA, mB, tolerance) -function Determinant(mA) -function AdjointMatrix(mA, mB) -function InvertMatrix(mA, mB) -sub MatrixFromBuffer(mA, r, c, ByRef buffer) -sub GetMatrix(ByRef buffer, mA) -sub RandomizeMatrix(mA, vmin, vmax) -function MatrixValue(mA, r, c) -sub SetMatrixValue(mA, r, c, v) -sub ScalarMatrix (mA, mB, s_value) -function ScalarMatrixColumns(mA, mB, c, num_cols, s_value) -function ScalarMatrixRows(mA, mB, r, num_rows, s_value) -function SquareMatrix(mA, mB) -sub SubMatrix(mA, r, c) -function SubtractMatrix (mA, mB, mC) -sub SwapMatrix(mA, mB) -function SwapMatrixColumn(mA, C1, C2) -function SwapMatrixRow(mA, R1, R2) -function TransposeMatrix(mA, mB) -function UnAugmentMatrix(mA, mB, mC) -sub ZeroMatrix(mA) - -sub GetMatrixSize(mA, ByRef r, ByRef c) -function SetMatrixProcess(p_num) 'Set to -1 for main thread - - -'ERROR_FLAG - MATRIX_ON_ERROR_STOP, MATRIX_ON_ERROR_WAIT, MATRIX_ON_ERROR_CONTINUE -function ProcessOpen(p_num) 'stops and locks mutex, and clears queue before changing mode -sub SetProcessErrorMode(p_num, error_mode) -function ProcessError(p_num) -sub ProcessWait(p_num) 'waits for all calculations to complete and lock matrix mutex -sub ProcessWaitAll() 'waits for all process to finish -sub ProcessContinue(p_num) 'unlock mutex -sub ProcessStop(p_num) 'stops after current calculation its working on and lock mutex -sub ProcessClear(p_num) 'locks mutex and clears matrix queue -function ProcessClose(p_num) -function ProcessErrorMode(p_num) -sub ProcessSleep(p_num, msec) -function ProcessExists(p_num) -sub ProcessStopAll() -sub ProcessContinueAll() -function ProcessQueueSize(p_num) - -function NumCPUs() - -'v3.21 -sub GetProjectionGeometry(cam_dist, mA, f_vertex_count, ByRef columns, ByRef uv, graph_offset_x, graph_offset_y, v_color, ByRef vertex_count, ByRef vertex2D, ByRef index_count, ByRef index, ByRef clip_dist, ByRef min_x, ByRef min_y, ByRef max_x, ByRef max_y) -function CalculateFaceZ(cam_dist, graph_offset_x, graph_offset_y, view_w, view_h, view_depth, mA, f_vertex_count, ByRef columns, ByRef face_min_z, ByRef face_max_z, ByRef z_avg) -function SetChannelSpacePosition(channel, angle, distance) -function SaveBMP(img, file$) -function SavePNG(img, file$) -function SaveJPG(img, file$) -Function GetLineIntersection(p0_x, p0_y, p1_x, p1_y, p2_x, p2_y, p3_x, p3_y, ByRef i_x, ByRef i_y) -Function Interpolate(min_a, max_a, mid_a, min_b, max_b) -Function ATan2(y, x) -function PointInQuad(x, y, x1, y1, x2, y2, x3, y3, x4, y4) -function PointInTri(x, y, x1, y1, x2, y2, x3, y3) -Function Distance2D(x1, y1, x2, y2) -Function Distance3D(x1, y1, z1, x2, y2, z2) -function GetCircleLineIntersection(circle_x, circle_y, radius, x1, y1, x2, y2, ByRef ix1, ByRef iy1, ByRef ix2, ByRef iy2) -function GetLinePlaneIntersection(ByRef line_point, ByRef line_direction, ByRef plane_point_1, ByRef plane_point_2, ByRef plane_point_3, ByRef intersection) -sub IncrementMatrixRows(mA, mB, r, num_rows, value) -sub IncrementMatrixColumns(mA, mB, c, num_cols, value) -sub JoinMatrixRows(mA, mB, mC) -sub JoinMatrixColumns(mA, mB, mC) - -'v4.0 - 'Empty Type is used mainly for built-in functions that need to have a user type specified to be able to compile properly type empty end type -function TypeArrayDim(Byref id as empty) -function TypeArraySize(Byref id as empty, array_dim) -sub TypeArrayCopy(ByRef src as empty, ByRef dst as empty) -sub TypeArrayFill(ByRef src as empty, fdata as empty) +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/conio.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/arrays.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/math.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/strings.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/stacks.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/files.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/directories.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/datetime.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/window.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/canvas.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/prim2d.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/images.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/keyboard.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/audio.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/joystick.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/gfxconsole.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/text.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/touch.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/network.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/video.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/system.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/matrix.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/process.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/clipboard.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/textedit.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/sprites.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/sprite_physics.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/tilemaps.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/mesh.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/actor.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/actor_physics.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/constraint3D.bas" +Include "/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/camera.bas" diff --git a/rcbasic_build/intern_lib/actor.bas b/rcbasic_build/intern_lib/actor.bas new file mode 100644 index 0000000..1e31269 --- /dev/null +++ b/rcbasic_build/intern_lib/actor.bas @@ -0,0 +1,76 @@ +function CreateMeshActor( mesh ) +function CreateMeshOctreeActor( mesh ) +function CreateCubeActor( cube_size ) +function CreateSphereActor( radius ) +sub DeleteActor( actor ) +sub GetActorTransform( actor, matrix ) +function CreateTerrainActor( hmap_file$ ) +sub GetTerrainPatchAABB( actor, patchX, patchZ, ByRef minX, ByRef minY, ByRef minZ, ByRef maxX, ByRef maxY, ByRef maxZ ) +function GetTerrainPatchLOD( actor, patchX, patchZ ) +function GetTerrainHeight( actor, patchX, patchZ ) +sub GetTerrainCenter( actor, ByRef x, ByRef y, ByRef z ) +sub SetTerrainLODDistance( actor, LOD, distance ) +sub ScaleTerrainTexture( actor, scale, scale2 ) +sub SetTerrainCameraMovementDelta( actor, delta ) +sub SetTerrainCameraRotationDelta( actor, delta ) +sub SetTerrainPatchLOD( actor, patchX, patchZ, LOD ) +sub SetActorTexture( actor, layer, image_id ) +sub SetActorTextureEx( actor, material, layer, resource_type, resource_id ) +function GetActorTexture( actor, material, layer ) +function GetActorMaterialCount( actor ) +sub SetActorMaterialFlag( actor, flag, flag_value ) +sub SetActorMaterialFlagEx( actor, material, flag, flag_value) +function GetActorMaterialFlag( actor, material, flag) +sub SetActorMaterialType( actor, material_type) +sub SetActorMaterialTypeEx( actor, material, material_type) +function GetActorMaterialType( actor, material ) +sub SetActorMaterial( actor, material_num, material_id) +function GetActorMaterial( actor, material_num) +sub SetActorPosition( actor, x, y, z ) +sub TranslateActor( actor, x, y, z ) +sub TranslateActorWorld( actor, x, y, z ) +sub GetActorPosition( actor, ByRef x, ByRef y, ByRef z ) +sub SetActorScale( actor, x, y, z ) +sub ScaleActor( actor, x, y, z ) +sub GetActorScale( actor, ByRef x, ByRef y, ByRef z ) +sub SetActorRotation( actor, x, y, z ) +sub RotateActor( actor, x, y, z ) +sub GetActorRotation( actor, ByRef x, ByRef y, ByRef z ) +sub SetActorAnimation( actor, start_frame, end_frame) +sub SetActorAnimationSpeed( actor, speed ) +sub SetActorFrame( actor, frame ) +function SetActorMD2Animation( actor, anim ) +function SetActorMD2AnimationByName( actor, anim_name$ ) +function GetActorAnimationSpeed( actor ) +function GetActorEndFrame( actor ) +function GetActorCurrentFrame( actor ) +function GetActorStartFrame( actor ) +sub SetActorVisible( actor, flag ) +function ActorIsVisible( actor ) +sub SetActorAutoCulling( actor, cull_type ) +function GetActorAutoCulling( actor ) +function actorAnimationIsLooped( actor ) +sub loopActorAnimation( actor, flag ) +sub AddActorShadow( actor ) +sub RemoveActorShadow( actor ) +sub StartActorTransition( actor, frame, transition_time ) +sub StopActorTransition( actor ) +function ActorIsInTransition( actor ) +function GetActorTransitionTime( actor ) +sub SetActorAnimation( actor, start_frame, end_frame) +sub SetActorAnimationSpeed( actor, speed ) +sub SetActorFrame( actor, frame ) +sub SetActorJointMode( actor, mode ) +sub SetActorLoopMode( actor, mode ) +function SetActorMD2Animation( actor, anim ) +function SetActorMD2AnimationByName( actor, anim_name$ ) +sub SetActorMesh( actor, mesh ) +sub SetActorRenderFromIdentity( actor, flag ) +sub SetActorTransitionTime( actor ) +function GetActorLoopMode( actor ) +function GetActorAnimationSpeed( actor ) +function GetActorEndFrame( actor ) +function GetActorCurrentFrame( actor ) +function GetActorStartFrame( actor ) +sub SetActorVisible( actor, flag ) +function GetActorVisible( actor ) diff --git a/rcbasic_build/intern_lib/actor_physics.bas b/rcbasic_build/intern_lib/actor_physics.bas new file mode 100644 index 0000000..7094ead --- /dev/null +++ b/rcbasic_build/intern_lib/actor_physics.bas @@ -0,0 +1,58 @@ +sub SetGravity3D(x, y, z) +sub GetGravity3D(ByRef x, ByRef y, ByRef z) +sub SetActorCollisionShape( actor, shape_type, mass) +function GetActorCollisionShape(actor) +sub SetActorSolid(actor, flag) +function ActorIsSolid(actor) +function GetActorCollision(actor1, actor2) +sub SetActorGravity( actor, x, y, z ) +sub GetActorGravity( actor, ByRef x, ByRef y, ByRef z ) +sub setActorDamping( actor, lin_damping, ang_damping) +function getActorLinearDamping( actor) +function getActorAngularDamping( actor) +function getActorLinearSleepThreshold( actor) +function getActorAngularSleepThreshold( actor) +sub applyActorDamping( actor, timeStep) +sub setActorMassProperties( actor, mass, inertia_x, inertia_y, inertia_z) +sub getActorLinearFactor( actor, ByRef x, ByRef y, ByRef z) +sub setActorLinearFactor( actor, x, y, z) +function getActorInverseMass( actor) +sub integrateActorVelocities( actor, step) +sub applyActorCentralForceLocal( actor, x, y, z) +sub applyActorCentralForceWorld( actor, x, y, z) +sub getActorTotalForce( actor, ByRef x, ByRef y, ByRef z) +sub getActorTotalTorque( actor, ByRef x, ByRef y, ByRef z) +sub getActorInverseInertiaDiagLocal( actor, ByRef x, ByRef y, ByRef z) +sub setActorInverseInertiaDiagLocal( actor, x, y, z) +sub setActorSleepThresholds( actor, linear, angular) +sub applyActorTorqueLocal( actor, x, y, z) +sub applyActorTorqueWorld( actor, x, y, z) +sub applyActorForceLocal( actor, x, y, z, rel_x, rel_y, rel_z) +sub applyActorForceWorld( actor, x, y, z, rel_x, rel_y, rel_z) +sub applyActorCentralImpulseLocal( actor, x, y, z) +sub applyActorCentralImpulseWorld( actor, x, y, z) +sub applyActorTorqueImpulseLocal( actor, x, y, z) +sub applyActorTorqueImpulseWorld( actor, x, y, z) +sub applyActorImpulseLocal( actor, x, y, z, rel_x, rel_y, rel_z) +sub applyActorImpulseWorld( actor, x, y, z, rel_x, rel_y, rel_z) +sub clearActorForces( actor) +sub updateActorInertiaTensor( actor) +sub getActorCOMPosition( actor, ByRef x, ByRef y, ByRef z) +sub getActorRotationQ( actor, ByRef x, ByRef y, ByRef z, ByRef w) +sub getActorLinearVelocity( actor, ByRef x, ByRef y, ByRef z) +sub getActorAngularVelocity( actor, ByRef x, ByRef y, ByRef z) +sub setActorLinearVelocityLocal( actor, x, y, z) +sub setActorLinearVelocityWorld( actor, x, y, z) +sub setActorAngularVelocityLocal( actor, x, y, z) +sub setActorAngularVelocityWorld( actor, x, y, z) +sub getActorLocalPointVelocity( actor, rel_x, rel_y, rel_z, ByRef x, ByRef y, ByRef z) +sub getActorLinearVelocityLocal( actor, ByRef x, ByRef y, ByRef z) +sub getActorAngularVelocityLocal( actor, ByRef x, ByRef y, ByRef z) +sub getActorAABB( actor, ByRef min_x, ByRef min_y, ByRef min_z, ByRef max_x, ByRef max_y, ByRef max_z) +function computeActorImpulseDenominator( actor, pos_x, pos_y, pos_z, normal_x, normal_y, normal_z) +function computeActorAngularImpulseDenominator( actor, x, y, z) +sub setActorAngularFactor( actor, x, y, z) +sub getActorAngularFactor( actor, ByRef x, ByRef y, ByRef z) +sub computeActorGyroImpulseLocal( actor, step, ByRef x, ByRef y, ByRef z) +sub computeActorGyroImpulseWorld( actor, dt, ByRef x, ByRef y, ByRef z) +sub getActorLocalInertia( actor, ByRef x, ByRef y, ByRef z) diff --git a/rcbasic_build/intern_lib/arrays.bas b/rcbasic_build/intern_lib/arrays.bas new file mode 100644 index 0000000..876d7aa --- /dev/null +++ b/rcbasic_build/intern_lib/arrays.bas @@ -0,0 +1,16 @@ +function ArrayDim(Byref id) +function StringArrayDim(Byref id$) +function NumberArrayDim(Byref id) +function ArraySize(Byref id, array_dim) +function StringArraySize(Byref id$, array_dim) +function NumberArraySize(Byref id, array_dim) +sub NumberArrayCopy(ByRef src, ByRef dst) +sub StringArrayCopy(ByRef src$, ByRef dst$) +sub ArrayCopy(ByRef src, ByRef dst) +sub NumberArrayFill(ByRef src, fdata) +sub StringArrayFill(ByRef src$, fdata$) +sub ArrayFill(ByRef src, fdata) +function TypeArrayDim(Byref id as empty) +function TypeArraySize(Byref id as empty, array_dim) +sub TypeArrayCopy(ByRef src as empty, ByRef dst as empty) +sub TypeArrayFill(ByRef src as empty, fdata as empty) diff --git a/rcbasic_build/intern_lib/audio.bas b/rcbasic_build/intern_lib/audio.bas new file mode 100644 index 0000000..09fb467 --- /dev/null +++ b/rcbasic_build/intern_lib/audio.bas @@ -0,0 +1,37 @@ +function SoundFromBuffer(byref buffer, buffer_size, vol) +function LoadSound(snd_file$) +sub LoadMusic(music_file$) +sub PlaySound(slot, channel, loops) +sub PlaySoundTimed(slot, channel, loops, ms) +sub PlayMusic(mLoops) +sub PauseSound(channel) +sub ResumeSound(channel) +sub PauseMusic() +sub ResumeMusic() +sub DeleteSound(slot) +sub DeleteMusic() +sub FadeMusicIn(fade_time, loops) +sub FadeMusicOut(fade_time) +function MusicExists() +sub SetMusicVolume(vol) +function MusicVolume() +sub SetMusicPosition(pos) +function MusicPosition() +sub RewindMusic() +sub SetSoundChannels(max_channels) +function NumSoundChannels() +function SoundIsEnabled() +function SoundExists(slot) +sub SetChannelVolume(channel, vol) +function ChannelVolume(channel) +sub SetSoundVolume(slot, vol) +function SoundVolume(slot) +sub StopMusic() +sub StopSound(channel) +function SetChannelPanning(channel, left_value, right_value) +function SetChannelDistance(channel, dist_value) +function ChannelIsPlaying(channel) +function ChannelIsPaused(channel) +function QueryAudioSpec(ByRef freq, ByRef format, ByRef channels) +function MusicIsPlaying() +function SetChannelSpacePosition(channel, angle, distance) diff --git a/rcbasic_build/intern_lib/camera.bas b/rcbasic_build/intern_lib/camera.bas new file mode 100644 index 0000000..2aa9960 --- /dev/null +++ b/rcbasic_build/intern_lib/camera.bas @@ -0,0 +1,6 @@ +sub SetCameraPosition( x, y, z) +sub GetCameraPosition(ByRef x, ByRef y, ByRef z) +sub TranslateCamera( x, y, z) +sub SetCameraRotation( x, y, z) +sub GetCameraRotation(ByRef x, ByRef y, ByRef z) +sub RotateCamera( x, y, z) diff --git a/rcbasic_build/intern_lib/canvas.bas b/rcbasic_build/intern_lib/canvas.bas new file mode 100644 index 0000000..5ac0ae2 --- /dev/null +++ b/rcbasic_build/intern_lib/canvas.bas @@ -0,0 +1,22 @@ +function OpenCanvas( w, h, viewport_x, viewport_y, viewport_w, viewport_h, mode) +Sub CloseCanvas(c_num) +Sub SetCanvas3D(c_num, flag) +sub SetCanvasVisible(c_num, flag) +function CanvasIsVisible(c_num) +sub SetCanvasViewport(cnum, x, y, w, h) +sub GetCanvasViewport(c_num, byref x, byref y, byref w, byref h) +sub Canvas(c_num) +sub SetCanvasOffset(c_num, x, y) +sub GetCanvasOffset(c_num, byref x, byref y) +sub GetCanvasSize(c_num, byref w, byref h) +sub ClearCanvas() +sub SetCanvasAlpha(c_num, a) +function CanvasAlpha(c_num) +function SetCanvasColorMod(c_num, c) +function CanvasColorMod(c_num) +sub CopyCanvas(src, x, y, w, h, dst, dx, dy) +sub CloneCanvas(src, dst) +sub SetCanvasZ(c_num, z) +function CanvasZ(c_num) +function CanvasClip(x, y, w, h) +function ActiveCanvas() diff --git a/rcbasic_build/intern_lib/clipboard.bas b/rcbasic_build/intern_lib/clipboard.bas new file mode 100644 index 0000000..25c024c --- /dev/null +++ b/rcbasic_build/intern_lib/clipboard.bas @@ -0,0 +1,3 @@ +function ClipboardText$() +sub SetClipboardText(txt$) +function HasClipboardText() diff --git a/rcbasic_build/intern_lib/conio.bas b/rcbasic_build/intern_lib/conio.bas new file mode 100644 index 0000000..5812ad5 --- /dev/null +++ b/rcbasic_build/intern_lib/conio.bas @@ -0,0 +1,2 @@ +sub FPrint(txt$) +function Input$(prompt$) diff --git a/rcbasic_build/intern_lib/constraint3D.bas b/rcbasic_build/intern_lib/constraint3D.bas new file mode 100644 index 0000000..31d2da6 --- /dev/null +++ b/rcbasic_build/intern_lib/constraint3D.bas @@ -0,0 +1,108 @@ +function createPointConstraint( actorA, pxA, pyA, pzA) +function createPointConstraintEx( actorA, actorB, pxA, pyA, pzA, pxB, pyB, pzB) +sub setConstraintPivotA( constraint_id, x, y, z) +sub setConstraintPivotB( constraint_id, x, y, z) +function createHingeConstraint( actorA, pxA, pyA, pzA, axA, ayA, azA) +function createHingeConstraintEx( actorA, actorB, pxA, pyA, pzA, pxB, pyB, pzB, +function createSlideConstraint( actorA, frameInB_matrix, useLinearReferenceFrameA) +function createSlideConstraintEx( actorA, actorB, frameInA_matrix, frameInB_matrix, useLinearReferenceFrameA) +function createConeConstraint( actorA, rbAFrame_matrix) +function createConeConstraintEx( actorA, actorB, rbAFrame_matrix, rbBFrame_matrix) +sub deleteConstraint( constraint_id) +sub getConstraintFrameOffsetA( constraint_id, ByRef x, ByRef y, ByRef z, ByRef rx, ByRef ry, ByRef rz) +sub getConstraintFrameOffsetB( constraint_id, ByRef x, ByRef y, ByRef z, ByRef rx, ByRef ry, ByRef rz) +sub useConstraintFrameOffset( constraint_id, flag) +function getHingeAngle( constraint_id) +function getHingeAngleEx( constraint_id, t_matrixA, t_matrixB) +function getConstraintBreakingImpulseThreshold( constraint_id) +function getConstraintAFrame( constraint_id, mA) +function getConstraintBFrame( constraint_id, mA) +sub setConstraintAxis( constraint_id, x, y, z) +sub setConstraintBreakingImpulseThreshold( constraint_id, threshold) +sub setConstraintFrames( constraint_id, frameA_matrix, frameB_matrix) +sub setHingeLimit( constraint_id, low, high, softness, bias_factor, relaxation_factor) +sub setConeLimit( constraint_id, swingSpan1, swingSpan2, twistSpan, softness, bias_factor, relaxation_factor) +function getConstraintLimitBiasFactor( constraint_id) +function getLimitRelaxationFactor( constraint_id) +function getConstraintLimitSign( constraint_id) +function getHingeSolveLimit( constraint_id) +sub useHingeReferenceFrameA( constraint_id, flag) +function getConstraintAppliedImpulse( constraint_id) +function getConstraintFixedActor( constraint_id) +sub getConstraintPivotA( constraint_id, ByRef x, ByRef y, ByRef z) +sub getConstraintPivotB( constraint_id, ByRef x, ByRef y, ByRef z) +function getConstraintActorA( constraint_id) +function getConstraintActorB( constraint_id) +sub setConstraintSolverIterations( constraint_id, num) +function getConstraintBiasFactor( constraint_id) +function getConstraintDamping( constraint_id) +function getConstraintFixThresh( constraint_id) +function getConstraintLimit( constraint_id, limit_index) +function getConstraintLimitSoftness( constraint_id) +function getConstraintSolverIterations( constraint_id) +sub getConstraintAnglePoint( constraint_id, angle, len, ByRef x, ByRef y, ByRef z) +function getConstraintAngularOnly( constraint_id) +function getConstraintSolveSwingLimit( constraint_id) +function getConstraintSolveTwistLimit( constraint_id) +function getConstraintSolveLimit( constraint_id) +function getConstraintSwingSpan1( constraint_id) +function getConstraintSwingSpan2( constraint_id) +function getConstraintTwistAngle( constraint_id) +function getConstraintTwistLimitSign( constraint_id) +function getConstraintTwistSpan( constraint_id) +sub setConstraintAngularOnly( constraint_id, flag) +sub setConstraintDamping( constraint_id, damping) +sub setConstraintFixThresh( constraint_id, fixThresh) +sub getConstraintAnchorA( constraint_id, ByRef x, ByRef y, ByRef z) +sub getConstraintAnchorB( constraint_id, ByRef x, ByRef y, ByRef z) +function getConstraintAngDepth( constraint_id) +function getConstraintAngularPos( constraint_id) +function getConstraintDampingDirAng( constraint_id) +function getConstraintDampingDirLin( constraint_id) +function getConstraintDampingLimAng( constraint_id) +function getConstraintDampingLimLin( constraint_id) +function getConstraintDampingOrthoAng( constraint_id) +function getConstraintDampingOrthoLin( constraint_id) +function getConstraintLinearPos( constraint_id) +function getConstraintLinDepth( constraint_id) +function getConstraintLowerAngLimit( constraint_id) +function getConstraintLowerLinLimit( constraint_id) +function getConstraintRestitutionDirAng( constraint_id) +function getConstraintRestitutionDirLin( constraint_id) +function getConstraintRestitutionLimAng( constraint_id) +function getConstraintRestitutionLimLin( constraint_id) +function getConstraintRestitutionOrthoAng( constraint_id) +function getConstraintRestitutionOrthoLin( constraint_id) +function getConstraintSoftnessDirAng( constraint_id) +function getConstraintSoftnessDirLin( constraint_id) +function getConstraintSoftnessLimAng( constraint_id) +function getConstraintSoftnessLimLin( constraint_id) +function getConstraintSoftnessOrthoAng( constraint_id) +function getConstraintSoftnessOrthoLin( constraint_id) +function getConstraintSolveAngLimit( constraint_id) +function getConstraintSolveLinLimit( constraint_id) +function getConstraintUpperAngLimit( constraint_id) +function getConstraintUpperLinLimit( constraint_id) +function getConstraintUseFrameOffset( constraint_id) +sub setConstraintDampingDirAng( constraint_id, n) +sub setConstraintDampingDirLin( constraint_id, n) +sub setConstraintDampingLimAng( constraint_id, n) +sub setConstraintDampingLimLin( constraint_id, n) +sub setConstraintDampingOrthoAng( constraint_id, n) +sub setConstraintDampingOrthoLin( constraint_id, n) +sub setConstraintLowerAngLimit( constraint_id, n) +sub setConstraintLowerLinLimit( constraint_id, n) +sub setConstraintRestitutionDirAng( constraint_id, n) +sub setConstraintRestitutionDirLin( constraint_id, n) +sub setConstraintRestitutionLimAng( constraint_id, n) +sub setConstraintRestitutionLimLin( constraint_id, n) +sub setConstraintRestitutionOrthoAng( constraint_id, n) +sub setConstraintRestitutionOrthoLin( constraint_id, n) +sub setConstraintSoftnessDirAng( constraint_id, n) +sub setConstraintSoftnessDirLin( constraint_id, n) +sub setConstraintSoftnessLimAng( constraint_id, n) +sub setConstraintSoftnessLimLin( constraint_id, n) +sub setConstraintSoftnessOrthoAng( constraint_id, n) +sub setConstraintSoftnessOrthoLin( constraint_id, n) +sub setConstraintUpperAngLimit( constraint_id, n) +sub setConstraintUpperLinLimit( constraint_id, n) diff --git a/rcbasic_build/intern_lib/datetime.bas b/rcbasic_build/intern_lib/datetime.bas new file mode 100644 index 0000000..e514694 --- /dev/null +++ b/rcbasic_build/intern_lib/datetime.bas @@ -0,0 +1,6 @@ +function Date$() +function Easter$(year) +function Ticks() +function Time$() +function Timer() +sub Wait(m_sec) diff --git a/rcbasic_build/intern_lib/directories.bas b/rcbasic_build/intern_lib/directories.bas new file mode 100644 index 0000000..c76d504 --- /dev/null +++ b/rcbasic_build/intern_lib/directories.bas @@ -0,0 +1,7 @@ +sub ChangeDir(p$) +function DirExists(p$) +function DirFirst$() +function Dir$() +function DirNext$() +function MakeDir(p$) +function RemoveDir(p$) diff --git a/rcbasic_build/intern_lib/files.bas b/rcbasic_build/intern_lib/files.bas new file mode 100644 index 0000000..3187e02 --- /dev/null +++ b/rcbasic_build/intern_lib/files.bas @@ -0,0 +1,18 @@ +function OpenFile(fileName$, mode) +sub CloseFile( stream ) +function ReadByte(stream) +sub WriteByte(stream, byte) +function ReadLine$(stream) +sub Write(stream, txt$) +sub WriteLine(stream, txt$) +sub CopyFile(src$, dst$) +function RemoveFile(fileName$) +function FileExists(fileName$) +function MoveFile(src$, dst$) +function RenameFile(src$, dst$) +function FileLength(fileName$) +function Tell(stream) +function Seek(stream, pos) +function EOF(stream) +function WriteByteBuffer(stream, ByRef buf, buf_size) +function ReadByteBuffer(stream, ByRef buf, buf_size) diff --git a/rcbasic_build/intern_lib/gfxconsole.bas b/rcbasic_build/intern_lib/gfxconsole.bas new file mode 100644 index 0000000..e69de29 diff --git a/rcbasic_build/intern_lib/images.bas b/rcbasic_build/intern_lib/images.bas new file mode 100644 index 0000000..f7d4b9d --- /dev/null +++ b/rcbasic_build/intern_lib/images.bas @@ -0,0 +1,33 @@ +function LoadImage( img$ ) +sub LoadImage_Ex(slot, img$, colkey) +function createImage(w, h, byref buffer) +function createImageEx(w, h, byref buffer, color) +sub getImageBuffer(img_id, byref buffer) +function ImageExists(slot) +sub ColorKey(slot, c) +sub setBilinearFilter( flag ) +function getBilinearFilter() +function CopyImage( img_id ) +sub DeleteImage(slot) +sub SetImageAlpha(slot, a) +function getImageAlpha( img_id ) +sub GetImageSize(slot, byref w, byref h) +sub SetBlendMode( blend_mode ) +function getBlendMode( blend_mode ) +function SetImageColorMod(slot, c) +function ImageColorMod(slot) +sub DrawImage(slot, x, y) +sub DrawImage_Blit(slot, x, y, src_x, src_y, src_w, src_h) +sub DrawImage_Blit_Ex(slot, x, y, w, h, src_x, src_y, src_w, src_h) +sub DrawImage_Rotate(slot, x, y, angle) +sub DrawImage_Rotate_Ex(slot, x, y, src_x, src_y, src_w, src_h, angle) +sub DrawImage_Zoom(slot, x, y, zx, zy) +sub DrawImage_Zoom_Ex(slot, x, y, src_x, src_y, src_w, src_h, zx, zy) +sub DrawImage_Rotozoom(slot, x, y, angle, zx, zy) +sub DrawImage_Rotozoom_Ex(slot, x, y, src_x, src_y, src_w, src_h, angle, zx, zy) +sub DrawImage_Flip(slot, x, y, h, v) +sub DrawImage_Flip_Ex(slot, x, y, src_x, src_y, src_w, src_h, h, v) +function DrawGeometry(slot, num_vertices, ByRef vertices, num_indices, ByRef Indices) +function SaveBMP(img, file$) +function SavePNG(img, file$) +function SaveJPG(img, file$) diff --git a/rcbasic_build/intern_lib/joystick.bas b/rcbasic_build/intern_lib/joystick.bas new file mode 100644 index 0000000..a9fb00b --- /dev/null +++ b/rcbasic_build/intern_lib/joystick.bas @@ -0,0 +1,14 @@ +function NumJoysticks() +function NumJoyAxes(joy_num) +function NumJoyButtons(joy_num) +function NumJoyHats(joy_num) +function NumJoyTrackBalls(joy_num) +function JoyAxis(joy_num, joy_axis) +function JoyButton(joy_num, joy_button) +function JoyHat(joy_num, joy_hat) +sub GetJoyTrackBall(joy_num, ball, byref dx, byref dy) +function JoyName$(joy_num) +function JoystickIsConnected(joy_num) +sub JoyRumblePlay(joy_num, strength, duration) +sub JoyRumbleStop(joy_num) +function JoystickIsHaptic(joy_num) diff --git a/rcbasic_build/intern_lib/keyboard.bas b/rcbasic_build/intern_lib/keyboard.bas new file mode 100644 index 0000000..4257ecc --- /dev/null +++ b/rcbasic_build/intern_lib/keyboard.bas @@ -0,0 +1,20 @@ +function InKey() +function Key(key_code) +function WaitKey() +sub HideMouse() +sub ShowMouse() +function MouseIsVisible() +sub GetMouse(byref x, byref y, byref mb1, byref mb2, byref mb3) +function MouseX() +function MouseY() +function MouseButton(mb) +sub GetMouseWheel(byref x_axis, byref y_axis) +function MouseWheelX() +function MouseWheelY() +sub GetGlobalMouse(ByRef x, ByRef y, ByRef mb1, ByRef mb2, ByRef mb3) +function GlobalMouseX() +function GlobalMouseY() +sub WarpMouse(x, y) +sub WarpMouseGlobal(x, y) +sub SetMouseZone(x, y, w, h) +sub ClearMouseZone() diff --git a/rcbasic_build/intern_lib/math.bas b/rcbasic_build/intern_lib/math.bas new file mode 100644 index 0000000..2a4dd33 --- /dev/null +++ b/rcbasic_build/intern_lib/math.bas @@ -0,0 +1,37 @@ +function Abs(n) +function ACos(n) +function AndBit(a,b) +function ASin(n) +function ATan(n) +function Bin$(n) +function CInt32(i) +function CInt64(i) +function Cos(n) +function Degrees(r) +function Exp(n) +function Frac(n) +function Hex$(n) +function HexVal(n$) +function Int(n) +function Log(n) +function Max(a, b) +function Min(a, b) +function OrBit(a, b) +function Radians(d) +function Randomize(n) +function Rand(n) +function Round(n) +function Sign(n) +function Sin(n) +function Sqrt(n) +function Tan(n) +function XOrBit(a, b) +Function GetLineIntersection(p0_x, p0_y, p1_x, p1_y, p2_x, p2_y, p3_x, p3_y, ByRef i_x, ByRef i_y) +Function Interpolate(min_a, max_a, mid_a, min_b, max_b) +Function ATan2(y, x) +function PointInQuad(x, y, x1, y1, x2, y2, x3, y3, x4, y4) +function PointInTri(x, y, x1, y1, x2, y2, x3, y3) +Function Distance2D(x1, y1, x2, y2) +Function Distance3D(x1, y1, z1, x2, y2, z2) +function GetCircleLineIntersection(circle_x, circle_y, radius, x1, y1, x2, y2, ByRef ix1, ByRef iy1, ByRef ix2, ByRef iy2) +function GetLinePlaneIntersection(ByRef line_point, ByRef line_direction, ByRef plane_point_1, ByRef plane_point_2, ByRef plane_point_3, ByRef intersection) diff --git a/rcbasic_build/intern_lib/matrix.bas b/rcbasic_build/intern_lib/matrix.bas new file mode 100644 index 0000000..588e43b --- /dev/null +++ b/rcbasic_build/intern_lib/matrix.bas @@ -0,0 +1,48 @@ +function DimMatrix(m_rows, m_cols) +Sub DeleteMatrix(mA) +function AddMatrix(mA, mB, mC) +function AugmentMatrix (mA, mB, mC) +sub CopyMatrix(mA, mB) +function InsertMatrixColumns(mA, c, num_cols) +function InsertMatrixRows(mA, r, num_rows) +function MultiplyMatrix (mA, mB, mC) +function CubeMatrix(mA, mB) +function DeleteMatrixColumns(mA, c, num_cols) +function DeleteMatrixRows(mA, r, num_rows) +sub ClearMatrix(mA) +function ClearMatrixColumns (mA, c, num_cols) +function ClearMatrixRows(mA, r, num_rows) +sub FillMatrix(mA, v) +function FillMatrixColumns(mA, c, num_cols, v) +function FillMatrixRows(mA, r, num_rows, v) +function CopyMatrixColumns(mA, mB, c, num_cols) +function CopyMatrixRows (mA, mB, r, num_rows) +sub IdentityMatrix(mA, n) +function SolveMatrix(mA, mB, mC) +function IsEqualMatrix(mA, mB, tolerance) +function Determinant(mA) +function AdjointMatrix(mA, mB) +function InvertMatrix(mA, mB) +sub MatrixFromBuffer(mA, r, c, ByRef buffer) +sub GetMatrix(ByRef buffer, mA) +sub RandomizeMatrix(mA, vmin, vmax) +function MatrixValue(mA, r, c) +sub SetMatrixValue(mA, r, c, v) +sub ScalarMatrix (mA, mB, s_value) +function ScalarMatrixColumns(mA, mB, c, num_cols, s_value) +function ScalarMatrixRows(mA, mB, r, num_rows, s_value) +function SquareMatrix(mA, mB) +sub CofactorMatrix(mA, r, c) +function SubtractMatrix (mA, mB, mC) +sub SwapMatrix(mA, mB) +function SwapMatrixColumn(mA, C1, C2) +function SwapMatrixRow(mA, R1, R2) +function TransposeMatrix(mA, mB) +function UnAugmentMatrix(mA, mB, mC) +sub ZeroMatrix(mA) +sub GetMatrixSize(mA, ByRef r, ByRef c) +sub IncrementMatrixRows(mA, mB, r, num_rows, value) +sub IncrementMatrixColumns(mA, mB, c, num_cols, value) +sub JoinMatrixRows(mA, mB, mC) +sub JoinMatrixColumns(mA, mB, mC) +sub ClipMatrix(mA, r, c, num_rows, num_cols, mB) diff --git a/rcbasic_build/intern_lib/mesh.bas b/rcbasic_build/intern_lib/mesh.bas new file mode 100644 index 0000000..93e7840 --- /dev/null +++ b/rcbasic_build/intern_lib/mesh.bas @@ -0,0 +1,5 @@ +function LoadMesh( mesh_file$ ) +sub DeleteMesh( mesh ) +function CreateMesh( ) +sub AddMeshBuffer( mesh, vertex_count, ByRef vertex_data, ByRef normal_data, ByRef uv_data, index_count, ByRef index_data ) +function LoadMeshFromArchive( archive$, mesh_file$ ) diff --git a/rcbasic_build/intern_lib/network.bas b/rcbasic_build/intern_lib/network.bas new file mode 100644 index 0000000..129bd6c --- /dev/null +++ b/rcbasic_build/intern_lib/network.bas @@ -0,0 +1,18 @@ +function CheckSockets(timeout_ms) +function TCP_SocketReady(socket) +function UDP_SocketReady(socket) +function TCP_OpenSocket(host$, port) +sub TCP_CloseSocket(socket) +function TCP_RemoteHost(socket) +function TCP_RemotePort(socket) +function TCP_GetData(socket, ByRef sData$, numBytes) +sub TCP_SendData(socket, sData$) +function TCP_AcceptSocket(server, client) +function UDP_OpenSocket(port) +sub UDP_CloseSocket(socket) +function UDP_GetData(socket, byref sData$, byref host$, byref port) +function UDP_Length() +function UDP_MaxLength() +function UDP_RemoteHost$(socket) +function UDP_RemotePort(socket) +sub UDP_SendData(socket, sData$, host$, port) diff --git a/rcbasic_build/intern_lib/prim2d.bas b/rcbasic_build/intern_lib/prim2d.bas new file mode 100644 index 0000000..e643bdd --- /dev/null +++ b/rcbasic_build/intern_lib/prim2d.bas @@ -0,0 +1,14 @@ +sub Circle(x,y,radius) +sub CircleFill(x,y,radius) +sub Ellipse(x,y,rx,ry) +sub EllipseFill(x,y,rx,ry) +sub FloodFill(x,y) +function GetPixel(x,y) +sub SetColor(c) +sub Line(x1, y1, x2, y2) +sub Poly(n, byref x, byref y) +sub Rect(x, y, w, h) +sub RectFill(x, y, w, h) +function RGB(r,g,b) +function RGBA(r,g,b,a) +sub PSet(x,y) diff --git a/rcbasic_build/intern_lib/process.bas b/rcbasic_build/intern_lib/process.bas new file mode 100644 index 0000000..e69de29 diff --git a/rcbasic_build/intern_lib/sprite_physics.bas b/rcbasic_build/intern_lib/sprite_physics.bas new file mode 100644 index 0000000..e69de29 diff --git a/rcbasic_build/intern_lib/sprites.bas b/rcbasic_build/intern_lib/sprites.bas new file mode 100644 index 0000000..513f10c --- /dev/null +++ b/rcbasic_build/intern_lib/sprites.bas @@ -0,0 +1,3 @@ +function CreateSprite( img ) +Sub DeleteSprite( sprite ) +Sub SetSpritePosition( sprite, x, y ) diff --git a/rcbasic_build/intern_lib/stacks.bas b/rcbasic_build/intern_lib/stacks.bas new file mode 100644 index 0000000..72a300d --- /dev/null +++ b/rcbasic_build/intern_lib/stacks.bas @@ -0,0 +1,14 @@ +function CreateStack_N( ) +function CreateStack_S() +sub ClearStack_N() +sub ClearStack_S() +sub DeleteStack_N( stack_id ) +sub DeleteStack_S( stack_id ) +sub Stack_N(n) +sub Stack_S(n) +sub Push_N(n) +function Pop_N() +sub Push_S(s$) +function Pop_S$() +function Stack_Size_N() +function Stack_Size_S() diff --git a/rcbasic_build/intern_lib/strings.bas b/rcbasic_build/intern_lib/strings.bas new file mode 100644 index 0000000..c7704b0 --- /dev/null +++ b/rcbasic_build/intern_lib/strings.bas @@ -0,0 +1,26 @@ +function Asc(c$) +function Chr$(n) +function Insert$(src$, tgt$, pos) +function InStr(src$, substr$) +function LCase$(src$) +function Left$(src$, n) +function Length(src$) +function Len(src$) +function LTrim$(src$) +function Mid$(src$, start, n) +function ReplaceSubstr$(src$, rpc$, pos) +function Replace$(src$, tgt$, rpc$) +function Reverse$(src$) +function Right$(src$, n) +function RTrim$(src$) +function StringFill$(src$, n) +function Str$(n) +function Str_F$(n) +function Str_S$(n) +function Tally(src$, substr$) +function Trim$(src$) +function UCase$(src$) +function Val(n$) +function Size(s$) +function BufferFromString(s$, ByRef buffer) +function StringFromBuffer$(ByRef buffer, buffer_size) diff --git a/rcbasic_build/intern_lib/system.bas b/rcbasic_build/intern_lib/system.bas new file mode 100644 index 0000000..d61889e --- /dev/null +++ b/rcbasic_build/intern_lib/system.bas @@ -0,0 +1,21 @@ +function System(cmd$) +function OS$() +function Command$(arg) +function NumCommands() +function Env$(v$) +sub SetEnv(var$, value$, overwrite) +function PrefPath$(org_name$, app_name$) +function Android_GetExternalStoragePath$() +function Android_GetExternalStorageState() +function Android_GetInternalStoragePath$() +function Android_JNI_Message$(arg$) +function Runtime_Utility_Message$(arg$) +Sub GetDesktopDisplayMode(index, ByRef w, ByRef h, ByRef freq) +Sub GetPowerInfo(ByRef status, ByRef secs, ByRef pct) +Function EvalJS$(js_code$) 'Only useable in Emscripten +function SystemReturnStdOut$(cmd$) 'new +function OpenURL(url$) +function APIVersion$() +function MessageBox(title$, msg$) +function Runtime$() +function NumCPUs() diff --git a/rcbasic_build/intern_lib/text.bas b/rcbasic_build/intern_lib/text.bas new file mode 100644 index 0000000..2faa222 --- /dev/null +++ b/rcbasic_build/intern_lib/text.bas @@ -0,0 +1,9 @@ +function LoadFont(fnt_file$, size) +sub DeleteFont(slot) +Function FontExists(slot) +sub Font(slot) +sub DrawText(txt$, x, y) +sub RenderText(slot, txt$) +sub GetTextSize(txt$, byref w, byref h) +function GetTextWidth(txt$) +function GetTextHeight(txt$) diff --git a/rcbasic_build/intern_lib/textedit.bas b/rcbasic_build/intern_lib/textedit.bas new file mode 100644 index 0000000..df16344 --- /dev/null +++ b/rcbasic_build/intern_lib/textedit.bas @@ -0,0 +1,5 @@ +sub ReadInput_Start() +sub ReadInput_Stop() +function ReadInput_Text$() +sub ReadInput_SetText(txt$) +sub ReadInput_ToggleBackspace(flag) diff --git a/rcbasic_build/intern_lib/tilemaps.bas b/rcbasic_build/intern_lib/tilemaps.bas new file mode 100644 index 0000000..e69de29 diff --git a/rcbasic_build/intern_lib/touch.bas b/rcbasic_build/intern_lib/touch.bas new file mode 100644 index 0000000..5fe93d0 --- /dev/null +++ b/rcbasic_build/intern_lib/touch.bas @@ -0,0 +1,11 @@ +function TouchPressure() +sub GetTouch(byref status, byref x, byref y, byref dx, byref dy) +sub GetMultiTouch(byref status, byref x, byref y, byref fingers, byref dist, byref theta) +sub GetTouchFinger(finger, byref x, byref y, byref pressure) +function NumFingers() +sub GetAccel(accel_num, ByRef x, ByRef y, ByRef z) +function AccelName$(accel_num) +function NumAccels() +sub GetGyro(gyro_num, ByRef x, ByRef y, ByRef z) +function GyroName$(gyro_num) +function NumGyros() diff --git a/rcbasic_build/intern_lib/video.bas b/rcbasic_build/intern_lib/video.bas new file mode 100644 index 0000000..48db72e --- /dev/null +++ b/rcbasic_build/intern_lib/video.bas @@ -0,0 +1,16 @@ +sub LoadVideo(vid$) +sub PlayVideo(vLoops) +sub PauseVideo() +sub StopVideo() +sub SetVideoPosition(pos) +sub ResumeVideo() +function VideoPosition() +sub DeleteVideo() +function VideoIsPlaying() +function VideoEnd() +sub GetVideoStats(vFile$, byref vLen, byref vfps, byref frame_w, byref frame_h) +sub SetVideoDrawRect(x, y, w, h) +sub GetVideoDrawRect(byref x, byref y, byref w, byref h) +sub GetVideoSize(byref w, byref h) +function VideoExists() +sub SetVideoAlpha(a) diff --git a/rcbasic_build/intern_lib/window.bas b/rcbasic_build/intern_lib/window.bas new file mode 100644 index 0000000..848290e --- /dev/null +++ b/rcbasic_build/intern_lib/window.bas @@ -0,0 +1,51 @@ +Function OpenWindow( title$, w, h, fullscreen, vsync ) +function OpenWindowEx(title$, x, y, w, h, mode, aa, stencil_buffer, vsync) +sub CloseWindow( ) +sub RaiseWindow( ) +sub Update() +sub Cls() +sub SetClearColor(c) +sub ShowWindow( ) +sub HideWindow( ) +sub SetWindowTitle( title$ ) +function WindowTitle$( ) +sub SetWindowPosition( x, y ) +sub GetWindowPosition( byref x, byref y ) +sub SetWindowSize( w, h ) +sub GetWindowSize( byref w, byref h ) +sub SetWindowMinSize( w, h) +sub GetWindowMinSize( byref w, byref h) +sub SetWindowMaxSize( w, h) +sub GetWindowMaxSize( byref w, byref h) +function WindowIsFullscreen() +function WindowIsVisible() +function WindowIsBordered() +function WindowIsResizable() +function WindowIsMinimized() +function WindowIsMaximized() +function WindowHasInputFocus() +function WindowHasMouseFocus() +sub SetWindowFullscreen( flag) +sub MaximizeWindow() +sub MinimizeWindow() +sub SetWindowBorder( flag) +function WindowClip(x, y, w, h) +function WindowExists() +function NumWindows() +function WindowEvent_Close() +function WindowEvent_Maximize() +function WindowEvent_Minimize() +function FPS() +sub SetWindowIcon( slot) +function WindowEvent_Resize() +sub SetWindowAutoClose( exit_on_close ) +sub SetWindowResizable( flag ) +function WindowMode(visible, fullscreen, resizable, borderless, highDPI) +function getWindowMode( ) +sub RestoreWindow( ) +sub GrabInput(flag) +function GrabbedWindow() +sub SetWindowAlwaysOnTop(win, flag) +sub SetMouseRelative(flag) +sub SetWindowVSync(win, flag) +function FlashWindow(win) diff --git a/rcbasic_build/obj/Release/main.o b/rcbasic_build/obj/Release/main.o index 1ed7013..b888004 100644 Binary files a/rcbasic_build/obj/Release/main.o and b/rcbasic_build/obj/Release/main.o differ diff --git a/rcbasic_build/rcbasic.dbgi b/rcbasic_build/rcbasic.dbgi index 428b92a..18dc81e 100755 --- a/rcbasic_build/rcbasic.dbgi +++ b/rcbasic_build/rcbasic.dbgi @@ -1 +1,2 @@ embedded_functions.bas +/home/n00b/Projects/RCBASIC4/rcbasic_build/gfx.bas diff --git a/rcbasic_build/rcbasic.dbgs b/rcbasic_build/rcbasic.dbgs index 51fa07a..9fbb0fe 100755 --- a/rcbasic_build/rcbasic.dbgs +++ b/rcbasic_build/rcbasic.dbgs @@ -973,3 +973,5 @@ BU main #fu1 1 BU main.TypeArrayCopy dst 1 BU main.TypeArrayFill src 0 U main.TypeArrayFill fdata 1 +N main.test_include_fn test1 0 +N main.test_include_fn test2 1 diff --git a/rcbasic_build/rcbasic4_changes.ods b/rcbasic_build/rcbasic4_changes.ods index 3ceb504..60f0680 100644 Binary files a/rcbasic_build/rcbasic4_changes.ods and b/rcbasic_build/rcbasic4_changes.ods differ diff --git a/rcbasic_build/rcbasic_dev.txt b/rcbasic_build/rcbasic_dev.txt index 8947c90..3b45e54 100755 --- a/rcbasic_build/rcbasic_dev.txt +++ b/rcbasic_build/rcbasic_dev.txt @@ -1426,3 +1426,6 @@ add_embedded_arg("dst", ID_TYPE_BYREF_USER, 0); embed_function("TypeArrayFill", ID_TYPE_SUB); add_embedded_arg("src", ID_TYPE_BYREF_USER, 0); add_embedded_arg("fdata", ID_TYPE_USER, 0); +embed_function("test_include_fn", ID_TYPE_SUB); +add_embedded_arg("test1", ID_TYPE_NUM); +add_embedded_arg("test2", ID_TYPE_NUM); diff --git a/rcbasic_build/rcbasic_dev2.txt b/rcbasic_build/rcbasic_dev2.txt index c3f29dd..f4d83d4 100755 --- a/rcbasic_build/rcbasic_dev2.txt +++ b/rcbasic_build/rcbasic_dev2.txt @@ -1426,3 +1426,6 @@ #define FN_TypeArrayFill 474 #define TYPEARRAYFILL_SRC usr_var[0].var_ref #define TYPEARRAYFILL_FDATA usr_var[1].var_ref->uid_value[0] +#define FN_test_include_fn 475 +#define TEST_INCLUDE_FN_TEST1 num_var[0].nid_value.value[ num_var[0].byref_offset ] +#define TEST_INCLUDE_FN_TEST2 num_var[1].nid_value.value[ num_var[1].byref_offset ] diff --git a/rcbasic_build/rcbasic_dev3.txt b/rcbasic_build/rcbasic_dev3.txt index 1389185..d6264e9 100755 --- a/rcbasic_build/rcbasic_dev3.txt +++ b/rcbasic_build/rcbasic_dev3.txt @@ -948,3 +948,5 @@ case FN_TypeArrayCopy: //Sub Procedure break; case FN_TypeArrayFill: //Sub Procedure break; +case FN_test_include_fn: //Sub Procedure +break;