d/jak2: finish consite-obs and get almost all side-missions working (#2143)

Some side missions require cars, they don't work yet. Also the
ring-races and collection ones do not grant orbs. The hoaming beacon
collection one causes a `hud` crash
This commit is contained in:
Tyler Wilding
2023-01-22 09:31:39 -05:00
committed by GitHub
parent 98393c6f4c
commit 2ba07eb058
20 changed files with 14263 additions and 3301 deletions
+37 -58
View File
@@ -13206,7 +13206,7 @@
(delay uint16 :offset-assert 14)
(pos uint16 :offset-assert 16)
(neg uint16 :offset-assert 18)
(on-close basic :offset-assert 20)
(on-close pair :offset-assert 20)
)
:pack-me
:method-count-assert 14
@@ -43906,8 +43906,8 @@
;; consite-texture ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; (define-extern *kor-transform-texture-anim-array* texture-anim-array)
;; (define-extern set-kor-texture-morph! function)
(define-extern *kor-transform-texture-anim-array* texture-anim-array)
(define-extern set-kor-texture-morph! (function float symbol))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; consite-part ;;
@@ -43936,7 +43936,6 @@
;; consite-obs ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#|
(deftype consite-break-scaffold (process-drawable)
()
:method-count-assert 21
@@ -43946,9 +43945,7 @@
(idle () _type_ :state 20)
)
)
|#
#|
(deftype consite-bomb-elevator-hinges (process-drawable)
()
:method-count-assert 21
@@ -43958,9 +43955,7 @@
(idle () _type_ :state 20)
)
)
|#
#|
(deftype consite-bomb-elevator (process-drawable)
()
:method-count-assert 21
@@ -43970,9 +43965,7 @@
(idle () _type_ :state 20)
)
)
|#
#|
(deftype consite-silo-doors (process-drawable)
()
:method-count-assert 21
@@ -43982,9 +43975,7 @@
(idle () _type_ :state 20)
)
)
|#
#|
(deftype baron-npc (process-taskable)
()
:method-count-assert 38
@@ -43993,10 +43984,9 @@
(:methods
)
)
|#
;; (define-extern consite-bomb-elevator-hinges-init-by-other function)
;; (define-extern consite-activate function)
(define-extern consite-bomb-elevator-hinges-init-by-other (function consite-bomb-elevator entity-actor none :behavior consite-bomb-elevator-hinges))
(define-extern consite-activate (function none))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; target-indax ;;
@@ -46560,13 +46550,12 @@
;; ctywide-bbush ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#|
(deftype race-ring (process-drawable)
((last-target-pos vector :inline :offset-assert 204)
(keep-part-track-alive symbol :offset-assert 220) ;; guessed by decompiler
(part-track uint64 :offset-assert 228) ;; handle
(rot-y float :offset-assert 236)
(cyl cylinder-flat :inline :offset-assert 252)
((last-target-pos vector :inline :offset-assert 208)
(keep-part-track-alive symbol :offset-assert 224) ;; guessed by decompiler
(part-track handle :offset-assert 232) ;; handle
(rot-y float :offset-assert 240)
(cyl cylinder-flat :inline :offset-assert 256)
)
:method-count-assert 24
:size-assert #x128
@@ -46574,30 +46563,27 @@
(:methods
(idle () _type_ :state 20)
(die () _type_ :state 21)
(race-ring-method-22 () none 22)
(race-ring-method-23 () none 23)
(race-ring-method-22 (_type_) none 22)
(race-ring-method-23 (_type_) none 23)
)
)
|#
#|
(declare-type city-race-ring-info structure)
(deftype bb-ring-info (structure)
((time time-frame :offset-assert 0)
(start-pos vector :inline :offset-assert 16)
(rotation float :offset-assert 32)
(rings basic :offset-assert 36)
(rings (array city-race-ring-info) :offset-assert 36)
)
:method-count-assert 9
:size-assert #x28
:flag-assert #x900000028
)
|#
#|
(deftype bush-collect (process-drawable)
((minimap connection-minimap :offset-assert 196)
(trans-y float :offset-assert 200)
(beep-time float :offset-assert 204)
((minimap connection-minimap :offset-assert 200)
(trans-y float :offset-assert 204)
(beep-time float :offset-assert 208)
)
:method-count-assert 24
:size-assert #xd4
@@ -46605,67 +46591,60 @@
(:methods
(idle () _type_ :state 20)
(die () _type_ :state 21)
(bush-collect-method-22 () none 22)
(bush-collect-method-23 () none 23)
(bush-collect-method-22 (_type_) none 22)
(bush-collect-method-23 (_type_) none 23)
)
)
|#
#|
(deftype burning-bush-collection-info (structure)
((pos vector :inline :offset-assert 0)
(handle uint64 :offset-assert 16)
(handle handle :offset-assert 16)
(minimap connection-minimap :offset-assert 24)
)
:method-count-assert 10
:size-assert #x1c
:flag-assert #xa0000001c
(:methods
(burning-bush-collection-info-method-9 () none 9)
(burning-bush-collection-info-method-9 (_type_ object) none 9)
)
)
|#
#|
(deftype bb-collection-info (structure)
((user-data uint32 :offset-assert 0)
(time time-frame :offset-assert 8)
(colls basic :offset-assert 16)
(colls (array burning-bush-collection-info) :offset-assert 16)
)
:method-count-assert 9
:size-assert #x14
:flag-assert #x900000014
)
|#
#|
(deftype burning-bush-get-on-info (structure)
((trans vector :inline :offset-assert 0)
(quat quaternion :inline :offset-assert 16)
(camera-trans vector :inline :offset-assert 32)
(camera-rot UNKNOWN 9 :offset-assert 48)
(camera-rot float 9 :offset-assert 48)
(time float :offset-assert 84)
)
:method-count-assert 9
:size-assert #x58
:flag-assert #x900000058
)
|#
;; (define-extern race-ring-set-particle-rotation-callback function) ;; (function part-tracker none)
;; (define-extern race-ring-init-by-other function)
;; (define-extern race-ring-spawn function)
;; (define-extern *bb-ring-info* array)
;; (define-extern *city-race-ring-edit-info* object)
;; (define-extern bush-collect-init-by-other function)
;; (define-extern bush-collect-dark-eco-init-by-other function)
;; (define-extern bush-collect-homing-beacon-init-by-other function)
;; (define-extern bush-collect-spawn function)
;; (define-extern bush-collect-homing-beacon-spawn function)
;; (define-extern bush-collect-dark-eco-spawn function)
;; (define-extern *bb-collection-info* array)
;; (define-extern *city-bb-collection-edit-info* object)
;; (define-extern *burning-bush-get-on-info* array)
(define-extern race-ring-set-particle-rotation-callback (function part-tracker none))
(define-extern race-ring-init-by-other (function city-race-ring-info none :behavior race-ring))
(define-extern race-ring-spawn (function task-manager city-race-ring-info process))
(define-extern *bb-ring-info* (array bb-ring-info))
(define-extern *city-race-ring-edit-info* (pointer int32))
(define-extern bush-collect-init-by-other (function vector none :behavior bush-collect))
(define-extern bush-collect-dark-eco-init-by-other (function vector none :behavior bush-collect))
(define-extern bush-collect-homing-beacon-init-by-other (function vector none :behavior bush-collect))
(define-extern bush-collect-spawn (function task-manager vector (pointer bush-collect)))
(define-extern bush-collect-homing-beacon-spawn (function task-manager vector (pointer bush-collect)))
(define-extern bush-collect-dark-eco-spawn (function task-manager vector (pointer bush-collect)))
(define-extern *bb-collection-info* (array bb-collection-info))
(define-extern *city-bb-collection-edit-info* (pointer int32))
(define-extern *burning-bush-get-on-info* (array burning-bush-get-on-info))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; delivery-task ;;
@@ -927,5 +927,26 @@
[0, "(function none :behavior scene-player)"],
[1, "(function none :behavior scene-player)"],
[2, "(function none :behavior scene-player)"]
],
"ctywide-bbush": [
[
9,
"(function process int symbol event-message-block none :behavior task-manager)"
],
[10, "(function symbol :behavior task-manager)"],
[11, "(function none :behavior task-manager)"],
[12, "(function none :behavior task-manager)"],
[13, "(function none :behavior task-manager)"],
[14, "(function none :behavior task-manager)"],
[15, "(function none :behavior task-manager)"],
[16, "(function none :behavior task-manager)"],
[17, "(function none :behavior task-manager)"],
[18, "(function none :behavior task-manager)"],
[19, "(function none :behavior task-manager)"],
[36, "(function none :behavior task-manager)"],
[37, "(function none :behavior task-manager)"],
[38, "(function none :behavior task-manager)"],
[39, "(function none :behavior task-manager)"],
[40, "(function none :behavior task-manager)"]
]
}
+9 -1
View File
@@ -121,7 +121,7 @@
// "DGO/HALFPIPE.DGO",
// "DGO/LSAMERGD.DGO",
"DGO/PAS.DGO",
// "DGO/LBBUSH.DGO",
"DGO/LBBUSH.DGO",
"DGO/LPACKAGE.DGO",
"DGO/LINTCSTB.DGO",
// "DGO/LPORTRUN.DGO",
@@ -190,8 +190,15 @@
"CAP.DGO",
"CGA.DGO",
"CGB.DGO",
"CGC.DGO",
"CFA.DGO",
"CFB.DGO",
"CIA.DGO",
"CIB.DGO",
"CMA.DGO",
"CMB.DGO",
"COA.DGO",
"COB.DGO",
"CPA.DGO",
"CPO.DGO",
"CTA.DGO",
@@ -216,6 +223,7 @@
"HIPHOG.DGO",
"INTROCST.DGO",
"KIOSK.DGO",
"LBBUSH.DGO",
"LCGUARD.DGO",
"LCITYLOW.DGO",
"LDJAKBRN.DGO",
+5 -1
View File
@@ -57,7 +57,7 @@
["L19", "(pointer float)", 28]
],
"ocean-frames": [["L1", "(pointer uint32)", 16384]],
"ambient-h": [["L1", "(inline-array talker-speech-class)", 188]],
"ambient-h": [["L1", "(inline-array talker-speech-class)", 465]],
"pat-h": [["L1", "(inline-array pat-mode-info)", 4]],
"joint-mod-h": [["L43", "(inline-array vector)", 6]],
"rigid-body": [["L163", "rigid-body-object-constants"]],
@@ -1156,5 +1156,9 @@
"fortress-scenes": [
["L60", "vector"],
["L69", "sprite-vec-data-2d"]
],
"ctywide-bbush": [
["L186", "(pointer int32)", 512],
["L330", "(pointer int32)", 512]
]
}
@@ -1734,5 +1734,10 @@
"(trans idle vehicle-turret)": [[16, "vector"]],
"(anon-function 9 hal3-course)": [[96, "transport-params"]],
"(method 17 turret-control)": [[16, "attack-info"]],
"(code active lightning-tracker)": [[16, "vector"]]
"(code active lightning-tracker)": [[16, "vector"]],
"title-plug-lightning": [[16, "vector"]],
"(anon-function 18 ctywide-bbush)": [
[64, "vector"],
[128, "vector"]
]
}
+6 -1
View File
@@ -7946,5 +7946,10 @@
"(anon-function 16 hal3-course)": [[32, "v1", "halt-wait-spot"]],
"(anon-function 14 hal3-course)": [[32, "v1", "halt-wait-spot"]],
"(anon-function 17 hal3-course)": [[55, "v1", "task-manager"]],
"title-plug-lightning": [[99, "v1", "title-control"]]
"title-plug-lightning": [[99, "v1", "title-control"]],
"(trans idle race-ring)": [
[96, "a1", "process-focusable"],
[19, "a0", "part-tracker"]
],
"race-ring-set-particle-rotation-callback": [[1, "v1", "(pointer race-ring)"]]
}
+7
View File
@@ -4037,5 +4037,12 @@
"sv-16": "data",
"v1-15": "_data"
}
},
"set-kor-texture-morph!": {
"vars": {
"v1-0": "tex-arr",
"a1-0": "tex-idx"
},
"args": ["time"]
}
}
@@ -129,6 +129,7 @@ void OpenGLRenderer::init_bucket_renderers_jak2() {
init_bucket_renderer<TFragment>("tfrag-l4-tfrag", BucketCategory::TFRAG, BucketId::TFRAG_L4_TFRAG,
std::vector{tfrag3::TFragmentTreeKind::NORMAL}, false, 4);
init_bucket_renderer<Tie3>("tie-l4-tfrag", BucketCategory::TIE, BucketId::TIE_L4_TFRAG, 4);
init_bucket_renderer<Merc2>("merc-l4-tfrag", BucketCategory::MERC, BucketId::MERC_L4_TFRAG);
// 60
init_bucket_renderer<TextureUploadHandler>("tex-l5-tfrag", BucketCategory::TEX,
BucketId::TEX_L5_TFRAG);
@@ -180,7 +181,17 @@ void OpenGLRenderer::init_bucket_renderers_jak2() {
std::vector{tfrag3::TFragmentTreeKind::TRANS}, false, 2);
// 150
init_bucket_renderer<Merc2>("merc-l2-alpha", BucketCategory::MERC, BucketId::MERC_L2_ALPHA);
init_bucket_renderer<TextureUploadHandler>("tex-l3-alpha", BucketCategory::TEX,
BucketId::TEX_L3_ALPHA);
init_bucket_renderer<TFragment>("tfrag-t-l3-alpha", BucketCategory::TFRAG,
BucketId::TFRAG_T_L3_ALPHA,
std::vector{tfrag3::TFragmentTreeKind::TRANS}, false, 3);
// 160
init_bucket_renderer<TextureUploadHandler>("tex-l4-alpha", BucketCategory::TEX,
BucketId::TEX_L4_ALPHA);
init_bucket_renderer<TFragment>("tfrag-t-l4-alpha", BucketCategory::TFRAG,
BucketId::TFRAG_T_L4_ALPHA,
std::vector{tfrag3::TFragmentTreeKind::TRANS}, false, 4);
// 170
init_bucket_renderer<TextureUploadHandler>("tex-l5-alpha", BucketCategory::TEX,
BucketId::TEX_L5_ALPHA);
+5
View File
@@ -104,6 +104,7 @@ enum class BucketId {
TEX_L4_TFRAG = 51,
TFRAG_L4_TFRAG = 52,
TIE_L4_TFRAG = 53,
MERC_L4_TFRAG = 58,
TEX_L5_TFRAG = 62,
TFRAG_L5_TFRAG = 63,
TIE_L5_TFRAG = 64,
@@ -128,6 +129,10 @@ enum class BucketId {
TEX_L2_ALPHA = 147,
TFRAG_T_L2_ALPHA = 148,
MERC_L2_ALPHA = 151,
TEX_L3_ALPHA = 157,
TFRAG_T_L3_ALPHA = 158,
TEX_L4_ALPHA = 167,
TFRAG_T_L4_ALPHA = 168,
TEX_L5_ALPHA = 177,
TEX_LCOM_TFRAG = 187,
MERC_LCOM_TFRAG = 188,
File diff suppressed because it is too large Load Diff
+25 -30
View File
@@ -1534,8 +1534,6 @@
"baron-consite+0-ag"
"consite-break-scaffold-a-ag"
"consite-break-scaffold-ag"
;; "daxter-highres-ag"
;; "jak-highres-ag"
"baron-highres-ag"
"crimson-guard-highres-ag"
"consite-bomb-elevator-ag"
@@ -1550,25 +1548,22 @@
;; ;; COB
;; ;;;;;;;;;;;;;;;;;;;;;
;; (cgo "COB.DGO" "cob.gd")
(cgo "COB.DGO" "cob.gd")
;; (goal-src-sequence
;; ""
;; :deps ("$OUT/obj/los-control.o")
;; "levels/consite/consiteb-part.gc"
;; )
(goal-src-sequence
""
:deps ("$OUT/obj/los-control.o")
"levels/consite/consiteb-part.gc"
)
;; (copy-textures 3032 3033 3142 3180 3239)
(copy-textures 3032 3033 3142 3180 3239)
;; (copy-gos
;; "kor-transform-ag"
;; "kor-break-ag"
;; "metalkor-highres-ag"
;; "com-airlock-inner-ag"
;; "door-ctyinda-ag"
;; "kor-break-ray-ag"
;; "consiteb-vis"
;; )
(copy-gos
"kor-transform-ag"
"kor-break-ag"
"kor-break-ray-ag"
"consiteb-vis"
)
;; ;;;;;;;;;;;;;;;;;;;;;
;; ;; CPA
@@ -2471,21 +2466,21 @@
;; ;; LBBUSH
;; ;;;;;;;;;;;;;;;;;;;;;
;; (cgo "LBBUSH.DGO" "lbbush.gd")
(cgo "LBBUSH.DGO" "lbbush.gd")
;; (goal-src-sequence
;; ""
;; :deps ("$OUT/obj/los-control.o")
;; "levels/city/side_missions/ctywide-bbush.gc"
;; )
(goal-src-sequence
""
:deps ("$OUT/obj/los-control.o")
"levels/city/side_missions/ctywide-bbush.gc"
)
;; (copy-textures 3336 3465)
(copy-textures 3336 3465)
;; (copy-gos
;; "hovering-mine-ag"
;; "homing-beacon-ag"
;; "lbbush"
;; )
(copy-gos
"hovering-mine-ag"
"homing-beacon-ag"
"lbbush"
)
;; ;;;;;;;;;;;;;;;;;;;;;
;; ;; LBOMBBOT
File diff suppressed because it is too large Load Diff
+1
View File
@@ -1259,6 +1259,7 @@ This commonly includes things such as:
- collision information
- loading the skeleton group / bones
- sounds"
(stack-size-set! (-> obj main-thread) 1024)
(let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player))))
(set! (-> s5-0 penetrated-by) (penetrate))
(let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0)))
+338
View File
@@ -5,5 +5,343 @@
;; name in dgo: consite-obs
;; dgos: COA
(declare-type consite-bomb-elevator process-drawable)
;; DECOMP BEGINS
(defskelgroup skel-consite-break-piece-break-d consite-break-scaffold consite-break-scaffold-break-d-lod0-jg consite-break-scaffold-break-d-idle-ja
((consite-break-scaffold-break-d-lod0-mg (meters 999999)))
:bounds (static-spherem 25 17 -25 45)
)
(deftype consite-break-scaffold (process-drawable)
()
:heap-base #x50
:method-count-assert 21
:size-assert #xc8
:flag-assert #x15005000c8
(:methods
(idle () _type_ :state 20)
)
)
(defstate idle (consite-break-scaffold)
:virtual #t
:code (the-as (function none :behavior consite-break-scaffold) sleep-code)
)
;; WARN: Return type mismatch object vs none.
(defmethod init-from-entity! consite-break-scaffold ((obj consite-break-scaffold) (arg0 entity-actor))
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
This commonly includes things such as:
- stack size
- collision information
- loading the skeleton group / bones
- sounds"
(set! (-> obj root) (new 'process 'trsqv))
(process-drawable-from-entity! obj arg0)
(initialize-skeleton
obj
(the-as
skeleton-group
(art-group-get-by-name *level* "skel-consite-break-piece-break-d" (the-as (pointer uint32) #f))
)
(the-as pair 0)
)
(ja-post)
(cond
((task-node-closed? (game-task-node consite-find-baron-resolution))
(cleanup-for-death obj)
(logclear! (-> obj mask) (process-mask actor-pause))
(go empty-state)
)
(else
(go (method-of-object obj idle))
)
)
(none)
)
(deftype consite-bomb-elevator-hinges (process-drawable)
()
:heap-base #x50
:method-count-assert 21
:size-assert #xc8
:flag-assert #x15005000c8
(:methods
(idle () _type_ :state 20)
)
)
(defskelgroup skel-consite-bomb-elevator-hinges consite-bomb-elevator consite-bomb-elevator-hinges-lod0-jg consite-bomb-elevator-hinges-idle-ja
((consite-bomb-elevator-hinges-lod0-mg (meters 999999)))
:bounds (static-spherem 0 -25 0 45)
:origin-joint-index 3
)
(defstate idle (consite-bomb-elevator-hinges)
:virtual #t
:code (behavior ()
(until #f
(ja-no-eval :group! (ja-group)
:num! (seek! (the float (+ (-> (ja-group) frames num-frames) -1)))
:frame-num 0.0
)
(until (ja-done? 0)
(suspend)
(ja :num! (seek!))
)
)
#f
(none)
)
:post (the-as (function none :behavior consite-bomb-elevator-hinges) ja-post)
)
;; WARN: Return type mismatch object vs none.
(defmethod init-from-entity! consite-bomb-elevator-hinges ((obj consite-bomb-elevator-hinges) (arg0 entity-actor))
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
This commonly includes things such as:
- stack size
- collision information
- loading the skeleton group / bones
- sounds"
(set! (-> obj root) (new 'process 'trsqv))
(process-drawable-from-entity! obj arg0)
(initialize-skeleton
obj
(the-as
skeleton-group
(art-group-get-by-name *level* "skel-consite-bomb-elevator-hinges" (the-as (pointer uint32) #f))
)
(the-as pair 0)
)
(go (method-of-object obj idle))
(none)
)
;; WARN: Return type mismatch object vs none.
(defbehavior consite-bomb-elevator-hinges-init-by-other consite-bomb-elevator-hinges ((arg0 consite-bomb-elevator) (arg1 entity-actor))
(set! (-> self root) (new 'process 'trsqv))
(process-drawable-from-entity! self arg1)
(initialize-skeleton
self
(the-as
skeleton-group
(art-group-get-by-name *level* "skel-consite-bomb-elevator-hinges" (the-as (pointer uint32) #f))
)
(the-as pair 0)
)
(go-virtual idle)
(none)
)
(deftype consite-bomb-elevator (process-drawable)
()
:heap-base #x50
:method-count-assert 21
:size-assert #xc8
:flag-assert #x15005000c8
(:methods
(idle () _type_ :state 20)
)
)
(defskelgroup skel-consite-bomb-elevator consite-bomb-elevator consite-bomb-elevator-lod0-jg consite-bomb-elevator-idle-ja
((consite-bomb-elevator-lod0-mg (meters 999999)))
:bounds (static-spherem 0 -25 0 45)
:origin-joint-index 3
)
(defstate idle (consite-bomb-elevator)
:virtual #t
:code (behavior ()
(until #f
(ja-no-eval :group! (ja-group)
:num! (seek! (the float (+ (-> (ja-group) frames num-frames) -1)))
:frame-num 0.0
)
(until (ja-done? 0)
(suspend)
(ja :num! (seek!))
)
)
#f
(none)
)
:post (the-as (function none :behavior consite-bomb-elevator) ja-post)
)
;; WARN: Return type mismatch object vs none.
(defmethod init-from-entity! consite-bomb-elevator ((obj consite-bomb-elevator) (arg0 entity-actor))
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
This commonly includes things such as:
- stack size
- collision information
- loading the skeleton group / bones
- sounds"
(let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player))))
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 1) 0)))
(set! (-> s4-0 total-prims) (the-as uint 2))
(set! (-> s3-0 prim-core collide-as) (collide-spec obstacle))
(set! (-> s3-0 prim-core collide-with) (collide-spec jak player-list))
(set! (-> s3-0 prim-core action) (collide-action solid))
(set-vector! (-> s3-0 local-sphere) 0.0 -102400.0 0.0 184320.0)
(set! (-> s4-0 root-prim) s3-0)
)
(let ((v1-8 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0))))
(set! (-> v1-8 prim-core collide-as) (collide-spec obstacle))
(set! (-> v1-8 prim-core collide-with) (collide-spec jak player-list))
(set! (-> v1-8 prim-core action) (collide-action solid))
(set! (-> v1-8 transform-index) 3)
(set-vector! (-> v1-8 local-sphere) 0.0 0.0 0.0 61440.0)
)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
(let ((v1-11 (-> s4-0 root-prim)))
(set! (-> s4-0 backup-collide-as) (-> v1-11 prim-core collide-as))
(set! (-> s4-0 backup-collide-with) (-> v1-11 prim-core collide-with))
)
(set! (-> obj root) s4-0)
)
(process-drawable-from-entity! obj arg0)
(initialize-skeleton
obj
(the-as
skeleton-group
(art-group-get-by-name *level* "skel-consite-bomb-elevator" (the-as (pointer uint32) #f))
)
(the-as pair 0)
)
(process-spawn consite-bomb-elevator-hinges obj arg0 :to obj)
(go (method-of-object obj idle))
(none)
)
(deftype consite-silo-doors (process-drawable)
()
:heap-base #x50
:method-count-assert 21
:size-assert #xc8
:flag-assert #x15005000c8
(:methods
(idle () _type_ :state 20)
)
)
(defskelgroup skel-consite-silo-doors consite-silo-doors consite-silo-doors-lod0-jg consite-silo-doors-idle-ja
((consite-silo-doors-lod0-mg (meters 999999)))
:bounds (static-spherem 0 10 0 40)
:origin-joint-index 3
)
(defstate idle (consite-silo-doors)
:virtual #t
:code (behavior ()
(until #f
(ja-no-eval :group! (ja-group)
:num! (seek! (the float (+ (-> (ja-group) frames num-frames) -1)))
:frame-num 0.0
)
(until (ja-done? 0)
(suspend)
(ja :num! (seek!))
)
)
#f
(none)
)
:post (the-as (function none :behavior consite-silo-doors) ja-post)
)
;; WARN: Return type mismatch object vs none.
(defmethod init-from-entity! consite-silo-doors ((obj consite-silo-doors) (arg0 entity-actor))
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
This commonly includes things such as:
- stack size
- collision information
- loading the skeleton group / bones
- sounds"
(let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player))))
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 2) 0)))
(set! (-> s4-0 total-prims) (the-as uint 3))
(set! (-> s3-0 prim-core collide-as) (collide-spec obstacle))
(set! (-> s3-0 prim-core collide-with) (collide-spec jak player-list))
(set! (-> s3-0 prim-core action) (collide-action solid))
(set-vector! (-> s3-0 local-sphere) 0.0 40960.0 0.0 163840.0)
(set! (-> s4-0 root-prim) s3-0)
)
(let ((v1-8 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0))))
(set! (-> v1-8 prim-core collide-as) (collide-spec obstacle))
(set! (-> v1-8 prim-core collide-with) (collide-spec jak player-list))
(set! (-> v1-8 prim-core action) (collide-action solid))
(set! (-> v1-8 transform-index) 4)
(set-vector! (-> v1-8 local-sphere) -40960.0 0.0 0.0 61440.0)
)
(let ((v1-10 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 1) (the-as uint 0))))
(set! (-> v1-10 prim-core collide-as) (collide-spec obstacle))
(set! (-> v1-10 prim-core collide-with) (collide-spec jak player-list))
(set! (-> v1-10 prim-core action) (collide-action solid))
(set! (-> v1-10 transform-index) 5)
(set-vector! (-> v1-10 local-sphere) 40960.0 0.0 0.0 61440.0)
)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
(let ((v1-13 (-> s4-0 root-prim)))
(set! (-> s4-0 backup-collide-as) (-> v1-13 prim-core collide-as))
(set! (-> s4-0 backup-collide-with) (-> v1-13 prim-core collide-with))
)
(set! (-> obj root) s4-0)
)
(process-drawable-from-entity! obj arg0)
(initialize-skeleton
obj
(the-as skeleton-group (art-group-get-by-name *level* "skel-consite-silo-doors" (the-as (pointer uint32) #f)))
(the-as pair 0)
)
(go (method-of-object obj idle))
(none)
)
(defun consite-activate ()
(update-mood-weather! *mood-control* 1.0 1.0 30.0 30.0)
0
(none)
)
(deftype baron-npc (process-taskable)
()
:heap-base #xa0
:method-count-assert 38
:size-assert #x120
:flag-assert #x2600a00120
)
(defmethod get-art-elem baron-npc ((obj baron-npc))
"Checks various things such the current actor, task status, etc to determine the right art-group data to use
@returns the appropriate [[art-element]] for the given NPC"
(case (-> obj task actor)
(((game-task-actor baron-consite))
(-> obj draw art-group data 4)
)
(else
(-> obj draw art-group data 3)
)
)
)
(defmethod init-art! baron-npc ((obj baron-npc))
"@see [[initialize-skeleton]]"
(initialize-skeleton
obj
(the-as skeleton-group (art-group-get-by-name *level* "skel-baron-highres" (the-as (pointer uint32) #f)))
(the-as pair 0)
)
(set! (-> obj draw light-index) (the-as uint 10))
(set! (-> obj draw shadow) #f)
0
(none)
)
@@ -32,6 +32,7 @@ This commonly includes things such as:
- collision information
- loading the skeleton group / bones
- sounds"
(stack-size-set! (-> obj main-thread) 1024)
(let ((cshape (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player))))
(set! (-> cshape penetrated-by) (penetrate))
(let ((cshape-group (new 'process 'collide-shape-prim-group cshape (the-as uint 2) 0)))
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -439,7 +439,7 @@
(-> v1-5 root trans)
)
)
(the-as pair gp-0)
gp-0
)
)
)
File diff suppressed because it is too large Load Diff
+426
View File
@@ -0,0 +1,426 @@
;;-*-Lisp-*-
(in-package goal)
;; failed to figure out what this is:
(defskelgroup skel-consite-break-piece-break-d consite-break-scaffold consite-break-scaffold-break-d-lod0-jg consite-break-scaffold-break-d-idle-ja
((consite-break-scaffold-break-d-lod0-mg (meters 999999)))
:bounds (static-spherem 25 17 -25 45)
)
;; definition of type consite-break-scaffold
(deftype consite-break-scaffold (process-drawable)
()
:heap-base #x50
:method-count-assert 21
:size-assert #xc8
:flag-assert #x15005000c8
(:methods
(idle () _type_ :state 20)
)
)
;; definition for method 3 of type consite-break-scaffold
(defmethod inspect consite-break-scaffold ((obj consite-break-scaffold))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(let ((t9-0 (method-of-type process-drawable inspect)))
(t9-0 obj)
)
(label cfg-4)
obj
)
;; failed to figure out what this is:
(defstate idle (consite-break-scaffold)
:virtual #t
:code (the-as (function none :behavior consite-break-scaffold) sleep-code)
)
;; definition for method 11 of type consite-break-scaffold
;; WARN: Return type mismatch object vs none.
(defmethod init-from-entity! consite-break-scaffold ((obj consite-break-scaffold) (arg0 entity-actor))
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
This commonly includes things such as:
- stack size
- collision information
- loading the skeleton group / bones
- sounds"
(set! (-> obj root) (new 'process 'trsqv))
(process-drawable-from-entity! obj arg0)
(initialize-skeleton
obj
(the-as
skeleton-group
(art-group-get-by-name *level* "skel-consite-break-piece-break-d" (the-as (pointer uint32) #f))
)
(the-as pair 0)
)
(ja-post)
(cond
((task-node-closed? (game-task-node consite-find-baron-resolution))
(cleanup-for-death obj)
(logclear! (-> obj mask) (process-mask actor-pause))
(go empty-state)
)
(else
(go (method-of-object obj idle))
)
)
(none)
)
;; definition of type consite-bomb-elevator-hinges
(deftype consite-bomb-elevator-hinges (process-drawable)
()
:heap-base #x50
:method-count-assert 21
:size-assert #xc8
:flag-assert #x15005000c8
(:methods
(idle () _type_ :state 20)
)
)
;; definition for method 3 of type consite-bomb-elevator-hinges
(defmethod inspect consite-bomb-elevator-hinges ((obj consite-bomb-elevator-hinges))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(let ((t9-0 (method-of-type process-drawable inspect)))
(t9-0 obj)
)
(label cfg-4)
obj
)
;; failed to figure out what this is:
(defskelgroup skel-consite-bomb-elevator-hinges consite-bomb-elevator consite-bomb-elevator-hinges-lod0-jg consite-bomb-elevator-hinges-idle-ja
((consite-bomb-elevator-hinges-lod0-mg (meters 999999)))
:bounds (static-spherem 0 -25 0 45)
:origin-joint-index 3
)
;; failed to figure out what this is:
(defstate idle (consite-bomb-elevator-hinges)
:virtual #t
:code (behavior ()
(until #f
(ja-no-eval :group! (ja-group)
:num! (seek! (the float (+ (-> (ja-group) frames num-frames) -1)))
:frame-num 0.0
)
(until (ja-done? 0)
(suspend)
(ja :num! (seek!))
)
)
#f
(none)
)
:post (the-as (function none :behavior consite-bomb-elevator-hinges) ja-post)
)
;; definition for method 11 of type consite-bomb-elevator-hinges
;; WARN: Return type mismatch object vs none.
(defmethod init-from-entity! consite-bomb-elevator-hinges ((obj consite-bomb-elevator-hinges) (arg0 entity-actor))
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
This commonly includes things such as:
- stack size
- collision information
- loading the skeleton group / bones
- sounds"
(set! (-> obj root) (new 'process 'trsqv))
(process-drawable-from-entity! obj arg0)
(initialize-skeleton
obj
(the-as
skeleton-group
(art-group-get-by-name *level* "skel-consite-bomb-elevator-hinges" (the-as (pointer uint32) #f))
)
(the-as pair 0)
)
(go (method-of-object obj idle))
(none)
)
;; definition for function consite-bomb-elevator-hinges-init-by-other
;; WARN: Return type mismatch object vs none.
(defbehavior consite-bomb-elevator-hinges-init-by-other consite-bomb-elevator-hinges ((arg0 consite-bomb-elevator) (arg1 entity-actor))
(set! (-> self root) (new 'process 'trsqv))
(process-drawable-from-entity! self arg1)
(initialize-skeleton
self
(the-as
skeleton-group
(art-group-get-by-name *level* "skel-consite-bomb-elevator-hinges" (the-as (pointer uint32) #f))
)
(the-as pair 0)
)
(go-virtual idle)
(none)
)
;; definition of type consite-bomb-elevator
(deftype consite-bomb-elevator (process-drawable)
()
:heap-base #x50
:method-count-assert 21
:size-assert #xc8
:flag-assert #x15005000c8
(:methods
(idle () _type_ :state 20)
)
)
;; definition for method 3 of type consite-bomb-elevator
(defmethod inspect consite-bomb-elevator ((obj consite-bomb-elevator))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(let ((t9-0 (method-of-type process-drawable inspect)))
(t9-0 obj)
)
(label cfg-4)
obj
)
;; failed to figure out what this is:
(defskelgroup skel-consite-bomb-elevator consite-bomb-elevator consite-bomb-elevator-lod0-jg consite-bomb-elevator-idle-ja
((consite-bomb-elevator-lod0-mg (meters 999999)))
:bounds (static-spherem 0 -25 0 45)
:origin-joint-index 3
)
;; failed to figure out what this is:
(defstate idle (consite-bomb-elevator)
:virtual #t
:code (behavior ()
(until #f
(ja-no-eval :group! (ja-group)
:num! (seek! (the float (+ (-> (ja-group) frames num-frames) -1)))
:frame-num 0.0
)
(until (ja-done? 0)
(suspend)
(ja :num! (seek!))
)
)
#f
(none)
)
:post (the-as (function none :behavior consite-bomb-elevator) ja-post)
)
;; definition for method 11 of type consite-bomb-elevator
;; WARN: Return type mismatch object vs none.
(defmethod init-from-entity! consite-bomb-elevator ((obj consite-bomb-elevator) (arg0 entity-actor))
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
This commonly includes things such as:
- stack size
- collision information
- loading the skeleton group / bones
- sounds"
(let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player))))
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 1) 0)))
(set! (-> s4-0 total-prims) (the-as uint 2))
(set! (-> s3-0 prim-core collide-as) (collide-spec obstacle))
(set! (-> s3-0 prim-core collide-with) (collide-spec jak player-list))
(set! (-> s3-0 prim-core action) (collide-action solid))
(set-vector! (-> s3-0 local-sphere) 0.0 -102400.0 0.0 184320.0)
(set! (-> s4-0 root-prim) s3-0)
)
(let ((v1-8 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0))))
(set! (-> v1-8 prim-core collide-as) (collide-spec obstacle))
(set! (-> v1-8 prim-core collide-with) (collide-spec jak player-list))
(set! (-> v1-8 prim-core action) (collide-action solid))
(set! (-> v1-8 transform-index) 3)
(set-vector! (-> v1-8 local-sphere) 0.0 0.0 0.0 61440.0)
)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
(let ((v1-11 (-> s4-0 root-prim)))
(set! (-> s4-0 backup-collide-as) (-> v1-11 prim-core collide-as))
(set! (-> s4-0 backup-collide-with) (-> v1-11 prim-core collide-with))
)
(set! (-> obj root) s4-0)
)
(process-drawable-from-entity! obj arg0)
(initialize-skeleton
obj
(the-as
skeleton-group
(art-group-get-by-name *level* "skel-consite-bomb-elevator" (the-as (pointer uint32) #f))
)
(the-as pair 0)
)
(process-spawn consite-bomb-elevator-hinges obj arg0 :to obj)
(go (method-of-object obj idle))
(none)
)
;; definition of type consite-silo-doors
(deftype consite-silo-doors (process-drawable)
()
:heap-base #x50
:method-count-assert 21
:size-assert #xc8
:flag-assert #x15005000c8
(:methods
(idle () _type_ :state 20)
)
)
;; definition for method 3 of type consite-silo-doors
(defmethod inspect consite-silo-doors ((obj consite-silo-doors))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(let ((t9-0 (method-of-type process-drawable inspect)))
(t9-0 obj)
)
(label cfg-4)
obj
)
;; failed to figure out what this is:
(defskelgroup skel-consite-silo-doors consite-silo-doors consite-silo-doors-lod0-jg consite-silo-doors-idle-ja
((consite-silo-doors-lod0-mg (meters 999999)))
:bounds (static-spherem 0 10 0 40)
:origin-joint-index 3
)
;; failed to figure out what this is:
(defstate idle (consite-silo-doors)
:virtual #t
:code (behavior ()
(until #f
(ja-no-eval :group! (ja-group)
:num! (seek! (the float (+ (-> (ja-group) frames num-frames) -1)))
:frame-num 0.0
)
(until (ja-done? 0)
(suspend)
(ja :num! (seek!))
)
)
#f
(none)
)
:post (the-as (function none :behavior consite-silo-doors) ja-post)
)
;; definition for method 11 of type consite-silo-doors
;; WARN: Return type mismatch object vs none.
(defmethod init-from-entity! consite-silo-doors ((obj consite-silo-doors) (arg0 entity-actor))
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
This commonly includes things such as:
- stack size
- collision information
- loading the skeleton group / bones
- sounds"
(let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player))))
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 2) 0)))
(set! (-> s4-0 total-prims) (the-as uint 3))
(set! (-> s3-0 prim-core collide-as) (collide-spec obstacle))
(set! (-> s3-0 prim-core collide-with) (collide-spec jak player-list))
(set! (-> s3-0 prim-core action) (collide-action solid))
(set-vector! (-> s3-0 local-sphere) 0.0 40960.0 0.0 163840.0)
(set! (-> s4-0 root-prim) s3-0)
)
(let ((v1-8 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0))))
(set! (-> v1-8 prim-core collide-as) (collide-spec obstacle))
(set! (-> v1-8 prim-core collide-with) (collide-spec jak player-list))
(set! (-> v1-8 prim-core action) (collide-action solid))
(set! (-> v1-8 transform-index) 4)
(set-vector! (-> v1-8 local-sphere) -40960.0 0.0 0.0 61440.0)
)
(let ((v1-10 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 1) (the-as uint 0))))
(set! (-> v1-10 prim-core collide-as) (collide-spec obstacle))
(set! (-> v1-10 prim-core collide-with) (collide-spec jak player-list))
(set! (-> v1-10 prim-core action) (collide-action solid))
(set! (-> v1-10 transform-index) 5)
(set-vector! (-> v1-10 local-sphere) 40960.0 0.0 0.0 61440.0)
)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
(let ((v1-13 (-> s4-0 root-prim)))
(set! (-> s4-0 backup-collide-as) (-> v1-13 prim-core collide-as))
(set! (-> s4-0 backup-collide-with) (-> v1-13 prim-core collide-with))
)
(set! (-> obj root) s4-0)
)
(process-drawable-from-entity! obj arg0)
(initialize-skeleton
obj
(the-as skeleton-group (art-group-get-by-name *level* "skel-consite-silo-doors" (the-as (pointer uint32) #f)))
(the-as pair 0)
)
(go (method-of-object obj idle))
(none)
)
;; definition for function consite-activate
;; WARN: Return type mismatch int vs none.
(defun consite-activate ()
(update-mood-weather! *mood-control* 1.0 1.0 30.0 30.0)
0
(none)
)
;; definition of type baron-npc
(deftype baron-npc (process-taskable)
()
:heap-base #xa0
:method-count-assert 38
:size-assert #x120
:flag-assert #x2600a00120
)
;; definition for method 3 of type baron-npc
(defmethod inspect baron-npc ((obj baron-npc))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(let ((t9-0 (method-of-type process-taskable inspect)))
(t9-0 obj)
)
(label cfg-4)
obj
)
;; definition for method 35 of type baron-npc
(defmethod get-art-elem baron-npc ((obj baron-npc))
"Checks various things such the current actor, task status, etc to determine the right art-group data to use
@returns the appropriate [[art-element]] for the given NPC"
(case (-> obj task actor)
(((game-task-actor baron-consite))
(-> obj draw art-group data 4)
)
(else
(-> obj draw art-group data 3)
)
)
)
;; definition for method 33 of type baron-npc
;; WARN: Return type mismatch int vs none.
(defmethod init-art! baron-npc ((obj baron-npc))
"@see [[initialize-skeleton]]"
(initialize-skeleton
obj
(the-as skeleton-group (art-group-get-by-name *level* "skel-baron-highres" (the-as (pointer uint32) #f)))
(the-as pair 0)
)
(set! (-> obj draw light-index) (the-as uint 10))
(set! (-> obj draw shadow) #f)
0
(none)
)
+1
View File
@@ -38,6 +38,7 @@
"DGO/HIPHOG.DGO",
"DGO/INTROCST.DGO",
"DGO/KIOSK.DGO",
"DGO/LBBUSH.DGO",
"DGO/LBOMBBOT.DGO",
"DGO/LERLCHAL.DGO",
"DGO/LKIDDOGE.DGO",