mirror of
https://github.com/open-goal/jak-project
synced 2026-06-06 03:39:01 -04:00
Merge branch 'master' of https://github.com/water111/jak-project into w/dma-for-font
This commit is contained in:
+404
-74
File diff suppressed because it is too large
Load Diff
@@ -621,5 +621,12 @@
|
||||
[9, "(function none :behavior plat-eco)"]
|
||||
],
|
||||
|
||||
"sunken-elevator": [
|
||||
[3, "(function object :behavior sunken-elevator)"],
|
||||
[4, "(function int :behavior sunken-elevator)"],
|
||||
[5, "(function symbol :behavior sunken-elevator)"],
|
||||
[6, "(function int :behavior sunken-elevator)"]
|
||||
],
|
||||
|
||||
"placeholder-do-not-add-below": []
|
||||
}
|
||||
|
||||
@@ -1565,6 +1565,19 @@
|
||||
["L9", "ripple-wave-set", true],
|
||||
["L10", "float", true]
|
||||
],
|
||||
|
||||
"sunken-elevator": [
|
||||
["L6", "_lambda_", true],
|
||||
["L9", "_lambda_", true],
|
||||
["L14", "_lambda_", true],
|
||||
["L16", "_lambda_", true],
|
||||
["L28", "state", true],
|
||||
["L29", "state", true],
|
||||
["L30", "state", true],
|
||||
["L32", "skeleton-group", true],
|
||||
["L35", "float", true],
|
||||
["L37", "float", true]
|
||||
],
|
||||
"title-obs": [["L499", "float", true]],
|
||||
|
||||
"drawable": [
|
||||
|
||||
@@ -916,6 +916,16 @@
|
||||
[48, "vector"],
|
||||
[96, "vector"]
|
||||
],
|
||||
|
||||
"(anon-function 3 sunken-elevator)": [
|
||||
[16, "vector"],
|
||||
[32, "vector"],
|
||||
[48, "event-message-block"]
|
||||
],
|
||||
|
||||
"(method 29 sunken-elevator)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
"(anon-function 0 title-obs)": [
|
||||
[16, "font-context"]
|
||||
],
|
||||
|
||||
@@ -1961,6 +1961,35 @@
|
||||
"(method 11 silostep)": [
|
||||
[100, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(anon-function 6 sunken-elevator)": [
|
||||
[2, "v1", "(state none)"],
|
||||
[2, "t9", "(function object)"],
|
||||
[4, "t9", "(function object)"],
|
||||
[40, "v1", "village2cam"],
|
||||
[73, "v1", "village2cam"]
|
||||
],
|
||||
|
||||
"(anon-function 5 sunken-elevator)": [
|
||||
[2, "v1", "(state none)"],
|
||||
[2, "t9", "(function object)"],
|
||||
[4, "t9", "(function object)"]
|
||||
],
|
||||
|
||||
"(anon-function 4 sunken-elevator)": [
|
||||
[2, "v1", "(state none)"],
|
||||
[2, "t9", "(function object)"],
|
||||
[4, "t9", "(function object)"],
|
||||
[49, "v1", "village2cam"]
|
||||
],
|
||||
|
||||
"(anon-function 3 sunken-elevator)": [
|
||||
[13, "v0", "(state none)"]
|
||||
],
|
||||
|
||||
"(method 27 sunken-elevator)": [
|
||||
[37, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"placeholder-do-not-add-below": []
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"jak1": {
|
||||
"fileProgress": {
|
||||
"src_files_total": 514,
|
||||
"src_files_finished": 67,
|
||||
"src_files_finished": 71,
|
||||
"src_files_started": 174,
|
||||
"data_files_total": 584,
|
||||
"data_files_started": 4
|
||||
|
||||
+1
-1
@@ -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.c2633d65.css" rel="prefetch"><link href="/jak-project/js/about.9d55a69c.js" rel="prefetch"><link href="/jak-project/css/chunk-vendors.b018c88a.css" rel="preload" as="style"><link href="/jak-project/js/app.b551871a.js" rel="preload" as="script"><link href="/jak-project/js/chunk-vendors.b495df31.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.b495df31.js"></script><script src="/jak-project/js/app.b551871a.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.c2633d65.css" rel="prefetch"><link href="/jak-project/js/about.31420eeb.js" rel="prefetch"><link href="/jak-project/css/chunk-vendors.b018c88a.css" rel="preload" as="style"><link href="/jak-project/js/app.3bcfc435.js" rel="preload" as="script"><link href="/jak-project/js/chunk-vendors.b495df31.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.b495df31.js"></script><script src="/jak-project/js/app.3bcfc435.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:"9d55a69c"}[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:"c2633d65"}[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 m=r("f309");n["a"].use(m["a"]);var v=new m["a"]({theme:{dark:!0}}),b=(r("d3b7"),r("3ca3"),r("ddb0"),r("8c4f"));n["a"].use(b["a"]);var g=[{path:"/",name:"Home",component:function(){return r.e("about").then(r.bind(null,"bb51"))}}],y=new b["a"]({mode:"history",base:"/jak-project/",routes:g}),w=y;n["a"].config.productionTip=!1,new n["a"]({vuetify:v,router:w,render:function(e){return e(h)}}).$mount("#app")}});
|
||||
//# sourceMappingURL=app.b551871a.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:"31420eeb"}[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:"c2633d65"}[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 m=r("f309");n["a"].use(m["a"]);var v=new m["a"]({theme:{dark:!0}}),b=(r("d3b7"),r("3ca3"),r("ddb0"),r("8c4f"));n["a"].use(b["a"]);var g=[{path:"/",name:"Home",component:function(){return r.e("about").then(r.bind(null,"bb51"))}}],y=new b["a"]({mode:"history",base:"/jak-project/",routes:g}),w=y;n["a"].config.productionTip=!1,new n["a"]({vuetify:v,router:w,render:function(e){return e(h)}}).$mount("#app")}});
|
||||
//# sourceMappingURL=app.3bcfc435.js.map
|
||||
File diff suppressed because one or more lines are too long
@@ -187,4 +187,5 @@
|
||||
- Creating arrays on the stack now must be done with `stack-no-clear` as they are not memset to 0 or constructed in any way.
|
||||
- The register allocator has been dramatically improved and generates ~5x fewer spill instructions and is able to eliminate more moves.
|
||||
- Added a `(print-debug-compiler-stats)` form to print out statistics related to register allocation and move elimination
|
||||
- Added `get-enum-vals` which returns a list of pairs. Each pair is the name (symbol) and value (int) for each value in the enum
|
||||
- Added `get-enum-vals` which returns a list of pairs. Each pair is the name (symbol) and value (int) for each value in the enum
|
||||
- It is now possible to set a 64-bit memory location from a float, if you insert a cast. It will zero-extend the float, just like any other float -> 64-bit conversion.
|
||||
@@ -5,3 +5,5 @@
|
||||
;; name in dgo: pov-camera
|
||||
;; dgos: GAME, ENGINE
|
||||
|
||||
;; TODO - for sunken-elevator
|
||||
(define-extern pov-camera-init-by-other (function vector skeleton-group string int symbol pair none)) ;; TODO - not confirmed -- sunken-elevator
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
;; name in dgo: process-drawable
|
||||
;; dgos: GAME, ENGINE
|
||||
|
||||
;; TODO - for water-anim
|
||||
;; TODO - for water-anim | sunken-elevator
|
||||
(define-extern ja-post (function int))
|
||||
;; TODO - for rigid-body
|
||||
(define-extern rider-post (function int))
|
||||
|
||||
@@ -5,3 +5,37 @@
|
||||
;; name in dgo: plat-button
|
||||
;; dgos: GAME, COMMON, L1
|
||||
|
||||
;; TODO - for sunken-elevator
|
||||
(deftype plat-button (process-drawable)
|
||||
((root-override collide-shape-moving :score 100 :offset 112)
|
||||
(go-back-if-lost-player? symbol :offset-assert 176)
|
||||
(grab-player? symbol :offset-assert 180)
|
||||
(should-grab-player? symbol :offset-assert 184)
|
||||
(path-pos float :offset-assert 188)
|
||||
(bidirectional? symbol :offset-assert 192)
|
||||
(allow-auto-kill symbol :offset-assert 196)
|
||||
(sound-id sound-id :offset-assert 200)
|
||||
(trans-off vector :inline :offset-assert 208)
|
||||
(spawn-pos vector :inline :offset-assert 224)
|
||||
)
|
||||
:method-count-assert 33
|
||||
:size-assert #xf0
|
||||
:heap-base #x80
|
||||
:flag-assert #x21008000f0
|
||||
;; inherited inspect of process-drawable
|
||||
(:methods
|
||||
(plat-button-at-end () none 20) ;; state
|
||||
(dummy-21 () none 21)
|
||||
(plat-button-pressed () none 22) ;; state
|
||||
(plat-button-move-downward () none 23) ;; state
|
||||
(plat-button-move-upward () none 24) ;; state
|
||||
(dummy-25 () none 25)
|
||||
(dummy-26 () none 26)
|
||||
(TODO-RENAME-27 (_type_) none 27)
|
||||
(dummy-28 () none 28)
|
||||
(TODO-RENAME-29 (_type_) float 29)
|
||||
(should-teleport? (_type_) symbol 30)
|
||||
(TODO-RENAME-31 (_type_) none 31) ;; TODO - need to know super::14
|
||||
(dummy-32 () none 32)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -5,3 +5,401 @@
|
||||
;; name in dgo: sunken-elevator
|
||||
;; dgos: L1, VI2
|
||||
|
||||
;; definition of type sunken-elevator
|
||||
(deftype sunken-elevator (plat-button)
|
||||
((play-at-top-going-up-camera? symbol :offset-assert 240)
|
||||
(teleport-if-below-y float :offset-assert 244)
|
||||
(teleport-if-above-y float :offset-assert 248)
|
||||
)
|
||||
:heap-base #x90
|
||||
:method-count-assert 33
|
||||
:size-assert #xfc
|
||||
:flag-assert #x21009000fc
|
||||
)
|
||||
|
||||
(define-extern *sunken-elevator-sg* skeleton-group)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(let
|
||||
((v1-1
|
||||
(new 'static 'skeleton-group
|
||||
:art-group-name "sunken-elevator"
|
||||
:bounds
|
||||
(new 'static 'vector :y -4096.0 :w 27033.6)
|
||||
:version #x6
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-1 jgeo) 0)
|
||||
(set! (-> v1-1 janim) 2)
|
||||
(set! (-> v1-1 mgeo 0) (the-as uint 1))
|
||||
(set! (-> v1-1 lod-dist 0) 4095996000.0)
|
||||
(set! *sunken-elevator-sg* v1-1)
|
||||
)
|
||||
|
||||
;; definition for method 30 of type sunken-elevator
|
||||
(defmethod should-teleport? sunken-elevator ((obj sunken-elevator))
|
||||
(let ((f0-0 (-> (camera-pos) y)))
|
||||
(case (-> obj path-pos)
|
||||
((0.0)
|
||||
(if (< f0-0 (-> obj teleport-if-below-y))
|
||||
(return #t)
|
||||
)
|
||||
)
|
||||
((1.0)
|
||||
(if (< (-> obj teleport-if-above-y) f0-0)
|
||||
(return #t)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(let
|
||||
((gp-0
|
||||
(new 'static 'state
|
||||
:name 'plat-button-pressed
|
||||
:next #f
|
||||
:exit #f
|
||||
:code #f
|
||||
:trans #f
|
||||
:post #f
|
||||
:enter #f
|
||||
:event #f
|
||||
)
|
||||
)
|
||||
)
|
||||
(inherit-state
|
||||
gp-0
|
||||
(the-as state (method-of-type plat-button plat-button-pressed))
|
||||
)
|
||||
(method-set! sunken-elevator 22 (the-as function gp-0))
|
||||
(set!
|
||||
(-> gp-0 enter)
|
||||
(the-as
|
||||
(function object object object object object object object)
|
||||
(lambda :behavior sunken-elevator
|
||||
()
|
||||
(let
|
||||
((t9-0
|
||||
(the-as
|
||||
function
|
||||
(->
|
||||
(the-as (state none) (method-of-type plat-button plat-button-pressed))
|
||||
enter
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(if
|
||||
(the-as (function object object object object object object object) t9-0)
|
||||
((the-as (function object) t9-0))
|
||||
)
|
||||
)
|
||||
(case (-> self path-pos)
|
||||
((0.0)
|
||||
(load-state-want-display-level 'sunken 'display)
|
||||
(let ((gp-0 (get-process *default-dead-pool* village2cam #x4000)))
|
||||
(set! (-> (the-as village2cam (-> (when gp-0
|
||||
(let
|
||||
((t9-3
|
||||
(method-of-type
|
||||
village2cam
|
||||
activate
|
||||
)
|
||||
)
|
||||
)
|
||||
(t9-3
|
||||
(the-as village2cam gp-0)
|
||||
self
|
||||
'village2cam
|
||||
(the-as pointer #x70004000)
|
||||
)
|
||||
)
|
||||
(run-function-in-process
|
||||
gp-0
|
||||
pov-camera-init-by-other
|
||||
(-> self spawn-pos)
|
||||
*village2cam-sg*
|
||||
"elevator-at-top-going-down"
|
||||
0
|
||||
#f
|
||||
'()
|
||||
)
|
||||
(-> gp-0 ppointer)
|
||||
)
|
||||
0
|
||||
)
|
||||
)
|
||||
seq
|
||||
)
|
||||
(the-as uint 0)
|
||||
)
|
||||
)
|
||||
0
|
||||
)
|
||||
((1.0)
|
||||
(let* ((gp-1 (get-process *default-dead-pool* village2cam #x4000))
|
||||
(v1-10 (when gp-1
|
||||
(let ((t9-6 (method-of-type village2cam activate)))
|
||||
(t9-6
|
||||
(the-as village2cam gp-1)
|
||||
self
|
||||
'village2cam
|
||||
(the-as pointer #x70004000)
|
||||
)
|
||||
)
|
||||
(run-function-in-process
|
||||
gp-1
|
||||
pov-camera-init-by-other
|
||||
(-> self spawn-pos)
|
||||
*village2cam-sg*
|
||||
"elevator-at-top-going-down"
|
||||
0
|
||||
#f
|
||||
'()
|
||||
)
|
||||
(-> gp-1 ppointer)
|
||||
)
|
||||
)
|
||||
(v0-5 1)
|
||||
)
|
||||
(set! (-> (the-as village2cam (-> v1-10 0)) seq) (the-as uint v0-5))
|
||||
v0-5
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(let
|
||||
((gp-1
|
||||
(new 'static 'state
|
||||
:name 'plat-button-move-upward
|
||||
:next #f
|
||||
:exit #f
|
||||
:code #f
|
||||
:trans #f
|
||||
:post #f
|
||||
:enter #f
|
||||
:event #f
|
||||
)
|
||||
)
|
||||
)
|
||||
(inherit-state
|
||||
gp-1
|
||||
(the-as state (method-of-type plat-button plat-button-move-upward))
|
||||
)
|
||||
(method-set! sunken-elevator 24 (the-as function gp-1))
|
||||
(set!
|
||||
(-> gp-1 enter)
|
||||
(the-as
|
||||
(function object object object object object object object)
|
||||
(lambda :behavior sunken-elevator
|
||||
()
|
||||
(let
|
||||
((t9-0
|
||||
(the-as
|
||||
function
|
||||
(->
|
||||
(the-as
|
||||
(state none)
|
||||
(method-of-type plat-button plat-button-move-upward)
|
||||
)
|
||||
enter
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(if
|
||||
(the-as (function object object object object object object object) t9-0)
|
||||
((the-as (function object) t9-0))
|
||||
)
|
||||
)
|
||||
(let ((v0-1 #t))
|
||||
(set! (-> self play-at-top-going-up-camera?) v0-1)
|
||||
v0-1
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set!
|
||||
(-> gp-1 trans)
|
||||
(lambda :behavior sunken-elevator
|
||||
()
|
||||
(let
|
||||
((t9-0
|
||||
(->
|
||||
(the-as
|
||||
(state none)
|
||||
(method-of-type plat-button plat-button-move-upward)
|
||||
)
|
||||
trans
|
||||
)
|
||||
)
|
||||
)
|
||||
(if t9-0
|
||||
(t9-0)
|
||||
)
|
||||
)
|
||||
(when
|
||||
(and (-> self play-at-top-going-up-camera?) (>= 0.14 (-> self path-pos)))
|
||||
(set! *teleport* #t)
|
||||
(set! (-> self play-at-top-going-up-camera?) #f)
|
||||
(load-state-want-display-level 'sunken 'special)
|
||||
(let* ((gp-0 (get-process *default-dead-pool* village2cam #x4000))
|
||||
(v1-8 (when gp-0
|
||||
(let ((t9-3 (method-of-type village2cam activate)))
|
||||
(t9-3
|
||||
(the-as village2cam gp-0)
|
||||
self
|
||||
'village2cam
|
||||
(the-as pointer #x70004000)
|
||||
)
|
||||
)
|
||||
(run-function-in-process
|
||||
gp-0
|
||||
pov-camera-init-by-other
|
||||
(-> self spawn-pos)
|
||||
*village2cam-sg*
|
||||
"elevator-at-top-going-down"
|
||||
0
|
||||
#f
|
||||
'()
|
||||
)
|
||||
(-> gp-0 ppointer)
|
||||
)
|
||||
)
|
||||
(v0-1 2)
|
||||
)
|
||||
(set! (-> (the-as village2cam (-> v1-8 0)) seq) (the-as uint v0-1))
|
||||
v0-1
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(let
|
||||
((gp-2
|
||||
(new 'static 'state
|
||||
:name 'plat-button-move-downward
|
||||
:next #f
|
||||
:exit #f
|
||||
:code #f
|
||||
:trans #f
|
||||
:post #f
|
||||
:enter #f
|
||||
:event #f
|
||||
)
|
||||
)
|
||||
)
|
||||
(inherit-state
|
||||
gp-2
|
||||
(the-as state (method-of-type plat-button plat-button-move-downward))
|
||||
)
|
||||
(method-set! sunken-elevator 23 (the-as function gp-2))
|
||||
(set!
|
||||
(-> gp-2 trans)
|
||||
(lambda :behavior sunken-elevator
|
||||
()
|
||||
(let ((s5-0 (new 'stack-no-clear 'vector))
|
||||
(gp-0 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(set! *teleport* #t)
|
||||
(set! (-> s5-0 quad) (-> self root-override trans quad))
|
||||
(let
|
||||
((t9-1
|
||||
(-> (the-as (state none) (find-parent-method sunken-elevator 23)) trans)
|
||||
)
|
||||
)
|
||||
(if t9-1
|
||||
(t9-1)
|
||||
)
|
||||
)
|
||||
(vector-! gp-0 (-> self root-override trans) s5-0)
|
||||
)
|
||||
(when (< (-> self path-pos) 0.9)
|
||||
((method-of-object (-> *target* control) dummy-28))
|
||||
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-2 from) self)
|
||||
(set! (-> a1-2 num-params) 0)
|
||||
(set! (-> a1-2 message) 'reset-height)
|
||||
(send-event-function *target* a1-2)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 29 of type sunken-elevator
|
||||
(defmethod TODO-RENAME-29 sunken-elevator ((obj sunken-elevator))
|
||||
(set! (-> obj play-at-top-going-up-camera?) #f)
|
||||
(let ((s5-0 (new 'stack-no-clear 'vector)))
|
||||
(eval-path-curve! (-> obj path) s5-0 0.4 'interp)
|
||||
(set! (-> obj teleport-if-above-y) (-> s5-0 y))
|
||||
(eval-path-curve! (-> obj path) s5-0 0.6 'interp)
|
||||
(let ((f0-1 (-> s5-0 y)))
|
||||
(set! (-> obj teleport-if-below-y) f0-1)
|
||||
f0-1
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 27 of type sunken-elevator
|
||||
(defmethod TODO-RENAME-27 sunken-elevator ((obj sunken-elevator))
|
||||
(ja-channel-set! 1)
|
||||
(cond
|
||||
(((method-of-object obj dummy-26))
|
||||
(let ((s5-0 (-> obj skel root-channel 0)))
|
||||
(joint-control-channel-group-eval!
|
||||
s5-0
|
||||
(the-as art-joint-anim (-> obj draw art-group data 2))
|
||||
num-func-identity
|
||||
)
|
||||
(set! (-> s5-0 frame-num) 0.0)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let ((s5-1 (-> obj skel root-channel 0)))
|
||||
(joint-control-channel-group-eval!
|
||||
s5-1
|
||||
(the-as art-joint-anim (-> obj draw art-group data 2))
|
||||
num-func-identity
|
||||
)
|
||||
(set!
|
||||
(-> s5-1 frame-num)
|
||||
(the
|
||||
float
|
||||
(+
|
||||
(->
|
||||
(the-as art-joint-anim (-> obj draw art-group data 2))
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(ja-post)
|
||||
(dummy-47 (-> obj root-override))
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 31 of type sunken-elevator
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod TODO-RENAME-31 sunken-elevator ((obj sunken-elevator))
|
||||
(dummy-14 obj *sunken-elevator-sg* '())
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
@@ -5,3 +5,13 @@
|
||||
;; name in dgo: village2-obs
|
||||
;; dgos: L1, VI2
|
||||
|
||||
;; TODO - for sunken-elevator
|
||||
(deftype village2cam (pov-camera)
|
||||
((seq uint64 :offset-assert 224)
|
||||
)
|
||||
:method-count-assert 30
|
||||
:heap-base #x80
|
||||
:size-assert #xe8
|
||||
:flag-assert #x1e008000e8
|
||||
)
|
||||
(define-extern *village2cam-sg* skeleton-group)
|
||||
|
||||
@@ -226,6 +226,7 @@ Val* Compiler::do_set(const goos::Object& form, Val* dest, RegVal* src_in_reg, V
|
||||
src_in_reg = src_128;
|
||||
}
|
||||
|
||||
// we want to allow setting a smaller thing from a 128-bit variable
|
||||
if (as_mem_deref->info.size != 16 && (src_in_reg->ireg().reg_class == RegClass::VECTOR_FLOAT ||
|
||||
src_in_reg->ireg().reg_class == RegClass::INT_128)) {
|
||||
auto fe = get_parent_env_of_type<FunctionEnv>(env);
|
||||
@@ -234,6 +235,14 @@ Val* Compiler::do_set(const goos::Object& form, Val* dest, RegVal* src_in_reg, V
|
||||
src_in_reg = src_gpr;
|
||||
}
|
||||
|
||||
// we want to allow setting a 64-bit place to a float
|
||||
if (as_mem_deref->info.size == 8 && src_in_reg->ireg().reg_class == RegClass::FLOAT) {
|
||||
auto fe = get_parent_env_of_type<FunctionEnv>(env);
|
||||
auto src_gpr = fe->make_ireg(src_in_reg->type(), RegClass::GPR_64);
|
||||
env->emit_ir<IR_RegSet>(src_gpr, src_in_reg);
|
||||
src_in_reg = src_gpr;
|
||||
}
|
||||
|
||||
// setting somewhere in memory
|
||||
auto base = as_mem_deref->base;
|
||||
auto base_as_mco = dynamic_cast<MemoryOffsetConstantVal*>(base);
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
import os
|
||||
|
||||
new_file = []
|
||||
with open("./decompiler/config/all-types.gc") as f:
|
||||
symbols_found = []
|
||||
lines = f.readlines()
|
||||
|
||||
for line_num, line in enumerate(lines):
|
||||
if "flag-assert" in line:
|
||||
heap_base_amount = ""
|
||||
flag_assert = line.split("#x")[1].strip()
|
||||
heap_base_amount = flag_assert[len(flag_assert)-7:len(flag_assert)-4]
|
||||
if len(flag_assert) > 1 and heap_base_amount != "000":
|
||||
# First let's check to see if the heap-base already exists around this line
|
||||
found_heapbase = False
|
||||
for i in range(line_num - 4, line_num + 3):
|
||||
temp_line = lines[i]
|
||||
if "heap-base" in temp_line:
|
||||
found_heapbase = True
|
||||
break
|
||||
if found_heapbase == False:
|
||||
if line.startswith(";"):
|
||||
new_file.append("; :heap-base #x{}\n".format(heap_base_amount.lstrip("0")))
|
||||
else:
|
||||
new_file.append(" :heap-base #x{}\n".format(heap_base_amount.lstrip("0")))
|
||||
new_file.append(line)
|
||||
|
||||
os.remove("./decompiler/config/all-types.gc")
|
||||
with open("./decompiler/config/all-types.gc", "w") as f:
|
||||
f.writelines(new_file)
|
||||
@@ -0,0 +1,418 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type sunken-elevator
|
||||
(deftype sunken-elevator (plat-button)
|
||||
((play-at-top-going-up-camera? symbol :offset-assert 240)
|
||||
(teleport-if-below-y float :offset-assert 244)
|
||||
(teleport-if-above-y float :offset-assert 248)
|
||||
)
|
||||
:heap-base #x90
|
||||
:method-count-assert 33
|
||||
:size-assert #xfc
|
||||
:flag-assert #x21009000fc
|
||||
)
|
||||
|
||||
;; definition for method 3 of type sunken-elevator
|
||||
(defmethod inspect sunken-elevator ((obj sunken-elevator))
|
||||
(let ((t9-0 (method-of-type plat-button inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format
|
||||
#t
|
||||
"~T~Tplay-at-top-going-up-camera?: ~A~%"
|
||||
(-> obj play-at-top-going-up-camera?)
|
||||
)
|
||||
(format #t "~T~Tteleport-if-below-y: ~f~%" (-> obj teleport-if-below-y))
|
||||
(format #t "~T~Tteleport-if-above-y: ~f~%" (-> obj teleport-if-above-y))
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(let
|
||||
((v1-1
|
||||
(new 'static 'skeleton-group
|
||||
:art-group-name "sunken-elevator"
|
||||
:bounds
|
||||
(new 'static 'vector :y -4096.0 :w 27033.6)
|
||||
:version #x6
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-1 jgeo) 0)
|
||||
(set! (-> v1-1 janim) 2)
|
||||
(set! (-> v1-1 mgeo 0) (the-as uint 1))
|
||||
(set! (-> v1-1 lod-dist 0) 4095996000.0)
|
||||
(set! *sunken-elevator-sg* v1-1)
|
||||
)
|
||||
|
||||
;; definition for method 30 of type sunken-elevator
|
||||
(defmethod should-teleport? sunken-elevator ((obj sunken-elevator))
|
||||
(let ((f0-0 (-> (camera-pos) y)))
|
||||
(case (-> obj path-pos)
|
||||
((0.0)
|
||||
(if (< f0-0 (-> obj teleport-if-below-y))
|
||||
(return #t)
|
||||
)
|
||||
)
|
||||
((1.0)
|
||||
(if (< (-> obj teleport-if-above-y) f0-0)
|
||||
(return #t)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(let
|
||||
((gp-0
|
||||
(new 'static 'state
|
||||
:name 'plat-button-pressed
|
||||
:next #f
|
||||
:exit #f
|
||||
:code #f
|
||||
:trans #f
|
||||
:post #f
|
||||
:enter #f
|
||||
:event #f
|
||||
)
|
||||
)
|
||||
)
|
||||
(inherit-state
|
||||
gp-0
|
||||
(the-as state (method-of-type plat-button plat-button-pressed))
|
||||
)
|
||||
(method-set! sunken-elevator 22 (the-as function gp-0))
|
||||
(set!
|
||||
(-> gp-0 enter)
|
||||
(the-as
|
||||
(function object object object object object object object)
|
||||
(lambda :behavior sunken-elevator
|
||||
()
|
||||
(let
|
||||
((t9-0
|
||||
(the-as
|
||||
function
|
||||
(->
|
||||
(the-as (state none) (method-of-type plat-button plat-button-pressed))
|
||||
enter
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(if
|
||||
(the-as (function object object object object object object object) t9-0)
|
||||
((the-as (function object) t9-0))
|
||||
)
|
||||
)
|
||||
(case (-> self path-pos)
|
||||
((0.0)
|
||||
(load-state-want-display-level 'sunken 'display)
|
||||
(let ((gp-0 (get-process *default-dead-pool* village2cam #x4000)))
|
||||
(set! (-> (the-as village2cam (-> (when gp-0
|
||||
(let
|
||||
((t9-3
|
||||
(method-of-type
|
||||
village2cam
|
||||
activate
|
||||
)
|
||||
)
|
||||
)
|
||||
(t9-3
|
||||
(the-as village2cam gp-0)
|
||||
self
|
||||
'village2cam
|
||||
(the-as pointer #x70004000)
|
||||
)
|
||||
)
|
||||
(run-function-in-process
|
||||
gp-0
|
||||
pov-camera-init-by-other
|
||||
(-> self spawn-pos)
|
||||
*village2cam-sg*
|
||||
"elevator-at-top-going-down"
|
||||
0
|
||||
#f
|
||||
'()
|
||||
)
|
||||
(-> gp-0 ppointer)
|
||||
)
|
||||
0
|
||||
)
|
||||
)
|
||||
seq
|
||||
)
|
||||
(the-as uint 0)
|
||||
)
|
||||
)
|
||||
0
|
||||
)
|
||||
((1.0)
|
||||
(let* ((gp-1 (get-process *default-dead-pool* village2cam #x4000))
|
||||
(v1-10 (when gp-1
|
||||
(let ((t9-6 (method-of-type village2cam activate)))
|
||||
(t9-6
|
||||
(the-as village2cam gp-1)
|
||||
self
|
||||
'village2cam
|
||||
(the-as pointer #x70004000)
|
||||
)
|
||||
)
|
||||
(run-function-in-process
|
||||
gp-1
|
||||
pov-camera-init-by-other
|
||||
(-> self spawn-pos)
|
||||
*village2cam-sg*
|
||||
"elevator-at-top-going-down"
|
||||
0
|
||||
#f
|
||||
'()
|
||||
)
|
||||
(-> gp-1 ppointer)
|
||||
)
|
||||
)
|
||||
(v0-5 1)
|
||||
)
|
||||
(set! (-> (the-as village2cam (-> v1-10 0)) seq) (the-as uint v0-5))
|
||||
v0-5
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(let
|
||||
((gp-1
|
||||
(new 'static 'state
|
||||
:name 'plat-button-move-upward
|
||||
:next #f
|
||||
:exit #f
|
||||
:code #f
|
||||
:trans #f
|
||||
:post #f
|
||||
:enter #f
|
||||
:event #f
|
||||
)
|
||||
)
|
||||
)
|
||||
(inherit-state
|
||||
gp-1
|
||||
(the-as state (method-of-type plat-button plat-button-move-upward))
|
||||
)
|
||||
(method-set! sunken-elevator 24 (the-as function gp-1))
|
||||
(set!
|
||||
(-> gp-1 enter)
|
||||
(the-as
|
||||
(function object object object object object object object)
|
||||
(lambda :behavior sunken-elevator
|
||||
()
|
||||
(let
|
||||
((t9-0
|
||||
(the-as
|
||||
function
|
||||
(->
|
||||
(the-as
|
||||
(state none)
|
||||
(method-of-type plat-button plat-button-move-upward)
|
||||
)
|
||||
enter
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(if
|
||||
(the-as (function object object object object object object object) t9-0)
|
||||
((the-as (function object) t9-0))
|
||||
)
|
||||
)
|
||||
(let ((v0-1 #t))
|
||||
(set! (-> self play-at-top-going-up-camera?) v0-1)
|
||||
v0-1
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set!
|
||||
(-> gp-1 trans)
|
||||
(lambda :behavior sunken-elevator
|
||||
()
|
||||
(let
|
||||
((t9-0
|
||||
(->
|
||||
(the-as
|
||||
(state none)
|
||||
(method-of-type plat-button plat-button-move-upward)
|
||||
)
|
||||
trans
|
||||
)
|
||||
)
|
||||
)
|
||||
(if t9-0
|
||||
(t9-0)
|
||||
)
|
||||
)
|
||||
(when
|
||||
(and (-> self play-at-top-going-up-camera?) (>= 0.14 (-> self path-pos)))
|
||||
(set! *teleport* #t)
|
||||
(set! (-> self play-at-top-going-up-camera?) #f)
|
||||
(load-state-want-display-level 'sunken 'special)
|
||||
(let* ((gp-0 (get-process *default-dead-pool* village2cam #x4000))
|
||||
(v1-8 (when gp-0
|
||||
(let ((t9-3 (method-of-type village2cam activate)))
|
||||
(t9-3
|
||||
(the-as village2cam gp-0)
|
||||
self
|
||||
'village2cam
|
||||
(the-as pointer #x70004000)
|
||||
)
|
||||
)
|
||||
(run-function-in-process
|
||||
gp-0
|
||||
pov-camera-init-by-other
|
||||
(-> self spawn-pos)
|
||||
*village2cam-sg*
|
||||
"elevator-at-top-going-down"
|
||||
0
|
||||
#f
|
||||
'()
|
||||
)
|
||||
(-> gp-0 ppointer)
|
||||
)
|
||||
)
|
||||
(v0-1 2)
|
||||
)
|
||||
(set! (-> (the-as village2cam (-> v1-8 0)) seq) (the-as uint v0-1))
|
||||
v0-1
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(let
|
||||
((gp-2
|
||||
(new 'static 'state
|
||||
:name 'plat-button-move-downward
|
||||
:next #f
|
||||
:exit #f
|
||||
:code #f
|
||||
:trans #f
|
||||
:post #f
|
||||
:enter #f
|
||||
:event #f
|
||||
)
|
||||
)
|
||||
)
|
||||
(inherit-state
|
||||
gp-2
|
||||
(the-as state (method-of-type plat-button plat-button-move-downward))
|
||||
)
|
||||
(method-set! sunken-elevator 23 (the-as function gp-2))
|
||||
(set!
|
||||
(-> gp-2 trans)
|
||||
(lambda :behavior sunken-elevator
|
||||
()
|
||||
(let ((s5-0 (new 'stack-no-clear 'vector))
|
||||
(gp-0 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(set! *teleport* #t)
|
||||
(set! (-> s5-0 quad) (-> self root-override trans quad))
|
||||
(let
|
||||
((t9-1
|
||||
(-> (the-as (state none) (find-parent-method sunken-elevator 23)) trans)
|
||||
)
|
||||
)
|
||||
(if t9-1
|
||||
(t9-1)
|
||||
)
|
||||
)
|
||||
(vector-! gp-0 (-> self root-override trans) s5-0)
|
||||
)
|
||||
(when (< (-> self path-pos) 0.9)
|
||||
((method-of-object (-> *target* control) dummy-28))
|
||||
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-2 from) self)
|
||||
(set! (-> a1-2 num-params) 0)
|
||||
(set! (-> a1-2 message) 'reset-height)
|
||||
(send-event-function *target* a1-2)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 29 of type sunken-elevator
|
||||
(defmethod TODO-RENAME-29 sunken-elevator ((obj sunken-elevator))
|
||||
(set! (-> obj play-at-top-going-up-camera?) #f)
|
||||
(let ((s5-0 (new 'stack-no-clear 'vector)))
|
||||
(eval-path-curve! (-> obj path) s5-0 0.4 'interp)
|
||||
(set! (-> obj teleport-if-above-y) (-> s5-0 y))
|
||||
(eval-path-curve! (-> obj path) s5-0 0.6 'interp)
|
||||
(let ((f0-1 (-> s5-0 y)))
|
||||
(set! (-> obj teleport-if-below-y) f0-1)
|
||||
f0-1
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 27 of type sunken-elevator
|
||||
(defmethod TODO-RENAME-27 sunken-elevator ((obj sunken-elevator))
|
||||
(ja-channel-set! 1)
|
||||
(cond
|
||||
(((method-of-object obj dummy-26))
|
||||
(let ((s5-0 (-> obj skel root-channel 0)))
|
||||
(joint-control-channel-group-eval!
|
||||
s5-0
|
||||
(the-as art-joint-anim (-> obj draw art-group data 2))
|
||||
num-func-identity
|
||||
)
|
||||
(set! (-> s5-0 frame-num) 0.0)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let ((s5-1 (-> obj skel root-channel 0)))
|
||||
(joint-control-channel-group-eval!
|
||||
s5-1
|
||||
(the-as art-joint-anim (-> obj draw art-group data 2))
|
||||
num-func-identity
|
||||
)
|
||||
(set!
|
||||
(-> s5-1 frame-num)
|
||||
(the
|
||||
float
|
||||
(+
|
||||
(->
|
||||
(the-as art-joint-anim (-> obj draw art-group data 2))
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(ja-post)
|
||||
(dummy-47 (-> obj root-override))
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 31 of type sunken-elevator
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod TODO-RENAME-31 sunken-elevator ((obj sunken-elevator))
|
||||
(dummy-14 obj *sunken-elevator-sg* '())
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
(let ((a (new 'stack-no-clear 'array 'float 4))
|
||||
(b (new 'stack-no-clear 'array 'uint64 2))
|
||||
)
|
||||
(set! (-> b 0) #xbbbbbbbbbbbbbbbb)
|
||||
(set! (-> a 0) 12.0)
|
||||
(set! (-> b 0) (the-as uint (- (-> a 0))))
|
||||
(format #t "~f #x~X #x~X #x~X~%" (-> b 0) (-> b 0) (-> (the-as (pointer uint32) b) 0) (-> (the-as (pointer uint32) b) 1))
|
||||
)
|
||||
@@ -871,6 +871,11 @@ TEST_F(WithGameTests, GetEnumVals) {
|
||||
"(thing5 . #<invalid object #x5>))\n0\n"});
|
||||
}
|
||||
|
||||
TEST_F(WithGameTests, SetU64FromFloat) {
|
||||
runner.run_static_test(env, testCategory, "test-set-u64-from-float.gc",
|
||||
{"-12.0000 #xc1400000 #xc1400000 #x0\n0\n"});
|
||||
}
|
||||
|
||||
TEST(TypeConsistency, TypeConsistency) {
|
||||
Compiler compiler;
|
||||
compiler.enable_throw_on_redefines();
|
||||
|
||||
Reference in New Issue
Block a user