mirror of
https://github.com/open-goal/jak-project
synced 2026-09-03 02:14:07 -04:00
deftype and defmethod syntax major changes (#3094)
Major change to how `deftype` shows up in our code: - the decompiler will no longer emit the `offset-assert`, `method-count-assert`, `size-assert` and `flag-assert` parameters. There are extremely few cases where having this in the decompiled code is helpful, as the types there come from `all-types` which already has those parameters. This also doesn't break type consistency because: - the asserts aren't compared. - the first step of the test uses `all-types`, which has the asserts, which will throw an error if they're bad. - the decompiler won't emit the `heap-base` parameter unless necessary now. - the decompiler will try its hardest to turn a fixed-offset field into an `overlay-at` field. It falls back to the old offset if all else fails. - `overlay-at` now supports field "dereferencing" to specify the offset that's within a field that's a structure, e.g.: ```lisp (deftype foobar (structure) ((vec vector :inline) (flags int32 :overlay-at (-> vec w)) ) ) ``` in this structure, the offset of `flags` will be 12 because that is the final offset of `vec`'s `w` field within this structure. - **removed ID from all method declarations.** IDs are only ever automatically assigned now. Fixes #3068. - added an `:overlay` parameter to method declarations, in order to declare a new method that goes on top of a previously-defined method. Syntax is `:overlay <method-name>`. Please do not ever use this. - added `state-methods` list parameter. This lets you quickly specify a list of states to be put in the method table. Same syntax as the `states` list parameter. The decompiler will try to put as many states in this as it can without messing with the method ID order. Also changes `defmethod` to make the first type definition (before the arguments) optional. The type can now be inferred from the first argument. Fixes #3093. --------- Co-authored-by: Hat Kid <6624576+Hat-Kid@users.noreply.github.com>
This commit is contained in:
+41
-44
@@ -34,37 +34,34 @@
|
||||
|
||||
;; definition of type actor-link-info
|
||||
(deftype actor-link-info (basic)
|
||||
((process process :offset-assert 4)
|
||||
(next entity-actor :offset-assert 8)
|
||||
(prev entity-actor :offset-assert 12)
|
||||
((process process)
|
||||
(next entity-actor)
|
||||
(prev entity-actor)
|
||||
)
|
||||
:method-count-assert 26
|
||||
:size-assert #x10
|
||||
:flag-assert #x1a00000010
|
||||
(:methods
|
||||
(new (symbol type process symbol) _type_ 0)
|
||||
(get-matching-actor-type-mask (_type_ type) int 9)
|
||||
(actor-count-before (_type_) int 10)
|
||||
(link-to-next-and-prev-actor (_type_) actor-link-info 11)
|
||||
(get-next (_type_) entity-actor 12)
|
||||
(get-prev (_type_) entity-actor 13)
|
||||
(get-next-process (_type_) process 14)
|
||||
(get-prev-process (_type_) process 15)
|
||||
(apply-function-forward (_type_ (function entity-actor object object) object) int 16)
|
||||
(apply-function-reverse (_type_ (function entity-actor object object) object) int 17)
|
||||
(apply-all (_type_ (function entity-actor object object) object) int 18)
|
||||
(send-to-all (_type_ symbol) none 19)
|
||||
(send-to-all-after (_type_ symbol) object 20)
|
||||
(send-to-all-before (_type_ symbol) object 21)
|
||||
(send-to-next-and-prev (_type_ symbol) none 22)
|
||||
(send-to-next (_type_ symbol) none 23)
|
||||
(send-to-prev (_type_ symbol) none 24)
|
||||
(actor-count (_type_) int 25)
|
||||
(new (symbol type process symbol) _type_)
|
||||
(get-matching-actor-type-mask (_type_ type) int)
|
||||
(actor-count-before (_type_) int)
|
||||
(link-to-next-and-prev-actor (_type_) actor-link-info)
|
||||
(get-next (_type_) entity-actor)
|
||||
(get-prev (_type_) entity-actor)
|
||||
(get-next-process (_type_) process)
|
||||
(get-prev-process (_type_) process)
|
||||
(apply-function-forward (_type_ (function entity-actor object object) object) int)
|
||||
(apply-function-reverse (_type_ (function entity-actor object object) object) int)
|
||||
(apply-all (_type_ (function entity-actor object object) object) int)
|
||||
(send-to-all (_type_ symbol) none)
|
||||
(send-to-all-after (_type_ symbol) object)
|
||||
(send-to-all-before (_type_ symbol) object)
|
||||
(send-to-next-and-prev (_type_ symbol) none)
|
||||
(send-to-next (_type_ symbol) none)
|
||||
(send-to-prev (_type_ symbol) none)
|
||||
(actor-count (_type_) int)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type actor-link-info
|
||||
(defmethod inspect actor-link-info ((this actor-link-info))
|
||||
(defmethod inspect ((this actor-link-info))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
@@ -78,12 +75,12 @@
|
||||
)
|
||||
|
||||
;; definition for method 27 of type entity-actor
|
||||
(defmethod next-actor entity-actor ((this entity-actor))
|
||||
(defmethod next-actor ((this entity-actor))
|
||||
(entity-actor-lookup this 'next-actor 0)
|
||||
)
|
||||
|
||||
;; definition for method 28 of type entity-actor
|
||||
(defmethod prev-actor entity-actor ((this entity-actor))
|
||||
(defmethod prev-actor ((this entity-actor))
|
||||
(entity-actor-lookup this 'prev-actor 0)
|
||||
)
|
||||
|
||||
@@ -106,29 +103,29 @@
|
||||
)
|
||||
|
||||
;; definition for method 12 of type actor-link-info
|
||||
(defmethod get-next actor-link-info ((this actor-link-info))
|
||||
(defmethod get-next ((this actor-link-info))
|
||||
(-> this next)
|
||||
)
|
||||
|
||||
;; definition for method 13 of type actor-link-info
|
||||
(defmethod get-prev actor-link-info ((this actor-link-info))
|
||||
(defmethod get-prev ((this actor-link-info))
|
||||
(-> this prev)
|
||||
)
|
||||
|
||||
;; definition for method 14 of type actor-link-info
|
||||
;; WARN: Return type mismatch basic vs process.
|
||||
(defmethod get-next-process actor-link-info ((this actor-link-info))
|
||||
(defmethod get-next-process ((this actor-link-info))
|
||||
(the-as process (and (-> this next) (-> this next extra process)))
|
||||
)
|
||||
|
||||
;; definition for method 15 of type actor-link-info
|
||||
;; WARN: Return type mismatch basic vs process.
|
||||
(defmethod get-prev-process actor-link-info ((this actor-link-info))
|
||||
(defmethod get-prev-process ((this actor-link-info))
|
||||
(the-as process (and (-> this prev) (-> this prev extra process)))
|
||||
)
|
||||
|
||||
;; definition for method 11 of type actor-link-info
|
||||
(defmethod link-to-next-and-prev-actor actor-link-info ((this actor-link-info))
|
||||
(defmethod link-to-next-and-prev-actor ((this actor-link-info))
|
||||
(let ((a0-1 (-> this process entity)))
|
||||
(set! (-> this next) (entity-actor-lookup a0-1 'next-actor 0))
|
||||
)
|
||||
@@ -139,7 +136,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 16 of type actor-link-info
|
||||
(defmethod apply-function-forward actor-link-info ((this actor-link-info) (arg0 (function entity-actor object object)) (arg1 object))
|
||||
(defmethod apply-function-forward ((this actor-link-info) (arg0 (function entity-actor object object)) (arg1 object))
|
||||
(let ((s3-0 (-> this next)))
|
||||
(while s3-0
|
||||
(if (arg0 s3-0 arg1)
|
||||
@@ -152,7 +149,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 17 of type actor-link-info
|
||||
(defmethod apply-function-reverse actor-link-info ((this actor-link-info) (arg0 (function entity-actor object object)) (arg1 object))
|
||||
(defmethod apply-function-reverse ((this actor-link-info) (arg0 (function entity-actor object object)) (arg1 object))
|
||||
(let ((s3-0 (-> this prev)))
|
||||
(while s3-0
|
||||
(if (arg0 s3-0 arg1)
|
||||
@@ -165,7 +162,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 18 of type actor-link-info
|
||||
(defmethod apply-all actor-link-info ((this actor-link-info) (arg0 (function entity-actor object object)) (arg1 object))
|
||||
(defmethod apply-all ((this actor-link-info) (arg0 (function entity-actor object object)) (arg1 object))
|
||||
(let ((s4-0 (-> this process entity)))
|
||||
(while (let ((a0-2 s4-0))
|
||||
(entity-actor-lookup a0-2 'prev-actor 0)
|
||||
@@ -185,7 +182,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 20 of type actor-link-info
|
||||
(defmethod send-to-all-after actor-link-info ((this actor-link-info) (arg0 symbol))
|
||||
(defmethod send-to-all-after ((this actor-link-info) (arg0 symbol))
|
||||
(with-pp
|
||||
(let ((s4-0 (-> this next))
|
||||
(s5-0 (the-as object #f))
|
||||
@@ -209,7 +206,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 21 of type actor-link-info
|
||||
(defmethod send-to-all-before actor-link-info ((this actor-link-info) (arg0 symbol))
|
||||
(defmethod send-to-all-before ((this actor-link-info) (arg0 symbol))
|
||||
(with-pp
|
||||
(let ((s4-0 (-> this prev))
|
||||
(s5-0 (the-as object #f))
|
||||
@@ -234,7 +231,7 @@
|
||||
|
||||
;; definition for method 23 of type actor-link-info
|
||||
;; WARN: Return type mismatch symbol vs none.
|
||||
(defmethod send-to-next actor-link-info ((this actor-link-info) (arg0 symbol))
|
||||
(defmethod send-to-next ((this actor-link-info) (arg0 symbol))
|
||||
(let ((a0-1 (-> this next)))
|
||||
(when a0-1
|
||||
(let ((a0-2 (-> a0-1 extra process)))
|
||||
@@ -249,7 +246,7 @@
|
||||
|
||||
;; definition for method 24 of type actor-link-info
|
||||
;; WARN: Return type mismatch symbol vs none.
|
||||
(defmethod send-to-prev actor-link-info ((this actor-link-info) (arg0 symbol))
|
||||
(defmethod send-to-prev ((this actor-link-info) (arg0 symbol))
|
||||
(let ((a0-1 (-> this prev)))
|
||||
(when a0-1
|
||||
(let ((a0-2 (-> a0-1 extra process)))
|
||||
@@ -264,7 +261,7 @@
|
||||
|
||||
;; definition for method 22 of type actor-link-info
|
||||
;; WARN: Return type mismatch symbol vs none.
|
||||
(defmethod send-to-next-and-prev actor-link-info ((this actor-link-info) (arg0 symbol))
|
||||
(defmethod send-to-next-and-prev ((this actor-link-info) (arg0 symbol))
|
||||
(send-to-next this arg0)
|
||||
(send-to-prev this arg0)
|
||||
(none)
|
||||
@@ -272,14 +269,14 @@
|
||||
|
||||
;; definition for method 19 of type actor-link-info
|
||||
;; WARN: Return type mismatch symbol vs none.
|
||||
(defmethod send-to-all actor-link-info ((this actor-link-info) (arg0 symbol))
|
||||
(defmethod send-to-all ((this actor-link-info) (arg0 symbol))
|
||||
(send-to-all-after this arg0)
|
||||
(send-to-all-before this arg0)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 25 of type actor-link-info
|
||||
(defmethod actor-count actor-link-info ((this actor-link-info))
|
||||
(defmethod actor-count ((this actor-link-info))
|
||||
(let ((s5-0 (-> this process entity))
|
||||
(gp-0 0)
|
||||
)
|
||||
@@ -299,7 +296,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 9 of type actor-link-info
|
||||
(defmethod get-matching-actor-type-mask actor-link-info ((this actor-link-info) (arg0 type))
|
||||
(defmethod get-matching-actor-type-mask ((this actor-link-info) (arg0 type))
|
||||
(let ((s3-0 (-> this process entity))
|
||||
(s5-0 0)
|
||||
)
|
||||
@@ -324,7 +321,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 10 of type actor-link-info
|
||||
(defmethod actor-count-before actor-link-info ((this actor-link-info))
|
||||
(defmethod actor-count-before ((this actor-link-info))
|
||||
(let* ((s5-0 (-> this process entity))
|
||||
(s4-0 s5-0)
|
||||
(gp-0 0)
|
||||
|
||||
+75
-114
@@ -12,32 +12,29 @@
|
||||
|
||||
;; definition of type entity-perm
|
||||
(deftype entity-perm (structure)
|
||||
((user-object object 2 :offset-assert 0)
|
||||
(user-uint64 uint64 :offset 0)
|
||||
(user-float float 2 :offset 0)
|
||||
(user-int32 int32 2 :offset 0)
|
||||
(user-uint32 uint32 2 :offset 0)
|
||||
(user-int16 int16 4 :offset 0)
|
||||
(user-uint16 uint16 4 :offset 0)
|
||||
(user-int8 int8 8 :offset 0)
|
||||
(user-uint8 uint8 8 :offset 0)
|
||||
(status entity-perm-status :offset 8)
|
||||
(dummy uint8 1 :offset 10)
|
||||
(task game-task :offset 11)
|
||||
(aid actor-id :offset 12)
|
||||
(quad uint128 :offset 0)
|
||||
((user-object object 2)
|
||||
(user-uint64 uint64 :overlay-at (-> user-object 0))
|
||||
(user-float float 2 :overlay-at (-> user-object 0))
|
||||
(user-int32 int32 2 :overlay-at (-> user-object 0))
|
||||
(user-uint32 uint32 2 :overlay-at (-> user-object 0))
|
||||
(user-int16 int16 4 :overlay-at (-> user-object 0))
|
||||
(user-uint16 uint16 4 :overlay-at (-> user-object 0))
|
||||
(user-int8 int8 8 :overlay-at (-> user-object 0))
|
||||
(user-uint8 uint8 8 :overlay-at (-> user-object 0))
|
||||
(status entity-perm-status :offset 8)
|
||||
(dummy uint8 1 :offset 10)
|
||||
(task game-task :offset 11)
|
||||
(aid actor-id :offset 12)
|
||||
(quad uint128 :overlay-at (-> user-object 0))
|
||||
)
|
||||
:method-count-assert 10
|
||||
:size-assert #x10
|
||||
:flag-assert #xa00000010
|
||||
(:methods
|
||||
(update (_type_ symbol entity-perm-status) _type_ 9)
|
||||
(update (_type_ symbol entity-perm-status) _type_)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type entity-perm
|
||||
;; INFO: Used lq/sq
|
||||
(defmethod inspect entity-perm ((this entity-perm))
|
||||
(defmethod inspect ((this entity-perm))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
@@ -63,30 +60,27 @@
|
||||
|
||||
;; definition of type entity-links
|
||||
(deftype entity-links (structure)
|
||||
((prev-link entity-links :offset-assert 0)
|
||||
(next-link entity-links :offset-assert 4)
|
||||
(entity entity :offset-assert 8)
|
||||
(process process :offset-assert 12)
|
||||
(level level :offset-assert 16)
|
||||
(vis-id int32 :offset-assert 20)
|
||||
(kill-mask task-mask :offset-assert 24)
|
||||
(vis-dist meters :offset-assert 28)
|
||||
(trans vector :inline :offset-assert 32)
|
||||
(perm entity-perm :inline :offset-assert 48)
|
||||
(status uint16 :offset 56)
|
||||
(aid uint32 :offset 60)
|
||||
(task uint8 :offset 59)
|
||||
((prev-link entity-links)
|
||||
(next-link entity-links)
|
||||
(entity entity)
|
||||
(process process)
|
||||
(level level)
|
||||
(vis-id int32)
|
||||
(kill-mask task-mask)
|
||||
(vis-dist meters)
|
||||
(trans vector :inline)
|
||||
(perm entity-perm :inline)
|
||||
(status uint16 :overlay-at (-> perm status))
|
||||
(aid uint32 :overlay-at (-> perm aid))
|
||||
(task uint8 :overlay-at (-> perm task))
|
||||
)
|
||||
:method-count-assert 10
|
||||
:size-assert #x40
|
||||
:flag-assert #xa00000040
|
||||
(:methods
|
||||
(birth? (_type_ vector) symbol 9)
|
||||
(birth? (_type_ vector) symbol)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type entity-links
|
||||
(defmethod inspect entity-links ((this entity-links))
|
||||
(defmethod inspect ((this entity-links))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-42)
|
||||
@@ -171,15 +165,12 @@
|
||||
|
||||
;; definition of type entity-perm-array
|
||||
(deftype entity-perm-array (inline-array-class)
|
||||
((data entity-perm :inline :dynamic :offset-assert 16)
|
||||
((data entity-perm :inline :dynamic)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x10
|
||||
:flag-assert #x900000010
|
||||
)
|
||||
|
||||
;; definition for method 3 of type entity-perm-array
|
||||
(defmethod inspect entity-perm-array ((this entity-perm-array))
|
||||
(defmethod inspect ((this entity-perm-array))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
@@ -197,15 +188,12 @@
|
||||
|
||||
;; definition of type entity-links-array
|
||||
(deftype entity-links-array (inline-array-class)
|
||||
((data entity-links :inline :dynamic :offset-assert 16)
|
||||
((data entity-links :inline :dynamic)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x10
|
||||
:flag-assert #x900000010
|
||||
)
|
||||
|
||||
;; definition for method 3 of type entity-links-array
|
||||
(defmethod inspect entity-links-array ((this entity-links-array))
|
||||
(defmethod inspect ((this entity-links-array))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
@@ -223,90 +211,72 @@
|
||||
|
||||
;; definition of type entity
|
||||
(deftype entity (res-lump)
|
||||
((trans vector :inline :offset-assert 32)
|
||||
(aid uint32 :offset-assert 48)
|
||||
((trans vector :inline)
|
||||
(aid uint32)
|
||||
)
|
||||
:method-count-assert 27
|
||||
:size-assert #x34
|
||||
:flag-assert #x1b00000034
|
||||
(:methods
|
||||
(birth! (_type_) _type_ 22)
|
||||
(kill! (_type_) _type_ 23)
|
||||
(add-to-level! (_type_ level-group level actor-id) none 24)
|
||||
(remove-from-level! (_type_ level-group) _type_ 25)
|
||||
(get-level (_type_) level 26)
|
||||
(birth! (_type_) _type_)
|
||||
(kill! (_type_) _type_)
|
||||
(add-to-level! (_type_ level-group level actor-id) none)
|
||||
(remove-from-level! (_type_ level-group) _type_)
|
||||
(get-level (_type_) level)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition of type entity-camera
|
||||
(deftype entity-camera (entity)
|
||||
((connect connectable :inline :offset-assert 64)
|
||||
((connect connectable :inline)
|
||||
)
|
||||
:method-count-assert 27
|
||||
:size-assert #x50
|
||||
:flag-assert #x1b00000050
|
||||
)
|
||||
|
||||
;; definition of type entity-nav-mesh
|
||||
(deftype entity-nav-mesh (entity)
|
||||
((nav-mesh nav-mesh :offset-assert 52)
|
||||
((nav-mesh nav-mesh)
|
||||
)
|
||||
:method-count-assert 29
|
||||
:size-assert #x38
|
||||
:flag-assert #x1d00000038
|
||||
(:methods
|
||||
(initialize-nav-mesh! (_type_) none 27)
|
||||
(debug-draw (_type_) none 28)
|
||||
(initialize-nav-mesh! (_type_) none)
|
||||
(debug-draw (_type_) none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition of type entity-race-mesh
|
||||
(deftype entity-race-mesh (entity)
|
||||
((race-mesh race-mesh :offset-assert 52)
|
||||
((race-mesh race-mesh)
|
||||
)
|
||||
:method-count-assert 29
|
||||
:size-assert #x38
|
||||
:flag-assert #x1d00000038
|
||||
(:methods
|
||||
(entity-race-mesh-method-27 () none 27)
|
||||
(entity-race-mesh-method-28 () none 28)
|
||||
(entity-race-mesh-method-27 () none)
|
||||
(entity-race-mesh-method-28 () none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition of type entity-actor
|
||||
(deftype entity-actor (entity)
|
||||
((etype type :offset 56)
|
||||
(task game-task :offset-assert 60)
|
||||
(kill-mask task-mask :offset 52)
|
||||
(vis-id int16 :offset-assert 62)
|
||||
(quat quaternion :inline :offset-assert 64)
|
||||
((etype type :offset 56)
|
||||
(task game-task)
|
||||
(kill-mask task-mask :offset 52)
|
||||
(vis-id int16)
|
||||
(quat quaternion :inline)
|
||||
)
|
||||
:method-count-assert 33
|
||||
:size-assert #x50
|
||||
:flag-assert #x2100000050
|
||||
(:methods
|
||||
(next-actor (_type_) entity-actor 27)
|
||||
(prev-actor (_type_) entity-actor 28)
|
||||
(debug-print (_type_ symbol type) none 29)
|
||||
(toggle-status (_type_ entity-perm-status symbol) none 30)
|
||||
(get-simple-travel-vector (_type_ vector vector vector object float) nav-mesh 31)
|
||||
(project-point-to-nav-mesh (_type_ vector vector nav-poly float) nav-poly 32)
|
||||
(next-actor (_type_) entity-actor)
|
||||
(prev-actor (_type_) entity-actor)
|
||||
(debug-print (_type_ symbol type) none)
|
||||
(toggle-status (_type_ entity-perm-status symbol) none)
|
||||
(get-simple-travel-vector (_type_ vector vector vector object float) nav-mesh)
|
||||
(project-point-to-nav-mesh (_type_ vector vector nav-poly float) nav-poly)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition of type actor-reference
|
||||
(deftype actor-reference (structure)
|
||||
((actor entity :offset-assert 0)
|
||||
(id uint32 :offset-assert 4)
|
||||
((actor entity)
|
||||
(id uint32)
|
||||
)
|
||||
:pack-me
|
||||
:method-count-assert 9
|
||||
:size-assert #x8
|
||||
:flag-assert #x900000008
|
||||
)
|
||||
|
||||
;; definition for method 3 of type actor-reference
|
||||
(defmethod inspect actor-reference ((this actor-reference))
|
||||
(defmethod inspect ((this actor-reference))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
@@ -320,15 +290,12 @@
|
||||
|
||||
;; definition of type actor-group
|
||||
(deftype actor-group (inline-array-class)
|
||||
((data actor-reference :inline :dynamic :offset-assert 16)
|
||||
((data actor-reference :inline :dynamic)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x10
|
||||
:flag-assert #x900000010
|
||||
)
|
||||
|
||||
;; definition for method 3 of type actor-group
|
||||
(defmethod inspect actor-group ((this actor-group))
|
||||
(defmethod inspect ((this actor-group))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
@@ -346,19 +313,16 @@
|
||||
|
||||
;; definition of type entity-info
|
||||
(deftype entity-info (basic)
|
||||
((ptype type :offset-assert 4)
|
||||
(package string :offset-assert 8)
|
||||
(art-group pair :offset-assert 12)
|
||||
(pool symbol :offset-assert 16)
|
||||
(heap-size int32 :offset-assert 20)
|
||||
((ptype type)
|
||||
(package string)
|
||||
(art-group pair)
|
||||
(pool symbol)
|
||||
(heap-size int32)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x18
|
||||
:flag-assert #x900000018
|
||||
)
|
||||
|
||||
;; definition for method 3 of type entity-info
|
||||
(defmethod inspect entity-info ((this entity-info))
|
||||
(defmethod inspect ((this entity-info))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
@@ -375,17 +339,14 @@
|
||||
|
||||
;; definition of type actor-bank
|
||||
(deftype actor-bank (basic)
|
||||
((pause-dist meters :offset-assert 4)
|
||||
(birth-dist meters :offset-assert 8)
|
||||
(birth-max int32 :offset-assert 12)
|
||||
((pause-dist meters)
|
||||
(birth-dist meters)
|
||||
(birth-max int32)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x10
|
||||
:flag-assert #x900000010
|
||||
)
|
||||
|
||||
;; definition for method 3 of type actor-bank
|
||||
(defmethod inspect actor-bank ((this actor-bank))
|
||||
(defmethod inspect ((this actor-bank))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
|
||||
+39
-42
@@ -12,7 +12,7 @@
|
||||
|
||||
;; definition for method 8 of type drawable-actor
|
||||
;; WARN: Return type mismatch int vs drawable-actor.
|
||||
(defmethod mem-usage drawable-actor ((this drawable-actor) (arg0 memory-usage-block) (arg1 int))
|
||||
(defmethod mem-usage ((this drawable-actor) (arg0 memory-usage-block) (arg1 int))
|
||||
(set! (-> arg0 length) (max 44 (-> arg0 length)))
|
||||
(set! (-> arg0 data 43 name) "entity")
|
||||
(+! (-> arg0 data 43 count) 1)
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
;; definition for method 8 of type drawable-inline-array-actor
|
||||
;; WARN: Return type mismatch int vs drawable-inline-array-actor.
|
||||
(defmethod mem-usage drawable-inline-array-actor ((this drawable-inline-array-actor) (arg0 memory-usage-block) (arg1 int))
|
||||
(defmethod mem-usage ((this drawable-inline-array-actor) (arg0 memory-usage-block) (arg1 int))
|
||||
(set! (-> arg0 length) (max 1 (-> arg0 length)))
|
||||
(set! (-> arg0 data 0 name) (symbol->string 'drawable-group))
|
||||
(+! (-> arg0 data 0 count) 1)
|
||||
@@ -41,13 +41,13 @@
|
||||
)
|
||||
|
||||
;; definition for method 2 of type entity-links
|
||||
(defmethod print entity-links ((this entity-links))
|
||||
(defmethod print ((this entity-links))
|
||||
(format #t "#<entity-links :process ~A @ #x~X>" (-> this process) this)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 2 of type entity-perm
|
||||
(defmethod print entity-perm ((this entity-perm))
|
||||
(defmethod print ((this entity-perm))
|
||||
(format
|
||||
#t
|
||||
"#<entity-perm :aid ~D :task ~D :status #x~X :data #x~X @ #x~X>"
|
||||
@@ -61,7 +61,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 2 of type actor-group
|
||||
(defmethod print actor-group ((this actor-group))
|
||||
(defmethod print ((this actor-group))
|
||||
(format #t "#<actor-group")
|
||||
(dotimes (s5-0 (-> this length))
|
||||
(format #t " ~A" (-> this data s5-0 actor))
|
||||
@@ -71,7 +71,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 3 of type actor-group
|
||||
(defmethod inspect actor-group ((this actor-group))
|
||||
(defmethod inspect ((this actor-group))
|
||||
(format #t "[~8x] ~A~%" this (-> this type))
|
||||
(format #t "~Tlength: ~D~%" (-> this length))
|
||||
(format #t "~Tallocated-length: ~D~%" (-> this allocated-length))
|
||||
@@ -83,25 +83,25 @@
|
||||
)
|
||||
|
||||
;; definition for method 22 of type entity
|
||||
(defmethod birth! entity ((this entity))
|
||||
(defmethod birth! ((this entity))
|
||||
(format #t "birth ~A~%" this)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 23 of type entity
|
||||
(defmethod kill! entity ((this entity))
|
||||
(defmethod kill! ((this entity))
|
||||
(format #t "kill ~A~%" this)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 2 of type entity
|
||||
(defmethod print entity ((this entity))
|
||||
(defmethod print ((this entity))
|
||||
(format #t "#<~A :name ~S @ #x~X>" (-> this type) (res-lump-struct this 'name structure) this)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 26 of type entity
|
||||
(defmethod get-level entity ((this entity))
|
||||
(defmethod get-level ((this entity))
|
||||
(dotimes (v1-0 (-> *level* length))
|
||||
(let ((a1-3 (-> *level* level v1-0)))
|
||||
(when (= (-> a1-3 status) 'active)
|
||||
@@ -257,7 +257,7 @@
|
||||
|
||||
;; definition for method 18 of type level-group
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod update-nav-meshes-method level-group ((this level-group))
|
||||
(defmethod update-nav-meshes-method ((this level-group))
|
||||
"Clashes with a function name"
|
||||
(when (not (paused?))
|
||||
(dotimes (s5-0 (-> this length))
|
||||
@@ -530,7 +530,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 2 of type process
|
||||
(defmethod print process ((this process))
|
||||
(defmethod print ((this process))
|
||||
(cond
|
||||
((and (-> this top-thread) (!= (-> this status) 'dead))
|
||||
(format
|
||||
@@ -572,7 +572,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 3 of type entity
|
||||
(defmethod inspect entity ((this entity))
|
||||
(defmethod inspect ((this entity))
|
||||
(call-parent-method this)
|
||||
(format #t "~Ttrans: ~`vector`P~%" (-> this trans))
|
||||
(format #t "~Taid: ~D~%" (-> this aid))
|
||||
@@ -580,7 +580,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 3 of type entity-nav-mesh
|
||||
(defmethod inspect entity-nav-mesh ((this entity-nav-mesh))
|
||||
(defmethod inspect ((this entity-nav-mesh))
|
||||
((the-as (function object object) (find-parent-method entity-nav-mesh 3)) this)
|
||||
(format #t "~Tnav-mesh ~A~%" (-> this nav-mesh))
|
||||
(if (and (-> this nav-mesh) (nonzero? (-> this nav-mesh)))
|
||||
@@ -590,7 +590,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 3 of type entity-actor
|
||||
(defmethod inspect entity-actor ((this entity-actor))
|
||||
(defmethod inspect ((this entity-actor))
|
||||
(call-parent-method this)
|
||||
(format #t "~Tetype: ~A~%" (-> this etype))
|
||||
(format #t "~Ttask: ~d~%" (-> this task))
|
||||
@@ -662,7 +662,7 @@
|
||||
|
||||
;; definition for method 29 of type entity-actor
|
||||
;; WARN: Return type mismatch entity-actor vs none.
|
||||
(defmethod debug-print entity-actor ((this entity-actor) (arg0 symbol) (arg1 type))
|
||||
(defmethod debug-print ((this entity-actor) (arg0 symbol) (arg1 type))
|
||||
(let ((s4-0 (-> this etype)))
|
||||
(when (or (not arg1) (and s4-0 (valid? s4-0 type (the-as string #f) #f 0) (type-type? s4-0 arg1)))
|
||||
(format #t "~5D #x~8X ~-26S" (-> this extra vis-id) this (res-lump-struct this 'name structure))
|
||||
@@ -736,7 +736,7 @@
|
||||
|
||||
;; definition for method 14 of type level-group
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod debug-print-entities level-group ((this level-group) (arg0 symbol) (arg1 type))
|
||||
(defmethod debug-print-entities ((this level-group) (arg0 symbol) (arg1 type))
|
||||
(let ((t9-0 format)
|
||||
(a0-1 #t)
|
||||
(a1-1
|
||||
@@ -776,7 +776,7 @@
|
||||
;; definition for method 24 of type entity-actor
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Return type mismatch entity-actor vs none.
|
||||
(defmethod add-to-level! entity-actor ((this entity-actor) (arg0 level-group) (arg1 level) (arg2 actor-id))
|
||||
(defmethod add-to-level! ((this entity-actor) (arg0 level-group) (arg1 level) (arg2 actor-id))
|
||||
(let ((v1-4 (-> arg1 entity data (-> arg1 entity length))))
|
||||
(+! (-> arg1 entity length) 1)
|
||||
(set! (-> v1-4 process) #f)
|
||||
@@ -848,7 +848,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 25 of type entity
|
||||
(defmethod remove-from-level! entity ((this entity) (arg0 level-group))
|
||||
(defmethod remove-from-level! ((this entity) (arg0 level-group))
|
||||
(let ((v1-0 (-> this extra)))
|
||||
(cond
|
||||
((= (-> v1-0 next-link) v1-0)
|
||||
@@ -887,7 +887,7 @@
|
||||
|
||||
;; definition for method 25 of type level-group
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod update-vis-volumes level-group ((this level-group))
|
||||
(defmethod update-vis-volumes ((this level-group))
|
||||
(local-vars (sv-16 pointer) (sv-20 pointer) (sv-24 pointer) (sv-28 process))
|
||||
(dotimes (s5-0 (-> this length))
|
||||
(let ((v1-3 (-> this level s5-0)))
|
||||
@@ -986,7 +986,7 @@
|
||||
;; WARN: Stack slot offset 32 signed mismatch
|
||||
;; WARN: Stack slot offset 32 signed mismatch
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod update-vis-volumes-from-nav-mesh level-group ((this level-group))
|
||||
(defmethod update-vis-volumes-from-nav-mesh ((this level-group))
|
||||
(local-vars
|
||||
(sv-16 pointer)
|
||||
(sv-20 vector)
|
||||
@@ -1092,7 +1092,7 @@
|
||||
;; WARN: Stack slot offset 20 signed mismatch
|
||||
;; WARN: Stack slot offset 20 signed mismatch
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod print-volume-sizes level-group ((this level-group))
|
||||
(defmethod print-volume-sizes ((this level-group))
|
||||
(local-vars
|
||||
(sv-16 pointer)
|
||||
(sv-20 float)
|
||||
@@ -1195,18 +1195,15 @@
|
||||
|
||||
;; definition of type debug-actor-info
|
||||
(deftype debug-actor-info (basic)
|
||||
((name basic :offset-assert 4)
|
||||
(handle handle :offset-assert 8)
|
||||
(process basic :offset-assert 16)
|
||||
(pid int32 :offset-assert 20)
|
||||
((name basic)
|
||||
(handle handle)
|
||||
(process basic)
|
||||
(pid int32)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x18
|
||||
:flag-assert #x900000018
|
||||
)
|
||||
|
||||
;; definition for method 3 of type debug-actor-info
|
||||
(defmethod inspect debug-actor-info ((this debug-actor-info))
|
||||
(defmethod inspect ((this debug-actor-info))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
@@ -1403,7 +1400,7 @@
|
||||
;; definition for method 15 of type level-group
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod debug-draw-actors level-group ((this level-group) (arg0 symbol))
|
||||
(defmethod debug-draw-actors ((this level-group) (arg0 symbol))
|
||||
(local-vars
|
||||
(sv-16 symbol)
|
||||
(sv-20 vector)
|
||||
@@ -1777,13 +1774,13 @@
|
||||
)
|
||||
|
||||
;; definition for method 22 of type entity-camera
|
||||
(defmethod birth! entity-camera ((this entity-camera))
|
||||
(defmethod birth! ((this entity-camera))
|
||||
(add-connection *camera-engine* *camera* nothing this #f #f)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 23 of type entity-camera
|
||||
(defmethod kill! entity-camera ((this entity-camera))
|
||||
(defmethod kill! ((this entity-camera))
|
||||
(remove-by-param1 *camera-engine* (the-as int this))
|
||||
this
|
||||
)
|
||||
@@ -1800,7 +1797,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 22 of type entity-actor
|
||||
(defmethod birth! entity-actor ((this entity-actor))
|
||||
(defmethod birth! ((this entity-actor))
|
||||
(let* ((s5-0 (-> this etype))
|
||||
(v1-0 (entity-info-lookup s5-0))
|
||||
(s4-0 (get-process *default-dead-pool* s5-0 (if v1-0
|
||||
@@ -1844,7 +1841,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 23 of type entity-actor
|
||||
(defmethod kill! entity-actor ((this entity-actor))
|
||||
(defmethod kill! ((this entity-actor))
|
||||
(let ((a0-1 (-> this extra process)))
|
||||
(if a0-1
|
||||
(deactivate a0-1)
|
||||
@@ -1859,7 +1856,7 @@
|
||||
;; WARN: Return type mismatch bsp-header vs none.
|
||||
;; ERROR: Unsupported inline assembly instruction kind - [mfc0 s5, Count]
|
||||
;; ERROR: Unsupported inline assembly instruction kind - [mfc0 v1, Count]
|
||||
(defmethod birth bsp-header ((this bsp-header))
|
||||
(defmethod birth ((this bsp-header))
|
||||
(local-vars (v1-74 int) (s5-0 int) (sv-16 int))
|
||||
(.mfc0 s5-0 Count)
|
||||
(let ((a2-0 (if (nonzero? (-> this actors))
|
||||
@@ -2039,7 +2036,7 @@
|
||||
|
||||
;; definition for method 18 of type bsp-header
|
||||
;; WARN: Return type mismatch bsp-header vs none.
|
||||
(defmethod deactivate-entities bsp-header ((this bsp-header))
|
||||
(defmethod deactivate-entities ((this bsp-header))
|
||||
(let ((v1-1 (-> this level heap base))
|
||||
(a0-2 (-> this level heap top-base))
|
||||
)
|
||||
@@ -2149,7 +2146,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 9 of type entity-perm
|
||||
(defmethod update entity-perm ((this entity-perm) (arg0 symbol) (arg1 entity-perm-status))
|
||||
(defmethod update ((this entity-perm) (arg0 symbol) (arg1 entity-perm-status))
|
||||
(cond
|
||||
((= arg0 'game)
|
||||
(logclear! (-> this status) arg1)
|
||||
@@ -2285,7 +2282,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 12 of type process-drawable
|
||||
(defmethod run-logic? process-drawable ((this process-drawable))
|
||||
(defmethod run-logic? ((this process-drawable))
|
||||
(or (not (logtest? (-> this mask) (process-mask actor-pause)))
|
||||
(or (>= (+ (-> *ACTOR-bank* pause-dist) (-> this root pause-adjust-distance))
|
||||
(vector-vector-distance (-> this root trans) (math-camera-pos))
|
||||
@@ -2297,7 +2294,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 9 of type entity-links
|
||||
(defmethod birth? entity-links ((this entity-links) (arg0 vector))
|
||||
(defmethod birth? ((this entity-links) (arg0 vector))
|
||||
(and (not (logtest? (-> this perm status) (entity-perm-status bit-0 dead)))
|
||||
(< (vector-vector-distance (-> this trans) arg0) (-> *ACTOR-bank* birth-dist))
|
||||
)
|
||||
@@ -2311,7 +2308,7 @@
|
||||
;; ERROR: Stack slot load at 96 mismatch: defined as size 4, got size 16
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
;; WARN: Function (method 17 level-group) has a return type of none, but the expression builder found a return statement.
|
||||
(defmethod actors-update level-group ((this level-group))
|
||||
(defmethod actors-update ((this level-group))
|
||||
(local-vars
|
||||
(sv-16 vector)
|
||||
(sv-24 int)
|
||||
@@ -2547,7 +2544,7 @@
|
||||
|
||||
;; definition for method 30 of type entity-actor
|
||||
;; WARN: Return type mismatch entity-perm-status vs none.
|
||||
(defmethod toggle-status entity-actor ((this entity-actor) (arg0 entity-perm-status) (arg1 symbol))
|
||||
(defmethod toggle-status ((this entity-actor) (arg0 entity-perm-status) (arg1 symbol))
|
||||
(let ((v1-0 (-> this extra)))
|
||||
(if arg1
|
||||
(logior! (-> v1-0 perm status) arg0)
|
||||
|
||||
+27
-27
@@ -2,7 +2,7 @@
|
||||
(in-package goal)
|
||||
|
||||
;; definition for method 7 of type process
|
||||
(defmethod relocate process ((this process) (arg0 int))
|
||||
(defmethod relocate ((this process) (arg0 int))
|
||||
(let ((v1-0 *kernel-context*))
|
||||
(set! (-> v1-0 relocating-process) this)
|
||||
(set! (-> v1-0 relocating-min) (the-as int (&-> this type)))
|
||||
@@ -91,14 +91,14 @@
|
||||
)
|
||||
|
||||
;; definition for method 7 of type cpu-thread
|
||||
(defmethod relocate cpu-thread ((this cpu-thread) (arg0 int))
|
||||
(defmethod relocate ((this cpu-thread) (arg0 int))
|
||||
(&+! (-> this process) arg0)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 7 of type process-drawable
|
||||
;; WARN: Return type mismatch process vs process-drawable.
|
||||
(defmethod relocate process-drawable ((this process-drawable) (arg0 int))
|
||||
(defmethod relocate ((this process-drawable) (arg0 int))
|
||||
(let ((v1-0 *kernel-context*))
|
||||
(set! (-> v1-0 relocating-process) this)
|
||||
(set! (-> v1-0 relocating-min) (the-as int (&-> this type)))
|
||||
@@ -158,7 +158,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 7 of type collide-shape
|
||||
(defmethod relocate collide-shape ((this collide-shape) (arg0 int))
|
||||
(defmethod relocate ((this collide-shape) (arg0 int))
|
||||
(&+! (-> this process) arg0)
|
||||
(&+! (-> this root-prim) arg0)
|
||||
this
|
||||
@@ -166,7 +166,7 @@
|
||||
|
||||
;; definition for method 7 of type collide-shape-moving
|
||||
;; WARN: Return type mismatch collide-shape vs collide-shape-moving.
|
||||
(defmethod relocate collide-shape-moving ((this collide-shape-moving) (arg0 int))
|
||||
(defmethod relocate ((this collide-shape-moving) (arg0 int))
|
||||
(if (-> this dynam)
|
||||
(&+! (-> this dynam) arg0)
|
||||
)
|
||||
@@ -174,26 +174,26 @@
|
||||
)
|
||||
|
||||
;; definition for method 7 of type collide-shape-prim
|
||||
(defmethod relocate collide-shape-prim ((this collide-shape-prim) (arg0 int))
|
||||
(defmethod relocate ((this collide-shape-prim) (arg0 int))
|
||||
(&+! (-> this cshape) arg0)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 7 of type collide-shape-prim-group
|
||||
(defmethod relocate collide-shape-prim-group ((this collide-shape-prim-group) (arg0 int))
|
||||
(defmethod relocate ((this collide-shape-prim-group) (arg0 int))
|
||||
(&+! (-> this cshape) arg0)
|
||||
(set! (-> this child) (the-as (inline-array collide-shape-prim) (&+ (the-as pointer (-> this child)) arg0)))
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 7 of type fact-info
|
||||
(defmethod relocate fact-info ((this fact-info) (arg0 int))
|
||||
(defmethod relocate ((this fact-info) (arg0 int))
|
||||
(&+! (-> this process) arg0)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 7 of type draw-control
|
||||
(defmethod relocate draw-control ((this draw-control) (arg0 int))
|
||||
(defmethod relocate ((this draw-control) (arg0 int))
|
||||
(&+! (-> this skeleton) arg0)
|
||||
(&+! (-> this process) arg0)
|
||||
(when (-> this ripple)
|
||||
@@ -213,7 +213,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 7 of type joint-control
|
||||
(defmethod relocate joint-control ((this joint-control) (arg0 int))
|
||||
(defmethod relocate ((this joint-control) (arg0 int))
|
||||
(if (-> this effect)
|
||||
(&+! (-> this effect) arg0)
|
||||
)
|
||||
@@ -228,7 +228,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 7 of type cspace-array
|
||||
(defmethod relocate cspace-array ((this cspace-array) (arg0 int))
|
||||
(defmethod relocate ((this cspace-array) (arg0 int))
|
||||
(countdown (v1-0 (-> this length))
|
||||
(let ((a2-2 (-> this data v1-0)))
|
||||
(if (-> a2-2 parent)
|
||||
@@ -255,62 +255,62 @@
|
||||
)
|
||||
|
||||
;; definition for method 7 of type path-control
|
||||
(defmethod relocate path-control ((this path-control) (arg0 int))
|
||||
(defmethod relocate ((this path-control) (arg0 int))
|
||||
(&+! (-> this process) arg0)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 7 of type vol-control
|
||||
(defmethod relocate vol-control ((this vol-control) (arg0 int))
|
||||
(defmethod relocate ((this vol-control) (arg0 int))
|
||||
(&+! (-> this process) arg0)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 7 of type water-control
|
||||
(defmethod relocate water-control ((this water-control) (arg0 int))
|
||||
(defmethod relocate ((this water-control) (arg0 int))
|
||||
(&+! (-> this process) arg0)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 7 of type actor-link-info
|
||||
(defmethod relocate actor-link-info ((this actor-link-info) (arg0 int))
|
||||
(defmethod relocate ((this actor-link-info) (arg0 int))
|
||||
(&+! (-> this process) arg0)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 7 of type align-control
|
||||
(defmethod relocate align-control ((this align-control) (arg0 int))
|
||||
(defmethod relocate ((this align-control) (arg0 int))
|
||||
(&+! (-> this process) arg0)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 7 of type joint-mod
|
||||
(defmethod relocate joint-mod ((this joint-mod) (arg0 int))
|
||||
(defmethod relocate ((this joint-mod) (arg0 int))
|
||||
(&+! (-> this process) arg0)
|
||||
(&+! (-> this joint) arg0)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 7 of type joint-mod-wheel
|
||||
(defmethod relocate joint-mod-wheel ((this joint-mod-wheel) (arg0 int))
|
||||
(defmethod relocate ((this joint-mod-wheel) (arg0 int))
|
||||
(&+! (-> this process) arg0)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 7 of type joint-mod-ik
|
||||
(defmethod relocate joint-mod-ik ((this joint-mod-ik) (arg0 int))
|
||||
(defmethod relocate ((this joint-mod-ik) (arg0 int))
|
||||
(&+! (-> this process) arg0)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 7 of type effect-control
|
||||
(defmethod relocate effect-control ((this effect-control) (arg0 int))
|
||||
(defmethod relocate ((this effect-control) (arg0 int))
|
||||
(&+! (-> this process) arg0)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 7 of type sparticle-launch-control
|
||||
(defmethod relocate sparticle-launch-control ((this sparticle-launch-control) (arg0 int))
|
||||
(defmethod relocate ((this sparticle-launch-control) (arg0 int))
|
||||
(&+! (-> this proc) arg0)
|
||||
(countdown (v1-2 (-> this length))
|
||||
(let* ((a0-4 (-> this data v1-2))
|
||||
@@ -343,7 +343,7 @@
|
||||
|
||||
;; definition for method 7 of type camera-master
|
||||
;; WARN: Return type mismatch process vs camera-master.
|
||||
(defmethod relocate camera-master ((this camera-master) (arg0 int))
|
||||
(defmethod relocate ((this camera-master) (arg0 int))
|
||||
(if (nonzero? (-> this water-drip))
|
||||
(&+! (-> this water-drip) arg0)
|
||||
)
|
||||
@@ -352,7 +352,7 @@
|
||||
|
||||
;; definition for method 7 of type time-of-day-proc
|
||||
;; WARN: Return type mismatch process vs time-of-day-proc.
|
||||
(defmethod relocate time-of-day-proc ((this time-of-day-proc) (arg0 int))
|
||||
(defmethod relocate ((this time-of-day-proc) (arg0 int))
|
||||
(if (nonzero? (-> this sun))
|
||||
(&+! (-> this sun) arg0)
|
||||
)
|
||||
@@ -367,7 +367,7 @@
|
||||
|
||||
;; definition for method 7 of type part-tracker
|
||||
;; WARN: Return type mismatch process vs part-tracker.
|
||||
(defmethod relocate part-tracker ((this part-tracker) (arg0 int))
|
||||
(defmethod relocate ((this part-tracker) (arg0 int))
|
||||
(if (nonzero? (-> this root))
|
||||
(&+! (-> this root) arg0)
|
||||
)
|
||||
@@ -379,7 +379,7 @@
|
||||
|
||||
;; definition for method 7 of type part-spawner
|
||||
;; WARN: Return type mismatch process vs part-spawner.
|
||||
(defmethod relocate part-spawner ((this part-spawner) (arg0 int))
|
||||
(defmethod relocate ((this part-spawner) (arg0 int))
|
||||
(if (nonzero? (-> this root))
|
||||
(&+! (-> this root) arg0)
|
||||
)
|
||||
@@ -394,7 +394,7 @@
|
||||
|
||||
;; definition for method 7 of type lightning-tracker
|
||||
;; WARN: Return type mismatch process vs lightning-tracker.
|
||||
(defmethod relocate lightning-tracker ((this lightning-tracker) (arg0 int))
|
||||
(defmethod relocate ((this lightning-tracker) (arg0 int))
|
||||
(if (nonzero? (-> this root))
|
||||
(&+! (-> this root) arg0)
|
||||
)
|
||||
@@ -406,7 +406,7 @@
|
||||
|
||||
;; definition for method 7 of type manipy
|
||||
;; WARN: Return type mismatch process-drawable vs manipy.
|
||||
(defmethod relocate manipy ((this manipy) (arg0 int))
|
||||
(defmethod relocate ((this manipy) (arg0 int))
|
||||
(if (nonzero? (-> this joint 0))
|
||||
(&+! (-> this joint 0) arg0)
|
||||
)
|
||||
|
||||
+22
-28
@@ -10,45 +10,39 @@
|
||||
(elt-count uint32 :offset 112 :size 15)
|
||||
(inlined? uint8 :offset 127 :size 1)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x10
|
||||
:flag-assert #x900000010
|
||||
)
|
||||
|
||||
;; definition of type res-lump
|
||||
(deftype res-lump (basic)
|
||||
((length int32 :offset-assert 4)
|
||||
(allocated-length int32 :offset-assert 8)
|
||||
(data-base pointer :offset-assert 12)
|
||||
(data-top pointer :offset-assert 16)
|
||||
(data-size int32 :offset-assert 20)
|
||||
(extra entity-links :offset-assert 24)
|
||||
(tag (pointer res-tag) :offset-assert 28)
|
||||
((length int32)
|
||||
(allocated-length int32)
|
||||
(data-base pointer)
|
||||
(data-top pointer)
|
||||
(data-size int32)
|
||||
(extra entity-links)
|
||||
(tag (pointer res-tag))
|
||||
)
|
||||
:method-count-assert 22
|
||||
:size-assert #x20
|
||||
:flag-assert #x1600000020
|
||||
(:methods
|
||||
(new (symbol type int int) _type_ 0)
|
||||
(get-property-data (_type_ symbol symbol float pointer (pointer res-tag) pointer) pointer :no-virtual 9)
|
||||
(get-property-struct (_type_ symbol symbol float structure (pointer res-tag) pointer) structure :no-virtual 10)
|
||||
(get-property-value (_type_ symbol symbol float uint128 (pointer res-tag) pointer) uint128 :no-virtual 11)
|
||||
(get-property-value-float (_type_ symbol symbol float float (pointer res-tag) pointer) float :no-virtual 12)
|
||||
(get-tag-index-data (_type_ int) pointer 13)
|
||||
(get-tag-data (_type_ res-tag) pointer 14)
|
||||
(allocate-data-memory-for-tag! (_type_ res-tag) res-tag 15)
|
||||
(sort! (_type_) _type_ 16)
|
||||
(add-data! (_type_ res-tag pointer) res-lump 17)
|
||||
(add-32bit-data! (_type_ res-tag object) res-lump 18)
|
||||
(lookup-tag-idx (_type_ symbol symbol float) res-tag-pair :no-virtual 19)
|
||||
(make-property-data (_type_ float res-tag-pair pointer) pointer 20)
|
||||
(get-curve-data! (_type_ curve symbol symbol float) symbol 21)
|
||||
(new (symbol type int int) _type_)
|
||||
(get-property-data (_type_ symbol symbol float pointer (pointer res-tag) pointer) pointer :no-virtual)
|
||||
(get-property-struct (_type_ symbol symbol float structure (pointer res-tag) pointer) structure :no-virtual)
|
||||
(get-property-value (_type_ symbol symbol float uint128 (pointer res-tag) pointer) uint128 :no-virtual)
|
||||
(get-property-value-float (_type_ symbol symbol float float (pointer res-tag) pointer) float :no-virtual)
|
||||
(get-tag-index-data (_type_ int) pointer)
|
||||
(get-tag-data (_type_ res-tag) pointer)
|
||||
(allocate-data-memory-for-tag! (_type_ res-tag) res-tag)
|
||||
(sort! (_type_) _type_)
|
||||
(add-data! (_type_ res-tag pointer) res-lump)
|
||||
(add-32bit-data! (_type_ res-tag object) res-lump)
|
||||
(lookup-tag-idx (_type_ symbol symbol float) res-tag-pair :no-virtual)
|
||||
(make-property-data (_type_ float res-tag-pair pointer) pointer)
|
||||
(get-curve-data! (_type_ curve symbol symbol float) symbol)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type res-lump
|
||||
;; INFO: this function exists in multiple non-identical object files
|
||||
(defmethod inspect res-lump ((this res-lump))
|
||||
(defmethod inspect ((this res-lump))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
|
||||
+47
-47
@@ -2,7 +2,7 @@
|
||||
(in-package goal)
|
||||
|
||||
;; definition for method 2 of type res-tag
|
||||
(defmethod print res-tag ((this res-tag))
|
||||
(defmethod print ((this res-tag))
|
||||
(if (zero? (-> this inlined?))
|
||||
(format
|
||||
#t
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
;; definition for method 4 of type res-tag
|
||||
;; WARN: Return type mismatch uint vs int.
|
||||
(defmethod length res-tag ((this res-tag))
|
||||
(defmethod length ((this res-tag))
|
||||
(the-as int (if (zero? (-> this inlined?))
|
||||
(* (-> this elt-count) 4)
|
||||
(* (-> this elt-count) (-> this elt-type size))
|
||||
@@ -36,12 +36,12 @@
|
||||
|
||||
;; definition for method 13 of type res-lump
|
||||
;; INFO: Used lq/sq
|
||||
(defmethod get-tag-index-data res-lump ((this res-lump) (arg0 int))
|
||||
(defmethod get-tag-index-data ((this res-lump) (arg0 int))
|
||||
(&+ (-> this data-base) (-> this tag arg0 data-offset))
|
||||
)
|
||||
|
||||
;; definition for method 14 of type res-lump
|
||||
(defmethod get-tag-data res-lump ((this res-lump) (arg0 res-tag))
|
||||
(defmethod get-tag-data ((this res-lump) (arg0 res-tag))
|
||||
(&+ (-> this data-base) (-> arg0 data-offset))
|
||||
)
|
||||
|
||||
@@ -58,20 +58,20 @@
|
||||
)
|
||||
|
||||
;; definition for method 4 of type res-lump
|
||||
(defmethod length res-lump ((this res-lump))
|
||||
(defmethod length ((this res-lump))
|
||||
(-> this length)
|
||||
)
|
||||
|
||||
;; definition for method 5 of type res-lump
|
||||
;; WARN: Return type mismatch uint vs int.
|
||||
(defmethod asize-of res-lump ((this res-lump))
|
||||
(defmethod asize-of ((this res-lump))
|
||||
(the-as int (+ (-> this type psize) (* (-> this allocated-length) 16) (-> this data-size)))
|
||||
)
|
||||
|
||||
;; definition for method 3 of type res-lump
|
||||
;; INFO: this function exists in multiple non-identical object files
|
||||
;; INFO: Used lq/sq
|
||||
(defmethod inspect res-lump ((this res-lump))
|
||||
(defmethod inspect ((this res-lump))
|
||||
(format #t "[~8x] ~A~%" this (-> this type))
|
||||
(format #t "~Textra: ~A~%" (-> this extra))
|
||||
(format #t "~Tallocated-length: ~D~%" (-> this allocated-length))
|
||||
@@ -113,7 +113,7 @@
|
||||
;; definition for method 19 of type res-lump
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Return type mismatch int vs res-tag-pair.
|
||||
(defmethod lookup-tag-idx res-lump ((this res-lump) (arg0 symbol) (arg1 symbol) (arg2 float))
|
||||
(defmethod lookup-tag-idx ((this res-lump) (arg0 symbol) (arg1 symbol) (arg2 float))
|
||||
(local-vars (t4-1 int))
|
||||
(when (or (= arg0 'id)
|
||||
(= arg0 'aid)
|
||||
@@ -213,7 +213,7 @@
|
||||
|
||||
;; definition for method 20 of type res-lump
|
||||
;; INFO: Used lq/sq
|
||||
(defmethod make-property-data res-lump ((this res-lump) (arg0 float) (arg1 res-tag-pair) (arg2 pointer))
|
||||
(defmethod make-property-data ((this res-lump) (arg0 float) (arg1 res-tag-pair) (arg2 pointer))
|
||||
(rlet ((vf1 :class vf)
|
||||
(vf2 :class vf)
|
||||
(vf3 :class vf)
|
||||
@@ -395,14 +395,14 @@
|
||||
|
||||
;; definition for method 9 of type res-lump
|
||||
;; INFO: Used lq/sq
|
||||
(defmethod get-property-data res-lump ((this res-lump)
|
||||
(arg0 symbol)
|
||||
(arg1 symbol)
|
||||
(arg2 float)
|
||||
(arg3 pointer)
|
||||
(arg4 (pointer res-tag))
|
||||
(arg5 pointer)
|
||||
)
|
||||
(defmethod get-property-data ((this res-lump)
|
||||
(arg0 symbol)
|
||||
(arg1 symbol)
|
||||
(arg2 float)
|
||||
(arg3 pointer)
|
||||
(arg4 (pointer res-tag))
|
||||
(arg5 pointer)
|
||||
)
|
||||
(let ((s3-0 (lookup-tag-idx this arg0 arg1 arg2)))
|
||||
(cond
|
||||
((< (the-as int s3-0) 0)
|
||||
@@ -422,14 +422,14 @@
|
||||
;; definition for method 10 of type res-lump
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Return type mismatch object vs structure.
|
||||
(defmethod get-property-struct res-lump ((this res-lump)
|
||||
(arg0 symbol)
|
||||
(arg1 symbol)
|
||||
(arg2 float)
|
||||
(arg3 structure)
|
||||
(arg4 (pointer res-tag))
|
||||
(arg5 pointer)
|
||||
)
|
||||
(defmethod get-property-struct ((this res-lump)
|
||||
(arg0 symbol)
|
||||
(arg1 symbol)
|
||||
(arg2 float)
|
||||
(arg3 structure)
|
||||
(arg4 (pointer res-tag))
|
||||
(arg5 pointer)
|
||||
)
|
||||
(let ((s3-0 (lookup-tag-idx this arg0 arg1 arg2)))
|
||||
(cond
|
||||
((< (the-as int s3-0) 0)
|
||||
@@ -455,14 +455,14 @@
|
||||
;; definition for method 11 of type res-lump
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Return type mismatch int vs uint128.
|
||||
(defmethod get-property-value res-lump ((this res-lump)
|
||||
(arg0 symbol)
|
||||
(arg1 symbol)
|
||||
(arg2 float)
|
||||
(arg3 uint128)
|
||||
(arg4 (pointer res-tag))
|
||||
(arg5 pointer)
|
||||
)
|
||||
(defmethod get-property-value ((this res-lump)
|
||||
(arg0 symbol)
|
||||
(arg1 symbol)
|
||||
(arg2 float)
|
||||
(arg3 uint128)
|
||||
(arg4 (pointer res-tag))
|
||||
(arg5 pointer)
|
||||
)
|
||||
(let ((a2-1 (lookup-tag-idx this arg0 arg1 arg2)))
|
||||
(cond
|
||||
((< (the-as int a2-1) 0)
|
||||
@@ -532,14 +532,14 @@
|
||||
|
||||
;; definition for method 12 of type res-lump
|
||||
;; INFO: Used lq/sq
|
||||
(defmethod get-property-value-float res-lump ((this res-lump)
|
||||
(arg0 symbol)
|
||||
(arg1 symbol)
|
||||
(arg2 float)
|
||||
(arg3 float)
|
||||
(arg4 (pointer res-tag))
|
||||
(arg5 pointer)
|
||||
)
|
||||
(defmethod get-property-value-float ((this res-lump)
|
||||
(arg0 symbol)
|
||||
(arg1 symbol)
|
||||
(arg2 float)
|
||||
(arg3 float)
|
||||
(arg4 (pointer res-tag))
|
||||
(arg5 pointer)
|
||||
)
|
||||
(local-vars (v1-8 uint) (v1-11 int))
|
||||
(let ((a2-1 (lookup-tag-idx this arg0 arg1 arg2)))
|
||||
(cond
|
||||
@@ -612,7 +612,7 @@
|
||||
|
||||
;; definition for method 16 of type res-lump
|
||||
;; INFO: Used lq/sq
|
||||
(defmethod sort! res-lump ((this res-lump))
|
||||
(defmethod sort! ((this res-lump))
|
||||
(let ((v1-0 -1))
|
||||
(while (nonzero? v1-0)
|
||||
(set! v1-0 0)
|
||||
@@ -641,7 +641,7 @@
|
||||
|
||||
;; definition for method 15 of type res-lump
|
||||
;; INFO: Used lq/sq
|
||||
(defmethod allocate-data-memory-for-tag! res-lump ((this res-lump) (arg0 res-tag))
|
||||
(defmethod allocate-data-memory-for-tag! ((this res-lump) (arg0 res-tag))
|
||||
(local-vars (resource-mem pointer))
|
||||
(let* ((tag-pair (lookup-tag-idx this (-> arg0 name) 'exact (-> arg0 key-frame)))
|
||||
(existing-tag (-> this tag (-> tag-pair lo)))
|
||||
@@ -705,7 +705,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 17 of type res-lump
|
||||
(defmethod add-data! res-lump ((this res-lump) (arg0 res-tag) (arg1 pointer))
|
||||
(defmethod add-data! ((this res-lump) (arg0 res-tag) (arg1 pointer))
|
||||
(let ((a0-2 (allocate-data-memory-for-tag! this arg0)))
|
||||
(when a0-2
|
||||
(let* ((v1-2 this)
|
||||
@@ -730,7 +730,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 18 of type res-lump
|
||||
(defmethod add-32bit-data! res-lump ((this res-lump) (arg0 res-tag) (arg1 object))
|
||||
(defmethod add-32bit-data! ((this res-lump) (arg0 res-tag) (arg1 object))
|
||||
(local-vars (sv-16 object))
|
||||
(set! sv-16 arg1)
|
||||
(let* ((v1-0 arg0)
|
||||
@@ -742,7 +742,7 @@
|
||||
|
||||
;; definition for method 21 of type res-lump
|
||||
;; INFO: Used lq/sq
|
||||
(defmethod get-curve-data! res-lump ((this res-lump) (arg0 curve) (arg1 symbol) (arg2 symbol) (arg3 float))
|
||||
(defmethod get-curve-data! ((this res-lump) (arg0 curve) (arg1 symbol) (arg2 symbol) (arg3 float))
|
||||
(local-vars (sv-16 res-tag) (sv-32 res-tag))
|
||||
(let ((s5-0 #f))
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
@@ -802,7 +802,7 @@
|
||||
;; WARN: Using new Jak 2 rtype-of
|
||||
;; WARN: Using new Jak 2 rtype-of
|
||||
;; WARN: Using new Jak 2 rtype-of
|
||||
(defmethod mem-usage res-lump ((this res-lump) (arg0 memory-usage-block) (arg1 int))
|
||||
(defmethod mem-usage ((this res-lump) (arg0 memory-usage-block) (arg1 int))
|
||||
(local-vars (sv-16 int))
|
||||
(let ((s3-0 48)
|
||||
(s2-0 "res")
|
||||
|
||||
Reference in New Issue
Block a user