mirror of
https://github.com/open-goal/jak-project
synced 2026-08-16 13:17:34 -04:00
clean up font color
This commit is contained in:
@@ -770,6 +770,20 @@ TypeState AsmOp::propagate_types_internal(const TypeState& input,
|
||||
}
|
||||
}
|
||||
|
||||
// srl out, bitfield, int
|
||||
if (m_instr.kind == InstructionKind::SRL) {
|
||||
auto type = dts.ts.lookup_type(result.get(m_src[0]->reg()).typespec());
|
||||
auto as_bitfield = dynamic_cast<BitFieldType*>(type);
|
||||
if (as_bitfield) {
|
||||
int sa = m_instr.src[1].get_imm();
|
||||
int offset = sa;
|
||||
int size = 32 - offset;
|
||||
auto field = find_field(dts.ts, as_bitfield, offset, size, {});
|
||||
result.get(m_dst->reg()) = TP_Type::make_from_ts(coerce_to_reg_type(field.type()));
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
if (m_dst.has_value()) {
|
||||
auto kind = m_dst->reg().get_kind();
|
||||
if (kind == Reg::FPR) {
|
||||
|
||||
@@ -199,28 +199,11 @@ std::string add_indent(const std::string& in, int indent, bool indent_first_line
|
||||
return result;
|
||||
}
|
||||
|
||||
std::string write_from_top_level(const Function& top_level,
|
||||
const DecompilerTypeSystem& dts,
|
||||
const LinkedObjectFile& file,
|
||||
const std::unordered_set<std::string>& skip_functions) {
|
||||
auto top_form = top_level.ir2.top_form;
|
||||
if (!top_form) {
|
||||
return ";; ERROR: top level function was not converted to expressions. Cannot decompile.\n\n";
|
||||
}
|
||||
|
||||
auto& env = top_level.ir2.env;
|
||||
if (!env.has_type_analysis()) {
|
||||
return ";; ERROR: top level has no type analysis. Cannot decompile.\n\n";
|
||||
}
|
||||
|
||||
if (!env.has_local_vars()) {
|
||||
return ";; ERROR: top level has no local vars. Cannot decompile.\n\n";
|
||||
}
|
||||
|
||||
if (!env.has_reg_use()) {
|
||||
return ";; ERROR: top level has no register use analysis. Cannot decompile.\n\n";
|
||||
}
|
||||
|
||||
std::string write_from_top_level_form(Form* top_form,
|
||||
const DecompilerTypeSystem& dts,
|
||||
const LinkedObjectFile& file,
|
||||
const std::unordered_set<std::string>& skip_functions,
|
||||
const Env& env) {
|
||||
std::vector<FormElement*> forms = top_form->elts();
|
||||
assert(!forms.empty());
|
||||
|
||||
@@ -232,7 +215,7 @@ std::string write_from_top_level(const Function& top_level,
|
||||
|
||||
std::string result;
|
||||
// local vars:
|
||||
auto var_dec = env.local_var_type_list(top_level.ir2.top_form, 0);
|
||||
auto var_dec = env.local_var_type_list(top_form, 0);
|
||||
if (var_dec.local_vars) {
|
||||
result += pretty_print::to_string(*var_dec.local_vars);
|
||||
result += '\n';
|
||||
@@ -424,6 +407,24 @@ std::string write_from_top_level(const Function& top_level,
|
||||
}
|
||||
}
|
||||
|
||||
if (!something_matched) {
|
||||
auto as_cne = f.try_as_element<CondNoElseElement>();
|
||||
if (as_cne && as_cne->entries.size() == 1) {
|
||||
auto& entry = as_cne->entries.at(0);
|
||||
// a bit gross...
|
||||
if (entry.condition->to_string(env) == "*debug-segment*") {
|
||||
something_matched = true;
|
||||
// forms = entry.body->elts();
|
||||
result += ";; this part is debug only\n";
|
||||
result += "(when *debug-segment*\n";
|
||||
|
||||
result += write_from_top_level_form(entry.body, dts, file, skip_functions, env);
|
||||
|
||||
result += ")\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!something_matched) {
|
||||
auto empty = dynamic_cast<EmptyElement*>(x);
|
||||
if (empty) {
|
||||
@@ -450,4 +451,29 @@ std::string write_from_top_level(const Function& top_level,
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
std::string write_from_top_level(const Function& top_level,
|
||||
const DecompilerTypeSystem& dts,
|
||||
const LinkedObjectFile& file,
|
||||
const std::unordered_set<std::string>& skip_functions) {
|
||||
auto top_form = top_level.ir2.top_form;
|
||||
if (!top_form) {
|
||||
return ";; ERROR: top level function was not converted to expressions. Cannot decompile.\n\n";
|
||||
}
|
||||
|
||||
auto& env = top_level.ir2.env;
|
||||
if (!env.has_type_analysis()) {
|
||||
return ";; ERROR: top level has no type analysis. Cannot decompile.\n\n";
|
||||
}
|
||||
|
||||
if (!env.has_local_vars()) {
|
||||
return ";; ERROR: top level has no local vars. Cannot decompile.\n\n";
|
||||
}
|
||||
|
||||
if (!env.has_reg_use()) {
|
||||
return ";; ERROR: top level has no register use analysis. Cannot decompile.\n\n";
|
||||
}
|
||||
|
||||
return write_from_top_level_form(top_form, dts, file, skip_functions, env);
|
||||
}
|
||||
} // namespace decompiler
|
||||
@@ -5198,6 +5198,45 @@
|
||||
:flag-assert #x900000010
|
||||
)
|
||||
|
||||
(defenum font-color
|
||||
:type uint64
|
||||
(default 0)
|
||||
(white 1)
|
||||
(gray 2)
|
||||
(orange-red 3)
|
||||
(bright-orange-red 4)
|
||||
(dark-yellow 5)
|
||||
(bright-green 6)
|
||||
(dark-blue 7)
|
||||
(light-blue 8)
|
||||
(dark-pink 9)
|
||||
(lighter-blue 10)
|
||||
(dark-light-blue 11)
|
||||
(dim-white 12)
|
||||
(dim-gray 13)
|
||||
(orange-red-2 14)
|
||||
(yellow-green 15)
|
||||
(dark-green 16)
|
||||
(another-gray 17)
|
||||
(dark-dark-green 18)
|
||||
(flat-dark-purple 19)
|
||||
(yellow 20)
|
||||
(blue-white 21)
|
||||
(flat-dark-gray 22)
|
||||
(flat-gray 23)
|
||||
(flat-pink 24)
|
||||
(flat-red 25)
|
||||
(flat-green 26)
|
||||
(flat-purple 27)
|
||||
(lighter-lighter-blue 28)
|
||||
(yellow-orange 29)
|
||||
(yellow-green-2 30)
|
||||
(another-light-blue 31)
|
||||
(another-default 32)
|
||||
(red-orange 33)
|
||||
(another-orange-red 34)
|
||||
)
|
||||
|
||||
(deftype font-context (basic)
|
||||
((origin vector :inline :offset-assert 16)
|
||||
(strip-gif vector :inline :offset-assert 32)
|
||||
@@ -5205,7 +5244,7 @@
|
||||
(height float :offset-assert 52)
|
||||
(projection float :offset-assert 56)
|
||||
(context-vec vector :inline :offset 48) ;; added
|
||||
(color int64 :offset-assert 64)
|
||||
(color font-color :offset-assert 64)
|
||||
(color-s32 int32 :offset 64) ;; added for asm
|
||||
(flags uint32 :offset-assert 72)
|
||||
(flags-signed int32 :offset 72) ;; added for asm
|
||||
@@ -5217,7 +5256,7 @@
|
||||
:size-assert #x58
|
||||
:flag-assert #x1400000058
|
||||
(:methods
|
||||
(new (symbol type matrix int int float int uint) _type_ 0)
|
||||
(new (symbol type matrix int int float font-color uint) _type_ 0)
|
||||
(set-mat! (font-context matrix) font-context 9)
|
||||
(set-origin! (font-context int int) font-context 10)
|
||||
(set-depth! (font-context int) font-context 11)
|
||||
@@ -5225,7 +5264,7 @@
|
||||
(set-width! (font-context int) font-context 13)
|
||||
(set-height! (font-context int) font-context 14)
|
||||
(set-projection! (font-context float) font-context 15)
|
||||
(set-color! (font-context int) font-context 16)
|
||||
(set-color! (font-context font-color) font-context 16)
|
||||
(set-flags! (font-context uint) font-context 17)
|
||||
(set-start-line! (font-context uint) font-context 18)
|
||||
(set-scale! (font-context float) font-context 19)
|
||||
@@ -5261,9 +5300,9 @@
|
||||
(justify vector 64 :inline :offset-assert 944)
|
||||
(color-shadow vector4w :inline :offset-assert 1968)
|
||||
(color-table char-color 64 :inline :offset-assert 1984)
|
||||
(last-color uint64 :offset-assert 3008)
|
||||
(last-color font-color :offset-assert 3008)
|
||||
(last-color-32 int32 :offset 3008)
|
||||
(save-last-color uint64 :offset-assert 3016)
|
||||
(save-last-color font-color :offset-assert 3016)
|
||||
(save-last-color-32 int32 :offset 3016) ;; added
|
||||
(buf basic :offset-assert 3024)
|
||||
(str-ptr uint32 :offset-assert 3028)
|
||||
@@ -5321,7 +5360,7 @@
|
||||
(define-extern set-display-env (function display-env int int int int int int display-env))
|
||||
(define-extern set-draw-env (function draw-env int int int int int int draw-env))
|
||||
(define-extern get-video-mode (function symbol))
|
||||
(define-extern draw-string-xy (function string dma-buffer int int int int none))
|
||||
(define-extern draw-string-xy (function string dma-buffer int int font-color int none))
|
||||
(define-extern set-draw-env-offset (function draw-env int int int draw-env))
|
||||
(define-extern put-display-alpha-env (function display-env none))
|
||||
(define-extern set-display2 (function display int int int int int display))
|
||||
@@ -15154,7 +15193,7 @@
|
||||
((flags int32 :offset-assert 0)
|
||||
(bucket bucket-id :offset-assert 4)
|
||||
(pos vector :inline :offset-assert 16)
|
||||
(color uint64 :offset-assert 32)
|
||||
(color font-color :offset-assert 32)
|
||||
(offset vector2h :inline :offset-assert 40)
|
||||
(str string :offset-assert 44)
|
||||
)
|
||||
@@ -15177,12 +15216,12 @@
|
||||
(define-extern debug-set-camera-pos-rot! (function vector matrix int))
|
||||
(define-extern drawable-frag-count (function drawable int))
|
||||
(define-extern add-debug-light (function symbol bucket-id light vector string symbol))
|
||||
(define-extern add-debug-text-3d (function symbol bucket-id string vector rgba vector2h symbol))
|
||||
(define-extern add-debug-text-3d (function symbol bucket-id string vector font-color vector2h symbol))
|
||||
(define-extern add-debug-x (function symbol bucket-id vector rgba symbol))
|
||||
(define-extern add-debug-curve (function symbol bucket-id pointer int (inline-array vector) int rgba symbol))
|
||||
(define-extern add-debug-sphere (function symbol bucket-id vector float rgba symbol))
|
||||
(define-extern get-debug-text-3d (function debug-text-3d))
|
||||
(define-extern internal-draw-debug-text-3d (function bucket-id string vector rgba vector2h pointer))
|
||||
(define-extern internal-draw-debug-text-3d (function bucket-id string vector font-color vector2h pointer))
|
||||
(define-extern get-debug-line (function debug-line))
|
||||
(define-extern internal-draw-debug-line (function bucket-id vector vector rgba symbol rgba pointer))
|
||||
(define-extern draw-string (function string dma-buffer font-context float))
|
||||
@@ -15195,7 +15234,7 @@
|
||||
(define-extern debug-draw-buffers (function symbol))
|
||||
(define-extern add-debug-line2d (function symbol bucket-id vector vector vector symbol))
|
||||
(define-extern add-debug-box (function symbol bucket-id vector vector rgba symbol))
|
||||
(define-extern add-debug-sphere-with-transform (function symbol bucket-id vector float matrix rgba symbol))
|
||||
(define-extern add-debug-sphere-with-transform (function symbol bucket-id vector meters matrix rgba symbol))
|
||||
(define-extern add-debug-spheres (function symbol bucket-id (inline-array vector) int rgba symbol))
|
||||
(define-extern add-debug-circle (function symbol bucket-id vector float rgba matrix symbol))
|
||||
(define-extern add-debug-rot-matrix (function symbol bucket-id matrix vector matrix))
|
||||
@@ -17421,7 +17460,7 @@
|
||||
|
||||
;; - Functions
|
||||
|
||||
(define-extern set-font-color-alpha (function int int none))
|
||||
(define-extern set-font-color-alpha (function font-color int none))
|
||||
(define-extern load-game-text-info (function string symbol kheap int))
|
||||
(define-extern load-level-text-files (function int none))
|
||||
(define-extern draw-debug-text-box (function font-context none))
|
||||
|
||||
@@ -2224,7 +2224,6 @@
|
||||
"v1-11": ["v1-11", "dma-packet"]
|
||||
}
|
||||
},
|
||||
"add-debug-light": { "vars": { "s1-0": ["s1-0", "rgba"] } },
|
||||
|
||||
"generic-init-buffers": {
|
||||
"vars": {
|
||||
@@ -3127,5 +3126,9 @@
|
||||
"r0-3": "r0"
|
||||
}
|
||||
},
|
||||
|
||||
"add-debug-outline-triangle": {
|
||||
"args":["enable", "bucket", "p0", "p1", "p2", "color"]
|
||||
},
|
||||
"aaaaaaaaaaaaaaaaaaaaaaa": {}
|
||||
}
|
||||
|
||||
+157
-131
@@ -113,147 +113,148 @@
|
||||
)
|
||||
|
||||
|
||||
(defun-debug internal-draw-debug-line ((arg0 bucket-id) (arg1 vector) (arg2 vector) (arg3 rgba) (arg4 symbol) (arg5 rgba))
|
||||
(let ((sv-80 arg2)
|
||||
(s2-0 arg3)
|
||||
(s3-0 arg4)
|
||||
(s5-0 arg5)
|
||||
)
|
||||
(let ((a0-4 (current-display-frame debug-buf)))
|
||||
(if (< (the-as uint (shr (+ (&- (-> a0-4 end) (the-as uint (-> a0-4 base))) 15) 4)) (the-as uint #x8000))
|
||||
(defun-debug internal-draw-debug-line ((bucket bucket-id) (p0 vector) (p1 vector) (first-color rgba) (mode symbol) (second-color rgba))
|
||||
"Draw a debug line from p0 to p1. Mode can be:
|
||||
'fade, 'fade-depth, or #f.
|
||||
second-color can be -1 to just use the same color.
|
||||
"
|
||||
(let ((a0-4 (current-display-frame debug-buf)))
|
||||
(if (< (the-as uint (shr (+ (&- (-> a0-4 end) (the-as uint (-> a0-4 base))) 15) 4)) (the-as uint #x8000))
|
||||
(return (the-as pointer #f))
|
||||
)
|
||||
)
|
||||
(if (or (zero? (+ s5-0 (the-as uint 1)))
|
||||
(= s5-0 (static-rgba #xff #xff #xff #xff))
|
||||
)
|
||||
(set! s5-0 s2-0)
|
||||
)
|
||||
(case s3-0
|
||||
(('fade)
|
||||
(set! s5-0 (new 'static 'rgba
|
||||
:r (shr (-> s5-0 r) 1)
|
||||
:g (shr (-> s5-0 g) 1)
|
||||
:b (shr (-> s5-0 b) 1)
|
||||
:a (-> s5-0 a)
|
||||
))
|
||||
)
|
||||
)
|
||||
(let ((s4-0 (new 'stack 'vector4w-2))
|
||||
(s1-0 (new 'stack 'vector4w-2))
|
||||
)
|
||||
(if (or (zero? (+ second-color (the-as uint 1)))
|
||||
(= second-color (static-rgba #xff #xff #xff #xff))
|
||||
)
|
||||
(set! (-> arg1 w) 1.0)
|
||||
(set! (-> sv-80 w) 1.0)
|
||||
|
||||
(when (and (transform-point-qword! (-> s4-0 vector 0) arg1)
|
||||
(transform-point-qword! (-> s4-0 vector 1) sv-80)
|
||||
)
|
||||
(with-dma-buffer-add-bucket ((v1-28 (current-display-frame debug-buf)) (current-display-frame bucket-group) arg0)
|
||||
|
||||
(with-cnt-vif-block (v1-28)
|
||||
(dma-buffer-add-gif-tag v1-28 (new 'static 'gif-tag64 :nloop 1 :eop 1 :pre 1 :nreg 4
|
||||
:prim (gif-prim line))
|
||||
(gs-reg-list rgbaq xyzf2 rgbaq xyzf2)
|
||||
)
|
||||
(case s3-0
|
||||
(set! second-color first-color)
|
||||
)
|
||||
(case mode
|
||||
(('fade)
|
||||
(set! second-color (new 'static 'rgba
|
||||
:r (shr (-> second-color r) 1)
|
||||
:g (shr (-> second-color g) 1)
|
||||
:b (shr (-> second-color b) 1)
|
||||
:a (-> second-color a)
|
||||
))
|
||||
)
|
||||
)
|
||||
(let ((s4-0 (new 'stack 'vector4w-2))
|
||||
(s1-0 (new 'stack 'vector4w-2))
|
||||
)
|
||||
(set! (-> p0 w) 1.0)
|
||||
(set! (-> p1 w) 1.0)
|
||||
|
||||
(when (and (transform-point-qword! (-> s4-0 vector 0) p0)
|
||||
(transform-point-qword! (-> s4-0 vector 1) p1)
|
||||
)
|
||||
(with-dma-buffer-add-bucket ((v1-28 (current-display-frame debug-buf)) (current-display-frame bucket-group) bucket)
|
||||
(with-cnt-vif-block (v1-28)
|
||||
(dma-buffer-add-gif-tag v1-28 (new 'static 'gif-tag64 :nloop 1 :eop 1 :pre 1 :nreg 4
|
||||
:prim (gif-prim line))
|
||||
(gs-reg-list rgbaq xyzf2 rgbaq xyzf2)
|
||||
)
|
||||
(case mode
|
||||
(('fade-depth)
|
||||
(let ((f0-3 (fminmax (* (1/ #xffffff) (the float (-> s4-0 vector 0 z))) 0.2 1.0)))
|
||||
(set! (-> s1-0 vector 0 x) (the int (* (the float (-> s2-0 r)) f0-3)))
|
||||
(set! (-> s1-0 vector 0 y) (the int (* (the float (-> s2-0 g)) f0-3)))
|
||||
(set! (-> s1-0 vector 0 z) (the int (* (the float (-> s2-0 b)) f0-3)))
|
||||
(set! (-> s1-0 vector 0 x) (the int (* (the float (-> first-color r)) f0-3)))
|
||||
(set! (-> s1-0 vector 0 y) (the int (* (the float (-> first-color g)) f0-3)))
|
||||
(set! (-> s1-0 vector 0 z) (the int (* (the float (-> first-color b)) f0-3)))
|
||||
)
|
||||
(set! (-> s1-0 vector 0 w) (the-as int (-> s2-0 a)))
|
||||
(set! (-> s1-0 vector 0 w) (the-as int (-> first-color a)))
|
||||
)
|
||||
(else
|
||||
(set! (-> s1-0 vector 0 x) (the-as int (-> s2-0 r)))
|
||||
(set! (-> s1-0 vector 0 y) (the-as int (-> s2-0 g)))
|
||||
(set! (-> s1-0 vector 0 z) (the-as int (-> s2-0 b)))
|
||||
(set! (-> s1-0 vector 0 w) (the-as int (-> s2-0 a)))
|
||||
)
|
||||
(set! (-> s1-0 vector 0 x) (the-as int (-> first-color r)))
|
||||
(set! (-> s1-0 vector 0 y) (the-as int (-> first-color g)))
|
||||
(set! (-> s1-0 vector 0 z) (the-as int (-> first-color b)))
|
||||
(set! (-> s1-0 vector 0 w) (the-as int (-> first-color a)))
|
||||
)
|
||||
)
|
||||
(cond
|
||||
((= s3-0 'fade-depth)
|
||||
(let ((f0-7 (fminmax (* (1/ #xffffff) (the float (-> s4-0 vector 1 z))) 0.2 1.0)))
|
||||
(set! (-> s1-0 vector 1 x) (the int (* (the float (-> s5-0 r)) f0-7)))
|
||||
(set! (-> s1-0 vector 1 y) (the int (* (the float (-> s5-0 g)) f0-7)))
|
||||
(set! (-> s1-0 vector 1 z) (the int (* (the float (-> s5-0 b)) f0-7)))
|
||||
)
|
||||
(set! (-> s1-0 vector 1 w) (the-as int (-> s5-0 a)))
|
||||
)
|
||||
(else
|
||||
(set! (-> s1-0 vector 1 x) (the-as int (-> s5-0 r)))
|
||||
(set! (-> s1-0 vector 1 y) (the-as int (-> s5-0 g)))
|
||||
(set! (-> s1-0 vector 1 z) (the-as int (-> s5-0 b)))
|
||||
(set! (-> s1-0 vector 1 w) (the-as int (-> s5-0 a)))
|
||||
)
|
||||
)
|
||||
(+! (-> s4-0 vector 0 z) -8192)
|
||||
(+! (-> s4-0 vector 1 z) -8192)
|
||||
(dma-buffer-add-uint128 v1-28 (-> s1-0 quad 0)
|
||||
(-> s4-0 quad 0)
|
||||
(-> s1-0 quad 1)
|
||||
(-> s4-0 quad 1)
|
||||
)
|
||||
(cond
|
||||
((= mode 'fade-depth)
|
||||
(let ((f0-7 (fminmax (* (1/ #xffffff) (the float (-> s4-0 vector 1 z))) 0.2 1.0)))
|
||||
(set! (-> s1-0 vector 1 x) (the int (* (the float (-> second-color r)) f0-7)))
|
||||
(set! (-> s1-0 vector 1 y) (the int (* (the float (-> second-color g)) f0-7)))
|
||||
(set! (-> s1-0 vector 1 z) (the int (* (the float (-> second-color b)) f0-7)))
|
||||
)
|
||||
(set! (-> s1-0 vector 1 w) (the-as int (-> second-color a)))
|
||||
)
|
||||
(else
|
||||
(set! (-> s1-0 vector 1 x) (the-as int (-> second-color r)))
|
||||
(set! (-> s1-0 vector 1 y) (the-as int (-> second-color g)))
|
||||
(set! (-> s1-0 vector 1 z) (the-as int (-> second-color b)))
|
||||
(set! (-> s1-0 vector 1 w) (the-as int (-> second-color a)))
|
||||
)
|
||||
)
|
||||
(+! (-> s4-0 vector 0 z) -8192)
|
||||
(+! (-> s4-0 vector 1 z) -8192)
|
||||
(dma-buffer-add-uint128 v1-28 (-> s1-0 quad 0)
|
||||
(-> s4-0 quad 0)
|
||||
(-> s1-0 quad 1)
|
||||
(-> s4-0 quad 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defun-debug internal-draw-debug-text-3d ((arg0 bucket-id) (arg1 string) (arg2 vector) (arg3 rgba) (arg4 vector2h))
|
||||
(defun-debug internal-draw-debug-text-3d ((bucket bucket-id) (str string) (location vector) (font-color-id font-color) (offset vector2h))
|
||||
"Draw text at the given location (in 3D), with a 2D offset."
|
||||
(let ((s2-0 (new 'stack-no-clear 'vector4w)))
|
||||
(set! (-> s2-0 quad) (the-as uint128 0))
|
||||
(when (transform-point-qword! (the-as vector4w s2-0) arg2)
|
||||
|
||||
(with-dma-buffer-add-bucket ((s3-0 (current-display-frame debug-buf)) (current-display-frame bucket-group) arg0)
|
||||
|
||||
(when (transform-point-qword! (the-as vector4w s2-0) location)
|
||||
|
||||
(with-dma-buffer-add-bucket ((s3-0 (current-display-frame debug-buf)) (current-display-frame bucket-group) bucket)
|
||||
|
||||
(let ((a2-2 (new 'stack 'font-context *font-default-matrix*
|
||||
(+ (+ (-> arg4 x) -1792) (/ (-> s2-0 x) 16))
|
||||
(- (+ (+ (-> arg4 y) -8) (/ (-> s2-0 y) 16))
|
||||
(-> *video-parms* screen-miny)
|
||||
)
|
||||
0.0
|
||||
(the-as int arg3)
|
||||
(the-as uint 3)
|
||||
)))
|
||||
(+ (+ (-> offset x) -1792) (/ (-> s2-0 x) 16))
|
||||
(- (+ (+ (-> offset y) -8) (/ (-> s2-0 y) 16))
|
||||
(-> *video-parms* screen-miny)
|
||||
)
|
||||
0.0
|
||||
font-color-id
|
||||
(the-as uint 3)
|
||||
)))
|
||||
(let ((v1-9 a2-2))
|
||||
(set! (-> v1-9 origin z) (the float (/ (-> s2-0 z) 16)))
|
||||
)
|
||||
(draw-string arg1 s3-0 a2-2)
|
||||
(draw-string str s3-0 a2-2)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defun-debug add-debug-outline-triangle ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 vector) (arg4 vector) (arg5 rgba))
|
||||
(when arg0
|
||||
(add-debug-line #t arg1 arg2 arg3 arg5 #f (the-as rgba -1))
|
||||
(add-debug-line #t arg1 arg3 arg4 arg5 #f (the-as rgba -1))
|
||||
(add-debug-line #t arg1 arg4 arg2 arg5 #f (the-as rgba -1))
|
||||
(defun-debug add-debug-outline-triangle ((enable symbol) (bucket bucket-id) (p0 vector) (p1 vector) (p2 vector) (color rgba))
|
||||
"Draw outline of a triangle using lines."
|
||||
(when enable
|
||||
(add-debug-line #t bucket p0 p1 color #f (the-as rgba -1))
|
||||
(add-debug-line #t bucket p1 p2 color #f (the-as rgba -1))
|
||||
(add-debug-line #t bucket p2 p0 color #f (the-as rgba -1))
|
||||
)
|
||||
#f
|
||||
)
|
||||
|
||||
(defun-debug add-debug-triangle-normal ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 vector) (arg4 vector) (arg5 rgba))
|
||||
|
||||
(when arg0
|
||||
(defun-debug add-debug-triangle-normal ((enable symbol) (bucket bucket-id) (p0 vector) (p1 vector) (p2 vector) (color rgba))
|
||||
"Draw the normal of a triangle, with length of 1 meter."
|
||||
(when enable
|
||||
(let ((s4-0 (new 'stack-no-clear 'vector))
|
||||
(s3-0 (vector-3pt-cross! (new 'stack-no-clear 'vector) arg2 arg3 arg4))
|
||||
(s3-0 (vector-3pt-cross! (new 'stack-no-clear 'vector) p0 p1 p2))
|
||||
)
|
||||
(vector-float/! s3-0 s3-0 (* (1/ METER_LENGTH) (vector-length s3-0)))
|
||||
(vector+! s4-0 arg2 arg3)
|
||||
(vector+! s4-0 s4-0 arg4)
|
||||
(vector+! s4-0 p0 p1)
|
||||
(vector+! s4-0 s4-0 p2)
|
||||
(vector-float/! s4-0 s4-0 3.0)
|
||||
(vector+! s3-0 s3-0 s4-0)
|
||||
(add-debug-line #t arg1 s4-0 s3-0 arg5 #f (the-as rgba -1))
|
||||
(add-debug-line #t bucket s4-0 s3-0 color #f (the-as rgba -1))
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
|
||||
(defun-debug add-debug-flat-triangle ((enable-draw symbol) (bucket bucket-id) (p0 vector) (p1 vector) (p2 vector) (arg5 rgba))
|
||||
(defun-debug add-debug-flat-triangle ((enable-draw symbol) (bucket bucket-id) (p0 vector) (p1 vector) (p2 vector) (color rgba))
|
||||
"Draw a triangle with flat shading"
|
||||
(if (not enable-draw)
|
||||
(return #f)
|
||||
)
|
||||
@@ -273,10 +274,10 @@
|
||||
(dma-buffer-add-gif-tag v1-9 (new 'static 'gif-tag64 :nloop 1 :eop 1 :pre 1 :nreg 6 :prim (gif-prim tri))
|
||||
(gs-reg-list rgbaq xyzf2 rgbaq xyzf2 rgbaq xyzf2)
|
||||
)
|
||||
(set! (-> s4-0 vector 0 x) (the-as int (-> arg5 r)))
|
||||
(set! (-> s4-0 vector 0 y) (the-as int (-> arg5 g)))
|
||||
(set! (-> s4-0 vector 0 z) (the-as int (-> arg5 b)))
|
||||
(set! (-> s4-0 vector 0 w) (the-as int (-> arg5 a)))
|
||||
(set! (-> s4-0 vector 0 x) (the-as int (-> color r)))
|
||||
(set! (-> s4-0 vector 0 y) (the-as int (-> color g)))
|
||||
(set! (-> s4-0 vector 0 z) (the-as int (-> color b)))
|
||||
(set! (-> s4-0 vector 0 w) (the-as int (-> color a)))
|
||||
(set! (-> s5-0 vector 0 z) (+ (-> s5-0 vector 0 z) -8192))
|
||||
(set! (-> s5-0 vector 1 z) (+ (-> s5-0 vector 1 z) -8192))
|
||||
(set! (-> s5-0 vector 2 z) (+ (-> s5-0 vector 2 z) -8192))
|
||||
@@ -294,6 +295,16 @@
|
||||
#f
|
||||
)
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Buffered debug draw
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;; Some of the debug draw stuff just adds a line to a list of lines to draw.
|
||||
;; This is used when pausing - the actual calls to debug-draw-line won't happen, but
|
||||
;; we won't clear the debug draw buffer so they will still be drawn.
|
||||
|
||||
|
||||
(when *debug-segment*
|
||||
|
||||
(deftype debug-line (structure)
|
||||
@@ -314,7 +325,7 @@
|
||||
((flags int32 :offset-assert 0)
|
||||
(bucket bucket-id :offset-assert 4)
|
||||
(pos vector :inline :offset-assert 16)
|
||||
(color uint64 :offset-assert 32)
|
||||
(color font-color :offset-assert 32)
|
||||
(offset vector2h :inline :offset-assert 40)
|
||||
(str string :offset-assert 44)
|
||||
)
|
||||
@@ -332,20 +343,22 @@
|
||||
:flag-assert #x90000000c
|
||||
)
|
||||
|
||||
(define *debug-lines* (the (inline-array debug-line) (malloc 'debug #x100000)))
|
||||
(define *debug-lines-trk* (new 'debug 'debug-tracking-thang))
|
||||
(set! (-> *debug-lines-trk* allocated-length) 16384)
|
||||
;; allocate debug draw buffers
|
||||
(define *debug-lines* (the (inline-array debug-line) (malloc 'debug #x100000)))
|
||||
(define *debug-lines-trk* (new 'debug 'debug-tracking-thang))
|
||||
(set! (-> *debug-lines-trk* allocated-length) 16384)
|
||||
(define *debug-text-3ds* (the (inline-array debug-text-3d) (malloc 'debug #x6000)))
|
||||
(define *debug-text-3d-trk* (new 'debug 'debug-tracking-thang))
|
||||
(set! (-> *debug-text-3d-trk* allocated-length) 512)
|
||||
|
||||
(define *debug-text-3ds* (the (inline-array debug-text-3d) (malloc 'debug #x6000)))
|
||||
(define *debug-text-3d-trk* (new 'debug 'debug-tracking-thang))
|
||||
(set! (-> *debug-text-3d-trk* allocated-length) 512)
|
||||
|
||||
(dotimes (i (-> *debug-text-3d-trk* allocated-length))
|
||||
(set! (-> *debug-text-3ds* i str) (new 'debug 'string 80 (the string #f)))
|
||||
)
|
||||
(dotimes (i (-> *debug-text-3d-trk* allocated-length))
|
||||
(set! (-> *debug-text-3ds* i str) (new 'debug 'string 80 (the string #f)))
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defun-debug get-debug-line ()
|
||||
"Allocate a debug-line from the list."
|
||||
(cond
|
||||
((< (-> *debug-lines-trk* length) (-> *debug-lines-trk* allocated-length))
|
||||
(+! (-> *debug-lines-trk* length) 1)
|
||||
@@ -358,6 +371,7 @@
|
||||
)
|
||||
|
||||
(defun-debug get-debug-text-3d ()
|
||||
"Allocate a debug text 3d from the list."
|
||||
(cond
|
||||
((< (-> *debug-text-3d-trk* length) (-> *debug-text-3d-trk* allocated-length))
|
||||
(+! (-> *debug-text-3d-trk* length) 1)
|
||||
@@ -370,6 +384,7 @@
|
||||
)
|
||||
|
||||
(defun-debug debug-reset-buffers ()
|
||||
"Clear all allocated debug things"
|
||||
(set! (-> *debug-lines-trk* length) 0)
|
||||
(set! (-> *debug-text-3d-trk* length) 0)
|
||||
(set! *debug-draw-pauseable* #f)
|
||||
@@ -377,6 +392,7 @@
|
||||
)
|
||||
|
||||
(defun-debug debug-draw-buffers ()
|
||||
"Draw all debug lines and debug text."
|
||||
(dotimes (gp-0 (-> *debug-lines-trk* length))
|
||||
(let ((v1-1 (-> *debug-lines* gp-0)))
|
||||
(internal-draw-debug-line
|
||||
@@ -395,7 +411,7 @@
|
||||
(-> v1-8 bucket)
|
||||
(-> v1-8 str)
|
||||
(-> v1-8 pos)
|
||||
(the-as rgba (-> v1-8 color))
|
||||
(-> v1-8 color)
|
||||
(-> v1-8 offset)
|
||||
)
|
||||
)
|
||||
@@ -403,23 +419,24 @@
|
||||
#f
|
||||
)
|
||||
|
||||
(defun-debug add-debug-line ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 vector) (arg4 rgba) (arg5 symbol) (arg6 rgba))
|
||||
(when arg0
|
||||
(defun-debug add-debug-line ((enable-draw symbol) (bucket bucket-id) (p0 vector) (p1 vector) (color rgba) (mode symbol) (color2 rgba))
|
||||
"Draw a debug line between p0 and p1, in 3D."
|
||||
(when enable-draw
|
||||
(cond
|
||||
(*debug-draw-pauseable*
|
||||
(let ((v1-2 (get-debug-line)))
|
||||
(when v1-2
|
||||
(set! (-> v1-2 bucket) arg1)
|
||||
(set! (-> v1-2 v1 quad) (-> arg2 quad))
|
||||
(set! (-> v1-2 v2 quad) (-> arg3 quad))
|
||||
(set! (-> v1-2 color) arg4)
|
||||
(set! (-> v1-2 color2) arg6)
|
||||
(set! (-> v1-2 mode) arg5)
|
||||
(set! (-> v1-2 bucket) bucket)
|
||||
(set! (-> v1-2 v1 quad) (-> p0 quad))
|
||||
(set! (-> v1-2 v2 quad) (-> p1 quad))
|
||||
(set! (-> v1-2 color) color)
|
||||
(set! (-> v1-2 color2) color2)
|
||||
(set! (-> v1-2 mode) mode)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(internal-draw-debug-line arg1 arg2 arg3 arg4 arg5 arg6)
|
||||
(internal-draw-debug-line bucket p0 p1 color mode color2)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -427,6 +444,7 @@
|
||||
)
|
||||
|
||||
(defun-debug add-debug-line2d ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 vector) (arg4 vector))
|
||||
"Draw a line in screen coordinates"
|
||||
(if (not arg0)
|
||||
(return #f)
|
||||
)
|
||||
@@ -461,6 +479,7 @@
|
||||
)
|
||||
|
||||
(defun-debug add-debug-box ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 vector) (arg4 rgba))
|
||||
"Draw an axis-aligned box"
|
||||
(let ((s5-0 (new-stack-vector0)))
|
||||
(set! (-> s5-0 quad) (-> arg2 quad))
|
||||
(let ((s1-0 (new-stack-vector0)))
|
||||
@@ -509,6 +528,7 @@
|
||||
)
|
||||
|
||||
(defun-debug add-debug-x ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 rgba))
|
||||
"Draw an X in the xz plane"
|
||||
(if (not arg0)
|
||||
(return #f)
|
||||
)
|
||||
@@ -525,7 +545,8 @@
|
||||
#f
|
||||
)
|
||||
|
||||
(defun-debug add-debug-text-3d ((arg0 symbol) (arg1 bucket-id) (arg2 string) (arg3 vector) (arg4 rgba) (arg5 vector2h))
|
||||
(defun-debug add-debug-text-3d ((arg0 symbol) (arg1 bucket-id) (arg2 string) (arg3 vector) (arg4 font-color) (arg5 vector2h))
|
||||
"Draw text at the given point. arg4 is the font-color index. arg5 is an offset and can be #f."
|
||||
(when arg0
|
||||
(cond
|
||||
(*debug-draw-pauseable*
|
||||
@@ -545,7 +566,7 @@
|
||||
0
|
||||
)
|
||||
)
|
||||
(set! (-> v1-2 color) (the-as uint arg4))
|
||||
(set! (-> v1-2 color) arg4)
|
||||
(let ((a0-6 0)
|
||||
(a1-2 (-> arg2 data))
|
||||
(v1-4 (-> v1-2 str data))
|
||||
@@ -574,7 +595,9 @@
|
||||
#f
|
||||
)
|
||||
|
||||
(defun-debug add-debug-sphere-with-transform ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 float) (arg4 matrix) (arg5 rgba))
|
||||
(defun-debug add-debug-sphere-with-transform ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 meters) (arg4 matrix) (arg5 rgba))
|
||||
"Transform the given point by the given transform, then draw a debug sphere there. The orientation of the debug sphere itself
|
||||
is not changed by the transform, just its origin."
|
||||
(rlet ((acc :class vf)
|
||||
(vf0 :class vf)
|
||||
(vf1 :class vf)
|
||||
@@ -603,20 +626,23 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun-debug add-debug-sphere ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 float) (arg4 rgba))
|
||||
(defun-debug add-debug-sphere ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 meters) (arg4 rgba))
|
||||
"Add a debug sphere at the given point. arg3 is radius."
|
||||
(if arg0
|
||||
(add-debug-sphere-from-table arg1 arg2 arg3 arg4)
|
||||
)
|
||||
#f
|
||||
)
|
||||
|
||||
(defun-debug add-debug-text-sphere ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 float) (arg4 string) (arg5 rgba))
|
||||
(defun-debug add-debug-text-sphere ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 meters) (arg4 string) (arg5 rgba))
|
||||
"Add a debug sphere at the given point, withe some text. The color is for the sphere - the text is color 0."
|
||||
(add-debug-sphere arg0 arg1 arg2 arg3 arg5)
|
||||
(add-debug-text-3d arg0 arg1 arg4 arg2 (new 'static 'rgba) (the-as vector2h #f))
|
||||
(add-debug-text-3d arg0 arg1 arg4 arg2 (font-color default) (the-as vector2h #f))
|
||||
#f
|
||||
)
|
||||
|
||||
(defun-debug add-debug-spheres ((arg0 symbol) (arg1 bucket-id) (arg2 (inline-array vector)) (arg3 int) (arg4 rgba))
|
||||
"Add a bunch of spheres. The radius is taken from the w component of the origin."
|
||||
(when arg0
|
||||
(let ((s4-0 (-> arg2 0)))
|
||||
(countdown (s3-0 arg3)
|
||||
@@ -795,7 +821,7 @@
|
||||
(if (!= arg5 0.0)
|
||||
(set! (-> sv-96 y) arg5)
|
||||
)
|
||||
(add-debug-text-3d #t arg1 (string-format "~d" s0-0) sv-96 (the rgba 1) (the vector2h #f))
|
||||
(add-debug-text-3d #t arg1 (string-format "~d" s0-0) sv-96 (font-color white) (the vector2h #f))
|
||||
(add-debug-x #t arg1 sv-96 (if (= s0-0 arg6)
|
||||
(static-rgba #xff #xff #xff #x80)
|
||||
arg4
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
(set! (-> gp-0 root-menu) #f)
|
||||
(set! (-> gp-0 joypad-func) #f)
|
||||
(set! (-> gp-0 joypad-item) #f)
|
||||
(set! (-> gp-0 font) (new 'debug 'font-context *font-default-matrix* 0 0 0.0 0 (the-as uint 3)))
|
||||
(set! (-> gp-0 font) (new 'debug 'font-context *font-default-matrix* 0 0 0.0 (font-color default) (the-as uint 3)))
|
||||
gp-0
|
||||
)
|
||||
)
|
||||
@@ -618,9 +618,9 @@
|
||||
(defun debug-menu-item-submenu-render ((arg0 debug-menu-item-submenu) (arg1 int) (arg2 int) (arg3 int) (arg4 symbol))
|
||||
(let ((s5-0 (-> arg0 parent context font)))
|
||||
(set-origin! s5-0 arg1 arg2)
|
||||
(set! (-> s5-0 color) (cond ((zero? arg3) 12)
|
||||
(arg4 11)
|
||||
(else 13)
|
||||
(set! (-> s5-0 color) (cond ((zero? arg3) (font-color dim-white))
|
||||
(arg4 (font-color dark-light-blue))
|
||||
(else (font-color dim-gray))
|
||||
))
|
||||
(with-dma-buffer-add-bucket ((s3-0 (current-display-frame debug-buf))
|
||||
(current-display-frame bucket-group)
|
||||
@@ -638,17 +638,17 @@
|
||||
(set! (-> v1-2 color) (cond
|
||||
((> (-> arg0 hilite-timer) 0)
|
||||
(1-! (-> arg0 hilite-timer))
|
||||
10
|
||||
(font-color lighter-blue)
|
||||
)
|
||||
((< (-> arg0 hilite-timer) 0)
|
||||
(1+! (-> arg0 hilite-timer))
|
||||
14
|
||||
(font-color orange-red-2)
|
||||
)
|
||||
((nonzero? arg3)
|
||||
13
|
||||
(font-color dim-gray)
|
||||
)
|
||||
(else
|
||||
12
|
||||
(font-color dim-white)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -666,19 +666,19 @@
|
||||
(set-origin! v1-2 arg1 arg2)
|
||||
(set! (-> v1-2 color) (cond
|
||||
((= (-> arg0 is-on) 'invalid)
|
||||
19
|
||||
(font-color flat-dark-purple)
|
||||
)
|
||||
((-> arg0 is-on)
|
||||
(if (zero? arg3)
|
||||
15
|
||||
16
|
||||
(font-color yellow-green)
|
||||
(font-color dark-green)
|
||||
)
|
||||
)
|
||||
((zero? arg3)
|
||||
17
|
||||
(font-color another-gray)
|
||||
)
|
||||
(else
|
||||
18
|
||||
(font-color dark-dark-green)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -697,15 +697,15 @@
|
||||
(set! (-> s5-0 color) (cond
|
||||
((zero? arg3)
|
||||
(if (-> arg0 grabbed-joypad-p)
|
||||
10
|
||||
12
|
||||
(font-color lighter-blue)
|
||||
(font-color dim-white)
|
||||
)
|
||||
)
|
||||
(arg4
|
||||
11
|
||||
(font-color dark-light-blue)
|
||||
)
|
||||
(else
|
||||
13
|
||||
(font-color dim-gray)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -796,8 +796,8 @@
|
||||
(while (not (null? s1-1))
|
||||
(when (= s0-1 arg3)
|
||||
(set! (-> arg0 context font color) (if (nonzero? arg4)
|
||||
13
|
||||
12
|
||||
(font-color dim-gray)
|
||||
(font-color dim-white)
|
||||
)
|
||||
)
|
||||
(set-origin! (-> arg0 context font) s3-1 s2-1)
|
||||
|
||||
@@ -642,7 +642,7 @@
|
||||
(bucket-id debug-draw1)
|
||||
(-> obj name)
|
||||
(-> obj trans)
|
||||
(new 'static 'rgba :r #x1)
|
||||
(font-color white)
|
||||
(new 'static 'vector2h :data (new 'static 'array int16 2 0 8))
|
||||
)
|
||||
(let ((a3-2 (vector-z-quaternion! (new-stack-vector0) (-> obj quat))))
|
||||
|
||||
@@ -1146,7 +1146,7 @@
|
||||
(when *display-deci-count*
|
||||
(let ((s2-1 draw-string-xy))
|
||||
(format (clear *temp-string*) "~D" *deci-count*)
|
||||
(s2-1 *temp-string* debug-buf 448 210 0 3)
|
||||
(s2-1 *temp-string* debug-buf 448 210 (font-color default) 3)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -1183,7 +1183,7 @@
|
||||
(if (= *master-mode* 'pause)
|
||||
(draw-string-xy
|
||||
(lookup-text! *common-text* (game-text-id pause) #f)
|
||||
s3-1 256 160 3 39)
|
||||
s3-1 256 160 (font-color orange-red) 39)
|
||||
)
|
||||
|
||||
;; draw console text on screen
|
||||
@@ -1192,7 +1192,7 @@
|
||||
s3-1
|
||||
(the int (-> *font-context* origin x))
|
||||
a3-8
|
||||
0
|
||||
(font-color default)
|
||||
3
|
||||
)
|
||||
)
|
||||
|
||||
@@ -16,6 +16,45 @@
|
||||
;; 16
|
||||
;; 32 (use size 24)
|
||||
|
||||
(defenum font-color
|
||||
:type uint64
|
||||
(default 0)
|
||||
(white 1)
|
||||
(gray 2)
|
||||
(orange-red 3)
|
||||
(bright-orange-red 4)
|
||||
(dark-yellow 5)
|
||||
(bright-green 6)
|
||||
(dark-blue 7)
|
||||
(light-blue 8)
|
||||
(dark-pink 9)
|
||||
(lighter-blue 10)
|
||||
(dark-light-blue 11)
|
||||
(dim-white 12)
|
||||
(dim-gray 13)
|
||||
(orange-red-2 14)
|
||||
(yellow-green 15)
|
||||
(dark-green 16)
|
||||
(another-gray 17)
|
||||
(dark-dark-green 18)
|
||||
(flat-dark-purple 19)
|
||||
(yellow 20)
|
||||
(blue-white 21)
|
||||
(flat-dark-gray 22)
|
||||
(flat-gray 23)
|
||||
(flat-pink 24)
|
||||
(flat-red 25)
|
||||
(flat-green 26)
|
||||
(flat-purple 27)
|
||||
(lighter-lighter-blue 28)
|
||||
(yellow-orange 29)
|
||||
(yellow-green-2 30)
|
||||
(another-light-blue 31)
|
||||
(another-default 32)
|
||||
(red-orange 33)
|
||||
(another-orange-red 34)
|
||||
)
|
||||
|
||||
(deftype char-verts (structure)
|
||||
((pos vector 4 :inline :offset-assert 0)
|
||||
(color vector 4 :inline :offset-assert 64)
|
||||
@@ -51,7 +90,7 @@
|
||||
(height float :offset-assert 52)
|
||||
(projection float :offset-assert 56)
|
||||
(context-vec vector :inline :offset 48) ;; added
|
||||
(color int64 :offset-assert 64)
|
||||
(color font-color :offset-assert 64)
|
||||
(color-s32 int32 :offset 64) ;; added for asm
|
||||
(flags uint32 :offset-assert 72)
|
||||
(flags-signed int32 :offset 72) ;; added for asm
|
||||
@@ -63,7 +102,7 @@
|
||||
:size-assert #x58
|
||||
:flag-assert #x1400000058
|
||||
(:methods
|
||||
(new (symbol type matrix int int float int uint) _type_ 0)
|
||||
(new (symbol type matrix int int float font-color uint) _type_ 0)
|
||||
(set-mat! (font-context matrix) font-context 9)
|
||||
(set-origin! (font-context int int) font-context 10)
|
||||
(set-depth! (font-context int) font-context 11)
|
||||
@@ -71,7 +110,7 @@
|
||||
(set-width! (font-context int) font-context 13)
|
||||
(set-height! (font-context int) font-context 14)
|
||||
(set-projection! (font-context float) font-context 15)
|
||||
(set-color! (font-context int) font-context 16)
|
||||
(set-color! (font-context font-color) font-context 16)
|
||||
(set-flags! (font-context uint) font-context 17)
|
||||
(set-start-line! (font-context uint) font-context 18)
|
||||
(set-scale! (font-context float) font-context 19)
|
||||
@@ -130,7 +169,7 @@
|
||||
obj
|
||||
)
|
||||
|
||||
(defmethod set-color! font-context ((obj font-context) (color int))
|
||||
(defmethod set-color! font-context ((obj font-context) (color font-color))
|
||||
(declare (inline))
|
||||
|
||||
(set! (-> obj color) color)
|
||||
@@ -158,18 +197,7 @@
|
||||
obj
|
||||
)
|
||||
|
||||
(defmethod
|
||||
new
|
||||
font-context
|
||||
((allocation symbol)
|
||||
(type-to-make type)
|
||||
(mat matrix)
|
||||
(x int)
|
||||
(y int)
|
||||
(z float)
|
||||
(color int)
|
||||
(flags uint)
|
||||
)
|
||||
(defmethod new font-context ((allocation symbol) (type-to-make type) (mat matrix) (x int) (y int) (z float) (color font-color) (flags uint))
|
||||
(let
|
||||
((obj
|
||||
(object-new allocation type-to-make (the-as int (-> type-to-make size)))
|
||||
@@ -245,9 +273,9 @@
|
||||
(justify vector 64 :inline :offset-assert 944)
|
||||
(color-shadow vector4w :inline :offset-assert 1968)
|
||||
(color-table char-color 64 :inline :offset-assert 1984)
|
||||
(last-color uint64 :offset-assert 3008)
|
||||
(last-color font-color :offset-assert 3008)
|
||||
(last-color-32 int32 :offset 3008)
|
||||
(save-last-color uint64 :offset-assert 3016)
|
||||
(save-last-color font-color :offset-assert 3016)
|
||||
(save-last-color-32 int32 :offset 3016) ;; added
|
||||
(buf basic :offset-assert 3024)
|
||||
(str-ptr uint32 :offset-assert 3028)
|
||||
@@ -722,4 +750,4 @@
|
||||
|
||||
|
||||
(define-extern draw-string (function string dma-buffer font-context float))
|
||||
|
||||
(define-extern draw-string-xy (function string dma-buffer int int font-color int none))
|
||||
@@ -2231,7 +2231,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun draw-string-xy ((arg0 string) (arg1 dma-buffer) (arg2 int) (arg3 int) (arg4 int) (arg5 int))
|
||||
(defun draw-string-xy ((arg0 string) (arg1 dma-buffer) (arg2 int) (arg3 int) (arg4 font-color) (arg5 int))
|
||||
;(format #t "call to ds: ~A~%" arg0)
|
||||
(let ((a2-2 (new 'stack 'font-context
|
||||
*font-default-matrix*
|
||||
|
||||
@@ -5,8 +5,6 @@
|
||||
;; name in dgo: display
|
||||
;; dgos: GAME, ENGINE
|
||||
|
||||
;; todo - move to font-h
|
||||
(define-extern draw-string-xy (function string dma-buffer int int int int none))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; TIME
|
||||
@@ -282,8 +280,8 @@
|
||||
)
|
||||
|
||||
|
||||
(define *font-context* (new 'global 'font-context *font-default-matrix* 0 24 0.0 0 (the uint 3)))
|
||||
(define *pause-context* (new 'global 'font-context *font-default-matrix* 256 170 0.0 3 (the uint 3)))
|
||||
(define *font-context* (new 'global 'font-context *font-default-matrix* 0 24 0.0 (font-color default) (the uint 3)))
|
||||
(define *pause-context* (new 'global 'font-context *font-default-matrix* 256 170 0.0 (font-color orange-red) (the uint 3)))
|
||||
|
||||
|
||||
|
||||
@@ -412,7 +410,7 @@
|
||||
(cond
|
||||
(*profile-ticks*
|
||||
(draw-string-xy (string-format "~5D" (-> worst-time-cache (/ bar-pos 10)))
|
||||
buf 488 (+ bar-pos 8) 0 17)
|
||||
buf 488 (+ bar-pos 8) (font-color default) 17)
|
||||
(the float (-> worst-time-cache (/ bar-pos 10)))
|
||||
)
|
||||
(else
|
||||
@@ -424,7 +422,7 @@
|
||||
(the float *ticks-per-frame*)
|
||||
)))
|
||||
(draw-string-xy (string-format "~5,,2f" f30-0) buf 488 (+ bar-pos 8)
|
||||
(if (>= f30-0 100.0) 3 0) ;; turn red if over 100.
|
||||
(if (>= f30-0 100.0) (font-color orange-red) (font-color default)) ;; turn red if over 100.
|
||||
17
|
||||
)
|
||||
f30-0
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
(the-as bucket-id s3-0)
|
||||
*temp-string*
|
||||
(-> obj process root trans)
|
||||
(new 'static 'rgba :r #x3)
|
||||
(font-color orange-red)
|
||||
(the-as vector2h #f)
|
||||
)
|
||||
)
|
||||
@@ -77,7 +77,7 @@
|
||||
(the-as bucket-id s1-0)
|
||||
*temp-string*
|
||||
s4-1
|
||||
(new 'static 'rgba :r #x4)
|
||||
(font-color bright-orange-red)
|
||||
(the-as vector2h #f)
|
||||
)
|
||||
)
|
||||
@@ -403,7 +403,7 @@
|
||||
(the-as bucket-id s3-0)
|
||||
*temp-string*
|
||||
(-> obj process root trans)
|
||||
(new 'static 'rgba :r #x3)
|
||||
(font-color orange-red)
|
||||
(the-as vector2h #f)
|
||||
)
|
||||
)
|
||||
@@ -449,7 +449,7 @@
|
||||
(the-as bucket-id s1-0)
|
||||
*temp-string*
|
||||
s4-1
|
||||
(new 'static 'rgba :r #x4)
|
||||
(font-color bright-orange-red)
|
||||
(the-as vector2h #f)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(draw-string-xy *temp-string* dma-buf 32 (+ (* 12 slot-idx) 8) 3 1)
|
||||
(draw-string-xy *temp-string* dma-buf 32 (+ (* 12 slot-idx) 8) (font-color orange-red) 1)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
|
||||
@@ -734,12 +734,12 @@
|
||||
(dotimes (ch 24)
|
||||
(draw-string-xy
|
||||
(if (zero? (-> *sound-iop-info* chinfo ch)) "." "X")
|
||||
buf (+ (* ch 16) 16) 48 0 1)
|
||||
buf (+ (* ch 16) 16) 48 (font-color default) 1)
|
||||
)
|
||||
(dotimes (ch 24)
|
||||
(draw-string-xy
|
||||
(if (zero? (-> *sound-iop-info* chinfo (+ ch 24))) "." "X")
|
||||
buf (+ (* ch 16) 16) 64 0 1)
|
||||
buf (+ (* ch 16) 16) 64 (font-color default) 1)
|
||||
)
|
||||
0
|
||||
)
|
||||
@@ -748,11 +748,11 @@
|
||||
(draw-string-xy
|
||||
(string-format "~8D [~4D]" (-> *sound-iop-info* freemem)
|
||||
(shr (-> *sound-iop-info* freemem) 10))
|
||||
buf 32 96 0 1)
|
||||
buf 32 96 (font-color default) 1)
|
||||
(draw-string-xy
|
||||
(string-format "~8D [~4D]" (-> *sound-iop-info* freemem2)
|
||||
(shr (-> *sound-iop-info* freemem2) 10))
|
||||
buf 32 64 0 1)
|
||||
buf 32 64 (font-color default) 1)
|
||||
0
|
||||
)
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
0
|
||||
0
|
||||
0.0
|
||||
0
|
||||
(font-color default)
|
||||
(the-as uint 3)
|
||||
)
|
||||
)
|
||||
@@ -137,7 +137,7 @@
|
||||
(gp-0 2815)
|
||||
(s3-0 0)
|
||||
(s2-0 #t)
|
||||
(s5-0 (new 'stack 'font-context *font-default-matrix* 31 0 0.0 0 (the-as uint 3)))
|
||||
(s5-0 (new 'stack 'font-context *font-default-matrix* 31 0 0.0 (font-color default) (the-as uint 3)))
|
||||
)
|
||||
(let ((v1-2 s5-0))
|
||||
(set! (-> v1-2 width) (the float 450))
|
||||
|
||||
@@ -357,7 +357,7 @@
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun set-font-color-alpha ((idx int) (alpha int))
|
||||
(defun set-font-color-alpha ((idx font-color) (alpha int))
|
||||
"Set the alpha for a given color index"
|
||||
(set! (-> *font-work* color-table idx color 0 a) alpha)
|
||||
(set! (-> *font-work* color-table idx color 1 a) alpha)
|
||||
@@ -436,7 +436,7 @@
|
||||
(the int (-> font-ctxt origin x))
|
||||
(the int (-> font-ctxt origin y))
|
||||
0.0
|
||||
0
|
||||
(font-color default)
|
||||
(the-as uint 3)
|
||||
)
|
||||
)
|
||||
@@ -603,7 +603,7 @@
|
||||
(set-font-color-alpha (-> font-ctxt color) offset-thing)
|
||||
(draw-string *game-text-line* s1-1 gp-0)
|
||||
(set-font-color-alpha (-> font-ctxt color) 128)
|
||||
(set! (-> gp-0 color) (the-as int (-> *font-work* last-color)))
|
||||
(set! (-> gp-0 color) (-> *font-work* last-color))
|
||||
(let ((a3-3 (-> s1-1 base)))
|
||||
(let ((v1-127 (the-as object (-> s1-1 base))))
|
||||
(set!
|
||||
|
||||
@@ -14,38 +14,38 @@
|
||||
"Debugging function to set the camera's position and orientation"
|
||||
;; update to compute the perspective matrix.
|
||||
(update-math-camera
|
||||
*math-camera*
|
||||
(-> *setting-control* current video-mode)
|
||||
(-> *setting-control* current aspect-ratio)
|
||||
)
|
||||
|
||||
*math-camera*
|
||||
(-> *setting-control* current video-mode)
|
||||
(-> *setting-control* current aspect-ratio)
|
||||
)
|
||||
|
||||
;; copy the input rotation
|
||||
(matrix-copy! (-> *math-camera* inv-camera-rot) inv-rot)
|
||||
;; inverse of rotation matrix matrix is its transpose
|
||||
(matrix-transpose! (-> *math-camera* camera-rot) (-> *math-camera* inv-camera-rot))
|
||||
|
||||
|
||||
;; fake some value here
|
||||
(set! (-> *math-camera* fov-correction-factor) 1.0)
|
||||
|
||||
|
||||
;; do the math
|
||||
(set! (-> *math-camera* trans quad) (-> location quad))
|
||||
(let ((cam-temp (-> *math-camera* camera-temp))
|
||||
(let ((cam-temp (-> *math-camera* camera-temp))
|
||||
(cam-rot (-> *math-camera* camera-rot))
|
||||
(inv-cam-rot (-> *math-camera* inv-camera-rot))
|
||||
(cam-trans (-> *math-camera* trans))
|
||||
)
|
||||
(let ((rotated-trans (new-stack-vector0)))
|
||||
(set! (-> rotated-trans x) (- (-> cam-trans x)))
|
||||
(set! (-> rotated-trans y) (- (-> cam-trans y)))
|
||||
(set! (-> rotated-trans z) (- (-> cam-trans z)))
|
||||
(set! (-> rotated-trans w) 1.0)
|
||||
(vector-matrix*! rotated-trans rotated-trans cam-rot)
|
||||
(set! (-> cam-rot vector 3 quad) (-> rotated-trans quad))
|
||||
(let ((rotated-trans (new-stack-vector0)))
|
||||
(set! (-> rotated-trans x) (- (-> cam-trans x)))
|
||||
(set! (-> rotated-trans y) (- (-> cam-trans y)))
|
||||
(set! (-> rotated-trans z) (- (-> cam-trans z)))
|
||||
(set! (-> rotated-trans w) 1.0)
|
||||
(vector-matrix*! rotated-trans rotated-trans cam-rot)
|
||||
(set! (-> cam-rot vector 3 quad) (-> rotated-trans quad))
|
||||
)
|
||||
(matrix*! cam-temp cam-rot (-> *math-camera* perspective))
|
||||
(set! (-> inv-cam-rot vector 3 quad) (-> cam-trans quad))
|
||||
)
|
||||
(matrix*! cam-temp cam-rot (-> *math-camera* perspective))
|
||||
(set! (-> inv-cam-rot vector 3 quad) (-> cam-trans quad))
|
||||
)
|
||||
|
||||
|
||||
(none)
|
||||
)
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
(add-debug-x #t (bucket-id debug-draw0) (new 'static 'vector) (new 'static 'rgba :g #x80 :a #x80))
|
||||
(add-debug-box #t (bucket-id debug-draw0) p0 p2 (new 'static 'rgba :b #x80 :a #x80))
|
||||
(add-debug-flat-triangle #t (bucket-id debug-draw0) p0 p1 p2 (new 'static 'rgba :r #x80))
|
||||
(add-debug-text-3d #t (bucket-id debug-draw0) "triangle!" p0 (the rgba 1) (the vector2h #f))
|
||||
(add-debug-text-3d #t (bucket-id debug-draw0) "triangle!" p0 (font-color yellow-green) (the vector2h #f))
|
||||
(add-debug-sphere #t (bucket-id debug-draw0) p2 (meters 0.5) (new 'static 'rgba :r #x80))
|
||||
)
|
||||
)
|
||||
|
||||
@@ -13,7 +13,7 @@ contexts:
|
||||
scope: keyword.control.goal
|
||||
|
||||
# Less important keywords
|
||||
- match: \b(?i:the-as|the|logior|logand|ash|cons|car|cdr|new|break|none|method-of-type|method-of-object|declare|and|not)\b
|
||||
- match: \b(?i:the-as|the|logior|logand|ash|cons|car|cdr|new|break|none|method-of-type|method-of-object|declare|and|not|suspend|lambda)\b
|
||||
scope: keyword.operator.goal
|
||||
|
||||
# Definition forms like (def thing value)
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 3 of type debug-vertex-stats
|
||||
;; INFO: this function exists in multiple non-identical object files
|
||||
(defmethod inspect debug-vertex-stats ((obj debug-vertex-stats))
|
||||
(format #t "[~8x] ~A~%" obj (-> obj type))
|
||||
(format #t "~Tlength: ~D~%" (-> obj length))
|
||||
|
||||
+84
-67
@@ -51,7 +51,16 @@
|
||||
(set! (-> gp-0 joypad-item) #f)
|
||||
(set!
|
||||
(-> gp-0 font)
|
||||
(new 'debug 'font-context *font-default-matrix* 0 0 0.0 0 (the-as uint 3))
|
||||
(new
|
||||
'debug
|
||||
'font-context
|
||||
*font-default-matrix*
|
||||
0
|
||||
0
|
||||
0.0
|
||||
(font-color default)
|
||||
(the-as uint 3)
|
||||
)
|
||||
)
|
||||
gp-0
|
||||
)
|
||||
@@ -773,8 +782,11 @@
|
||||
)
|
||||
(cond
|
||||
((= s4-0 'menu)
|
||||
(let ((s4-1 (new 'debug 'debug-menu arg0 s5-1)))
|
||||
(set! s5-0 (new 'debug 'debug-menu-item-submenu s5-1 s4-1))
|
||||
(let ((s4-1 (new 'debug 'debug-menu arg0 (the-as string s5-1))))
|
||||
(set!
|
||||
s5-0
|
||||
(new 'debug 'debug-menu-item-submenu (the-as string s5-1) s4-1)
|
||||
)
|
||||
(let* ((gp-1 (cdr (cdr arg1)))
|
||||
(a1-3 (car gp-1))
|
||||
)
|
||||
@@ -791,7 +803,7 @@
|
||||
)
|
||||
)
|
||||
((= s4-0 'main-menu)
|
||||
(set! s5-0 (new 'debug 'debug-menu arg0 s5-1))
|
||||
(set! s5-0 (new 'debug 'debug-menu arg0 (the-as string s5-1)))
|
||||
(let* ((gp-2 (cdr (cdr arg1)))
|
||||
(a1-6 (car gp-2))
|
||||
)
|
||||
@@ -816,7 +828,7 @@
|
||||
(new
|
||||
'debug
|
||||
'debug-menu-item-flag
|
||||
s5-1
|
||||
(the-as string s5-1)
|
||||
(the-as symbol (car (cdr (cdr arg1))))
|
||||
(debug-menu-func-decode (car (cdr (cdr (cdr arg1)))))
|
||||
)
|
||||
@@ -825,7 +837,7 @@
|
||||
(new
|
||||
'debug
|
||||
'debug-menu-item-function
|
||||
s5-1
|
||||
(the-as string s5-1)
|
||||
(the-as int (car (cdr (cdr arg1))))
|
||||
(debug-menu-func-decode (car (cdr (cdr (cdr arg1)))))
|
||||
)
|
||||
@@ -834,7 +846,7 @@
|
||||
(new
|
||||
'debug
|
||||
'debug-menu-item-var
|
||||
s5-1
|
||||
(the-as string s5-1)
|
||||
(the-as int (car (cdr (cdr arg1))))
|
||||
(the-as int (car (cdr (cdr (cdr arg1)))))
|
||||
)
|
||||
@@ -849,7 +861,7 @@
|
||||
(new
|
||||
'debug
|
||||
'debug-menu-item-var
|
||||
s5-1
|
||||
(the-as string s5-1)
|
||||
(the-as int (car (cdr (cdr arg1))))
|
||||
(the-as int (ref arg1 4))
|
||||
)
|
||||
@@ -886,7 +898,7 @@
|
||||
(new
|
||||
'debug
|
||||
'debug-menu-item-var
|
||||
s5-1
|
||||
(the-as string s5-1)
|
||||
(the-as int (car (cdr (cdr arg1))))
|
||||
(the-as int (ref arg1 4))
|
||||
)
|
||||
@@ -921,7 +933,7 @@
|
||||
(new
|
||||
'debug
|
||||
'debug-menu-item-var
|
||||
s5-1
|
||||
(the-as string s5-1)
|
||||
(the-as int (car (cdr (cdr arg1))))
|
||||
(the-as int (ref arg1 4))
|
||||
)
|
||||
@@ -1025,16 +1037,17 @@
|
||||
(set! (-> v1-2 origin x) (the float arg1))
|
||||
(set! (-> v1-2 origin y) (the float a0-1))
|
||||
)
|
||||
(set! (-> s5-0 color) (cond
|
||||
((zero? arg3)
|
||||
12
|
||||
)
|
||||
(arg4
|
||||
11
|
||||
)
|
||||
(else
|
||||
13
|
||||
)
|
||||
(set! (-> s5-0 color) (the-as font-color (cond
|
||||
((zero? arg3)
|
||||
12
|
||||
)
|
||||
(arg4
|
||||
11
|
||||
)
|
||||
(else
|
||||
13
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let* ((s3-0 (-> *display* frames (-> *display* on-screen) frame debug-buf))
|
||||
@@ -1080,21 +1093,22 @@
|
||||
(set! (-> a0-1 origin x) (the float arg1))
|
||||
(set! (-> a0-1 origin y) (the float a1-1))
|
||||
)
|
||||
(set! (-> v1-2 color) (cond
|
||||
((> (-> arg0 hilite-timer) 0)
|
||||
(+! (-> arg0 hilite-timer) -1)
|
||||
10
|
||||
)
|
||||
((< (-> arg0 hilite-timer) 0)
|
||||
(+! (-> arg0 hilite-timer) 1)
|
||||
14
|
||||
)
|
||||
((nonzero? arg3)
|
||||
13
|
||||
)
|
||||
(else
|
||||
12
|
||||
)
|
||||
(set! (-> v1-2 color) (the-as font-color (cond
|
||||
((> (-> arg0 hilite-timer) 0)
|
||||
(+! (-> arg0 hilite-timer) -1)
|
||||
10
|
||||
)
|
||||
((< (-> arg0 hilite-timer) 0)
|
||||
(+! (-> arg0 hilite-timer) 1)
|
||||
14
|
||||
)
|
||||
((nonzero? arg3)
|
||||
13
|
||||
)
|
||||
(else
|
||||
12
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let* ((s4-0 (-> *display* frames (-> *display* on-screen) frame debug-buf))
|
||||
@@ -1134,22 +1148,23 @@
|
||||
(set! (-> a0-1 origin x) (the float arg1))
|
||||
(set! (-> a0-1 origin y) (the float a1-1))
|
||||
)
|
||||
(set! (-> v1-2 color) (cond
|
||||
((= (-> arg0 is-on) 'invalid)
|
||||
19
|
||||
)
|
||||
((-> arg0 is-on)
|
||||
(if (zero? arg3)
|
||||
15
|
||||
16
|
||||
)
|
||||
)
|
||||
((zero? arg3)
|
||||
17
|
||||
)
|
||||
(else
|
||||
18
|
||||
)
|
||||
(set! (-> v1-2 color) (the-as font-color (cond
|
||||
((= (-> arg0 is-on) 'invalid)
|
||||
19
|
||||
)
|
||||
((-> arg0 is-on)
|
||||
(if (zero? arg3)
|
||||
15
|
||||
16
|
||||
)
|
||||
)
|
||||
((zero? arg3)
|
||||
17
|
||||
)
|
||||
(else
|
||||
18
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let* ((s4-0 (-> *display* frames (-> *display* on-screen) frame debug-buf))
|
||||
@@ -1189,19 +1204,20 @@
|
||||
(set! (-> v1-2 origin x) (the float arg1))
|
||||
(set! (-> v1-2 origin y) (the float a0-1))
|
||||
)
|
||||
(set! (-> s5-0 color) (cond
|
||||
((zero? arg3)
|
||||
(if (-> arg0 grabbed-joypad-p)
|
||||
10
|
||||
12
|
||||
)
|
||||
)
|
||||
(arg4
|
||||
11
|
||||
)
|
||||
(else
|
||||
13
|
||||
)
|
||||
(set! (-> s5-0 color) (the-as font-color (cond
|
||||
((zero? arg3)
|
||||
(if (-> arg0 grabbed-joypad-p)
|
||||
10
|
||||
12
|
||||
)
|
||||
)
|
||||
(arg4
|
||||
11
|
||||
)
|
||||
(else
|
||||
13
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let* ((s1-0 (-> *display* frames (-> *display* on-screen) frame debug-buf))
|
||||
@@ -1364,9 +1380,10 @@
|
||||
)
|
||||
(while (not (null? s1-1))
|
||||
(when (= s0-1 arg3)
|
||||
(set! (-> arg0 context font color) (if (nonzero? arg4)
|
||||
13
|
||||
12
|
||||
(set! (-> arg0 context font color) (the-as font-color (if (nonzero? arg4)
|
||||
13
|
||||
12
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((v1-16 (-> arg0 context font))
|
||||
|
||||
+1
-1
@@ -608,7 +608,7 @@
|
||||
(if (> (-> arg0 spr) 0)
|
||||
(format arg1 " :spr ~d" (-> arg0 spr))
|
||||
)
|
||||
(if (> (the-as uint (-> arg0 irq)) 0)
|
||||
(if (> (-> arg0 irq) 0)
|
||||
(format arg1 " :irq ~d" (-> arg0 irq))
|
||||
)
|
||||
(if (> (-> arg0 pce) 0)
|
||||
|
||||
+5
-7
@@ -16,11 +16,9 @@
|
||||
;; definition for symbol *camera-engine*, type engine
|
||||
(define *camera-engine* (new 'global 'engine 'camera-eng 128))
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(if *debug-segment*
|
||||
(set! *debug-engine* (new 'debug 'engine 'debug 512))
|
||||
)
|
||||
|
||||
|
||||
|
||||
;; this part is debug only
|
||||
(when *debug-segment*
|
||||
;; definition for symbol *debug-engine*, type engine
|
||||
(define *debug-engine* (new 'debug 'engine 'debug 512))
|
||||
|
||||
)
|
||||
|
||||
+6
-3
@@ -42,9 +42,12 @@
|
||||
(zero?
|
||||
(logand (-> *kernel-context* prevent-from-run) (process-mask progress))
|
||||
)
|
||||
(let ((v1-18 (get-process conn))
|
||||
(a0-22 *progress-process*)
|
||||
)
|
||||
(let
|
||||
((v1-18
|
||||
((method-of-type connection get-process) (the-as connection conn))
|
||||
)
|
||||
(a0-22 *progress-process*)
|
||||
)
|
||||
(= v1-18 (if a0-22
|
||||
(-> a0-22 0 self)
|
||||
)
|
||||
|
||||
+19
-19
@@ -53,25 +53,25 @@
|
||||
|
||||
;; definition of type font-context
|
||||
(deftype font-context (basic)
|
||||
((origin vector :inline :offset-assert 16)
|
||||
(strip-gif vector :inline :offset-assert 32)
|
||||
(width float :offset-assert 48)
|
||||
(height float :offset-assert 52)
|
||||
(projection float :offset-assert 56)
|
||||
(context-vec vector :inline :offset 48)
|
||||
(color int64 :offset-assert 64)
|
||||
(color-s32 int32 :offset 64)
|
||||
(flags uint32 :offset-assert 72)
|
||||
(flags-signed int32 :offset 72)
|
||||
(mat matrix :offset-assert 76)
|
||||
(start-line uint32 :offset-assert 80)
|
||||
(scale float :offset-assert 84)
|
||||
((origin vector :inline :offset-assert 16)
|
||||
(strip-gif vector :inline :offset-assert 32)
|
||||
(width float :offset-assert 48)
|
||||
(height float :offset-assert 52)
|
||||
(projection float :offset-assert 56)
|
||||
(context-vec vector :inline :offset 48)
|
||||
(color font-color :offset-assert 64)
|
||||
(color-s32 int32 :offset 64)
|
||||
(flags uint32 :offset-assert 72)
|
||||
(flags-signed int32 :offset 72)
|
||||
(mat matrix :offset-assert 76)
|
||||
(start-line uint32 :offset-assert 80)
|
||||
(scale float :offset-assert 84)
|
||||
)
|
||||
:method-count-assert 20
|
||||
:size-assert #x58
|
||||
:flag-assert #x1400000058
|
||||
(:methods
|
||||
(new (symbol type matrix int int float int uint) _type_ 0)
|
||||
(new (symbol type matrix int int float font-color uint) _type_ 0)
|
||||
(set-mat! (font-context matrix) font-context 9)
|
||||
(set-origin! (font-context int int) font-context 10)
|
||||
(set-depth! (font-context int) font-context 11)
|
||||
@@ -79,7 +79,7 @@
|
||||
(set-width! (font-context int) font-context 13)
|
||||
(set-height! (font-context int) font-context 14)
|
||||
(set-projection! (font-context float) font-context 15)
|
||||
(set-color! (font-context int) font-context 16)
|
||||
(set-color! (font-context font-color) font-context 16)
|
||||
(set-flags! (font-context uint) font-context 17)
|
||||
(set-start-line! (font-context uint) font-context 18)
|
||||
(set-scale! (font-context float) font-context 19)
|
||||
@@ -146,7 +146,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 16 of type font-context
|
||||
(defmethod set-color! font-context ((obj font-context) (color int))
|
||||
(defmethod set-color! font-context ((obj font-context) (color font-color))
|
||||
(set! (-> obj color) color)
|
||||
obj
|
||||
)
|
||||
@@ -179,7 +179,7 @@
|
||||
(x int)
|
||||
(y int)
|
||||
(z float)
|
||||
(color int)
|
||||
(color font-color)
|
||||
(flags uint)
|
||||
)
|
||||
(let
|
||||
@@ -258,9 +258,9 @@
|
||||
(justify vector 64 :inline :offset-assert 944)
|
||||
(color-shadow vector4w :inline :offset-assert 1968)
|
||||
(color-table char-color 64 :inline :offset-assert 1984)
|
||||
(last-color uint64 :offset-assert 3008)
|
||||
(last-color font-color :offset-assert 3008)
|
||||
(last-color-32 int32 :offset 3008)
|
||||
(save-last-color uint64 :offset-assert 3016)
|
||||
(save-last-color font-color :offset-assert 3016)
|
||||
(save-last-color-32 int32 :offset 3016)
|
||||
(buf basic :offset-assert 3024)
|
||||
(str-ptr uint32 :offset-assert 3028)
|
||||
|
||||
@@ -93,8 +93,8 @@
|
||||
(s2-0 (-> s0-0 base))
|
||||
)
|
||||
(if (>= s4-0 7)
|
||||
(generic-init-buf s0-0 1 s5-0)
|
||||
(generic-init-buf s0-0 1 gp-0)
|
||||
(generic-init-buf s0-0 1 (the-as gs-zbuf s5-0))
|
||||
(generic-init-buf s0-0 1 (the-as gs-zbuf gp-0))
|
||||
)
|
||||
(generic-dma-foreground-sink-init s1-0)
|
||||
(let ((a3-0 (-> s0-0 base)))
|
||||
|
||||
+22
-7
@@ -259,7 +259,16 @@
|
||||
;; definition for symbol *font-context*, type font-context
|
||||
(define
|
||||
*font-context*
|
||||
(new 'global 'font-context *font-default-matrix* 0 24 0.0 0 (the-as uint 3))
|
||||
(new
|
||||
'global
|
||||
'font-context
|
||||
*font-default-matrix*
|
||||
0
|
||||
24
|
||||
0.0
|
||||
(font-color default)
|
||||
(the-as uint 3)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for symbol *pause-context*, type font-context
|
||||
@@ -272,7 +281,7 @@
|
||||
256
|
||||
170
|
||||
0.0
|
||||
3
|
||||
(font-color orange-red)
|
||||
(the-as uint 3)
|
||||
)
|
||||
)
|
||||
@@ -457,7 +466,7 @@
|
||||
(*profile-ticks*
|
||||
(let ((s3-0 draw-string-xy))
|
||||
(format (clear *temp-string*) "~5D" (-> worst-time-cache (/ bar-pos 10)))
|
||||
(s3-0 *temp-string* buf 488 (+ bar-pos 8) 0 17)
|
||||
(s3-0 *temp-string* buf 488 (+ bar-pos 8) (font-color default) 17)
|
||||
)
|
||||
(the float (-> worst-time-cache (/ bar-pos 10)))
|
||||
)
|
||||
@@ -472,10 +481,16 @@
|
||||
)
|
||||
(let ((s4-1 draw-string-xy))
|
||||
(format (clear *temp-string*) "~5,,2f" f30-0)
|
||||
(s4-1 *temp-string* buf 488 (+ bar-pos 8) (if (>= f30-0 100.0)
|
||||
3
|
||||
0
|
||||
)
|
||||
(s4-1
|
||||
*temp-string*
|
||||
buf
|
||||
488
|
||||
(+ bar-pos 8)
|
||||
(the-as font-color (if (>= f30-0 100.0)
|
||||
3
|
||||
0
|
||||
)
|
||||
)
|
||||
17
|
||||
)
|
||||
)
|
||||
|
||||
+12
-26
@@ -2944,9 +2944,9 @@
|
||||
(when
|
||||
(and
|
||||
(nonzero? (-> id page))
|
||||
(< (the-as uint (-> id page)) (the-as uint (-> *texture-page-dir* length)))
|
||||
(< (-> id page) (the-as uint (-> *texture-page-dir* length)))
|
||||
)
|
||||
(let ((dir-entry (-> *texture-page-dir* entries (the-as uint (-> id page)))))
|
||||
(let ((dir-entry (-> *texture-page-dir* entries (-> id page))))
|
||||
(when (not (-> dir-entry page))
|
||||
(let ((old-alloc-func (-> *texture-pool* allocate-func)))
|
||||
(set! (-> *texture-pool* allocate-func) alloc-func)
|
||||
@@ -3016,14 +3016,10 @@
|
||||
(not
|
||||
(or
|
||||
(zero? (-> arg0 page))
|
||||
(>=
|
||||
(the-as uint (-> arg0 page))
|
||||
(the-as uint (-> *texture-page-dir* length))
|
||||
)
|
||||
(>= (-> arg0 page) (the-as uint (-> *texture-page-dir* length)))
|
||||
)
|
||||
)
|
||||
(let
|
||||
((dir-entry (-> *texture-page-dir* entries (the-as uint (-> arg0 page)))))
|
||||
(let ((dir-entry (-> *texture-page-dir* entries (-> arg0 page))))
|
||||
(if (not (-> dir-entry link))
|
||||
(set!
|
||||
(-> dir-entry link)
|
||||
@@ -3066,12 +3062,12 @@
|
||||
(let ((link-slot (&-> link-arr 0))
|
||||
(shader (the-as adgif-shader (* (-> link-arr 0 shader) 16)))
|
||||
)
|
||||
(while (nonzero? (the-as int shader))
|
||||
(while (nonzero? (the-as uint shader))
|
||||
(b!
|
||||
(< (the-as int (- (the-as int shader) (the-as int mem-start))) 0)
|
||||
(< (the-as int (- (the-as uint shader) (the-as uint mem-start))) 0)
|
||||
cfg-7
|
||||
:delay
|
||||
(set! dist-past-end (- (the-as int shader) mem-end))
|
||||
(set! dist-past-end (- (the-as uint shader) mem-end))
|
||||
)
|
||||
(b! (>= (the-as int dist-past-end) 0) cfg-7 :delay (nop!))
|
||||
(let ((t4-2 (-> shader next)))
|
||||
@@ -3352,16 +3348,9 @@
|
||||
(when
|
||||
(and
|
||||
(nonzero? (-> tex-id page))
|
||||
(<
|
||||
(the-as uint (-> tex-id page))
|
||||
(the-as uint (-> *texture-page-dir* length))
|
||||
)
|
||||
(< (-> tex-id page) (the-as uint (-> *texture-page-dir* length)))
|
||||
)
|
||||
(let
|
||||
((dir-entry
|
||||
(-> *texture-page-dir* entries (the-as uint (-> tex-id page)))
|
||||
)
|
||||
)
|
||||
(let ((dir-entry (-> *texture-page-dir* entries (-> tex-id page))))
|
||||
(when
|
||||
(and
|
||||
(< (-> tex-id index) (the-as uint (-> dir-entry length)))
|
||||
@@ -3402,12 +3391,9 @@
|
||||
(when
|
||||
(and
|
||||
(nonzero? (-> v1-4 page))
|
||||
(<
|
||||
(the-as uint (-> v1-4 page))
|
||||
(the-as uint (-> *texture-page-dir* length))
|
||||
)
|
||||
(< (-> v1-4 page) (the-as uint (-> *texture-page-dir* length)))
|
||||
)
|
||||
(let ((a1-7 (-> *texture-page-dir* entries (the-as uint (-> v1-4 page)))))
|
||||
(let ((a1-7 (-> *texture-page-dir* entries (-> v1-4 page))))
|
||||
(when
|
||||
(and (< (-> v1-4 index) (the-as uint (-> a1-7 length))) (-> a1-7 link))
|
||||
(set! (-> arg0 next shader) (-> a1-7 link next (-> v1-4 index) shader))
|
||||
@@ -3539,7 +3525,7 @@
|
||||
(the-as object (* (-> entry-link next entry-list-length shader) 16))
|
||||
)
|
||||
)
|
||||
(while (nonzero? (the-as int v1-40))
|
||||
(while (nonzero? (the-as uint v1-40))
|
||||
(nop!)
|
||||
(+! a3-7 1)
|
||||
(set! v1-40 (* (-> (the-as adgif-shader v1-40) next shader) 16))
|
||||
|
||||
+4
-1
@@ -557,7 +557,10 @@
|
||||
)
|
||||
(set! (-> obj max-spheres) sphere-count)
|
||||
(set! (-> obj flags) (nav-control-flags bit8 bit13))
|
||||
(set! (-> obj mesh) (nav-mesh-connect (-> shape process) shape obj))
|
||||
(set!
|
||||
(-> obj mesh)
|
||||
(nav-mesh-connect (-> shape process) shape (the-as nav-control obj))
|
||||
)
|
||||
(let ((ent (-> shape process entity)))
|
||||
(set!
|
||||
(-> obj nearest-y-threshold)
|
||||
|
||||
+4
-4
@@ -25,7 +25,7 @@
|
||||
(the-as bucket-id s3-0)
|
||||
*temp-string*
|
||||
(-> obj process root trans)
|
||||
(new 'static 'rgba :r #x3)
|
||||
(font-color orange-red)
|
||||
(the-as vector2h #f)
|
||||
)
|
||||
)
|
||||
@@ -73,7 +73,7 @@
|
||||
(the-as bucket-id s1-0)
|
||||
*temp-string*
|
||||
s4-1
|
||||
(new 'static 'rgba :r #x4)
|
||||
(font-color bright-orange-red)
|
||||
(the-as vector2h #f)
|
||||
)
|
||||
)
|
||||
@@ -395,7 +395,7 @@
|
||||
(the-as bucket-id s3-0)
|
||||
*temp-string*
|
||||
(-> obj process root trans)
|
||||
(new 'static 'rgba :r #x3)
|
||||
(font-color orange-red)
|
||||
(the-as vector2h #f)
|
||||
)
|
||||
)
|
||||
@@ -441,7 +441,7 @@
|
||||
(the-as bucket-id s1-0)
|
||||
*temp-string*
|
||||
s4-1
|
||||
(new 'static 'rgba :r #x4)
|
||||
(font-color bright-orange-red)
|
||||
(the-as vector2h #f)
|
||||
)
|
||||
)
|
||||
|
||||
+8
-1
@@ -142,7 +142,14 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(draw-string-xy *temp-string* dma-buf 32 (+ (* 12 slot-idx) 8) 3 1)
|
||||
(draw-string-xy
|
||||
*temp-string*
|
||||
dma-buf
|
||||
32
|
||||
(+ (* 12 slot-idx) 8)
|
||||
(font-color orange-red)
|
||||
1
|
||||
)
|
||||
)
|
||||
)
|
||||
0
|
||||
|
||||
+4
-4
@@ -1021,7 +1021,7 @@
|
||||
arg0
|
||||
(+ (* s5-0 16) 16)
|
||||
48
|
||||
0
|
||||
(font-color default)
|
||||
1
|
||||
)
|
||||
)
|
||||
@@ -1033,7 +1033,7 @@
|
||||
arg0
|
||||
(+ (* s5-1 16) 16)
|
||||
64
|
||||
0
|
||||
(font-color default)
|
||||
1
|
||||
)
|
||||
)
|
||||
@@ -1049,7 +1049,7 @@
|
||||
(-> *sound-iop-info* freemem)
|
||||
(shr (-> *sound-iop-info* freemem) 10)
|
||||
)
|
||||
(s5-0 *temp-string* arg0 32 96 0 1)
|
||||
(s5-0 *temp-string* arg0 32 96 (font-color default) 1)
|
||||
)
|
||||
(let ((s5-1 draw-string-xy))
|
||||
(format
|
||||
@@ -1058,7 +1058,7 @@
|
||||
(-> *sound-iop-info* freemem2)
|
||||
(shr (-> *sound-iop-info* freemem2) 10)
|
||||
)
|
||||
(s5-1 *temp-string* arg0 32 64 0 1)
|
||||
(s5-1 *temp-string* arg0 32 64 (font-color default) 1)
|
||||
)
|
||||
0
|
||||
)
|
||||
|
||||
+11
-2
@@ -84,7 +84,7 @@
|
||||
0
|
||||
0
|
||||
0.0
|
||||
0
|
||||
(font-color default)
|
||||
(the-as uint 3)
|
||||
)
|
||||
)
|
||||
@@ -165,7 +165,16 @@
|
||||
(s3-0 0)
|
||||
(s2-0 #t)
|
||||
(s5-0
|
||||
(new 'stack 'font-context *font-default-matrix* 31 0 0.0 0 (the-as uint 3))
|
||||
(new
|
||||
'stack
|
||||
'font-context
|
||||
*font-default-matrix*
|
||||
31
|
||||
0
|
||||
0.0
|
||||
(font-color default)
|
||||
(the-as uint 3)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((v1-2 s5-0))
|
||||
|
||||
+7
-6
@@ -1884,14 +1884,15 @@
|
||||
(new 'global 'dead-pool 1 8192 '*camera-master-dead-pool*)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(if *debug-segment*
|
||||
(set!
|
||||
*debug-dead-pool*
|
||||
(new 'debug 'dead-pool-heap '*debug-dead-pool* 768 #x100000)
|
||||
)
|
||||
;; this part is debug only
|
||||
(when *debug-segment*
|
||||
;; definition for symbol *debug-dead-pool*, type dead-pool-heap
|
||||
(define
|
||||
*debug-dead-pool*
|
||||
(new 'debug 'dead-pool-heap '*debug-dead-pool* 768 #x100000)
|
||||
)
|
||||
|
||||
)
|
||||
;; definition for symbol *nk-dead-pool*, type dead-pool-heap
|
||||
(define *nk-dead-pool* (new 'global 'dead-pool-heap '*nk-dead-pool* 768 #xf6000))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user