diff --git a/game/graphics/opengl_renderer/BucketRenderer.cpp b/game/graphics/opengl_renderer/BucketRenderer.cpp index 00135583e..d5013589a 100644 --- a/game/graphics/opengl_renderer/BucketRenderer.cpp +++ b/game/graphics/opengl_renderer/BucketRenderer.cpp @@ -24,6 +24,9 @@ void EmptyBucketRenderer::render(DmaFollower& dma, SharedRenderState* render_sta // CALL auto call_tag = dma.current_tag(); dma.read_and_advance(); + if (!(call_tag.kind == DmaTag::Kind::CALL && call_tag.qwc == 0)) { + fmt::print("Bucket renderer {} ({}) was supposed to be empty, but wasn't\n", m_my_id, m_name); + } assert(call_tag.kind == DmaTag::Kind::CALL && call_tag.qwc == 0); // in the default reg buffer: diff --git a/game/graphics/opengl_renderer/BucketRenderer.h b/game/graphics/opengl_renderer/BucketRenderer.h index 0a40fc2f3..b9e8fc351 100644 --- a/game/graphics/opengl_renderer/BucketRenderer.h +++ b/game/graphics/opengl_renderer/BucketRenderer.h @@ -13,6 +13,7 @@ enum class BucketId { BUCKET0 = 0, BUCKET1 = 1, // ... + SPRITE = 66, DEBUG_DRAW_0 = 67, DEBUG_DRAW_1 = 68, MAX_BUCKETS = 69 diff --git a/game/graphics/opengl_renderer/OpenGLRenderer.cpp b/game/graphics/opengl_renderer/OpenGLRenderer.cpp index fdb4d0f34..c8658457e 100644 --- a/game/graphics/opengl_renderer/OpenGLRenderer.cpp +++ b/game/graphics/opengl_renderer/OpenGLRenderer.cpp @@ -55,6 +55,7 @@ void OpenGLRenderer::init_bucket_renderers() { init_bucket_renderer("bucket0", BucketId::BUCKET0); // TODO what the heck is drawing to debug-draw-0 on init? + init_bucket_renderer("sprite", BucketId::SPRITE, 102); init_bucket_renderer("debug-draw-0", BucketId::DEBUG_DRAW_0, 102); init_bucket_renderer("debug-draw-1", BucketId::DEBUG_DRAW_1, 102); diff --git a/goal_src/engine/gfx/font.gc b/goal_src/engine/gfx/font.gc index f5d7474d9..d51350f2f 100644 --- a/goal_src/engine/gfx/font.gc +++ b/goal_src/engine/gfx/font.gc @@ -619,11 +619,11 @@ (r0 uint128) (v0-0 float) (a0-2 int) (font-table-12 (inline-array vector)) (a3-6 (inline-array vector)) (a3-8 (inline-array vector)) (t0-1 int) (q-hi-tmpl uint128) (color-array-prod int) (q-verts-2t uint128) (q-verts-2 uint128) (q-verts-3t uint128) (q-verts-3 uint128) (t4-6 int) (fc-cr uint) (t4-16 int) (t4-17 int) - (t4-18 float) (t4-19 int) (t4-23 int) (t4-32 int) (t4-33 int) (t4-36 uint128) (t4-37 uint128) (q-verts-1t uint128) + (t4-18 int) (t4-19 int) (t4-23 int) (t4-32 int) (t4-33 int) (t4-36 uint128) (t4-37 uint128) (q-verts-1t uint128) (q-verts-1 uint128) (not-sc-lit1 uint) (not-sc-~ uint) (t5-6 int) (t5-7 int) (t5-9 int) (t5-10 uint) (t5-11 uint) - (t5-13 int) (t5-14 int) (t5-17 int) (t5-18 int) (t5-19 float) (t5-20 int) (t5-23 uint128) (t5-24 uint) (t5-25 uint) + (t5-13 int) (t5-14 int) (t5-17 int) (t5-18 int) (t5-19 int) (t5-20 int) (t5-23 uint128) (t5-24 uint) (t5-25 uint) (t5-27 int) (t5-28 int) (t5-32 uint128) (t5-33 uint128) (t5-35 uint128) (t5-36 uint128) (t5-39 int) (t5-40 int) - (t5-41 float) (t5-42 int) (t5-45 uint128) (q-verts-0t uint128) (q-verts-0 uint128) (t6-3 uint) (t6-4 uint) (t6-5 uint) + (t5-41 int) (t5-42 int) (t5-45 uint128) (q-verts-0t uint128) (q-verts-0 uint128) (t6-3 uint) (t6-4 uint) (t6-5 uint) (t6-6 uint) (t6-7 uint) (t6-10 uint) (t6-11 uint) (t6-12 uint) (t6-13 uint) (t6-14 uint) (t6-16 uint) (t6-20 uint) (t6-21 uint) (t6-22 uint) (t6-23 uint) (t6-24 uint) (t6-28 uint128) (t6-29 uint128) (t6-31 uint) (t7-0 uint) (t7-2 uint) (t7-3 uint) (t7-4 uint) (t7-5 uint) (t7-6 uint) (t7-7 uint) (t7-8 uint) (t7-9 uint) (t7-10 uint) @@ -1621,14 +1621,13 @@ ) (defun get-string-length ((arg0 string) (arg1 font-context)) - "Get the length of a string, in pixels" (local-vars - (v0-0 float) (a2-1 (inline-array vector)) (a2-4 (inline-array vector)) (a3-2 int) (a3-9 uint) - (a3-10 int) (t0-0 uint) (t0-1 uint) (t0-3 int) (t0-4 int) (t0-5 int) (t1-1 uint) (t1-2 uint) - (t1-3 uint) (t1-4 uint) (t1-5 uint) (t2-0 uint) (t2-2 uint) (t2-3 uint) (t2-4 uint) (t2-5 uint) - (t2-6 uint) (t2-7 uint) (t2-8 uint) (t2-9 uint) (t2-10 uint) (t2-11 uint) (t2-12 uint) (t2-13 uint) - (t2-14 uint) (t2-15 uint) (t2-16 uint) (t2-17 uint) (t3-0 uint) (t3-1 int) - ) + (v0-0 float) (a2-1 (inline-array vector)) (a2-4 (inline-array vector)) (a3-2 int) (a3-9 uint) + (a3-10 int) (t0-0 uint) (t0-1 uint) (t0-3 int) (t0-4 int) (t0-5 int) (t1-1 uint) (t1-2 uint) + (t1-3 uint) (t1-4 uint) (t1-5 uint) (t2-0 uint) (t2-2 uint) (t2-3 uint) (t2-4 uint) (t2-5 uint) + (t2-6 uint) (t2-7 uint) (t2-8 uint) (t2-9 uint) (t2-10 uint) (t2-11 uint) (t2-12 uint) + (t2-13 uint) (t2-14 uint) (t2-15 uint) (t2-16 uint) (t2-17 uint) (t3-0 uint) (t3-1 int) + ) (rlet ((vf0 :class vf) (vf1 :class vf) (vf13 :class vf) @@ -1639,148 +1638,168 @@ (vf25 :class vf) (vf5 :class vf) ) - (init-vf0-vector) - (.lvf vf25 (&-> arg1 context-vec quad)) - (.lvf vf23 (&-> arg1 origin quad)) - (.lvf vf24 (&-> arg1 origin quad)) - (let ((v1-0 (-> arg1 flags-signed))) - (let ((a1-2 *video-parms*)) - (.lvf vf1 (+ (the-as int a1-2) 64)) - ) - (.mul.vf vf25 vf25 vf1 :mask #b11) - (.mul.vf vf23 vf23 vf1 :mask #b11) - (.mul.vf vf24 vf24 vf1 :mask #b11) - (let ((a1-4 *font-work*)) - (set! (-> a1-4 str-ptr) (the-as uint arg0)) - (set! (-> a1-4 flags) (the-as font-flags v1-0)) - (.mov.vf vf1 vf0) - (let ((a2-0 (logand v1-0 32))) - (b! (nonzero? a2-0) cfg-2 :delay (set! a2-1 *font12-table*)) - ) - (let ((a2-2 a2-1)) - (.lvf vf13 (&-> a1-4 size1-small quad)) - (b! #t cfg-3 :delay (.lvf vf14 (&-> a1-4 size2-small quad))) - (label cfg-2) - (set! a2-2 *font24-table*) - (.lvf vf13 (&-> a1-4 size1-large quad)) - (.lvf vf14 (&-> a1-4 size2-large quad)) - (label cfg-3) - (let ((a3-0 (-> (the-as (pointer uint8) arg0) 4))) - (set! arg0 (the-as string (&-> (the-as (pointer uint8) arg0) 1))) - (b! (zero? a3-0) cfg-51 :delay (set! t0-0 (+ a3-0 -1))) - (b! (zero? t0-0) cfg-44 :delay (set! t0-1 (+ a3-0 -126))) - (b! (nonzero? t0-1) cfg-45) - (set! a3-0 (-> (the-as (pointer uint8) arg0) 4)) - (set! arg0 (the-as string (&-> (the-as (pointer uint8) arg0) 1))) - 0 - (let ((t1-0 0)) - (b! (zero? a3-0) cfg-51 :delay (set! t2-0 (+ a3-0 -43))) - (.movz t0-3 a3-0 t2-0 0) ;; TODO Wrong - (let ((t2-1 (+ a3-0 -45))) - (.movz t0-4 a3-0 t2-1 0 );; TODO wrong - ) - (b! (nonzero? t0-4) cfg-14 :delay (set! t2-2 (+ a3-0 -121))) - (b! (zero? t2-2) cfg-42 :delay (set! t1-1 (+ a3-0 -89))) - (b! (zero? t1-1) cfg-42 :delay (set! t1-2 (+ a3-0 -122))) - (b! (zero? t1-2) cfg-43 :delay (set! t1-3 (+ a3-0 -90))) - (b! (zero? t1-3) cfg-43 :delay (set! t1-4 (+ a3-0 -48))) - (b! (< (the-as int t1-4) 0) cfg-45 :delay (set! t1-5 (+ a3-0 -57))) - (b! - (> (the-as int t1-5) 0) - cfg-45 - :delay - (set! t1-0 (the-as int (+ a3-0 -48))) - ) - (label cfg-14) - (set! a3-0 (-> (the-as (pointer uint8) arg0) 4)) - (set! arg0 (the-as string (&-> (the-as (pointer uint8) arg0) 1))) - (b! (zero? a3-0) cfg-51 :delay (set! t2-3 (+ a3-0 -110))) - (b! (zero? t2-3) cfg-32 :delay (set! t2-4 (+ a3-0 -78))) - (b! (zero? t2-4) cfg-32 :delay (set! t2-5 (+ a3-0 -108))) - (b! (zero? t2-5) cfg-3 :delay (set! t2-6 (+ a3-0 -76))) - (b! (zero? t2-6) cfg-3 :delay (set! t2-7 (+ a3-0 -119))) - (b! (zero? t2-7) cfg-3 :delay (set! t2-8 (+ a3-0 -87))) - (b! (zero? t2-8) cfg-3 :delay (set! t2-9 (+ a3-0 -107))) - (b! (zero? t2-9) cfg-35 :delay (set! t2-10 (+ a3-0 -75))) - (b! (zero? t2-10) cfg-35 :delay (set! t2-11 (+ a3-0 -106))) - (b! (zero? t2-11) cfg-3 :delay (set! t2-12 (+ a3-0 -74))) - (b! (zero? t2-12) cfg-3 :delay (set! t2-13 (+ a3-0 -104))) - (b! (zero? t2-13) cfg-37 :delay (set! t2-14 (+ a3-0 -72))) - (b! (zero? t2-14) cfg-37 :delay (set! t2-15 (+ a3-0 -118))) - (b! (zero? t2-15) cfg-3 :delay (set! t2-16 (+ a3-0 -86))) - (b! (zero? t2-16) cfg-3 :delay (set! t2-17 (+ a3-0 -48))) - (b! (< (the-as int t2-17) 0) cfg-45 :delay (set! t3-0 (+ a3-0 -57))) - (b! (> (the-as int t3-0) 0) cfg-45 :delay (.sll t3-1 t1-0 2)) - (let ((a3-1 (+ t1-0 t3-1))) - (.sll a3-2 a3-1 1) - ) - (b! #t cfg-14 :delay (set! t1-0 (+ a3-2 t2-17))) - (label cfg-32) - (b! (nonzero? t1-0) cfg-34 :delay (set! a2-4 *font12-table*)) - (set! a2-2 a2-4) - (let ((a3-3 -33)) - (.lvf vf13 (&-> a1-4 size1-small quad)) - (.lvf vf14 (&-> a1-4 size2-small quad)) - (b! #t cfg-3 :delay (set! v1-0 (logand v1-0 a3-3))) - ) - (label cfg-34) - (set! a2-2 *font24-table*) - (.lvf vf13 (&-> a1-4 size1-large quad)) - (.lvf vf14 (&-> a1-4 size2-large quad)) - (b! #t cfg-3 :delay (set! v1-0 (logior v1-0 32))) - (label cfg-35) - (let ((a3-4 -3)) - (b! (zero? t1-0) cfg-3 :delay (set! v1-0 (logand v1-0 a3-4))) - ) - (b! #t cfg-3 :delay (set! v1-0 (logior v1-0 2))) - (label cfg-37) - (.mov vf1 t1-0) - ) - (let ((a3-5 (+ t0-4 -45))) - (b! (zero? t0-4) cfg-41 :delay (.itof.vf vf1 vf1)) - (b! (zero? a3-5) cfg-40) - ) - (b! #t cfg-3 :delay (.add.x.vf vf23 vf23 vf1 :mask #b1)) - (label cfg-40) - (b! #t cfg-3 :delay (.sub.x.vf vf23 vf23 vf1 :mask #b1)) - (label cfg-41) - (b! #t cfg-3 :delay (.add.x.vf vf23 vf0 vf1 :mask #b1)) - (label cfg-42) - (b! #t cfg-3 :delay (.svf (&-> a1-4 save quad) vf23)) - (label cfg-43) - (b! #t cfg-3 :delay (.lvf vf23 (&-> a1-4 save quad))) - (label cfg-44) - (let ((a3-6 (-> (the-as (pointer uint8) arg0) 4))) - (set! arg0 (the-as string (&-> (the-as (pointer uint8) arg0) 1))) - (let ((a3-7 (logand a3-6 127))) - (let ((a3-8 (+ a3-7 255))) - (b! #t cfg-48 :delay (.sll t0-5 a3-8 4)) - ) - ) - ) - (label cfg-45) - (.sll t0-5 a3-0 4) - (b! (= a3-0 10) cfg-47 :delay (set! a3-9 (+ a3-0 -13))) - ) - (b! (nonzero? a3-9) cfg-48) - (label cfg-47) - (b! #t cfg-3 :delay (.add.x.vf vf23 vf0 vf24 :mask #b1)) - (label cfg-48) - (.addu a3-10 t0-5 a2-2) - ) - ) - (.lvf vf5 (+ a3-10 -256)) - (.mul.vf vf19 vf5 vf13) - (b! (zero? (logand v1-0 2)) cfg-50) - ) - (b! #t cfg-3 :delay (.add.w.vf vf23 vf23 vf19 :mask #b1)) - (label cfg-50) - (b! #t cfg-3 :delay (.add.w.vf vf23 vf23 vf14 :mask #b1)) - (label cfg-51) - (.sub.vf vf23 vf23 vf24) - (.mov v0-0 vf23) - v0-0 + (init-vf0-vector) + (.lvf vf25 (&-> arg1 context-vec quad)) + (.lvf vf23 (&-> arg1 origin quad)) + (.lvf vf24 (&-> arg1 origin quad)) + (let ((v1-0 (-> arg1 flags-signed))) + (let ((a1-2 *video-parms*)) + (.lvf vf1 (+ (the int a1-2) 64)) + ) + (.mul.vf vf25 vf25 vf1 :mask #b11) + (.mul.vf vf23 vf23 vf1 :mask #b11) + (.mul.vf vf24 vf24 vf1 :mask #b11) + (let ((a1-4 *font-work*)) + (set! (-> a1-4 str-ptr) (the-as uint arg0)) + (set! (-> a1-4 flags) (the-as font-flags v1-0)) + (.mov.vf vf1 vf0) + (let ((a2-0 (logand v1-0 32))) + (nop!) + (b! (nonzero? a2-0) cfg-2 :delay (set! a2-1 *font12-table*)) + ) + (let ((a2-2 a2-1)) + (nop!) + (.lvf vf13 (&-> a1-4 size1-small quad)) + (b! #t cfg-3 :delay (.lvf vf14 (&-> a1-4 size2-small quad))) + (label cfg-2) + (nop!) + (set! a2-2 *font24-table*) + (nop!) + (.lvf vf13 (&-> a1-4 size1-large quad)) + (nop!) + (.lvf vf14 (&-> a1-4 size2-large quad)) + (label cfg-3) + (let ((a3-0 (-> (the-as (pointer uint8) arg0) 4))) + (set! arg0 (the-as string (&-> (the-as (pointer uint8) arg0) 1))) + (b! (zero? a3-0) cfg-51 :delay (set! t0-0 (+ a3-0 -1))) + (b! (zero? t0-0) cfg-44 :delay (set! t0-1 (+ a3-0 -126))) + (b! (nonzero? t0-1) cfg-45 :delay (nop!)) + (set! a3-0 (-> (the-as (pointer uint8) arg0) 4)) + (set! arg0 (the-as string (&-> (the-as (pointer uint8) arg0) 1))) + (let ((t0-2 0) + (t1-0 0) + ) + (b! (zero? a3-0) cfg-51 :delay (set! t2-0 (+ a3-0 -43))) + (.movz t0-3 a3-0 t2-0 t0-2) + (let ((t2-1 (+ a3-0 -45))) + (.movz t0-4 a3-0 t2-1 t0-3) + ) + (nop!) + (b! (nonzero? t0-4) cfg-14 :delay (set! t2-2 (+ a3-0 -121))) + (b! (zero? t2-2) cfg-42 :delay (set! t1-1 (+ a3-0 -89))) + (b! (zero? t1-1) cfg-42 :delay (set! t1-2 (+ a3-0 -122))) + (b! (zero? t1-2) cfg-43 :delay (set! t1-3 (+ a3-0 -90))) + (b! (zero? t1-3) cfg-43 :delay (set! t1-4 (+ a3-0 -48))) + (b! (< (the-as int t1-4) 0) cfg-45 :delay (set! t1-5 (+ a3-0 -57))) + (b! + (> (the-as int t1-5) 0) + cfg-45 + :delay + (set! t1-0 (the-as int (+ a3-0 -48))) + ) + (label cfg-14) + (set! a3-0 (-> (the-as (pointer uint8) arg0) 4)) + (set! arg0 (the-as string (&-> (the-as (pointer uint8) arg0) 1))) + (b! (zero? a3-0) cfg-51 :delay (set! t2-3 (+ a3-0 -110))) + (b! (zero? t2-3) cfg-32 :delay (set! t2-4 (+ a3-0 -78))) + (b! (zero? t2-4) cfg-32 :delay (set! t2-5 (+ a3-0 -108))) + (b! (zero? t2-5) cfg-3 :delay (set! t2-6 (+ a3-0 -76))) + (b! (zero? t2-6) cfg-3 :delay (set! t2-7 (+ a3-0 -119))) + (b! (zero? t2-7) cfg-3 :delay (set! t2-8 (+ a3-0 -87))) + (b! (zero? t2-8) cfg-3 :delay (set! t2-9 (+ a3-0 -107))) + (b! (zero? t2-9) cfg-35 :delay (set! t2-10 (+ a3-0 -75))) + (b! (zero? t2-10) cfg-35 :delay (set! t2-11 (+ a3-0 -106))) + (b! (zero? t2-11) cfg-3 :delay (set! t2-12 (+ a3-0 -74))) + (b! (zero? t2-12) cfg-3 :delay (set! t2-13 (+ a3-0 -104))) + (b! (zero? t2-13) cfg-37 :delay (set! t2-14 (+ a3-0 -72))) + (b! (zero? t2-14) cfg-37 :delay (set! t2-15 (+ a3-0 -118))) + (b! (zero? t2-15) cfg-3 :delay (set! t2-16 (+ a3-0 -86))) + (b! (zero? t2-16) cfg-3 :delay (set! t2-17 (+ a3-0 -48))) + (b! (< (the-as int t2-17) 0) cfg-45 :delay (set! t3-0 (+ a3-0 -57))) + (b! (> (the-as int t3-0) 0) cfg-45 :delay (.sll t3-1 t1-0 2)) + (let ((a3-1 (+ t1-0 t3-1))) + (nop!) + (.sll a3-2 a3-1 1) + ) + (nop!) + (b! #t cfg-14 :delay (set! t1-0 (+ a3-2 t2-17))) + (label cfg-32) + (b! (nonzero? t1-0) cfg-34 :delay (set! a2-4 *font12-table*)) + (set! a2-2 a2-4) + (let ((a3-3 -33)) + (.lvf vf13 (&-> a1-4 size1-small quad)) + (nop!) + (.lvf vf14 (&-> a1-4 size2-small quad)) + (b! #t cfg-3 :delay (set! v1-0 (logand v1-0 a3-3))) + ) + (label cfg-34) + (nop!) + (set! a2-2 *font24-table*) + (nop!) + (.lvf vf13 (&-> a1-4 size1-large quad)) + (nop!) + (.lvf vf14 (&-> a1-4 size2-large quad)) + (b! #t cfg-3 :delay (set! v1-0 (logior v1-0 32))) + (label cfg-35) + (let ((a3-4 -3)) + (nop!) + (b! (zero? t1-0) cfg-3 :delay (set! v1-0 (logand v1-0 a3-4))) + ) + (b! #t cfg-3 :delay (set! v1-0 (logior v1-0 2))) + (label cfg-37) + (.mov vf1 t1-0) ) + (let ((a3-5 (+ t0-4 -45))) + (b! (zero? t0-4) cfg-41 :delay (.itof.vf vf1 vf1)) + (b! (zero? a3-5) cfg-40 :delay (nop!)) + ) + (b! #t cfg-3 :delay (.add.x.vf vf23 vf23 vf1 :mask #b1)) + (label cfg-40) + (b! #t cfg-3 :delay (.sub.x.vf vf23 vf23 vf1 :mask #b1)) + (label cfg-41) + (b! #t cfg-3 :delay (.add.x.vf vf23 vf0 vf1 :mask #b1)) + (label cfg-42) + (b! #t cfg-3 :delay (.svf (&-> a1-4 save quad) vf23)) + (label cfg-43) + (b! #t cfg-3 :delay (.lvf vf23 (&-> a1-4 save quad))) + (label cfg-44) + (let ((a3-6 (-> (the-as (pointer uint8) arg0) 4))) + (set! arg0 (the-as string (&-> (the-as (pointer uint8) arg0) 1))) + (nop!) + (let ((a3-7 (logand a3-6 127))) + (nop!) + (let ((a3-8 (+ a3-7 255))) + (b! #t cfg-48 :delay (.sll t0-5 a3-8 4)) + ) + ) + ) + (label cfg-45) + (nop!) + (.sll t0-5 a3-0 4) + (nop!) + (b! (= a3-0 10) cfg-47 :delay (set! a3-9 (+ a3-0 -13))) + ) + (b! (nonzero? a3-9) cfg-48 :delay (nop!)) + (label cfg-47) + (b! #t cfg-3 :delay (.add.x.vf vf23 vf0 vf24 :mask #b1)) + (label cfg-48) + (.addu a3-10 t0-5 a2-2) + ) + ) + (nop!) + (.lvf vf5 (+ a3-10 -256)) + (nop!) + (.mul.vf vf19 vf5 vf13) + (b! (zero? (logand v1-0 2)) cfg-50 :delay (nop!)) + ) + (b! #t cfg-3 :delay (.add.w.vf vf23 vf23 vf19 :mask #b1)) + (label cfg-50) + (b! #t cfg-3 :delay (.add.w.vf vf23 vf23 vf14 :mask #b1)) + (label cfg-51) + (.sub.vf vf23 vf23 vf24) + (.mov v0-0 vf23) + v0-0 + ) ) (defun draw-string-xy ((str string) (buf dma-buffer) (x int) (y int) (color font-color) (flags font-flags)) diff --git a/goal_src/engine/ui/text.gc b/goal_src/engine/ui/text.gc index b090e1d8d..1eee9d44c 100644 --- a/goal_src/engine/ui/text.gc +++ b/goal_src/engine/ui/text.gc @@ -509,7 +509,7 @@ (if (logtest? (-> gp-0 flags) 4) (+! (-> gp-0 origin x) (* 0.5 (-> font-ctxt width))) ) - (set! sv-176 (the-as int (-> sv-140 0))) + (set! sv-176 (the-as int (-> sv-140 0))) ;; char (set! sv-184 0) (set! sv-192 0) (set! sv-200 0) @@ -517,8 +517,7 @@ (set! sv-212 (the-as symbol #f)) (set! (-> *game-text-line* data 0) (the-as uint 0)) (while - (or - (not (and (zero? sv-176) (zero? sv-184) (zero? sv-192))) + (or (not (and (zero? sv-176) (zero? sv-184) (zero? sv-192))) (>= sv-156 (-> gp-0 origin y)) ) (cond diff --git a/goal_src/examples/debug-draw-example.gc b/goal_src/examples/debug-draw-example.gc index ccf0bd61b..e9cdb6c55 100644 --- a/goal_src/examples/debug-draw-example.gc +++ b/goal_src/examples/debug-draw-example.gc @@ -62,7 +62,7 @@ "This function draws the debug stuff. You can edit this, then reload this file to play with it." ;; val will increase from 0 to 1, then reset back to 0. - (let* ((frame (the float (mod (* 4 iter) 1600))) + (let* ((frame (the float (mod (* 4 iter) 3200))) (val (/ frame 1600.0))) (format *stdcon* "~0kval ~f~%" val) @@ -102,7 +102,7 @@ ) ;; these also work - ;; (draw-end-credits (the int frame)) + (draw-end-credits (the int frame)) ;; (draw-title-credits val) ) @@ -260,3 +260,17 @@ ) (set! *display-profile* #t) + +(defun text-randomizer () + (dotimes (i 10000) + (let ((idx1 (rand-vu-int-count (-> *common-text* length)))) + (dotimes (j 20) (rand-vu)) + (let ((idx2 (rand-vu-int-count (-> *common-text* length)))) + (let ((temp (-> *common-text* data idx1 text))) + (set! (-> *common-text* data idx1 text) (-> *common-text* data idx2 text)) + (set! (-> *common-text* data idx2 text) temp) + ) + ) + ) + ) + ) \ No newline at end of file