From cfad58b99c3108cd1fa243741321514066239197 Mon Sep 17 00:00:00 2001 From: n00b Date: Sun, 1 Dec 2024 00:15:41 -0500 Subject: [PATCH] Added delta timestep to 2d simulation --- rcbasic_build/main.cpp | 3 +- rcbasic_build/main.rc_asm | 1398 ++++++++++++++++-------- rcbasic_build/main.rc_data | 88 +- rcbasic_build/main_str_data.sdata | Bin 16 -> 437 bytes rcbasic_build/rcbasic.dbgi | 2 +- rcbasic_build/rcbasic.dbgs | 102 +- rcbasic_build/rcbasic_build.depend | 2 +- rcbasic_runtime/main.cpp | 4 +- rcbasic_runtime/rc_gfx.h | 7 +- rcbasic_runtime/rc_gfx_core.h | 2 +- rcbasic_runtime/rc_spritelib.h | 4 +- rcbasic_runtime/rcbasic_runtime.depend | 8 +- 12 files changed, 1083 insertions(+), 537 deletions(-) diff --git a/rcbasic_build/main.cpp b/rcbasic_build/main.cpp index d64958d..1a64736 100755 --- a/rcbasic_build/main.cpp +++ b/rcbasic_build/main.cpp @@ -919,7 +919,8 @@ int main(int argc, char * argv[]) bool clean_after_build = false; //DEBUG START - rc_filename = "/home/n00b/projects/bu/constraint_demo/main.bas"; + //rc_filename = "/home/n00b/projects/bu/constraint_demo/main.bas"; + rc_filename = "/home/n00b/projects/rcbasic_alpha3/test_project/main.bas"; //DEBUG END //enable_presets = true; diff --git a/rcbasic_build/main.rc_asm b/rcbasic_build/main.rc_asm index 051aeae..395129f 100644 --- a/rcbasic_build/main.rc_asm +++ b/rcbasic_build/main.rc_asm @@ -12,19 +12,784 @@ preset !7 preset$ !2 preset !11 .code -.data -label cam_control -preset !13 -func !194 +mov$ s0 @0 +print$ s0 +println +mov$ s0 @1 +print$ s0 +println +mov$ s0 @30 +mov n0 480 +mov n1 320 +mov n2 0 +mov n3 1 +mov$ !0 s0 +mov !0 n0 +mov !1 n1 +mov !2 n2 +mov !3 n3 +func !124 +pop n4 +mov n0 !12 +mov n1 !13 +ptr !0 n0 +ptr !1 n1 +func !138 +pop_ptr !2 +mov$ s0 @42 +print$ s0 +mov n0 !12 +print n0 +mov$ s1 @54 +print$ s1 +mov n1 !13 +print n1 +println +mov n0 1024 +mov n1 768 +mov n2 20 +mov n3 20 +mov n4 200 +mov n5 150 +mov n6 0 +mov !0 n0 +mov !1 n1 +mov !2 n2 +mov !3 n3 +mov !4 n4 +mov !5 n5 +mov !6 n6 +func !174 +pop n7 +mov !14 n7 +mov n0 50 +mov n1 100 +mov n2 !12 +mov n3 100 +mov n4 !13 +mov n5 100 +mov n6 0 +sub n2 n3 +sub n4 n5 +mov !0 n0 +mov !1 n1 +mov !2 n2 +mov !3 n4 +mov !4 n6 +func !176 +pop n7 +mov !15 n7 +mov n0 !14 +mov !0 n0 +func !181 +mov n0 !14 +mov n1 0 +mov !0 n0 +mov !1 n1 +func !191 +func !185 +mov n0 255 +mov n1 255 +mov n2 0 +mov !0 n0 +mov !1 n1 +mov !2 n2 +func !208 +pop n3 +mov !16 n3 +mov n0 220 +mov n1 220 +mov n2 80 +mov !0 n0 +mov !1 n1 +mov !2 n2 +func !208 +pop n3 +mov !17 n3 +mov n0 255 +mov n1 0 +mov n2 255 +mov !0 n0 +mov !1 n1 +mov !2 n2 +func !208 +pop n3 +mov !18 n3 +mov n0 0 +mov n1 255 +mov n2 255 +mov !0 n0 +mov !1 n1 +mov !2 n2 +func !208 +pop n3 +mov !19 n3 +mov n0 255 +mov n1 0 +mov n2 0 +mov !0 n0 +mov !1 n1 +mov !2 n2 +func !208 +pop n3 +mov !20 n3 +mov n0 128 +mov n1 128 +mov n2 128 +mov !0 n0 +mov !1 n1 +mov !2 n2 +func !208 +pop n3 +mov !21 n3 +mov n0 0 +mov n1 0 +mov n2 255 +mov !0 n0 +mov !1 n1 +mov !2 n2 +func !208 +pop n3 +mov !22 n3 +mov n0 0 +mov n1 0 +mov n2 128 +mov !0 n0 +mov !1 n1 +mov !2 n2 +func !208 +pop n3 +mov !23 n3 +mov n0 255 +mov n1 128 +mov n2 0 +mov !0 n0 +mov !1 n1 +mov !2 n2 +func !208 +pop n3 +mov !24 n3 +mov n0 0 +mov n1 0 +mov n2 0 +mov !0 n0 +mov !1 n1 +mov !2 n2 +func !208 +pop n3 +mov !25 n3 +mov n0 0 +mov n1 255 +mov n2 0 +mov !0 n0 +mov !1 n1 +mov !2 n2 +func !208 +pop n3 +mov !26 n3 +mov n0 255 +mov n1 255 +mov n2 255 +mov !0 n0 +mov !1 n1 +mov !2 n2 +func !208 +pop n3 +mov !27 n3 +mov n0 0 +mov n1 0 +mov n2 480 +mov n3 320 +mov !0 n0 +mov !1 n1 +mov !2 n2 +mov !3 n3 +func !196 +pop n4 +mov !28 n4 +mov n0 !28 +mov n1 0 +mov !0 n0 +mov !1 n1 +func !191 +mov n0 !28 +mov !0 n0 +func !181 +mov n0 -1 +mov !0 n0 +func !532 +mov$ s0 @57 +mov$ !0 s0 +func !211 pop n0 -mov !13 n0 -mov n0 119 +mov !29 n0 +mov$ s0 @73 +mov$ !0 s0 +func !211 +pop n0 +mov !30 n0 +mov n0 !30 +mov !0 n0 +func !161 +mov n0 !29 +mov n1 64 +mov n2 64 +mov !0 n0 +mov !1 n1 +mov !2 n2 +func !448 +pop n3 +mov !31 n3 +mov n0 !30 +mov n1 32 +mov n2 32 +mov !0 n0 +mov !1 n1 +mov !2 n2 +func !448 +pop n3 +mov !32 n3 +mov n0 !31 +mov n1 0 +mov !0 n0 +mov !1 n1 +func !470 +mov n0 !32 +mov n1 45 +mov !0 n0 +mov !1 n1 +func !456 +mov n0 !32 +mov n1 0 +mov n2 2 +mov !0 n0 +mov !1 n1 +mov !2 n2 +func !450 +mov n0 !31 +mov n1 166 +mov n2 167 +mov !0 n0 +mov !1 n1 +mov !2 n2 +func !450 +mov n0 !32 +mov n1 !33 +mov n2 !34 +mov !0 n0 +ptr !1 n1 +ptr !2 n2 +func !452 +pop_ptr !2 +mov n0 !31 +mov n1 !35 +mov n2 !36 +mov !0 n0 +ptr !1 n1 +ptr !2 n2 +func !452 +pop_ptr !2 +mov$ s0 @86 +print$ s0 +mov n0 !33 +print n0 +mov$ s1 @99 +print$ s1 +mov n1 !34 +print n1 +mov$ s2 @102 +print$ s2 +mov n2 !35 +print n2 +mov$ s3 @106 +print$ s3 +mov n3 !36 +print n3 +mov$ s4 @109 +print$ s4 +println +mov n0 !32 +mov !0 n0 +func !453 +pop n1 +mov !33 n1 +mov n0 !32 +mov !0 n0 +func !454 +pop n1 +mov !34 n1 +mov n0 !31 +mov !0 n0 +func !453 +pop n1 +mov !35 n1 +mov n0 !31 +mov !0 n0 +func !454 +pop n1 +mov !36 n1 +mov$ s0 @111 +print$ s0 +mov n0 !33 +print n0 +mov$ s1 @124 +print$ s1 +mov n1 !34 +print n1 +mov$ s2 @127 +print$ s2 +mov n2 !35 +print n2 +mov$ s3 @131 +print$ s3 +mov n3 !36 +print n3 +mov$ s4 @134 +print$ s4 +println +mov n0 !32 +mov n1 1 +mov !0 n0 +mov !1 n1 +func !468 +mov n0 !31 +mov n1 1 +mov !0 n0 +mov !1 n1 +func !468 +mov n0 80 +mov !39 n0 +mov n0 !15 +mov n1 3 +mov !0 n0 +mov !1 n1 +func !191 +mov$ s0 @136 +mov$ !3 s0 +mov$ s0 !3 +mov n0 12 +mov$ !0 s0 +mov !0 n0 +func !311 +pop n1 +mov !40 n1 +mov n0 !14 +mov !0 n0 +func !181 +mov n0 255 +mov n1 255 +mov n2 255 +mov !0 n0 +mov !1 n1 +mov !2 n2 +func !208 +pop n3 +mov !0 n3 +func !203 +mov n0 9 +dim_str1 !4 n0 +mov n0 0 +obj_str1 !4 n0 +obj_get$ s0 +mov$ s1 @169 +mov_r$ s0 s1 +mov n0 1 +obj_str1 !4 n0 +obj_get$ s0 +mov$ s1 @190 +mov_r$ s0 s1 +mov n0 2 +obj_str1 !4 n0 +obj_get$ s0 +mov$ s1 @215 +mov_r$ s0 s1 +mov n0 3 +obj_str1 !4 n0 +obj_get$ s0 +mov$ s1 @243 +mov_r$ s0 s1 +mov n0 4 +obj_str1 !4 n0 +obj_get$ s0 +mov$ s1 @269 +mov_r$ s0 s1 +mov n0 5 +obj_str1 !4 n0 +obj_get$ s0 +mov$ s1 @301 +mov_r$ s0 s1 +mov n0 !16 +mov !0 n0 +func !203 +mov n0 0 +mov n1 0 +mov n2 100 +mov n3 100 +mov !0 n0 +mov !1 n1 +mov !2 n2 +mov !3 n3 +func !207 +mov n0 62 +mov n1 73 +mov n2 57 +mov n3 82 +mov !0 n0 +mov !1 n1 +mov !2 n2 +mov !3 n3 +func !204 +mov n0 0 +mov n1 255 +mov n2 0 +mov !0 n0 +mov !1 n1 +mov !2 n2 +func !208 +pop n3 +mov !0 n3 +func !203 +mov n0 0 +mov n1 0 +mov n2 300 +mov n3 400 +mov !0 n0 +mov !1 n1 +mov !2 n2 +mov !3 n3 +func !206 +mov n0 0 +mov n1 5 +mov n2 1 +for !41 n0 n1 n2 +lval @main.#NEXT:0 +label main.#FOR:0 +mov n0 !41 +mov n1 10 +mov n2 10 +mov n3 !41 +mov n4 15 +mul n3 n4 +obj_str1 !4 n0 +obj_get$ s0 +add n2 n3 +mov$ !0 s0 +mov !0 n1 +mov !1 n2 +func !315 +next @main.#FOR:0 +label main.#NEXT:0 +mov n0 !15 +mov !0 n0 +func !181 +mov$ s0 @328 +print$ s0 +println +mov$ s0 @337 +mov$ !0 s0 +func !622 +pop n0 +mov !42 n0 +mov$ s0 @354 +print$ s0 +println +mov n0 !42 +mov !0 n0 +func !632 +pop n1 +mov !43 n1 +mov$ s0 @367 +mov$ !0 s0 +func !211 +pop n0 +mov !44 n0 +mov$ s0 @384 +print$ s0 +println +mov n0 6 +mov !45 n0 +mov n0 0 +mov !46 n0 +mov$ s0 @387 +print$ s0 +println +mov n0 99.123 +mov !45 n0 +func !942 +pop n0 +mov$ s0 @390 +print$ s0 +mov n0 !46 +print n0 +println +mov n0 !46 +mov n1 0 +mov n2 !44 +mov !0 n0 +mov !1 n1 +mov !2 n2 +func !985 +mov n0 !46 +mov n1 0 +mov !0 n0 +mov !1 n1 +func !975 +mov n0 !43 +mov n1 0 +mov n2 !46 +mov !0 n0 +mov !1 n1 +mov !2 n2 +func !944 +mov n0 !43 +mov n1 0 +mov !0 n0 +mov !1 n1 +func !945 +pop n2 +mov !47 n2 +mov n0 !47 +mov n1 0 +mov !0 n0 +mov !1 n1 +func !975 +mov n0 !43 +mov n1 0 +mov n2 150 +mov n3 0 +mov !0 n0 +mov !1 n1 +mov !2 n2 +mov !3 n3 +func !644 +mov$ s0 @405 +mov$ s1 @426 +mov$ !0 s0 +mov$ !1 s1 +func !626 +pop n0 +mov !48 n0 +mov n0 !48 +mov !0 n0 +func !633 +pop n1 +mov !49 n1 +mov n0 !49 +mov n1 1 +mov !0 n0 +mov !1 n1 +func !679 +mov n0 !49 +mov n1 7 +mov n2 0 +mov !0 n0 +mov !1 n1 +mov !2 n2 +func !677 +mov n0 !15 +mov !0 n0 +func !181 +mov n0 !43 +mov n1 1160 +mov n2 399 +mov n3 2122 +mov !0 n0 +mov !1 n1 +mov !2 n2 +mov !3 n3 +func !643 +mov n0 !43 +mov n1 0 +mov n2 0 +mov n3 0 +mov !0 n0 +mov !1 n1 +mov !2 n2 +mov !3 n3 +func !650 +mov n0 984 +mov n1 488 +mov n2 2303 +mov !0 n0 +mov !1 n1 +mov !2 n2 +func !842 +mov n0 23 +mov n1 1216 +mov n2 0 +mov !0 n0 +mov !1 n1 +mov !2 n2 +func !845 +mov n0 1 +mov !53 n0 +mov n0 0 +mov !54 n0 +mov n0 8 +mov !58 n0 +mov n0 !43 +mov n1 0 +mov n2 0 +mov n3 0 +mov !0 n0 +mov !1 n1 +mov !2 n2 +mov !3 n3 +func !682 +mov n0 1 +mov !59 n0 +mov n0 -1 +mov !60 n0 +mov n0 !43 +mov n1 !59 +mov n2 !60 +mov !0 n0 +mov !1 n1 +mov !2 n2 +func !672 +mov n0 1221 +mov n1 424 +mov n2 2163 +mov !0 n0 +mov !1 n1 +mov !2 n2 +func !842 +mov n0 13 +mov n1 1312 +mov n2 0 +mov !0 n0 +mov !1 n1 +mov !2 n2 +func !845 +mov n0 0 +mov !61 n0 +mov n0 0 +mov !62 n0 +mov n0 0 +mov !63 n0 +label main.#WHILE:0 +mov n0 27 +mov !0 n0 +func !241 +pop n1 +not n1 +while n1 @main.#WEND:0 +mov n0 48 mov !0 n0 func !241 pop n1 cmp n1 0 je @ELSE:0->CONDITION:0 -mov n0 !12 +mov n0 0 +mov !63 n0 +jmp @ENDIF:0 +label ELSE:0->CONDITION:0 +mov n0 49 +mov !0 n0 +func !241 +pop n1 +cmp n1 0 +je @ELSE:0->CONDITION:1 +mov n0 1 +mov !63 n0 +label ELSE:0->CONDITION:1 +label ENDIF:0 +mov n0 !63 +push n0 +jmp @SELECT:0->CASE:0 +jmp @SELECT:0->END +label SELECT:0->CASE:0 +pop n0 +push n0 +mov n1 0 +mov n2 0 +cmp n0 n1 +mov n3 %EQUAL_FLAG +or n2 n3 +cmp n2 0 +je @SELECT:0->CASE:1 +mov n0 110 +mov !0 n0 +func !241 +pop n1 +cmp n1 0 +je @ELSE:1->CONDITION:0 +mov n0 !61 +mov n1 1 +add n0 n1 +mov !61 n0 +jmp @ENDIF:1 +label ELSE:1->CONDITION:0 +mov n0 109 +mov !0 n0 +func !241 +pop n1 +cmp n1 0 +je @ELSE:1->CONDITION:1 +mov n0 !61 +mov n1 1 +sub n0 n1 +mov !61 n0 +label ELSE:1->CONDITION:1 +label ENDIF:1 +mov n0 106 +mov !0 n0 +func !241 +pop n1 +cmp n1 0 +je @ELSE:2->CONDITION:0 +mov n0 !62 +mov n1 1 +add n0 n1 +mov !62 n0 +jmp @ENDIF:2 +label ELSE:2->CONDITION:0 +mov n0 107 +mov !0 n0 +func !241 +pop n1 +cmp n1 0 +je @ELSE:2->CONDITION:1 +mov n0 !62 +mov n1 1 +sub n0 n1 +mov !62 n0 +label ELSE:2->CONDITION:1 +label ENDIF:2 +mov n0 !61 +mov n1 0 +cmp n0 n1 +mov n2 %LESS_FLAG +cmp n2 0 +je @ELSE:3->CONDITION:0 +mov n0 0 +mov !61 n0 +label ELSE:3->CONDITION:0 +label ENDIF:3 +mov n0 !62 +mov n1 0 +cmp n0 n1 +mov n2 %LESS_FLAG +cmp n2 0 +je @ELSE:4->CONDITION:0 +mov n0 0 +mov !62 n0 +label ELSE:4->CONDITION:0 +label ENDIF:4 +mov n0 !14 +mov n1 !61 +mov n2 !62 +mov !0 n0 +mov !1 n1 +mov !2 n2 +func !182 +mov n0 119 +mov !0 n0 +func !241 +pop n1 +cmp n1 0 +je @ELSE:5->CONDITION:0 +mov n0 !15 mov !0 n0 func !181 mov n0 0 @@ -34,15 +799,15 @@ mov !0 n0 mov !1 n1 mov !2 n2 func !844 -jmp @ENDIF:0 -label ELSE:0->CONDITION:0 +jmp @ENDIF:5 +label ELSE:5->CONDITION:0 mov n0 115 mov !0 n0 func !241 pop n1 cmp n1 0 -je @ELSE:0->CONDITION:1 -mov n0 !12 +je @ELSE:5->CONDITION:1 +mov n0 !15 mov !0 n0 func !181 mov n0 0 @@ -52,15 +817,15 @@ mov !0 n0 mov !1 n1 mov !2 n2 func !844 -label ELSE:0->CONDITION:1 -label ENDIF:0 +label ELSE:5->CONDITION:1 +label ENDIF:5 mov n0 97 mov !0 n0 func !241 pop n1 cmp n1 0 -je @ELSE:1->CONDITION:0 -mov n0 !12 +je @ELSE:6->CONDITION:0 +mov n0 !15 mov !0 n0 func !181 mov n0 -10 @@ -70,15 +835,15 @@ mov !0 n0 mov !1 n1 mov !2 n2 func !844 -jmp @ENDIF:1 -label ELSE:1->CONDITION:0 +jmp @ENDIF:6 +label ELSE:6->CONDITION:0 mov n0 100 mov !0 n0 func !241 pop n1 cmp n1 0 -je @ELSE:1->CONDITION:1 -mov n0 !12 +je @ELSE:6->CONDITION:1 +mov n0 !15 mov !0 n0 func !181 mov n0 10 @@ -88,77 +853,71 @@ mov !0 n0 mov !1 n1 mov !2 n2 func !844 -label ELSE:1->CONDITION:1 -label ENDIF:1 +label ELSE:6->CONDITION:1 +label ENDIF:6 mov n0 114 mov !0 n0 func !241 pop n1 cmp n1 0 -je @ELSE:2->CONDITION:0 -mov n0 !12 +je @ELSE:7->CONDITION:0 +mov n0 !15 mov !0 n0 func !181 -preset !14 -preset !15 -preset !16 -mov n0 !14 -mov n1 !15 -mov n2 !16 +mov n0 !64 +mov n1 !65 +mov n2 !66 ptr !0 n0 ptr !1 n1 ptr !2 n2 func !843 pop_ptr !3 -mov n0 !14 -mov n1 !15 +mov n0 !64 +mov n1 !65 mov n2 10 -mov n3 !16 +mov n3 !66 add n1 n2 mov !0 n0 mov !1 n1 mov !2 n3 func !842 -jmp @ENDIF:2 -label ELSE:2->CONDITION:0 +jmp @ENDIF:7 +label ELSE:7->CONDITION:0 mov n0 102 mov !0 n0 func !241 pop n1 cmp n1 0 -je @ELSE:2->CONDITION:1 -mov n0 !12 +je @ELSE:7->CONDITION:1 +mov n0 !15 mov !0 n0 func !181 -preset !17 -preset !18 -preset !19 -mov n0 !17 -mov n1 !18 -mov n2 !19 +mov n0 !67 +mov n1 !68 +mov n2 !69 ptr !0 n0 ptr !1 n1 ptr !2 n2 func !843 pop_ptr !3 -mov n0 !17 -mov n1 !18 +mov n0 !67 +mov n1 !68 mov n2 10 -mov n3 !19 +mov n3 !69 sub n1 n2 mov !0 n0 mov !1 n1 mov !2 n3 func !842 -label ELSE:2->CONDITION:1 -label ENDIF:2 +label ELSE:7->CONDITION:1 +label ENDIF:7 mov n0 1073741906 mov !0 n0 func !241 pop n1 cmp n1 0 -je @ELSE:3->CONDITION:0 -mov n0 !12 +je @ELSE:8->CONDITION:0 +mov n0 !15 mov !0 n0 func !181 mov n0 1 @@ -168,15 +927,15 @@ mov !0 n0 mov !1 n1 mov !2 n2 func !847 -jmp @ENDIF:3 -label ELSE:3->CONDITION:0 +jmp @ENDIF:8 +label ELSE:8->CONDITION:0 mov n0 1073741905 mov !0 n0 func !241 pop n1 cmp n1 0 -je @ELSE:3->CONDITION:1 -mov n0 !12 +je @ELSE:8->CONDITION:1 +mov n0 !15 mov !0 n0 func !181 mov n0 -1 @@ -186,30 +945,27 @@ mov !0 n0 mov !1 n1 mov !2 n2 func !847 -label ELSE:3->CONDITION:1 -label ENDIF:3 +label ELSE:8->CONDITION:1 +label ENDIF:8 mov n0 1073741904 mov !0 n0 func !241 pop n1 cmp n1 0 -je @ELSE:4->CONDITION:0 -mov n0 !12 +je @ELSE:9->CONDITION:0 +mov n0 !15 mov !0 n0 func !181 -preset !20 -preset !21 -preset !22 -mov n0 !20 -mov n1 !21 -mov n2 !22 +mov n0 !70 +mov n1 !71 +mov n2 !72 ptr !0 n0 ptr !1 n1 ptr !2 n2 func !846 pop_ptr !3 mov n0 -1 -mov n1 !20 +mov n1 !70 mov n2 0 mov n3 0 mul n0 n1 @@ -224,432 +980,160 @@ mov !0 n0 mov !1 n1 mov !2 n2 func !847 -mov n0 !20 +mov n0 !70 mov n1 0 mov n2 0 mov !0 n0 mov !1 n1 mov !2 n2 func !847 -jmp @ENDIF:4 -label ELSE:4->CONDITION:0 +jmp @ENDIF:9 +label ELSE:9->CONDITION:0 mov n0 1073741903 mov !0 n0 func !241 pop n1 cmp n1 0 -je @ELSE:4->CONDITION:1 -mov n0 !12 +je @ELSE:9->CONDITION:1 +mov n0 !15 mov !0 n0 func !181 -preset !23 -preset !24 -preset !25 -mov n0 !23 -mov n1 !24 -mov n2 !25 +mov n0 !73 +mov n1 !74 +mov n2 !75 ptr !0 n0 ptr !1 n1 ptr !2 n2 func !846 pop_ptr !3 -mov n0 !23 -mov n1 !24 +mov n0 !73 +mov n1 !74 mov n2 1 -mov n3 !25 +mov n3 !75 add n1 n2 mov !0 n0 mov !1 n1 mov !2 n3 func !845 -label ELSE:4->CONDITION:1 -label ENDIF:4 -mov n0 !13 -mov !0 n0 -func !181 -return -.code -mov n0 640 -mov !26 n0 -mov n0 480 -mov !27 n0 -mov n0 0 -mov !28 n0 -mov n0 1 -mov !29 n0 -mov$ s0 @0 -mov n0 !26 -mov n1 !27 -mov n2 !28 -mov n3 !29 -mov$ !0 s0 -mov !0 n0 -mov !1 n1 -mov !2 n2 -mov !3 n3 -func !124 -pop n4 -mov n0 0 -mov n1 0 -mov n2 !26 -mov n3 !27 -mov n4 0 -mov !0 n0 -mov !1 n1 -mov !2 n2 -mov !3 n3 -mov !4 n4 -func !176 -pop n5 -mov !30 n5 -mov n0 !26 -mov n1 !27 -mov n2 0 -mov n3 0 -mov n4 !26 -mov n5 !27 -mov n6 0 -mov !0 n0 -mov !1 n1 -mov !2 n2 -mov !3 n3 -mov !4 n4 -mov !5 n5 -mov !6 n6 -func !174 -pop n7 -mov !31 n7 -mov n0 !31 -mov n1 0 -mov !0 n0 -mov !1 n1 -func !191 -mov n0 10 -mov !0 n0 -func !634 -pop n1 -mov !32 n1 -mov n0 !32 -mov n1 0 -mov !0 n0 -mov !1 n1 -func !945 -pop n2 -mov !33 n2 -mov n0 !33 -mov n1 1 -mov !0 n0 -mov !1 n1 -func !975 -mov n0 !33 -mov n1 0 -mov n2 200 -mov n3 0 -mov !0 n1 -mov !1 n2 -mov !2 n3 -func !208 -pop n4 -mov !0 n0 -mov !1 n4 -func !965 -mov n0 !32 -mov n1 50 -mov n2 1 -mov n3 50 -mov !0 n0 -mov !1 n1 -mov !2 n2 -mov !3 n3 -func !648 -mov n0 !32 -mov n1 1 -mov !0 n0 -mov !1 n1 -func !679 -mov n0 !32 -mov n1 1 -mov n2 0 -mov !0 n0 -mov !1 n1 -mov !2 n2 -func !677 -mov n0 !32 -mov n1 0 -mov n2 0 -mov n3 45 -mov !0 n0 -mov !1 n1 -mov !2 n2 -mov !3 n3 -func !651 -mov n0 10 -mov !0 n0 -func !634 -pop n1 -mov !34 n1 -mov n0 !34 -mov n1 0 -mov !0 n0 -mov !1 n1 -func !945 -pop n2 -mov !35 n2 -mov n0 !35 -mov n1 1 -mov !0 n0 -mov !1 n1 -func !975 -mov n0 !35 -mov n1 0 -mov n2 120 -mov n3 0 -mov !0 n1 -mov !1 n2 -mov !2 n3 -func !208 -pop n4 -mov !0 n0 -mov !1 n4 -func !965 -mov n0 !34 -mov n1 100 -mov n2 1 -mov n3 100 -mov !0 n0 -mov !1 n1 -mov !2 n2 -mov !3 n3 -func !648 -mov n0 !34 -mov n1 1 -mov !0 n0 -mov !1 n1 -func !679 -mov n0 !34 -mov n1 1 -mov n2 0 -mov !0 n0 -mov !1 n1 -mov !2 n2 -func !677 -mov n0 !32 -mov n1 0 -mov n2 300 -mov n3 0 -mov !0 n0 -mov !1 n1 -mov !2 n2 -mov !3 n3 -func !645 -mov n0 30 -mov !0 n0 -func !635 -pop n1 -mov !36 n1 -mov n0 !36 -mov n1 0 -mov !0 n0 -mov !1 n1 -func !945 -pop n2 -mov !37 n2 -mov n0 !37 -mov n1 1 -mov !0 n0 -mov !1 n1 -func !975 -mov n0 !37 -mov n1 200 -mov n2 0 -mov n3 0 -mov !0 n1 -mov !1 n2 -mov !2 n3 -func !208 -pop n4 -mov !0 n0 -mov !1 n4 -func !965 -mov n0 !36 -mov n1 0 -mov n2 300 -mov n3 0 -mov !0 n0 -mov !1 n1 -mov !2 n2 -mov !3 n3 -func !645 -mov n0 !36 -mov n1 1 -mov !0 n0 -mov !1 n1 -func !679 -mov n0 !36 -mov n1 2 -mov n2 10 -mov !0 n0 -mov !1 n1 -mov !2 n2 -func !677 -mov n0 !36 -mov n1 !38 -mov n2 !39 -mov n3 !40 -mov !0 n0 -ptr !1 n1 -ptr !2 n2 -ptr !3 n3 -func !683 -pop_ptr !3 -mov n0 !36 -mov n1 !38 -mov n2 !39 -mov n3 30 -mov n4 !40 -mul n2 n3 -mov !0 n0 -mov !1 n1 -mov !2 n2 -mov !3 n4 -func !682 -mov n0 !36 -mov n1 0 -mov n2 0 -mov n3 20 -mov !0 n0 -mov !1 n1 -mov !2 n2 -mov !3 n3 -func !706 -mov n0 !36 -mov n1 !32 -mov n2 0 -mov n3 120 -mov n4 0 -mov n5 0 -mov n6 0 -mov n7 0 -mov !0 n0 -mov !1 n1 -mov !2 n2 -mov !3 n3 -mov !4 n4 -mov !5 n5 -mov !6 n6 -mov !7 n7 -func !735 -pop n8 -mov !41 n8 -mov n0 !30 -mov !0 n0 -func !181 -mov n0 -560 -mov n1 150 -mov n2 -608 -mov !0 n0 -mov !1 n1 -mov !2 n2 -func !842 -mov n0 0 -mov n1 40 -mov n2 0 -mov !0 n0 -mov !1 n1 -mov !2 n2 -func !845 -func !122 -pop n0 -mov !42 n0 -label main.#WHILE:0 -mov n0 !42 -mov n1 1000 -func !122 -pop n2 -sub n2 n0 -cmp n2 n1 -mov n3 %LESS_FLAG -while n3 @main.#WEND:0 -func !173 -jmp @main.#WHILE:0 -label main.#WEND:0 -label main.#WHILE:1 -mov n0 27 -mov !0 n0 -func !241 -pop n1 -not n1 -while n1 @main.#WEND:1 -mov n0 49 +label ELSE:9->CONDITION:1 +label ENDIF:9 +mov n0 122 mov !0 n0 func !241 pop n1 cmp n1 0 -je @ELSE:5->CONDITION:0 -mov n0 !41 -mov !0 n0 -func !744 -label ELSE:5->CONDITION:0 -label ENDIF:5 -mov n0 !30 -mov !12 n0 -push n0 -gosub @cam_control -pop n0 -mov n0 !30 -mov !0 n0 -func !181 -func !173 -mov n0 !36 -mov n1 !43 -mov n2 !44 -mov n3 !45 -mov !0 n0 -ptr !1 n1 -ptr !2 n2 -ptr !3 n3 -func !646 -pop_ptr !3 +je @ELSE:10->CONDITION:0 mov n0 !43 -mov n1 !44 -mov n2 !45 -mov n3 !46 -mov n4 !47 -mov !0 n0 -mov !1 n1 -mov !2 n2 -ptr !3 n3 -ptr !4 n4 -func !858 -pop_ptr !2 -mov n0 !31 -mov !0 n0 -func !181 -func !185 -mov n0 0 mov n1 0 -mov n2 200 +mov n2 10 +mov n3 0 mov !0 n0 mov !1 n1 mov !2 n2 -func !208 -pop n3 -mov !0 n3 -func !203 -mov n0 !46 -mov n1 10 -mov n2 !47 -mov n3 10 -mov n4 20 -mov n5 20 -sub n0 n1 -sub n2 n3 +mov !3 n3 +func !720 +label ELSE:10->CONDITION:0 +label ENDIF:10 +mov n0 120 mov !0 n0 -mov !1 n2 -mov !2 n4 -mov !3 n5 -func !206 +func !241 +pop n1 +cmp n1 0 +je @ELSE:11->CONDITION:0 +mov n0 !43 +mov n1 60 +mov n2 0 +mov n3 0 +mov !0 n0 +mov !1 n1 +mov !2 n2 +mov !3 n3 +func !718 +label ELSE:11->CONDITION:0 +label ENDIF:11 +mov n0 99 +mov !0 n0 +func !241 +pop n1 +cmp n1 0 +je @ELSE:12->CONDITION:0 +mov n0 !43 +mov n1 0 +mov n2 60 +mov n3 0 +mov !0 n0 +mov !1 n1 +mov !2 n2 +mov !3 n3 +func !718 +label ELSE:12->CONDITION:0 +label ENDIF:12 +jmp @SELECT:0->END +label SELECT:0->CASE:1 +pop n0 +push n0 +mov n1 1 +mov n2 0 +cmp n0 n1 +mov n3 %EQUAL_FLAG +or n2 n3 +cmp n2 0 +je @SELECT:0->CASE:2 +mov n0 1073741904 +mov !0 n0 +func !241 +pop n1 +cmp n1 0 +je @ELSE:13->CONDITION:0 +mov n0 -1 +mov n1 !39 +mul n0 n1 +mov !37 n0 +jmp @ENDIF:13 +label ELSE:13->CONDITION:0 +mov n0 1073741903 +mov !0 n0 +func !241 +pop n1 +cmp n1 0 +je @ELSE:13->CONDITION:1 +mov n0 !39 +mov !37 n0 +label ELSE:13->CONDITION:1 +label ENDIF:13 +mov n0 1073741906 +mov !0 n0 +func !241 +pop n1 +cmp n1 0 +je @ELSE:14->CONDITION:0 +mov n0 -1 +mov n1 !39 +mul n0 n1 +mov !38 n0 +jmp @ENDIF:14 +label ELSE:14->CONDITION:0 +mov n0 1073741905 +mov !0 n0 +func !241 +pop n1 +cmp n1 0 +je @ELSE:14->CONDITION:1 +mov n0 !39 +mov !38 n0 +label ELSE:14->CONDITION:1 +label ENDIF:14 +mov n0 !32 +mov n1 !37 +mov n2 !38 +mov !0 n0 +mov !1 n1 +mov !2 n2 +func !490 +label SELECT:0->CASE:2 +label SELECT:0->END +pop n0 func !128 -jmp @main.#WHILE:1 -label main.#WEND:1 +jmp @main.#WHILE:0 +label main.#WEND:0 end diff --git a/rcbasic_build/main.rc_data b/rcbasic_build/main.rc_data index e8385c4..1689582 100644 --- a/rcbasic_build/main.rc_data +++ b/rcbasic_build/main.rc_data @@ -1,33 +1,59 @@ -10 +9 +6 +0 +18446744073709551581 +0 +0 +1 +76 +5 2 -0 -18446744073709551590 -0 -0 -0 48 -3 -2 -22 -cam_control 0 1 -ELSE:0->CONDITION:0 285 1 -ELSE:0->CONDITION:1 517 1 -ENDIF:0 517 1 -ELSE:1->CONDITION:0 758 1 -ELSE:1->CONDITION:1 990 1 -ENDIF:1 990 1 -ELSE:2->CONDITION:0 1412 1 -ELSE:2->CONDITION:1 1825 1 -ENDIF:2 1825 1 -ELSE:3->CONDITION:0 2066 1 -ELSE:3->CONDITION:1 2298 1 -ENDIF:3 2298 1 -ELSE:4->CONDITION:0 2942 1 -ELSE:4->CONDITION:1 3355 1 -ENDIF:4 3355 1 -main.#WHILE:0 4664 0 -main.#WEND:0 4802 0 -main.#WHILE:1 4802 0 -ELSE:5->CONDITION:0 5001 0 -ENDIF:5 5001 0 -main.#WEND:1 5885 0 +main.#FOR:0 6831 0 +main.#NEXT:0 7045 0 +main.#WHILE:0 9865 0 +ELSE:0->CONDITION:0 10064 0 +ELSE:0->CONDITION:1 10176 0 +ENDIF:0 10176 0 +SELECT:0->CASE:0 10220 0 +ELSE:1->CONDITION:0 10504 0 +ELSE:1->CONDITION:1 10650 0 +ENDIF:1 10650 0 +ELSE:2->CONDITION:0 10805 0 +ELSE:2->CONDITION:1 10951 0 +ENDIF:2 10951 0 +ELSE:3->CONDITION:0 11079 0 +ENDIF:3 11079 0 +ELSE:4->CONDITION:0 11207 0 +ENDIF:4 11207 0 +ELSE:5->CONDITION:0 11559 0 +ELSE:5->CONDITION:1 11791 0 +ENDIF:5 11791 0 +ELSE:6->CONDITION:0 12032 0 +ELSE:6->CONDITION:1 12264 0 +ENDIF:6 12264 0 +ELSE:7->CONDITION:0 12659 0 +ELSE:7->CONDITION:1 13045 0 +ENDIF:7 13045 0 +ELSE:8->CONDITION:0 13286 0 +ELSE:8->CONDITION:1 13518 0 +ENDIF:8 13518 0 +ELSE:9->CONDITION:0 14135 0 +ELSE:9->CONDITION:1 14521 0 +ENDIF:9 14521 0 +ELSE:10->CONDITION:0 14744 0 +ENDIF:10 14744 0 +ELSE:11->CONDITION:0 14967 0 +ENDIF:11 14967 0 +ELSE:12->CONDITION:0 15190 0 +ENDIF:12 15190 0 +SELECT:0->CASE:1 15199 0 +ELSE:13->CONDITION:0 15483 0 +ELSE:13->CONDITION:1 15595 0 +ENDIF:13 15595 0 +ELSE:14->CONDITION:0 15750 0 +ELSE:14->CONDITION:1 15862 0 +ENDIF:14 15862 0 +SELECT:0->CASE:2 15973 0 +SELECT:0->END 15973 0 +main.#WEND:0 16000 0 diff --git a/rcbasic_build/main_str_data.sdata b/rcbasic_build/main_str_data.sdata index 99e120fff911c0b0eb0e283872024ef4872ccea9..c7f2657a6eb329b7cb612edbd10c58c2c4e1e558 100644 GIT binary patch literal 437 zcmZ{gPfr3t48{9VdelUA4BkvUY?fgBgAx!CFQzcV?gVx^=}cUgPwx(b2?tKEeZS^4 zExef!tt;_f$X9k1ketSG)rPKy1aWSi<_0>!sofd8L%2dH*FUNhvOAW{yK>)$$bR39 zIoN2~gCONDITION:0 crx 17 -N main.cam_control.#ELSE:2->CONDITION:0 cry 18 -N main.cam_control.#ELSE:2->CONDITION:0 crz 19 -N main.cam_control.#IF:4 crx 20 -N main.cam_control.#IF:4 cry 21 -N main.cam_control.#IF:4 crz 22 -N main.cam_control.#ELSE:4->CONDITION:0 crx 23 -N main.cam_control.#ELSE:4->CONDITION:0 cry 24 -N main.cam_control.#ELSE:4->CONDITION:0 crz 25 -N main window_width 26 -N main window_height 27 -N main fullscreen 28 -N main vsync 29 -N main scene_canvas 30 -N main ui_canvas 31 -N main ground 32 -N main ground_material 33 -N main ground2 34 -N main ground2_material 35 -N main sphere 36 -N main sphere_material 37 -N main sphere_gx 38 -N main sphere_gy 39 -N main sphere_gz 40 -N main ground_sphere_constraint 41 -N main t 42 -N main.#WHILE:1 sx 43 -N main.#WHILE:1 sy 44 -N main.#WHILE:1 sz 45 -N main.#WHILE:1 vx 46 -N main.#WHILE:1 vy 47 +N main w 12 +N main h 13 +N main canvas2 14 +N main canvas1 15 +N main yellow 16 +N main darkyellow 17 +N main magenta 18 +N main cyan 19 +N main red 20 +N main grey 21 +N main blue 22 +N main darkblue 23 +N main orange 24 +N main black 25 +N main green 26 +N main white 27 +N main sprite_canvas 28 +N main gz_img 29 +N main rc_img 30 +N main rc 31 +N main gz 32 +N main gz_x 33 +N main gz_y 34 +N main rc_x 35 +N main rc_y 36 +N main x 37 +N main y 38 +N main lforce 39 +S main fnt$ 3 +N main hud_font 40 +AS main hud_txt$ 4 +N main.#FOR:0 i 41 +N main mesh1 42 +N main actor1 43 +N main actor1_texture 44 +N main c 45 +N main mat 46 +N main a_mat 47 +N main level 48 +N main actor2 49 +N main ax 50 +N main ay 51 +N main az 52 +N main init 53 +N main i 54 +N main vx 55 +N main vy 56 +N main vz 57 +N main mass 58 +N main anim 59 +N main num_loops 60 +N main off_x 61 +N main off_y 62 +N main test_mode 63 +N main.#WHILE:0.#SELECT:0->CASE:0.#IF:7 crx 64 +N main.#WHILE:0.#SELECT:0->CASE:0.#IF:7 cry 65 +N main.#WHILE:0.#SELECT:0->CASE:0.#IF:7 crz 66 +N main.#WHILE:0.#SELECT:0->CASE:0.#ELSE:7->CONDITION:0 crx 67 +N main.#WHILE:0.#SELECT:0->CASE:0.#ELSE:7->CONDITION:0 cry 68 +N main.#WHILE:0.#SELECT:0->CASE:0.#ELSE:7->CONDITION:0 crz 69 +N main.#WHILE:0.#SELECT:0->CASE:0.#IF:9 crx 70 +N main.#WHILE:0.#SELECT:0->CASE:0.#IF:9 cry 71 +N main.#WHILE:0.#SELECT:0->CASE:0.#IF:9 crz 72 +N main.#WHILE:0.#SELECT:0->CASE:0.#ELSE:9->CONDITION:0 crx 73 +N main.#WHILE:0.#SELECT:0->CASE:0.#ELSE:9->CONDITION:0 cry 74 +N main.#WHILE:0.#SELECT:0->CASE:0.#ELSE:9->CONDITION:0 crz 75 diff --git a/rcbasic_build/rcbasic_build.depend b/rcbasic_build/rcbasic_build.depend index 42c127c..102fe71 100755 --- a/rcbasic_build/rcbasic_build.depend +++ b/rcbasic_build/rcbasic_build.depend @@ -1,5 +1,5 @@ # depslib dependency file v1.0 -1733023376 source:/home/n00b/Projects/RCBASIC4/rcbasic_build/main.cpp +1733028438 source:/home/n00b/Projects/RCBASIC4/rcbasic_build/main.cpp diff --git a/rcbasic_runtime/main.cpp b/rcbasic_runtime/main.cpp index 000b157..4115db3 100755 --- a/rcbasic_runtime/main.cpp +++ b/rcbasic_runtime/main.cpp @@ -4446,8 +4446,8 @@ int main(int argc, char * argv[]) std::cin >> debug_opt; if(debug_opt.compare("a")==0) { - rc_intern_dirChange("/home/n00b/projects/bu/rcbasic_v400a5_linux/test_project_v4a5"); - rc_filename = "test.cbc"; + rc_intern_dirChange("/home/n00b/projects/rcbasic_alpha3/test_project"); + rc_filename = "main.cbc"; } else { diff --git a/rcbasic_runtime/rc_gfx.h b/rcbasic_runtime/rc_gfx.h index e186cc4..8bf3af8 100644 --- a/rcbasic_runtime/rc_gfx.h +++ b/rcbasic_runtime/rc_gfx.h @@ -946,7 +946,8 @@ int rc_canvasOpen(int w, int h, int vx, int vy, int vw, int vh, int mode, int ca { b2Vec2 gravity(0, 0); canvas.physics2D.world = new b2World(gravity); - canvas.physics2D.timeStep = 1/60.0; //the length of time passed to simulate (seconds) + canvas.physics2D.timeStep = -1; //the length of time passed to simulate (seconds) + canvas.physics2D.time_stamp = SDL_GetTicks(); canvas.physics2D.velocityIterations = 8; //how strongly to correct velocity canvas.physics2D.positionIterations = 3; //how strongly to correct position canvas.physics2D.enabled = true; @@ -3056,7 +3057,9 @@ void rc_preUpdate() if(rc_canvas[i].type != RC_CANVAS_TYPE_SPRITE) continue; - float step = rc_canvas[i].physics2D.timeStep; + Uint32 delta_time = SDL_GetTicks() - rc_canvas[i].physics2D.time_stamp; + rc_canvas[i].physics2D.time_stamp = SDL_GetTicks(); + float step = rc_canvas[i].physics2D.timeStep < 0 ? (delta_time*0.001f) : rc_canvas[i].physics2D.timeStep; int32 velocityIterations = rc_canvas[i].physics2D.velocityIterations; int32 positionIterations = rc_canvas[i].physics2D.positionIterations; diff --git a/rcbasic_runtime/rc_gfx_core.h b/rcbasic_runtime/rc_gfx_core.h index 3a7596d..4e80130 100644 --- a/rcbasic_runtime/rc_gfx_core.h +++ b/rcbasic_runtime/rc_gfx_core.h @@ -307,7 +307,7 @@ struct rc_physicsWorld2D_obj b2World* world; rc_contactListener_obj* contact_listener; - float time_stamp; + Uint32 time_stamp; float timeStep = 1/60.0; //the length of time passed to simulate (seconds) int velocityIterations = 8; //how strongly to correct velocity int positionIterations = 3; //how strongly to correct position diff --git a/rcbasic_runtime/rc_spritelib.h b/rcbasic_runtime/rc_spritelib.h index 8a612b6..35825dd 100644 --- a/rcbasic_runtime/rc_spritelib.h +++ b/rcbasic_runtime/rc_spritelib.h @@ -804,7 +804,9 @@ bool rc_spriteIsVisible(int spr_id) //This function is called on each canvas on update void drawSprites(int canvas_id) { - float step = rc_canvas[canvas_id].physics2D.timeStep; + Uint32 delta_time = SDL_GetTicks() - rc_canvas[canvas_id].physics2D.time_stamp; + rc_canvas[canvas_id].physics2D.time_stamp = SDL_GetTicks(); + float step = rc_canvas[canvas_id].physics2D.timeStep < 0 ? (delta_time*0.001f) : rc_canvas[canvas_id].physics2D.timeStep; int32 velocityIterations = rc_canvas[canvas_id].physics2D.velocityIterations; int32 positionIterations = rc_canvas[canvas_id].physics2D.positionIterations; diff --git a/rcbasic_runtime/rcbasic_runtime.depend b/rcbasic_runtime/rcbasic_runtime.depend index 28d399f..aa12442 100755 --- a/rcbasic_runtime/rcbasic_runtime.depend +++ b/rcbasic_runtime/rcbasic_runtime.depend @@ -1,5 +1,5 @@ # depslib dependency file v1.0 -1733023264 source:/home/n00b/Projects/RCBASIC4/rcbasic_runtime/main.cpp +1733028476 source:/home/n00b/Projects/RCBASIC4/rcbasic_runtime/main.cpp "rc_os_defines.h" @@ -1247,7 +1247,7 @@ 1727545973 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/RealisticWater.h -1733027113 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_gfx.h +1733028476 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_gfx.h "SDL.h" @@ -1271,7 +1271,7 @@ "rc_joints.h" -1733027113 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_gfx_core.h +1733028476 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_gfx_core.h "SDL.h" "btBulletDynamicsCommon.h" "BulletSoftBody/btSoftRigidDynamicsWorld.h" @@ -2487,7 +2487,7 @@ -1731722537 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_spritelib.h +1733028518 /home/n00b/Projects/RCBASIC4/rcbasic_runtime/rc_spritelib.h "SDL.h" "rc_sprite2D.h"