mirror of
https://github.com/open-goal/jak-project
synced 2026-08-02 00:34:13 -04:00
ogreboss PAL patch
This commit is contained in:
@@ -33012,7 +33012,7 @@
|
||||
(define-extern ogreboss-bounce-boulder-init-by-other (function int entity-actor none :behavior ogreboss-bounce-boulder))
|
||||
(define-extern ogreboss-set-stage1-camera (function none))
|
||||
(define-extern ogreboss-move-near (function time-frame float none :behavior ogreboss))
|
||||
(define-extern ogreboss-shoot-boulder (function int none :behavior ogreboss))
|
||||
(define-extern ogreboss-shoot-boulder (function pickup-type none :behavior ogreboss))
|
||||
(define-extern ogreboss-inc-try-count (function none :behavior ogreboss))
|
||||
(define-extern ogreboss-emerge (function float none :behavior ogreboss))
|
||||
(define-extern ogreboss-pick-target (function int :behavior ogreboss))
|
||||
|
||||
@@ -1645,7 +1645,6 @@
|
||||
["L370", "attack-info"],
|
||||
["L371", "attack-info"],
|
||||
["L384", "float", true],
|
||||
["L384", "float", true],
|
||||
["L385", "float", true],
|
||||
["L386", "float", true],
|
||||
["L387", "float", true],
|
||||
|
||||
@@ -4054,5 +4054,11 @@
|
||||
}
|
||||
},
|
||||
|
||||
"(code ogreboss-stage1)": {
|
||||
"vars": {
|
||||
"s5-0": ["boulder-pickup", "pickup-type"]
|
||||
}
|
||||
},
|
||||
|
||||
"aaaaaaaaaaaaaaaaaaaaaaa": {}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
// if you want to filter to only some object names.
|
||||
// it will make the decompiler much faster.
|
||||
"allowed_objects": ["powerups", "windmill-sail-ag", "medres-beach3-ag", "mayorgears-ag", "medres-village11-ag", "revcycleprop-ag", "medres-jungle2-ag", "revcycle-ag", "medres-misty-ag", "sagesail-ag", "windspinner-ag", "medres-jungle1-ag", "medres-village12-ag", "hutlamp-ag", "medres-jungle-ag", "medres-village13-ag", "medres-beach2-ag", "villa-starfish-ag", "medres-training-ag", "medres-beach-ag", "reflector-middle-ag", "medres-beach1-ag", "evilplant-ag", "swamp-rock-ag", "swamp-spike-ag", "swampcam-ag", "tar-plat-ag", "balance-plat-ag", "eichar-ag"],
|
||||
"allowed_objects": ["ogreboss", "ogreboss-ag", "windmill-sail-ag", "medres-beach3-ag", "mayorgears-ag", "medres-village11-ag", "revcycleprop-ag", "medres-jungle2-ag", "revcycle-ag", "medres-misty-ag", "sagesail-ag", "windspinner-ag", "medres-jungle1-ag", "medres-village12-ag", "hutlamp-ag", "medres-jungle-ag", "medres-village13-ag", "medres-beach2-ag", "villa-starfish-ag", "medres-training-ag", "medres-beach-ag", "reflector-middle-ag", "medres-beach1-ag", "evilplant-ag", "swamp-rock-ag", "swamp-spike-ag", "swampcam-ag", "tar-plat-ag", "balance-plat-ag", "eichar-ag"],
|
||||
"banned_objects": [],
|
||||
|
||||
////////////////////////////
|
||||
|
||||
@@ -1576,103 +1576,6 @@
|
||||
["L145", "vector"]
|
||||
],
|
||||
|
||||
"ogreboss": [
|
||||
["L359", "attack-info"],
|
||||
["L367", "attack-info"],
|
||||
["L370", "attack-info"],
|
||||
["L371", "attack-info"],
|
||||
["L384", "float", true],
|
||||
["L384", "float", true],
|
||||
["L385", "float", true],
|
||||
["L386", "float", true],
|
||||
["L387", "float", true],
|
||||
["L388", "float", true],
|
||||
["L389", "float", true],
|
||||
["L390", "float", true],
|
||||
["L391", "float", true],
|
||||
["L392", "float", true],
|
||||
["L393", "float", true],
|
||||
["L394", "float", true],
|
||||
["L395", "float", true],
|
||||
["L396", "float", true],
|
||||
["L397", "float", true],
|
||||
["L398", "float", true],
|
||||
["L399", "float", true],
|
||||
["L400", "float", true],
|
||||
["L401", "float", true],
|
||||
["L402", "float", true],
|
||||
["L403", "float", true],
|
||||
["L404", "float", true],
|
||||
["L405", "float", true],
|
||||
["L406", "float", true],
|
||||
["L407", "float", true],
|
||||
["L408", "float", true],
|
||||
["L409", "float", true],
|
||||
["L410", "float", true],
|
||||
["L411", "float", true],
|
||||
["L412", "float", true],
|
||||
["L413", "float", true],
|
||||
["L414", "float", true],
|
||||
["L415", "float", true],
|
||||
["L416", "float", true],
|
||||
["L417", "float", true],
|
||||
["L418", "float", true],
|
||||
["L419", "float", true],
|
||||
["L420", "float", true],
|
||||
["L421", "float", true],
|
||||
["L422", "float", true],
|
||||
["L423", "float", true],
|
||||
["L424", "float", true],
|
||||
["L425", "float", true],
|
||||
["L426", "float", true],
|
||||
["L427", "float", true],
|
||||
["L428", "float", true],
|
||||
["L429", "float", true],
|
||||
["L430", "float", true],
|
||||
["L431", "float", true],
|
||||
["L432", "float", true],
|
||||
["L433", "float", true],
|
||||
["L434", "float", true],
|
||||
["L435", "float", true],
|
||||
["L436", "float", true],
|
||||
["L437", "float", true],
|
||||
["L438", "float", true],
|
||||
["L439", "float", true],
|
||||
["L440", "float", true],
|
||||
["L441", "float", true],
|
||||
["L442", "float", true],
|
||||
["L443", "float", true],
|
||||
["L444", "float", true],
|
||||
["L445", "float", true],
|
||||
["L446", "float", true],
|
||||
["L447", "float", true],
|
||||
["L448", "float", true],
|
||||
["L449", "float", true],
|
||||
["L450", "float", true],
|
||||
["L451", "float", true],
|
||||
["L452", "float", true],
|
||||
["L453", "float", true],
|
||||
["L454", "float", true],
|
||||
["L455", "float", true],
|
||||
["L456", "float", true],
|
||||
["L457", "float", true],
|
||||
["L458", "float", true],
|
||||
["L459", "float", true],
|
||||
["L460", "float", true],
|
||||
["L461", "rgba", true],
|
||||
["L462", "uint64", true],
|
||||
["L463", "uint64", true],
|
||||
["L464", "uint64", true],
|
||||
["L465", "uint64", true],
|
||||
["L466", "uint64", true],
|
||||
["L525", "float", true],
|
||||
["L526", "uint64", true],
|
||||
["L527", "uint64", true],
|
||||
["L528", "uint64", true],
|
||||
["L529", "uint64", true],
|
||||
["L530", "uint64", true]
|
||||
],
|
||||
|
||||
"target-flut": [
|
||||
["L399", "attack-info"],
|
||||
["L406", "float", true],
|
||||
@@ -2100,6 +2003,102 @@
|
||||
|
||||
"sequence-a-village1": [["L40", "vector"]],
|
||||
|
||||
"ogreboss": [
|
||||
["L360", "attack-info"],
|
||||
["L368", "attack-info"],
|
||||
["L371", "attack-info"],
|
||||
["L372", "attack-info"],
|
||||
["L385", "float", true],
|
||||
["L386", "float", true],
|
||||
["L387", "float", true],
|
||||
["L388", "float", true],
|
||||
["L389", "float", true],
|
||||
["L390", "float", true],
|
||||
["L391", "float", true],
|
||||
["L392", "float", true],
|
||||
["L393", "float", true],
|
||||
["L394", "float", true],
|
||||
["L395", "float", true],
|
||||
["L396", "float", true],
|
||||
["L397", "float", true],
|
||||
["L398", "float", true],
|
||||
["L399", "float", true],
|
||||
["L400", "float", true],
|
||||
["L401", "float", true],
|
||||
["L402", "float", true],
|
||||
["L403", "float", true],
|
||||
["L404", "float", true],
|
||||
["L405", "float", true],
|
||||
["L406", "float", true],
|
||||
["L407", "float", true],
|
||||
["L408", "float", true],
|
||||
["L409", "float", true],
|
||||
["L410", "float", true],
|
||||
["L411", "float", true],
|
||||
["L412", "float", true],
|
||||
["L413", "float", true],
|
||||
["L414", "float", true],
|
||||
["L415", "float", true],
|
||||
["L416", "float", true],
|
||||
["L417", "float", true],
|
||||
["L418", "float", true],
|
||||
["L419", "float", true],
|
||||
["L420", "float", true],
|
||||
["L421", "float", true],
|
||||
["L422", "float", true],
|
||||
["L423", "float", true],
|
||||
["L424", "float", true],
|
||||
["L425", "float", true],
|
||||
["L426", "float", true],
|
||||
["L427", "float", true],
|
||||
["L428", "float", true],
|
||||
["L429", "float", true],
|
||||
["L430", "float", true],
|
||||
["L431", "float", true],
|
||||
["L432", "float", true],
|
||||
["L433", "float", true],
|
||||
["L434", "float", true],
|
||||
["L435", "float", true],
|
||||
["L436", "float", true],
|
||||
["L437", "float", true],
|
||||
["L438", "float", true],
|
||||
["L439", "float", true],
|
||||
["L440", "float", true],
|
||||
["L441", "float", true],
|
||||
["L442", "float", true],
|
||||
["L443", "float", true],
|
||||
["L444", "float", true],
|
||||
["L445", "float", true],
|
||||
["L446", "float", true],
|
||||
["L447", "float", true],
|
||||
["L448", "float", true],
|
||||
["L449", "float", true],
|
||||
["L450", "float", true],
|
||||
["L451", "float", true],
|
||||
["L452", "float", true],
|
||||
["L453", "float", true],
|
||||
["L454", "float", true],
|
||||
["L455", "float", true],
|
||||
["L456", "float", true],
|
||||
["L457", "float", true],
|
||||
["L458", "float", true],
|
||||
["L459", "float", true],
|
||||
["L460", "float", true],
|
||||
["L461", "float", true],
|
||||
["L462", "rgba", true],
|
||||
["L463", "uint64", true],
|
||||
["L464", "uint64", true],
|
||||
["L465", "uint64", true],
|
||||
["L466", "uint64", true],
|
||||
["L467", "uint64", true],
|
||||
["L526", "float", true],
|
||||
["L527", "uint64", true],
|
||||
["L528", "uint64", true],
|
||||
["L529", "uint64", true],
|
||||
["L530", "uint64", true],
|
||||
["L531", "uint64", true]
|
||||
],
|
||||
|
||||
// please do not add things after this entry! git is dumb.
|
||||
"object-file-that-doesnt-actually-exist-and-i-just-put-this-here-to-prevent-merge-conflicts-with-this-file": []
|
||||
}
|
||||
|
||||
@@ -471,15 +471,17 @@
|
||||
|
||||
(defbehavior ogreboss-super-boulder-event-handler ogreboss-super-boulder ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(case arg2
|
||||
(('touch)
|
||||
;; PAL patch here
|
||||
(('touch 'attack)
|
||||
(when (and *target* ((method-of-type touching-shapes-entry prims-touching?)
|
||||
(the-as touching-shapes-entry (-> arg3 param 0))
|
||||
(-> self root-override)
|
||||
(the-as uint 1)
|
||||
)
|
||||
)
|
||||
(send-event arg0 'attack (-> arg3 param 0) (static-attack-info ((mode 'ogreboss-super-boulder))))
|
||||
(go ogreboss-super-boulder-killed-player)
|
||||
(if (send-event arg0 'attack-invinc (-> arg3 param 0) (static-attack-info ((mode 'ogreboss-super-boulder))))
|
||||
#f
|
||||
)
|
||||
)
|
||||
)
|
||||
(('effect)
|
||||
@@ -817,7 +819,8 @@
|
||||
(set! (-> self root-override quat vec quad) (-> self parent-override 0 root quat vec quad))
|
||||
(vector-identity! (-> self root-override scale))
|
||||
(initialize-skeleton self *ogreboss-super-boulder-sg* '())
|
||||
(logclear! (-> self mask) (process-mask actor-pause))
|
||||
;; PAL patch here
|
||||
(logclear! (-> self mask) (process-mask actor-pause enemy))
|
||||
(set! (-> self lava) (entity-actor-lookup (-> self entity) 'water-actor 0))
|
||||
(logior! (-> self skel effect flags) 1)
|
||||
(set! (-> self draw origin-joint-index) (the-as uint 3))
|
||||
@@ -1248,14 +1251,15 @@
|
||||
gp-0
|
||||
)
|
||||
|
||||
(defbehavior ogreboss-shoot-boulder ogreboss ((arg0 int))
|
||||
(defbehavior ogreboss-shoot-boulder ogreboss ((arg0 pickup-type))
|
||||
;; TODO non U1 v1 compatibility!!
|
||||
(let ((gp-0 (new 'stack-no-clear 'ogreboss-missile-init-data)))
|
||||
(let ((s5-0 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> gp-0 src) (-> self node-list data 52 bone transform vector 3))
|
||||
(set! (-> gp-0 duration)
|
||||
(the-as time-frame (the int (* 300.0 (+ 1.25 (* -0.25 (-> self level)) (/ 0.5 (-> self difficulty))))))
|
||||
)
|
||||
(set! (-> gp-0 pickup-type) (the-as pickup-type arg0))
|
||||
(set! (-> gp-0 pickup-type) arg0)
|
||||
(set! (-> gp-0 blast-radius) 32768.0)
|
||||
(cond
|
||||
(*target*
|
||||
@@ -1506,7 +1510,7 @@
|
||||
(ja :num! (seek! max f30-0))
|
||||
)
|
||||
(countdown (gp-1 (+ gp-0 -1))
|
||||
(let ((s5-0 0))
|
||||
(let ((s5-0 (pickup-type none)))
|
||||
(let ((f28-0 0.0))
|
||||
(cond
|
||||
((>= 1.0 (-> *target* fact-info-target health))
|
||||
@@ -1530,7 +1534,7 @@
|
||||
)
|
||||
)
|
||||
(if (and *target* (< (rand-vu) f28-0))
|
||||
(set! s5-0 4)
|
||||
(set! s5-0 (pickup-type eco-green))
|
||||
)
|
||||
)
|
||||
(ogreboss-shoot-boulder s5-0)
|
||||
@@ -1542,7 +1546,7 @@
|
||||
)
|
||||
(ogreboss-inc-try-count)
|
||||
)
|
||||
(ogreboss-shoot-boulder 3)
|
||||
(ogreboss-shoot-boulder (pickup-type eco-blue))
|
||||
(ja-no-eval :group! ogreboss-attack2-last-ja :num! (seek! max f30-0) :frame-num 0.0)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
|
||||
+6
-6
@@ -1349,14 +1349,14 @@
|
||||
;; definition for function ogreboss-shoot-boulder
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
;; Used lq/sq
|
||||
(defbehavior ogreboss-shoot-boulder ogreboss ((arg0 int))
|
||||
(defbehavior ogreboss-shoot-boulder ogreboss ((arg0 pickup-type))
|
||||
(let ((gp-0 (new 'stack-no-clear 'ogreboss-missile-init-data)))
|
||||
(let ((s5-0 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> gp-0 src) (-> self node-list data 52 bone transform vector 3))
|
||||
(set! (-> gp-0 duration)
|
||||
(the-as time-frame (the int (* 300.0 (+ 1.25 (* -0.25 (-> self level)) (/ 0.5 (-> self difficulty))))))
|
||||
)
|
||||
(set! (-> gp-0 pickup-type) (the-as pickup-type arg0))
|
||||
(set! (-> gp-0 pickup-type) arg0)
|
||||
(set! (-> gp-0 blast-radius) 32768.0)
|
||||
(cond
|
||||
(*target*
|
||||
@@ -1620,7 +1620,7 @@
|
||||
(ja :num! (seek! max f30-0))
|
||||
)
|
||||
(countdown (gp-1 (+ gp-0 -1))
|
||||
(let ((s5-0 0))
|
||||
(let ((boulder-pickup (pickup-type none)))
|
||||
(let ((f28-0 0.0))
|
||||
(cond
|
||||
((>= 1.0 (-> *target* fact-info-target health))
|
||||
@@ -1644,10 +1644,10 @@
|
||||
)
|
||||
)
|
||||
(if (and *target* (< (rand-vu) f28-0))
|
||||
(set! s5-0 4)
|
||||
(set! boulder-pickup (pickup-type eco-green))
|
||||
)
|
||||
)
|
||||
(ogreboss-shoot-boulder s5-0)
|
||||
(ogreboss-shoot-boulder (the-as pickup-type boulder-pickup))
|
||||
)
|
||||
(ja-no-eval :group! ogreboss-attack2-loop-ja :num! (seek! max f30-0) :frame-num 0.0)
|
||||
(until (ja-done? 0)
|
||||
@@ -1656,7 +1656,7 @@
|
||||
)
|
||||
(ogreboss-inc-try-count)
|
||||
)
|
||||
(ogreboss-shoot-boulder 3)
|
||||
(ogreboss-shoot-boulder (pickup-type eco-blue))
|
||||
(ja-no-eval :group! ogreboss-attack2-last-ja :num! (seek! max f30-0) :frame-num 0.0)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
|
||||
Reference in New Issue
Block a user