Merge branch 'master' of https://github.com/water111/jak-project into w/dma-for-font

This commit is contained in:
water
2021-08-09 22:08:48 -04:00
13 changed files with 430 additions and 49 deletions
+34 -34
View File
@@ -22959,21 +22959,21 @@
;; - Types
; (deftype ticky (structure)
; ((delay-til-ramp uint64 :offset-assert 0)
; (delay-til-timeout uint64 :offset-assert 8)
; (starting-time uint64 :offset-assert 16)
; (last-tick-time uint64 :offset-assert 24)
; )
; :method-count-assert 12
; :size-assert #x20
; :flag-assert #xc00000020
; (:methods
; (dummy-9 () none 9)
; (dummy-10 () none 10)
; (dummy-11 () none 11)
; )
; )
(deftype ticky (structure)
((delay-til-ramp uint64 :offset-assert 0)
(delay-til-timeout uint64 :offset-assert 8)
(starting-time uint64 :offset-assert 16)
(last-tick-time uint64 :offset-assert 24)
)
:method-count-assert 12
:size-assert #x20
:flag-assert #xc00000020
(:methods
(sleep (_type_ uint) none 9)
(reached-delay? (_type_ uint) symbol 10)
(completed? (_type_) symbol 11)
)
)
;; ----------------------
@@ -23290,25 +23290,25 @@
;; - Types
; (deftype wobbler (basic)
; ((posx float :offset-assert 4)
; (posy float :offset-assert 8)
; (velx float :offset-assert 12)
; (vely float :offset-assert 16)
; (spring float :offset-assert 20)
; (damping float :offset-assert 24)
; (height float :offset-assert 28)
; )
; :method-count-assert 13
; :size-assert #x20
; :flag-assert #xd00000020
; (:methods
; (dummy-9 () none 9)
; (dummy-10 () none 10)
; (dummy-11 () none 11)
; (dummy-12 () none 12)
; )
; )
(deftype wobbler (basic)
((posx float :offset-assert 4)
(posy float :offset-assert 8)
(velx float :offset-assert 12)
(vely float :offset-assert 16)
(spring float :offset-assert 20)
(damping float :offset-assert 24)
(height float :offset-assert 28)
)
:method-count-assert 13
:size-assert #x20
:flag-assert #xd00000020
(:methods
(reset! (_type_ float float float) none 9)
(inc-xy-vel! (_type_ float float) none 10)
(move! (_type_) none 11)
(TODO-RENAME-12 (_type_ quaternion) none 12)
)
)
;; ----------------------
@@ -1292,7 +1292,7 @@
["L37", "uint64", true],
["L38", "uint64", true]
],
"anim-tester": [
["L615", "_auto_", true],
["L592", "_auto_", true],
@@ -1302,20 +1302,22 @@
["L86", "_lambda_", true],
["L652", "float", true]
],
"default-menu": [
["L519", "pair", true],
["L1550", "pair", true],
["L1552", "pair", true]
],
"generic-vu1": [
["L12", "gif-tag64", true],
["L15", "gif-tag64", true],
["L14", "gif-tag-regs", true]
],
"main-collide": [["L5", "rgba", true]],
"main-collide": [
["L5", "rgba", true]
],
"camera": [
["L257", "(inline-array qword)", true, 1],
@@ -1439,6 +1441,15 @@
["L7", "float", true]
],
"ticky": [
["L7", "float", true],
["L8", "float", true],
["L10", "uint64", true]
],
"wobbler": [
["L6", "float", true]
],
"title-obs": [["L499", "float", true]],
"drawable": [
@@ -1446,7 +1457,6 @@
["L191", "uint64", true],
["L186", "uint64", true]
],
// please do not add things after this entry! git is dumb.
"object-file-that-doesnt-actually-exist-and-i-just-put-this-here-to-prevent-merge-conflicts-with-this-file": []
}
@@ -840,7 +840,11 @@
"(method 20 collide-cache)": [
[16, "vector"]
],
"(anon-function 0 title-obs)": [
"(method 12 wobbler)": [
[16, "vector"]
],
"(anon-function 0 title-obs)": [
[16, "font-context"]
],
@@ -851,6 +855,6 @@
"draw-string-xy": [
[16, "font-context"]
],
"placeholder-do-not-add-below!": []
}
+1 -1
View File
@@ -3,7 +3,7 @@
"fileProgress": {
"src_files_total": 514,
"src_files_finished": 54,
"src_files_started": 176,
"src_files_started": 177,
"data_files_total": 584,
"data_files_started": 4
}
+1 -1
View File
@@ -1 +1 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/jak-project/favicon.png"><title>OpenGOAL Tooling</title><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.min.css"><link href="/jak-project/css/about.bf16c6ab.css" rel="prefetch"><link href="/jak-project/js/about.10e9478b.js" rel="prefetch"><link href="/jak-project/css/chunk-vendors.b018c88a.css" rel="preload" as="style"><link href="/jak-project/js/app.2ac786b5.js" rel="preload" as="script"><link href="/jak-project/js/chunk-vendors.874e560a.js" rel="preload" as="script"><link href="/jak-project/css/chunk-vendors.b018c88a.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but docs-and-tooling doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="/jak-project/js/chunk-vendors.874e560a.js"></script><script src="/jak-project/js/app.2ac786b5.js"></script></body></html>
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/jak-project/favicon.png"><title>OpenGOAL Tooling</title><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.min.css"><link href="/jak-project/css/about.bf16c6ab.css" rel="prefetch"><link href="/jak-project/js/about.035bad88.js" rel="prefetch"><link href="/jak-project/css/chunk-vendors.b018c88a.css" rel="preload" as="style"><link href="/jak-project/js/app.caccaa88.js" rel="preload" as="script"><link href="/jak-project/js/chunk-vendors.874e560a.js" rel="preload" as="script"><link href="/jak-project/css/chunk-vendors.b018c88a.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but docs-and-tooling doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="/jak-project/js/chunk-vendors.874e560a.js"></script><script src="/jak-project/js/app.caccaa88.js"></script></body></html>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,2 +1,2 @@
(function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,p=[];s<i.length;s++)o=i[s],Object.prototype.hasOwnProperty.call(a,o)&&a[o]&&p.push(a[o][0]),a[o]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);f&&f(t);while(p.length)p.shift()();return u.push.apply(u,l||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,o=1;o<r.length;o++){var i=r[o];0!==a[i]&&(n=!1)}n&&(u.splice(t--,1),e=c(c.s=r[0]))}return e}var n={},o={app:0},a={app:0},u=[];function i(e){return c.p+"js/"+({about:"about"}[e]||e)+"."+{about:"10e9478b"}[e]+".js"}function c(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,c),r.l=!0,r.exports}c.e=function(e){var t=[],r={about:1};o[e]?t.push(o[e]):0!==o[e]&&r[e]&&t.push(o[e]=new Promise((function(t,r){for(var n="css/"+({about:"about"}[e]||e)+"."+{about:"bf16c6ab"}[e]+".css",a=c.p+n,u=document.getElementsByTagName("link"),i=0;i<u.length;i++){var l=u[i],s=l.getAttribute("data-href")||l.getAttribute("href");if("stylesheet"===l.rel&&(s===n||s===a))return t()}var p=document.getElementsByTagName("style");for(i=0;i<p.length;i++){l=p[i],s=l.getAttribute("data-href");if(s===n||s===a)return t()}var f=document.createElement("link");f.rel="stylesheet",f.type="text/css",f.onload=t,f.onerror=function(t){var n=t&&t.target&&t.target.src||a,u=new Error("Loading CSS chunk "+e+" failed.\n("+n+")");u.code="CSS_CHUNK_LOAD_FAILED",u.request=n,delete o[e],f.parentNode.removeChild(f),r(u)},f.href=a;var d=document.getElementsByTagName("head")[0];d.appendChild(f)})).then((function(){o[e]=0})));var n=a[e];if(0!==n)if(n)t.push(n[2]);else{var u=new Promise((function(t,r){n=a[e]=[t,r]}));t.push(n[2]=u);var l,s=document.createElement("script");s.charset="utf-8",s.timeout=120,c.nc&&s.setAttribute("nonce",c.nc),s.src=i(e);var p=new Error;l=function(t){s.onerror=s.onload=null,clearTimeout(f);var r=a[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;p.message="Loading chunk "+e+" failed.\n("+n+": "+o+")",p.name="ChunkLoadError",p.type=n,p.request=o,r[1](p)}a[e]=void 0}};var f=setTimeout((function(){l({type:"timeout",target:s})}),12e4);s.onerror=s.onload=l,document.head.appendChild(s)}return Promise.all(t)},c.m=e,c.c=n,c.d=function(e,t,r){c.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},c.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.t=function(e,t){if(1&t&&(e=c(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(c.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)c.d(r,n,function(t){return e[t]}.bind(null,n));return r},c.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return c.d(t,"a",t),t},c.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},c.p="/jak-project/",c.oe=function(e){throw console.error(e),e};var l=window["webpackJsonp"]=window["webpackJsonp"]||[],s=l.push.bind(l);l.push=t,l=l.slice();for(var p=0;p<l.length;p++)t(l[p]);var f=s;u.push([0,"chunk-vendors"]),r()})({0:function(e,t,r){e.exports=r("56d7")},"56d7":function(e,t,r){"use strict";r.r(t);r("e260"),r("e6cf"),r("cca6"),r("a79d");var n=r("2b0e"),o=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("v-app",[r("v-main",[r("router-view")],1)],1)},a=[],u={name:"App",components:{},data:function(){return{}}},i=u,c=r("2877"),l=r("6544"),s=r.n(l),p=r("7496"),f=r("f6c4"),d=Object(c["a"])(i,o,a,!1,null,null,null),h=d.exports;s()(d,{VApp:p["a"],VMain:f["a"]});var b=r("f309");n["a"].use(b["a"]);var m=new b["a"]({theme:{dark:!0}}),v=(r("d3b7"),r("3ca3"),r("ddb0"),r("8c4f"));n["a"].use(v["a"]);var g=[{path:"/",name:"Home",component:function(){return r.e("about").then(r.bind(null,"bb51"))}}],y=new v["a"]({mode:"history",base:"/jak-project/",routes:g}),w=y;n["a"].config.productionTip=!1,new n["a"]({vuetify:m,router:w,render:function(e){return e(h)}}).$mount("#app")}});
//# sourceMappingURL=app.2ac786b5.js.map
(function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,p=[];s<i.length;s++)o=i[s],Object.prototype.hasOwnProperty.call(a,o)&&a[o]&&p.push(a[o][0]),a[o]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);f&&f(t);while(p.length)p.shift()();return u.push.apply(u,l||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,o=1;o<r.length;o++){var i=r[o];0!==a[i]&&(n=!1)}n&&(u.splice(t--,1),e=c(c.s=r[0]))}return e}var n={},o={app:0},a={app:0},u=[];function i(e){return c.p+"js/"+({about:"about"}[e]||e)+"."+{about:"035bad88"}[e]+".js"}function c(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,c),r.l=!0,r.exports}c.e=function(e){var t=[],r={about:1};o[e]?t.push(o[e]):0!==o[e]&&r[e]&&t.push(o[e]=new Promise((function(t,r){for(var n="css/"+({about:"about"}[e]||e)+"."+{about:"bf16c6ab"}[e]+".css",a=c.p+n,u=document.getElementsByTagName("link"),i=0;i<u.length;i++){var l=u[i],s=l.getAttribute("data-href")||l.getAttribute("href");if("stylesheet"===l.rel&&(s===n||s===a))return t()}var p=document.getElementsByTagName("style");for(i=0;i<p.length;i++){l=p[i],s=l.getAttribute("data-href");if(s===n||s===a)return t()}var f=document.createElement("link");f.rel="stylesheet",f.type="text/css",f.onload=t,f.onerror=function(t){var n=t&&t.target&&t.target.src||a,u=new Error("Loading CSS chunk "+e+" failed.\n("+n+")");u.code="CSS_CHUNK_LOAD_FAILED",u.request=n,delete o[e],f.parentNode.removeChild(f),r(u)},f.href=a;var d=document.getElementsByTagName("head")[0];d.appendChild(f)})).then((function(){o[e]=0})));var n=a[e];if(0!==n)if(n)t.push(n[2]);else{var u=new Promise((function(t,r){n=a[e]=[t,r]}));t.push(n[2]=u);var l,s=document.createElement("script");s.charset="utf-8",s.timeout=120,c.nc&&s.setAttribute("nonce",c.nc),s.src=i(e);var p=new Error;l=function(t){s.onerror=s.onload=null,clearTimeout(f);var r=a[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;p.message="Loading chunk "+e+" failed.\n("+n+": "+o+")",p.name="ChunkLoadError",p.type=n,p.request=o,r[1](p)}a[e]=void 0}};var f=setTimeout((function(){l({type:"timeout",target:s})}),12e4);s.onerror=s.onload=l,document.head.appendChild(s)}return Promise.all(t)},c.m=e,c.c=n,c.d=function(e,t,r){c.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},c.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.t=function(e,t){if(1&t&&(e=c(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(c.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)c.d(r,n,function(t){return e[t]}.bind(null,n));return r},c.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return c.d(t,"a",t),t},c.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},c.p="/jak-project/",c.oe=function(e){throw console.error(e),e};var l=window["webpackJsonp"]=window["webpackJsonp"]||[],s=l.push.bind(l);l.push=t,l=l.slice();for(var p=0;p<l.length;p++)t(l[p]);var f=s;u.push([0,"chunk-vendors"]),r()})({0:function(e,t,r){e.exports=r("56d7")},"56d7":function(e,t,r){"use strict";r.r(t);r("e260"),r("e6cf"),r("cca6"),r("a79d");var n=r("2b0e"),o=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("v-app",[r("v-main",[r("router-view")],1)],1)},a=[],u={name:"App",components:{},data:function(){return{}}},i=u,c=r("2877"),l=r("6544"),s=r.n(l),p=r("7496"),f=r("f6c4"),d=Object(c["a"])(i,o,a,!1,null,null,null),h=d.exports;s()(d,{VApp:p["a"],VMain:f["a"]});var b=r("f309");n["a"].use(b["a"]);var m=new b["a"]({theme:{dark:!0}}),v=(r("d3b7"),r("3ca3"),r("ddb0"),r("8c4f"));n["a"].use(v["a"]);var g=[{path:"/",name:"Home",component:function(){return r.e("about").then(r.bind(null,"bb51"))}}],y=new v["a"]({mode:"history",base:"/jak-project/",routes:g}),w=y;n["a"].config.productionTip=!1,new n["a"]({vuetify:m,router:w,render:function(e){return e(h)}}).$mount("#app")}});
//# sourceMappingURL=app.caccaa88.js.map
File diff suppressed because one or more lines are too long
+82
View File
@@ -5,3 +5,85 @@
;; name in dgo: wobbler
;; dgos: BEA, L1
;; definition of type wobbler
(deftype wobbler (basic)
((posx float :offset-assert 4)
(posy float :offset-assert 8)
(velx float :offset-assert 12)
(vely float :offset-assert 16)
(spring float :offset-assert 20)
(damping float :offset-assert 24)
(height float :offset-assert 28)
)
:method-count-assert 13
:size-assert #x20
:flag-assert #xd00000020
(:methods
(reset! (_type_ float float float) none 9)
(inc-xy-vel! (_type_ float float) none 10)
(move! (_type_) none 11)
(TODO-RENAME-12 (_type_ quaternion) none 12)
)
)
;; definition for method 9 of type wobbler
;; INFO: Return type mismatch int vs none.
(defmethod reset! wobbler ((obj wobbler) (arg0 float) (arg1 float) (arg2 float))
(set! (-> obj posx) 0.0)
(set! (-> obj posy) 0.0)
(set! (-> obj velx) 0.0)
(set! (-> obj vely) 0.0)
(set! (-> obj spring) arg0)
(set! (-> obj damping) arg1)
(set! (-> obj height) arg2)
0
(none)
)
;; definition for method 10 of type wobbler
;; INFO: Return type mismatch int vs none.
(defmethod inc-xy-vel! wobbler ((obj wobbler) (arg0 float) (arg1 float))
(+! (-> obj velx) arg0)
(+! (-> obj vely) arg1)
0
(none)
)
;; definition for method 11 of type wobbler
;; INFO: Return type mismatch int vs none.
(defmethod move! wobbler ((obj wobbler))
(+! (-> obj posx) (* (-> obj velx) (-> *display* seconds-per-frame)))
(+! (-> obj posy) (* (-> obj vely) (-> *display* seconds-per-frame)))
(set! (-> obj velx) (* (-> obj velx) (-> obj damping)))
(set! (-> obj vely) (* (-> obj vely) (-> obj damping)))
(+! (-> obj velx) (* (* -1.0 (-> obj posx)) (-> obj spring)))
(+! (-> obj vely) (* (* -1.0 (-> obj posy)) (-> obj spring)))
0
(none)
)
;; definition for method 12 of type wobbler
;; INFO: Return type mismatch int vs none.
(defmethod TODO-RENAME-12 wobbler ((obj wobbler) (arg0 quaternion))
(let ((s5-0 (new 'stack-no-clear 'vector)))
(set! (-> s5-0 x) (-> obj posy))
(set! (-> s5-0 y) 0.0)
(set! (-> s5-0 z) (- (-> obj posx)))
(vector-normalize! s5-0 1.0)
(let*
((f0-8
(/
(sqrtf
(+ (* (-> obj posx) (-> obj posx)) (* (-> obj posy) (-> obj posy)))
)
(-> obj height)
)
)
(f0-9 (atan f0-8 1.0))
)
(quaternion-vector-angle! arg0 s5-0 f0-9)
)
)
0
(none)
)
+83
View File
@@ -5,3 +5,86 @@
;; name in dgo: ticky
;; dgos: GAME, COMMON, L1
;; definition of type ticky
(deftype ticky (structure)
((delay-til-ramp uint64 :offset-assert 0)
(delay-til-timeout uint64 :offset-assert 8)
(starting-time uint64 :offset-assert 16)
(last-tick-time uint64 :offset-assert 24)
)
:method-count-assert 12
:size-assert #x20
:flag-assert #xc00000020
(:methods
(sleep (_type_ uint) none 9)
(reached-delay? (_type_ uint) symbol 10)
(completed? (_type_) symbol 11)
)
)
;; definition for method 9 of type ticky
;; INFO: Return type mismatch int vs none.
(defmethod sleep ticky ((obj ticky) (arg0 uint))
(set! (-> obj starting-time) (-> *display* base-frame-counter))
(set! (-> obj delay-til-timeout) arg0)
(set! (-> obj delay-til-ramp) (max 0 (the-as int (+ arg0 -1200))))
(set! (-> obj last-tick-time) (the-as uint 0))
0
(none)
)
;; definition for method 11 of type ticky
(defmethod completed? ticky ((obj ticky))
(let ((gp-0 #f))
(let ((v1-2 (- (-> *display* base-frame-counter) (-> obj starting-time))))
(cond
((>= (the-as int v1-2) (the-as int (-> obj delay-til-timeout)))
(set! gp-0 #t)
)
(else
(let*
((f0-1
(fmin
1.0
(/
(the float (max 0 (the-as int (- v1-2 (-> obj delay-til-ramp)))))
(the float (- (-> obj delay-til-timeout) (-> obj delay-til-ramp)))
)
)
)
(v1-7 (the int (lerp 105.0 41.0 f0-1)))
)
(when
(>=
(the-as
int
(- (-> *display* base-frame-counter) (-> obj last-tick-time))
)
v1-7
)
(set! (-> obj last-tick-time) (-> *display* base-frame-counter))
(sound-play-by-name
(static-sound-name "stopwatch")
(new-sound-id)
1024
0
0
(the-as uint 1)
(the-as vector #t)
)
)
)
)
)
)
gp-0
)
)
;; definition for method 10 of type ticky
(defmethod reached-delay? ticky ((obj ticky) (arg0 uint))
(>=
(the-as int (- (-> *display* base-frame-counter) (-> obj starting-time)))
(the-as int arg0)
)
)
+102
View File
@@ -0,0 +1,102 @@
;;-*-Lisp-*-
(in-package goal)
;; definition of type wobbler
(deftype wobbler (basic)
((posx float :offset-assert 4)
(posy float :offset-assert 8)
(velx float :offset-assert 12)
(vely float :offset-assert 16)
(spring float :offset-assert 20)
(damping float :offset-assert 24)
(height float :offset-assert 28)
)
:method-count-assert 13
:size-assert #x20
:flag-assert #xd00000020
(:methods
(reset! (_type_ float float float) none 9)
(inc-xy-vel! (_type_ float float) none 10)
(move! (_type_) none 11)
(TODO-RENAME-12 (_type_ quaternion) none 12)
)
)
;; definition for method 3 of type wobbler
(defmethod inspect wobbler ((obj wobbler))
(format #t "[~8x] ~A~%" obj (-> obj type))
(format #t "~Tposx: ~f~%" (-> obj posx))
(format #t "~Tposy: ~f~%" (-> obj posy))
(format #t "~Tvelx: ~f~%" (-> obj velx))
(format #t "~Tvely: ~f~%" (-> obj vely))
(format #t "~Tspring: ~f~%" (-> obj spring))
(format #t "~Tdamping: ~f~%" (-> obj damping))
(format #t "~Theight: ~f~%" (-> obj height))
obj
)
;; definition for method 9 of type wobbler
;; INFO: Return type mismatch int vs none.
(defmethod reset! wobbler ((obj wobbler) (arg0 float) (arg1 float) (arg2 float))
(set! (-> obj posx) 0.0)
(set! (-> obj posy) 0.0)
(set! (-> obj velx) 0.0)
(set! (-> obj vely) 0.0)
(set! (-> obj spring) arg0)
(set! (-> obj damping) arg1)
(set! (-> obj height) arg2)
0
(none)
)
;; definition for method 10 of type wobbler
;; INFO: Return type mismatch int vs none.
(defmethod inc-xy-vel! wobbler ((obj wobbler) (arg0 float) (arg1 float))
(+! (-> obj velx) arg0)
(+! (-> obj vely) arg1)
0
(none)
)
;; definition for method 11 of type wobbler
;; INFO: Return type mismatch int vs none.
(defmethod move! wobbler ((obj wobbler))
(+! (-> obj posx) (* (-> obj velx) (-> *display* seconds-per-frame)))
(+! (-> obj posy) (* (-> obj vely) (-> *display* seconds-per-frame)))
(set! (-> obj velx) (* (-> obj velx) (-> obj damping)))
(set! (-> obj vely) (* (-> obj vely) (-> obj damping)))
(+! (-> obj velx) (* (* -1.0 (-> obj posx)) (-> obj spring)))
(+! (-> obj vely) (* (* -1.0 (-> obj posy)) (-> obj spring)))
0
(none)
)
;; definition for method 12 of type wobbler
;; INFO: Return type mismatch int vs none.
(defmethod TODO-RENAME-12 wobbler ((obj wobbler) (arg0 quaternion))
(let ((s5-0 (new 'stack-no-clear 'vector)))
(set! (-> s5-0 x) (-> obj posy))
(set! (-> s5-0 y) 0.0)
(set! (-> s5-0 z) (- (-> obj posx)))
(vector-normalize! s5-0 1.0)
(let*
((f0-8
(/
(sqrtf
(+ (* (-> obj posx) (-> obj posx)) (* (-> obj posy) (-> obj posy)))
)
(-> obj height)
)
)
(f0-9 (atan f0-8 1.0))
)
(quaternion-vector-angle! arg0 s5-0 f0-9)
)
)
0
(none)
)
+100
View File
@@ -0,0 +1,100 @@
;;-*-Lisp-*-
(in-package goal)
;; definition of type ticky
(deftype ticky (structure)
((delay-til-ramp uint64 :offset-assert 0)
(delay-til-timeout uint64 :offset-assert 8)
(starting-time uint64 :offset-assert 16)
(last-tick-time uint64 :offset-assert 24)
)
:method-count-assert 12
:size-assert #x20
:flag-assert #xc00000020
(:methods
(sleep (_type_ uint) none 9)
(reached-delay? (_type_ uint) symbol 10)
(completed? (_type_) symbol 11)
)
)
;; definition for method 3 of type ticky
(defmethod inspect ticky ((obj ticky))
(format #t "[~8x] ~A~%" obj 'ticky)
(format #t "~Tdelay-til-ramp: ~D~%" (-> obj delay-til-ramp))
(format #t "~Tdelay-til-timeout: ~D~%" (-> obj delay-til-timeout))
(format #t "~Tstarting-time: ~D~%" (-> obj starting-time))
(format #t "~Tlast-tick-time: ~D~%" (-> obj last-tick-time))
obj
)
;; definition for method 9 of type ticky
;; INFO: Return type mismatch int vs none.
(defmethod sleep ticky ((obj ticky) (arg0 uint))
(set! (-> obj starting-time) (-> *display* base-frame-counter))
(set! (-> obj delay-til-timeout) arg0)
(set! (-> obj delay-til-ramp) (max 0 (the-as int (+ arg0 -1200))))
(set! (-> obj last-tick-time) (the-as uint 0))
0
(none)
)
;; definition for method 11 of type ticky
(defmethod completed? ticky ((obj ticky))
(let ((gp-0 #f))
(let ((v1-2 (- (-> *display* base-frame-counter) (-> obj starting-time))))
(cond
((>= (the-as int v1-2) (the-as int (-> obj delay-til-timeout)))
(set! gp-0 #t)
)
(else
(let*
((f0-1
(fmin
1.0
(/
(the float (max 0 (the-as int (- v1-2 (-> obj delay-til-ramp)))))
(the float (- (-> obj delay-til-timeout) (-> obj delay-til-ramp)))
)
)
)
(v1-7 (the int (lerp 105.0 41.0 f0-1)))
)
(when
(>=
(the-as
int
(- (-> *display* base-frame-counter) (-> obj last-tick-time))
)
v1-7
)
(set! (-> obj last-tick-time) (-> *display* base-frame-counter))
(sound-play-by-name
(static-sound-name "stopwatch")
(new-sound-id)
1024
0
0
(the-as uint 1)
(the-as vector #t)
)
)
)
)
)
)
gp-0
)
)
;; definition for method 10 of type ticky
(defmethod reached-delay? ticky ((obj ticky) (arg0 uint))
(>=
(the-as int (- (-> *display* base-frame-counter) (-> obj starting-time)))
(the-as int arg0)
)
)