mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-20 21:27:52 -04:00
e3473c1902
Also cleaned up `data_decompiler.cpp` to make it a lot less verbose to add a special case for an array field.
370 lines
16 KiB
Common Lisp
370 lines
16 KiB
Common Lisp
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; name: enemy-h.gc
|
|
;; name in dgo: enemy-h
|
|
;; dgos: GAME, COMMON
|
|
|
|
(define-extern get-penetrate-using-from-attack-event (function process-drawable event-message-block penetrate))
|
|
|
|
;; DECOMP BEGINS
|
|
|
|
(defenum enemy-flag
|
|
:type int64
|
|
:bitfield #t
|
|
(lock-focus 0)
|
|
(death-start 1)
|
|
(enable-on-active 2)
|
|
(checking-water 3)
|
|
(check-water 4)
|
|
(spawn-gem 5)
|
|
(chase-startup 6)
|
|
(attackable-backup 7)
|
|
(look-at-focus 8)
|
|
(use-notice-distance 9)
|
|
(enable-on-notice 10)
|
|
(look-at-move-dest 11)
|
|
(notice 12)
|
|
(auto-reset-penetrate 13)
|
|
(jump-check-blocked 14)
|
|
(drawn-mirrored 15)
|
|
(multi-focus 16)
|
|
(alert 17)
|
|
(victory 18)
|
|
(dangerous-backup 19)
|
|
(actor-pause-backup 20)
|
|
(trackable 21)
|
|
(called-dying 22)
|
|
(check-water-backup 23)
|
|
(no-initial-move-to-ground 24)
|
|
(cam-attack-mode 25)
|
|
(trackable-backup 26)
|
|
(enable-on-hostile 27)
|
|
(directed-ready 28)
|
|
(use-trigger 29)
|
|
(directed 30)
|
|
(dislike-combo 31)
|
|
(recover-applied-velocity 32)
|
|
(vulnerable-backup 33)
|
|
(vulnerable 34)
|
|
(recover 35)
|
|
)
|
|
|
|
(deftype enemy-focus (focus)
|
|
((aware uint64 :offset-assert 16)
|
|
(flags uint64 :offset-assert 24)
|
|
)
|
|
:method-count-assert 14
|
|
:size-assert #x20
|
|
:flag-assert #xe00000020
|
|
(:methods
|
|
(enemy-focus-method-13 () none 13)
|
|
)
|
|
)
|
|
|
|
(deftype enemy-info (basic)
|
|
((fact-defaults basic :offset-assert 4)
|
|
(use-die-falling basic :offset-assert 8)
|
|
(use-victory basic :offset-assert 12)
|
|
(use-jump-blocked basic :offset-assert 16)
|
|
(debug-draw-neck basic :offset-assert 20)
|
|
(jump-debug-draw basic :offset-assert 24)
|
|
(move-to-ground basic :offset-assert 28)
|
|
(hover-if-no-ground basic :offset-assert 32)
|
|
(idle-anim-script uint32 :offset-assert 36)
|
|
(idle-anim int32 :offset-assert 40)
|
|
(notice-anim int32 :offset-assert 44)
|
|
(hostile-anim int32 :offset-assert 48)
|
|
(hit-anim int32 :offset-assert 52)
|
|
(knocked-anim int32 :offset-assert 56)
|
|
(knocked-land-anim int32 :offset-assert 60)
|
|
(die-anim int32 :offset-assert 64)
|
|
(die-falling-anim int32 :offset-assert 68)
|
|
(victory-anim int32 :offset-assert 72)
|
|
(jump-wind-up-anim int32 :offset-assert 76)
|
|
(jump-in-air-anim int32 :offset-assert 80)
|
|
(jump-land-anim int32 :offset-assert 84)
|
|
(neck-joint int32 :offset-assert 88)
|
|
(look-at-joint int32 :offset-assert 92)
|
|
(bullseye-joint int32 :offset-assert 96)
|
|
(sound-hit uint128 :offset-assert 112)
|
|
(sound-die uint128 :offset-assert 128)
|
|
(notice-distance meters :offset-assert 144)
|
|
(notice-distance-delta meters :offset-assert 148)
|
|
(proximity-notice-distance meters :offset-assert 152)
|
|
(default-hit-points int32 :offset-assert 156)
|
|
(gnd-collide-with uint32 :offset-assert 160)
|
|
(overlaps-others-collide-with-filter uint32 :offset-assert 164)
|
|
(penetrate-flinch uint64 :offset-assert 168)
|
|
(penetrate-knocked uint64 :offset-assert 176)
|
|
(movement-gravity meters :offset-assert 184)
|
|
(friction float :offset-assert 188)
|
|
(slip-factor float :offset-assert 192)
|
|
(attack-shove-back meters :offset-assert 196)
|
|
(attack-shove-up meters :offset-assert 200)
|
|
(attack-mode basic :offset-assert 204)
|
|
(attack-damage int32 :offset-assert 208)
|
|
(recover-gnd-collide-with uint32 :offset-assert 212)
|
|
(jump-height-min meters :offset-assert 216)
|
|
(jump-height-factor float :offset-assert 220)
|
|
(knocked-seek-ry-clamp float :offset-assert 224)
|
|
(knocked-soft-vxz-lo float :offset-assert 228)
|
|
(knocked-soft-vxz-hi float :offset-assert 232)
|
|
(knocked-soft-vy-lo float :offset-assert 236)
|
|
(knocked-soft-vy-hi float :offset-assert 240)
|
|
(knocked-medium-vxz-lo float :offset-assert 244)
|
|
(knocked-medium-vxz-hi float :offset-assert 248)
|
|
(knocked-medium-vy-lo float :offset-assert 252)
|
|
(knocked-medium-vy-hi float :offset-assert 256)
|
|
(knocked-hard-vxz-lo float :offset-assert 260)
|
|
(knocked-hard-vxz-hi float :offset-assert 264)
|
|
(knocked-hard-vy-lo float :offset-assert 268)
|
|
(knocked-hard-vy-hi float :offset-assert 272)
|
|
(knocked-huge-vxz-lo float :offset-assert 276)
|
|
(knocked-huge-vxz-hi float :offset-assert 280)
|
|
(knocked-huge-vy-lo float :offset-assert 284)
|
|
(knocked-huge-vy-hi float :offset-assert 288)
|
|
(knocked-yellow-vxz-lo float :offset-assert 292)
|
|
(knocked-yellow-vxz-hi float :offset-assert 296)
|
|
(knocked-yellow-vy-lo float :offset-assert 300)
|
|
(knocked-yellow-vy-hi float :offset-assert 304)
|
|
(knocked-red-vxz-lo float :offset-assert 308)
|
|
(knocked-red-vxz-hi float :offset-assert 312)
|
|
(knocked-red-vy-lo float :offset-assert 316)
|
|
(knocked-red-vy-hi float :offset-assert 320)
|
|
(knocked-blue-vxz-lo float :offset-assert 324)
|
|
(knocked-blue-vxz-hi float :offset-assert 328)
|
|
(knocked-blue-vy-lo float :offset-assert 332)
|
|
(knocked-blue-vy-hi float :offset-assert 336)
|
|
(shadow-size meters :offset-assert 340)
|
|
(shadow-max-y meters :offset-assert 344)
|
|
(shadow-min-y meters :offset-assert 348)
|
|
(shadow-locus-dist meters :offset-assert 352)
|
|
(gem-joint int32 :offset-assert 356)
|
|
(gem-seg uint32 :offset-assert 360)
|
|
(gem-no-seg uint32 :offset-assert 364)
|
|
(gem-offset sphere :inline :offset-assert 368)
|
|
)
|
|
:method-count-assert 10
|
|
:size-assert #x180
|
|
:flag-assert #xa00000180
|
|
(:methods
|
|
(enemy-info-method-9 () none 9)
|
|
)
|
|
)
|
|
|
|
(deftype enemy-knocked-info (structure)
|
|
((anim-speed float :offset-assert 0)
|
|
(on-surface-count int32 :offset-assert 4)
|
|
(move-count int32 :offset-assert 8)
|
|
(land-can-land-time time-frame :offset-assert 16)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x18
|
|
:flag-assert #x900000018
|
|
)
|
|
|
|
(deftype enemy-jump-info (structure)
|
|
((flags uint8 :offset-assert 0)
|
|
(anim-speed float :offset-assert 4)
|
|
(hang-time time-frame :offset-assert 8)
|
|
(start-pos vector :inline :offset-assert 16)
|
|
(dest-pos vector :inline :offset-assert 32)
|
|
(traj trajectory :inline :offset-assert 48)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x58
|
|
:flag-assert #x900000058
|
|
)
|
|
|
|
(deftype enemy-init-by-other-params (structure)
|
|
((trans vector :inline :offset-assert 0)
|
|
(quat quaternion :inline :offset-assert 16)
|
|
(entity basic :offset-assert 32)
|
|
(directed? basic :offset-assert 36)
|
|
(no-initial-move-to-ground? basic :offset-assert 40)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x2c
|
|
:flag-assert #x90000002c
|
|
)
|
|
|
|
(deftype enemy-attack-info (structure)
|
|
((attack-id uint32 :offset-assert 0)
|
|
(knocked-type uint8 :offset-assert 4)
|
|
(blue-juggle-count uint8 :offset-assert 5)
|
|
(attacker-handle uint64 :offset-assert 8)
|
|
(attack-time time-frame :offset-assert 16)
|
|
(penetrate-using uint64 :offset-assert 24)
|
|
(attacker-pos vector :inline :offset-assert 32)
|
|
(attack-direction vector :inline :offset-assert 48)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x40
|
|
:flag-assert #x900000040
|
|
)
|
|
|
|
(deftype enemy-best-focus (structure)
|
|
((proc basic :offset-assert 0)
|
|
(rating float :offset-assert 4)
|
|
(aware uint64 :offset-assert 8)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x10
|
|
:flag-assert #x900000010
|
|
)
|
|
|
|
(deftype enemy (process-focusable)
|
|
((enemy-flags enemy-flag :offset-assert 208)
|
|
(enemy-info symbol :offset-assert 216)
|
|
(hit-points int32 :offset-assert 220)
|
|
(gnd-collide uint32 :offset-assert 224)
|
|
(attack-id uint32 :offset-assert 228)
|
|
(persistent-attack-id uint32 :offset-assert 232)
|
|
(water-max-height float :offset-assert 236)
|
|
(water-surface-height float :offset-assert 240)
|
|
(desired-angle float :offset-assert 244)
|
|
(jump-why uint64 :offset-assert 248)
|
|
(penetrated-by-all uint64 :offset-assert 256)
|
|
(penetrated-flinch uint64 :offset-assert 264)
|
|
(penetrated-knocked uint64 :offset-assert 272)
|
|
(reaction-time uint64 :offset-assert 280)
|
|
(notice-time uint64 :offset-assert 288)
|
|
(state-timeout uint64 :offset-assert 296)
|
|
(auto-reset-penetrate-time uint64 :offset-assert 304)
|
|
(hit-focus-time uint64 :offset-assert 312)
|
|
(last-draw-time uint64 :offset-assert 320)
|
|
(starting-time uint64 :offset-assert 328)
|
|
(fated-time uint64 :offset-assert 336)
|
|
(focus-pos vector :inline :offset-assert 352)
|
|
(event-param-point vector :inline :offset-assert 368)
|
|
(jump-dest vector :inline :offset 368)
|
|
(focus enemy-focus :inline :offset-assert 384)
|
|
(incoming enemy-attack-info :inline :offset-assert 416)
|
|
(actor-group actor-group :offset-assert 480)
|
|
(actor-group-count int32 :offset-assert 484)
|
|
(neck symbol :offset-assert 488)
|
|
(on-notice symbol :offset-assert 492)
|
|
(on-active symbol :offset-assert 496)
|
|
(on-hostile symbol :offset-assert 500)
|
|
(on-death symbol :offset-assert 504)
|
|
(idle-anim-player idle-control :inline :offset-assert 512)
|
|
(rand-gen symbol :offset-assert 528)
|
|
)
|
|
:method-count-assert 137
|
|
:size-assert #x214
|
|
:flag-assert #x8901a00214
|
|
(:methods
|
|
(enemy-method-27 () none 27)
|
|
(enemy-method-28 () none 28)
|
|
(enemy-method-29 () none 29)
|
|
(enemy-method-30 () none 30)
|
|
(enemy-method-31 () none 31)
|
|
(enemy-method-32 () none 32)
|
|
(enemy-method-33 () none 33)
|
|
(enemy-method-34 () none 34)
|
|
(enemy-method-35 () none 35)
|
|
(enemy-method-36 () none 36)
|
|
(enemy-method-37 () none 37)
|
|
(enemy-method-38 () none 38)
|
|
(enemy-method-39 () none 39)
|
|
(enemy-method-40 () none 40)
|
|
(enemy-method-41 () none 41)
|
|
(enemy-method-42 () none 42)
|
|
(enemy-method-43 () none 43)
|
|
(enemy-method-44 () none 44)
|
|
(enemy-method-45 () none 45)
|
|
(enemy-method-46 () none 46)
|
|
(enemy-method-47 () none 47)
|
|
(enemy-method-48 () none 48)
|
|
(enemy-method-49 () none 49)
|
|
(enemy-method-50 () none 50)
|
|
(enemy-method-51 () none 51)
|
|
(enemy-method-52 () none 52)
|
|
(enemy-method-53 () none 53)
|
|
(enemy-method-54 () none 54)
|
|
(enemy-method-55 () none 55)
|
|
(enemy-method-56 () none 56)
|
|
(enemy-method-57 () none 57)
|
|
(enemy-method-58 () none 58)
|
|
(enemy-method-59 () none 59)
|
|
(enemy-method-60 () none 60)
|
|
(enemy-method-61 () none 61)
|
|
(enemy-method-62 () none 62)
|
|
(enemy-method-63 () none 63)
|
|
(enemy-method-64 () none 64)
|
|
(enemy-method-65 () none 65)
|
|
(enemy-method-66 () none 66)
|
|
(enemy-method-67 () none 67)
|
|
(enemy-method-68 () none 68)
|
|
(enemy-method-69 () none 69)
|
|
(enemy-method-70 () none 70)
|
|
(enemy-method-71 () none 71)
|
|
(enemy-method-72 () none 72)
|
|
(enemy-method-73 () none 73)
|
|
(enemy-method-74 () none 74)
|
|
(enemy-method-75 () none 75)
|
|
(enemy-method-76 () none 76)
|
|
(enemy-method-77 () none 77)
|
|
(enemy-method-78 () none 78)
|
|
(enemy-method-79 () none 79)
|
|
(enemy-method-80 () none 80)
|
|
(enemy-method-81 () none 81)
|
|
(enemy-method-82 () none 82)
|
|
(enemy-method-83 () none 83)
|
|
(enemy-method-84 () none 84)
|
|
(enemy-method-85 () none 85)
|
|
(enemy-method-86 () none 86)
|
|
(enemy-method-87 () none 87)
|
|
(enemy-method-88 () none 88)
|
|
(enemy-method-89 () none 89)
|
|
(enemy-method-90 () none 90)
|
|
(enemy-method-91 () none 91)
|
|
(enemy-method-92 () none 92)
|
|
(enemy-method-93 () none 93)
|
|
(enemy-method-94 () none 94)
|
|
(enemy-method-95 () none 95)
|
|
(enemy-method-96 () none 96)
|
|
(enemy-method-97 () none 97)
|
|
(enemy-method-98 () none 98)
|
|
(enemy-method-99 () none 99)
|
|
(enemy-method-100 () none 100)
|
|
(enemy-method-101 () none 101)
|
|
(enemy-method-102 () none 102)
|
|
(enemy-method-103 () none 103)
|
|
(enemy-method-104 () none 104)
|
|
(enemy-method-105 () none 105)
|
|
(enemy-method-106 () none 106)
|
|
(enemy-method-107 () none 107)
|
|
(enemy-method-108 () none 108)
|
|
(enemy-method-109 () none 109)
|
|
(enemy-method-110 () none 110)
|
|
(enemy-method-111 () none 111)
|
|
(enemy-method-112 () none 112)
|
|
(enemy-method-113 () none 113)
|
|
(enemy-method-114 () none 114)
|
|
(enemy-method-115 () none 115)
|
|
(enemy-method-116 () none 116)
|
|
(enemy-method-117 () none 117)
|
|
(enemy-method-118 () none 118)
|
|
(enemy-method-119 () none 119)
|
|
(enemy-method-120 () none 120)
|
|
(enemy-method-121 () none 121)
|
|
(enemy-method-122 () none 122)
|
|
(enemy-method-123 () none 123)
|
|
(enemy-method-124 () none 124)
|
|
(enemy-method-125 () none 125)
|
|
(enemy-method-126 () none 126)
|
|
(enemy-method-127 () none 127)
|
|
(enemy-method-128 () none 128)
|
|
(enemy-method-129 () none 129)
|
|
(enemy-method-130 () none 130)
|
|
(enemy-method-131 () none 131)
|
|
(enemy-method-132 () none 132)
|
|
(enemy-method-133 () none 133)
|
|
(enemy-method-134 () none 134)
|
|
(enemy-method-135 () none 135)
|
|
(enemy-method-136 () none 136)
|
|
)
|
|
)
|