mirror of
https://github.com/open-goal/jak-project
synced 2026-06-02 18:19:07 -04:00
934 lines
28 KiB
Common Lisp
934 lines
28 KiB
Common Lisp
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; name: task-control-h.gc
|
|
;; name in dgo: task-control-h
|
|
;; dgos: ENGINE, GAME
|
|
|
|
(define-extern task-node-reset (function symbol int))
|
|
|
|
(define-extern game-task-node->string (function game-task-node string))
|
|
|
|
(defenum game-task-actor
|
|
:bitfield #f
|
|
:type uint8
|
|
(none 0)
|
|
(minimap 1)
|
|
(torn-hideout 2)
|
|
(torn-alley 3)
|
|
(kor-alley 4)
|
|
(kor-vinroom 5)
|
|
(kor-tomb 6)
|
|
(krew-hiphog 7)
|
|
(sig-hiphog 8)
|
|
(sig-atoll 9)
|
|
(keira-garage 10)
|
|
(vin-vinroom 11)
|
|
(ashelin-atoll 12)
|
|
(ashelin-market 13)
|
|
(onin-onintent 14)
|
|
(pecker-onintent 15)
|
|
(baron-palace 16)
|
|
(baron-tomb 17)
|
|
(youngsamos-hideout 18)
|
|
(youngsamos-tomb 19)
|
|
(brutter-kiosk 20)
|
|
(kid-tomb 21)
|
|
(youngsamos-alley 22)
|
|
(kid-alley 23)
|
|
(crocadog-alley 24)
|
|
(crocadog-tomb 25)
|
|
(youngsamos-forest 26)
|
|
(ashelin-throne 27)
|
|
(baron-castle 28)
|
|
(tess-alley 29)
|
|
(youngsamos-onintent 30)
|
|
(samos-hideout 31)
|
|
(burning-bush-slumb 32)
|
|
(burning-bush-gena 33)
|
|
(burning-bush-genc 34)
|
|
(tess-hiphog 35)
|
|
(keira-stadium 36)
|
|
(kor-consite 37)
|
|
(kor-onintent 38)
|
|
(oracle-oracle 39)
|
|
(daxter-tomb 40)
|
|
(burning-bush-marka 41)
|
|
(burning-bush-sluma 42)
|
|
(burning-bush-slumb-2 43)
|
|
(burning-bush-slumc 44)
|
|
(burning-bush-farma 45)
|
|
(burning-bush-farmb 46)
|
|
(burning-bush-markb 47)
|
|
(burning-bush-markb-2 48)
|
|
(burning-bush-gena-2 49)
|
|
(burning-bush-genb 50)
|
|
(burning-bush-genc-2 51)
|
|
(burning-bush-inda 52)
|
|
(burning-bush-indb 53)
|
|
(burning-bush-port 54)
|
|
(burning-bush-port-2 55)
|
|
(burning-bush-port-3 56)
|
|
(burning-bush-pal 57)
|
|
(burning-bush-stadium 58)
|
|
(burning-bush-pal-2 59)
|
|
(burning-bush-genb-2 60)
|
|
(kor-hideout 61)
|
|
(kid-hideout 62)
|
|
(kid-vinroom 63)
|
|
(crocadog-vinroom 64)
|
|
(samos-garage 65)
|
|
(baron-consite 66)
|
|
(whack-a-metal-hiphog 67)
|
|
)
|
|
|
|
(defenum game-task-action
|
|
:bitfield #f
|
|
:type uint8
|
|
(hide 0)
|
|
(idle 1)
|
|
(say 2)
|
|
(talk 3)
|
|
(show 4)
|
|
(trade 5)
|
|
(play 6)
|
|
(menu 7)
|
|
)
|
|
|
|
(defenum game-task-flags
|
|
:bitfield #t
|
|
:type uint8
|
|
(gatflag-00)
|
|
(gatflag-01)
|
|
(gatflag-02)
|
|
)
|
|
|
|
(defenum game-task-icon
|
|
:type uint8
|
|
(gaticon-00)
|
|
(gaticon-01)
|
|
(gaticon-02)
|
|
(gaticon-03)
|
|
(gaticon-04)
|
|
(gaticon-05)
|
|
(gaticon-06)
|
|
(gaticon-07)
|
|
(gaticon-08)
|
|
(gaticon-09)
|
|
(gaticon-10)
|
|
(gaticon-11)
|
|
(gaticon-12)
|
|
(gaticon-13)
|
|
(gaticon-14)
|
|
(gaticon-15)
|
|
(gaticon-16)
|
|
(gaticon-17)
|
|
(gaticon-18)
|
|
(gaticon-19)
|
|
(gaticon-20)
|
|
(gaticon-21)
|
|
(gaticon-22)
|
|
(gaticon-23)
|
|
(gaticon-24)
|
|
(gaticon-25)
|
|
(gaticon-26)
|
|
(gaticon-27)
|
|
(gaticon-28)
|
|
(gaticon-29)
|
|
(gaticon-30)
|
|
(gaticon-31)
|
|
(gaticon-32)
|
|
(gaticon-33)
|
|
(gaticon-34)
|
|
(gaticon-35)
|
|
(gaticon-36)
|
|
(gaticon-37)
|
|
(gaticon-38)
|
|
(gaticon-39)
|
|
(gaticon-40)
|
|
(gaticon-41)
|
|
(gaticon-42)
|
|
(gaticon-43)
|
|
(gaticon-44)
|
|
(gaticon-45)
|
|
(gaticon-46)
|
|
(gaticon-47)
|
|
(gaticon-48)
|
|
(gaticon-49)
|
|
(gaticon-50)
|
|
(gaticon-51)
|
|
(gaticon-52)
|
|
(gaticon-53)
|
|
(gaticon-54)
|
|
(gaticon-55)
|
|
(gaticon-56)
|
|
(gaticon-57)
|
|
(gaticon-58)
|
|
(gaticon-59)
|
|
(gaticon-60)
|
|
(gaticon-61)
|
|
(gaticon-62)
|
|
(gaticon-63)
|
|
(gaticon-64)
|
|
(gaticon-65)
|
|
(gaticon-66)
|
|
(gaticon-67)
|
|
(gaticon-68)
|
|
(gaticon-69)
|
|
)
|
|
|
|
(defenum task-manager-mask
|
|
:type uint32
|
|
:bitfield #t
|
|
(intro-scene 0) ;; 1
|
|
(resolution-scene 1) ;; 2
|
|
(begin-sphere 2) ;; 4
|
|
(end-sphere 3) ;; 8
|
|
(fail-message 4) ;; 16
|
|
(retry-message 5) ;; 32
|
|
)
|
|
|
|
(defenum game-task-node-flag
|
|
:type uint32 ;; guess
|
|
:bitfield #t
|
|
|
|
(closed 0) ;; 1
|
|
(auto-close 1) ;; 2
|
|
(data 2) ;; 4
|
|
(close-task 3) ;; 8
|
|
(save-on-life 4) ;; 16
|
|
(save-on-try 5) ;; 32
|
|
(abs-task-mask 6) ;; 64
|
|
(set-task-mask 7) ;; 128
|
|
(clear-task-mask 8) ;; 256
|
|
(task-retry 9) ;; 512
|
|
(exclusive 10) ;; 1024
|
|
(intro-wait 11) ;; 2048
|
|
(city-wait 12) ;; 4096
|
|
(reset-on-try 13) ;; 8192
|
|
(task-manager 14) ;; 16384
|
|
(no-fail-on-death 15) ;; 32768
|
|
(no-restart 16) ;; 1
|
|
(no-audio 17) ;; 2
|
|
(no-slow-down 18) ;; #4 high
|
|
(utility-node 19) ;; #x8 high
|
|
)
|
|
|
|
(defenum game-task-node-command
|
|
:type uint8 ;; guess
|
|
:bitfield #f
|
|
(none 0)
|
|
(add-sidekick 1)
|
|
(sub-sidekick 2)
|
|
(add-board 3)
|
|
(sub-board 4)
|
|
(add-gun-red 5)
|
|
(add-gun-yellow 6)
|
|
(add-gun-blue 7)
|
|
(add-gun-dark 8)
|
|
(add-gun-up-1 9)
|
|
(add-gun-up-2 10)
|
|
(add-gun-up-3 11)
|
|
(add-gun-up-4 12)
|
|
(add-pass-red 13)
|
|
(add-pass-green 14)
|
|
(add-pass-yellow 15)
|
|
(add-pass-blue 16)
|
|
(add-darkjak 17)
|
|
(add-darkjak-0 18)
|
|
(add-darkjak-1 19)
|
|
(add-darkjak-2 20)
|
|
(add-darkjak-3 21)
|
|
(add-board-training 22)
|
|
)
|
|
|
|
;; NOTE - for settings
|
|
(define-extern update-task-masks (function symbol int))
|
|
|
|
;; NOTE - for default-menu
|
|
(define-extern task-node-open! (function game-task-node int))
|
|
(define-extern task-node-close! (function game-task-node int))
|
|
(define-extern task-node-open? (function game-task-node symbol))
|
|
(define-extern play-task (function game-task symbol symbol string))
|
|
|
|
;; NOTE - for progress
|
|
(define-extern restart-mission (function int))
|
|
|
|
(declare-type task-manager process)
|
|
(declare-type game-task-node-info basic)
|
|
(define-extern task-manager-init-by-other (function game-task-node-info symbol object :behavior task-manager))
|
|
|
|
(declare-type traffic-engine basic)
|
|
|
|
;; DECOMP BEGINS
|
|
|
|
;; og:preserve-this no longer a debug function
|
|
(defun game-task->string ((arg0 game-task))
|
|
(enum->string game-task arg0)
|
|
)
|
|
|
|
;; WARN: Return type mismatch int vs game-task.
|
|
(defun c-string->game-task ((arg0 string))
|
|
(the-as game-task (cond
|
|
((string= arg0 "GAME_TASK_FOREST_PROTECT")
|
|
60
|
|
)
|
|
((string= arg0 "GAME_TASK_STRIP_DROP")
|
|
58
|
|
)
|
|
((string= arg0 "GAME_TASK_FORTRESS_DUMP")
|
|
11
|
|
)
|
|
((string= arg0 "GAME_TASK_RUINS_TOWER")
|
|
9
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_BURNING_BUSH_RACE_ERROL")
|
|
101
|
|
)
|
|
((string= arg0 "GAME_TASK_CANYON_INSERT_ITEMS")
|
|
48
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_WIN")
|
|
75
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_BURNING_BUSH_GET_TO_5")
|
|
85
|
|
)
|
|
((string= arg0 "GAME_TASK_TOMB_WATER")
|
|
50
|
|
)
|
|
((string= arg0 "GAME_TASK_STADIUM_RACE_CLASS3")
|
|
43
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_BURNING_BUSH_RING_2")
|
|
84
|
|
)
|
|
((string= arg0 "GAME_TASK_ECO_BLUE_BUTTON")
|
|
3
|
|
)
|
|
((string= arg0 "GAME_TASK_STADIUM_BURNING_BUSH_RACE_CLASS1_R")
|
|
109
|
|
)
|
|
((string= arg0 "GAME_TASK_RUINS_ENEMY")
|
|
31
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_BURNING_BUSH_SHUTTLE_1")
|
|
87
|
|
)
|
|
((string= arg0 "GAME_TASK_ECO_RED_BUTTON")
|
|
5
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_BURNING_BUSH_RING_1")
|
|
77
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_KREW_DELIVERY")
|
|
12
|
|
)
|
|
((string= arg0 "GAME_TASK_STADIUM_BURNING_BUSH_RACE_CLASS3_R")
|
|
107
|
|
)
|
|
((string= arg0 "GAME_TASK_STADIUM_BURNING_BUSH_RACE_CLASS3")
|
|
104
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_BURNING_BUSH_GET_TO_15")
|
|
99
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_HELP_KID")
|
|
7
|
|
)
|
|
((string= arg0 "GAME_TASK_UNDER_MECH")
|
|
68
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_ESCORT_KID")
|
|
34
|
|
)
|
|
((string= arg0 "GAME_TASK_MOUNTAIN_GEAR")
|
|
19
|
|
)
|
|
((string= arg0 "GAME_TASK_MAX")
|
|
110
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_DEFEND_STADIUM")
|
|
70
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_BURNING_BUSH_GET_TO_12")
|
|
95
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_BURNING_BUSH_BOMBBOT_1")
|
|
96
|
|
)
|
|
((string= arg0 "GAME_TASK_DRILL_SHIP")
|
|
37
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_YELLOW_GUN_TRAINING")
|
|
25
|
|
)
|
|
((string= arg0 "GAME_TASK_SEWER_ENEMY")
|
|
15
|
|
)
|
|
((string= arg0 "GAME_TASK_PALACE_CABLE")
|
|
28
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_BURNING_BUSH_GET_TO_10")
|
|
92
|
|
)
|
|
((string= arg0 "GAME_TASK_CASTLE_BREAK_IN")
|
|
65
|
|
)
|
|
((string= arg0 "GAME_TASK_TOMB_POLES")
|
|
49
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_VEHICLE_TRAINING")
|
|
8
|
|
)
|
|
((string= arg0 "GAME_TASK_SEWER_ESCORT")
|
|
53
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_ERROL_CHALLENGE")
|
|
57
|
|
)
|
|
((string= arg0 "GAME_TASK_STRIP_GRENADE")
|
|
36
|
|
)
|
|
((string= arg0 "GAME_TASK_ATOLL_SIG")
|
|
14
|
|
)
|
|
((string= arg0 "GAME_TASK_STADIUM_BURNING_BUSH_RACE_CLASS1")
|
|
106
|
|
)
|
|
((string= arg0 "GAME_TASK_NEST_BOSS")
|
|
74
|
|
)
|
|
((string= arg0 "GAME_TASK_FOREST_HUNT")
|
|
41
|
|
)
|
|
((string= arg0 "GAME_TASK_STADIUM_RACE_CLASS2")
|
|
55
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_PLAY_ONIN_GAME")
|
|
47
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_BURNING_BUSH_COLLECTION_2")
|
|
91
|
|
)
|
|
((string= arg0 "GAME_TASK_NONE")
|
|
0
|
|
)
|
|
((string= arg0 "GAME_TASK_ECO_YELLOW_BUTTON")
|
|
4
|
|
)
|
|
((string= arg0 "GAME_TASK_DRILL_EGGS")
|
|
26
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_BURNING_BUSH_GET_TO_2")
|
|
79
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_BURNING_BUSH_RACEPOINT_1")
|
|
83
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_BURNING_BUSH_GET_TO_11")
|
|
93
|
|
)
|
|
((string= arg0 "GAME_TASK_UNDER_SIG")
|
|
69
|
|
)
|
|
((string= arg0 "GAME_TASK_STADIUM_BURNING_BUSH_RACE_CLASS2")
|
|
105
|
|
)
|
|
((string= arg0 "GAME_TASK_STADIUM_BURNING_BUSH_RACE_BOARD")
|
|
103
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_BURNING_BUSH_RACE_PORT")
|
|
102
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_BURNING_BUSH_GET_TO_7")
|
|
88
|
|
)
|
|
((string= arg0 "GAME_TASK_ATOLL_BATTLE")
|
|
17
|
|
)
|
|
((string= arg0 "GAME_TASK_DRILL_MECH")
|
|
61
|
|
)
|
|
((string= arg0 "GAME_TASK_RUINS_MECH")
|
|
59
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_BURNING_BUSH_GET_TO_13")
|
|
97
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_DESTROY_GUARD_VEHICLES")
|
|
46
|
|
)
|
|
((string= arg0 "GAME_TASK_TOMB_BOSS")
|
|
51
|
|
)
|
|
((string= arg0 "GAME_TASK_DUMMY0")
|
|
2
|
|
)
|
|
((string= arg0 "GAME_TASK_DIG_FIND_TOTEM")
|
|
45
|
|
)
|
|
((string= arg0 "GAME_TASK_DIG_KNOCK_DOWN")
|
|
35
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_PROTECT_WATER_SLUMS")
|
|
44
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_WHACK")
|
|
67
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_BURNING_BUSH_RING_3")
|
|
94
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_SHUTTLE")
|
|
30
|
|
)
|
|
((string= arg0 "GAME_TASK_FORTRESS_SAVE_FRIENDS")
|
|
52
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_INTERCEPT_TANKER")
|
|
42
|
|
)
|
|
((string= arg0 "GAME_TASK_FOREST_SCOUTS")
|
|
33
|
|
)
|
|
((string= arg0 "GAME_TASK_NEST_GET_TO_GUN")
|
|
72
|
|
)
|
|
((string= arg0 "GAME_TASK_STADIUM_RACE_CLASS1")
|
|
63
|
|
)
|
|
((string= arg0 "GAME_TASK_STADIUM_BURNING_BUSH_RACE_CLASS2_R")
|
|
108
|
|
)
|
|
((string= arg0 "GAME_TASK_PALACE_SNEAK_IN")
|
|
64
|
|
)
|
|
((string= arg0 "GAME_TASK_STRIP_RESCUE")
|
|
16
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_BURNING_BUSH_GET_TO_1")
|
|
78
|
|
)
|
|
((string= arg0 "GAME_TASK_CONSITE_FIND_BARON")
|
|
71
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_BURNING_BUSH_GET_TO_3")
|
|
80
|
|
)
|
|
((string= arg0 "GAME_TASK_STADIUM_BOARD1")
|
|
23
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_BURNING_BUSH_GET_TO_4")
|
|
81
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_BURNING_BUSH_COLLECTION_3")
|
|
100
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_PORT_RUN")
|
|
38
|
|
)
|
|
((string= arg0 "GAME_TASK_SEWER_BOARD")
|
|
40
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_DARK_GUN_TRAINING")
|
|
54
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_ORACLE")
|
|
76
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_BURNING_BUSH_COLLECTION_1")
|
|
82
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_KEIRA_DELIVERY")
|
|
22
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_BURNING_BUSH_GET_TO_6")
|
|
86
|
|
)
|
|
((string= arg0 "GAME_TASK_MOUNTAIN_LENS")
|
|
18
|
|
)
|
|
((string= arg0 "GAME_TASK_ATOLL_WATER")
|
|
10
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_STOP_BOMB_BOTS")
|
|
56
|
|
)
|
|
((string= arg0 "GAME_TASK_MOUNTAIN_COLLECTION")
|
|
21
|
|
)
|
|
((string= arg0 "GAME_TASK_NEST_ENTER")
|
|
73
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_BURNING_BUSH_GET_TO_9")
|
|
90
|
|
)
|
|
((string= arg0 "GAME_TASK_MOUNTAIN_SHARD")
|
|
20
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_POWER")
|
|
27
|
|
)
|
|
((string= arg0 "GAME_TASK_COMPLETE")
|
|
1
|
|
)
|
|
((string= arg0 "GAME_TASK_PALACE_BOSS")
|
|
29
|
|
)
|
|
((string= arg0 "GAME_TASK_CASTLE_BOSS")
|
|
66
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_BURNING_BUSH_GET_TO_8")
|
|
89
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_BLUE_GUN_TRAINING")
|
|
32
|
|
)
|
|
((string= arg0 "GAME_TASK_FORTRESS_ESCAPE")
|
|
6
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_RED_GUN_TRAINING")
|
|
13
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_SAVE_LURKERS")
|
|
62
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_KREW_COLLECTION")
|
|
24
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_BURNING_BUSH_GET_TO_14")
|
|
98
|
|
)
|
|
((string= arg0 "GAME_TASK_CITY_MEET_BRUTTER")
|
|
39
|
|
)
|
|
(else
|
|
-1
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
(defun-debug game-task-actor->string ((arg0 game-task-actor))
|
|
(enum->string game-task-actor arg0)
|
|
)
|
|
|
|
(defun-debug game-task-action->string ((arg0 game-task-action))
|
|
(enum->string game-task-action arg0)
|
|
)
|
|
|
|
(deftype game-task-event (basic)
|
|
((actor game-task-actor)
|
|
(action game-task-action)
|
|
(tex game-task-icon)
|
|
(icon uint16 :overlay-at tex)
|
|
(flags game-task-flags :offset 7)
|
|
(scene basic :offset 8)
|
|
(distance meters)
|
|
)
|
|
)
|
|
|
|
;; og:preserve-this the decompiler uses these!
|
|
(defconstant TASK_MANAGER_INIT_HOOK 0)
|
|
(defconstant TASK_MANAGER_CLEANUP_HOOK 1)
|
|
(defconstant TASK_MANAGER_UPDATE_HOOK 2)
|
|
(defconstant TASK_MANAGER_CODE_HOOK 3)
|
|
(defconstant TASK_MANAGER_COMPLETE_HOOK 4)
|
|
(defconstant TASK_MANAGER_FAIL_HOOK 5)
|
|
(defconstant TASK_MANAGER_EVENT_HOOK 6)
|
|
|
|
(deftype task-manager-info (structure)
|
|
((mask task-manager-mask)
|
|
(level symbol)
|
|
(manager handle)
|
|
(fail-message text-id)
|
|
(retry-message text-id)
|
|
(intro-scene string)
|
|
(resolution-scene string)
|
|
(resolution-scene-continue string)
|
|
(retry-continue string)
|
|
(fail-continue string)
|
|
(init-hook (function object))
|
|
(cleanup-hook (function object))
|
|
(update-hook (function object))
|
|
(code-hook (function object))
|
|
(complete-hook (function object))
|
|
(fail-hook (function object))
|
|
(event-hook (function process int symbol event-message-block object))
|
|
(hooks function 7 :overlay-at init-hook)
|
|
(final-node game-task-node)
|
|
(time-limit int32)
|
|
(sphere-count int8)
|
|
(index int8)
|
|
(intro-delay uint16)
|
|
(sphere-array uint32)
|
|
(on-complete pair)
|
|
(on-fail pair)
|
|
(begin-sphere sphere :inline)
|
|
(end-sphere sphere :inline)
|
|
)
|
|
)
|
|
|
|
|
|
(defun-debug game-task-node-flag->string ((arg0 game-task-node-flag))
|
|
(if (= (logand arg0 (game-task-node-flag clear-task-mask)) (game-task-node-flag clear-task-mask))
|
|
(format #t "clear-task-mask ")
|
|
)
|
|
(if (= (logand arg0 (game-task-node-flag city-wait)) (game-task-node-flag city-wait))
|
|
(format #t "city-wait ")
|
|
)
|
|
(if (= (logand arg0 (game-task-node-flag intro-wait)) (game-task-node-flag intro-wait))
|
|
(format #t "intro-wait ")
|
|
)
|
|
(if (= (logand arg0 (game-task-node-flag task-manager)) (game-task-node-flag task-manager))
|
|
(format #t "task-manager ")
|
|
)
|
|
(if (= (logand arg0 (game-task-node-flag task-retry)) (game-task-node-flag task-retry))
|
|
(format #t "task-retry ")
|
|
)
|
|
(if (= (logand arg0 (game-task-node-flag reset-on-try)) (game-task-node-flag reset-on-try))
|
|
(format #t "reset-on-try ")
|
|
)
|
|
(if (= (logand arg0 (game-task-node-flag exclusive)) (game-task-node-flag exclusive))
|
|
(format #t "exclusive ")
|
|
)
|
|
(if (= (logand (game-task-node-flag utility-node) arg0) (game-task-node-flag utility-node))
|
|
(format #t "utility-node ")
|
|
)
|
|
(if (= (logand arg0 (game-task-node-flag set-task-mask)) (game-task-node-flag set-task-mask))
|
|
(format #t "set-task-mask ")
|
|
)
|
|
(if (= (logand arg0 (game-task-node-flag closed)) (game-task-node-flag closed))
|
|
(format #t "closed ")
|
|
)
|
|
(if (= (logand arg0 (game-task-node-flag no-fail-on-death)) (game-task-node-flag no-fail-on-death))
|
|
(format #t "no-fail-on-death ")
|
|
)
|
|
(if (= (logand arg0 (game-task-node-flag data)) (game-task-node-flag data))
|
|
(format #t "data ")
|
|
)
|
|
(if (= (logand arg0 (game-task-node-flag save-on-life)) (game-task-node-flag save-on-life))
|
|
(format #t "save-on-life ")
|
|
)
|
|
(if (= (logand arg0 (game-task-node-flag close-task)) (game-task-node-flag close-task))
|
|
(format #t "close-task ")
|
|
)
|
|
(if (= (logand arg0 (game-task-node-flag save-on-try)) (game-task-node-flag save-on-try))
|
|
(format #t "save-on-try ")
|
|
)
|
|
(if (= (logand arg0 (game-task-node-flag auto-close)) (game-task-node-flag auto-close))
|
|
(format #t "auto-close ")
|
|
)
|
|
(if (= (logand (game-task-node-flag no-slow-down) arg0) (game-task-node-flag no-slow-down))
|
|
(format #t "no-slow-down ")
|
|
)
|
|
(if (= (logand arg0 (game-task-node-flag abs-task-mask)) (game-task-node-flag abs-task-mask))
|
|
(format #t "abs-task-mask ")
|
|
)
|
|
(if (= (logand (game-task-node-flag no-restart) arg0) (game-task-node-flag no-restart))
|
|
(format #t "no-restart ")
|
|
)
|
|
(if (= (logand (game-task-node-flag no-audio) arg0) (game-task-node-flag no-audio))
|
|
(format #t "no-audio ")
|
|
)
|
|
)
|
|
|
|
(defun-debug game-task-node-command->string ((arg0 game-task-node-command))
|
|
(case arg0
|
|
(((game-task-node-command add-gun-up-1))
|
|
"add-gun-up-1"
|
|
)
|
|
(((game-task-node-command add-darkjak-1))
|
|
"add-darkjak-1"
|
|
)
|
|
(((game-task-node-command add-pass-yellow))
|
|
"add-pass-yellow"
|
|
)
|
|
(((game-task-node-command add-pass-red))
|
|
"add-pass-red"
|
|
)
|
|
(((game-task-node-command sub-board))
|
|
"sub-board"
|
|
)
|
|
(((game-task-node-command add-board))
|
|
"add-board"
|
|
)
|
|
(((game-task-node-command add-darkjak))
|
|
"add-darkjak"
|
|
)
|
|
(((game-task-node-command add-darkjak-2))
|
|
"add-darkjak-2"
|
|
)
|
|
(((game-task-node-command add-gun-up-3))
|
|
"add-gun-up-3"
|
|
)
|
|
(((game-task-node-command add-gun-up-2))
|
|
"add-gun-up-2"
|
|
)
|
|
(((game-task-node-command add-darkjak-3))
|
|
"add-darkjak-3"
|
|
)
|
|
(((game-task-node-command add-darkjak-0))
|
|
"add-darkjak-0"
|
|
)
|
|
(((game-task-node-command add-gun-blue))
|
|
"add-gun-blue"
|
|
)
|
|
(((game-task-node-command add-gun-yellow))
|
|
"add-gun-yellow"
|
|
)
|
|
(((game-task-node-command none))
|
|
"none"
|
|
)
|
|
(((game-task-node-command add-gun-dark))
|
|
"add-gun-dark"
|
|
)
|
|
(((game-task-node-command add-pass-green))
|
|
"add-pass-green"
|
|
)
|
|
(((game-task-node-command add-board-training))
|
|
"add-board-training"
|
|
)
|
|
(((game-task-node-command add-gun-up-4))
|
|
"add-gun-up-4"
|
|
)
|
|
(((game-task-node-command add-gun-red))
|
|
"add-gun-red"
|
|
)
|
|
(((game-task-node-command add-pass-blue))
|
|
"add-pass-blue"
|
|
)
|
|
(((game-task-node-command sub-sidekick))
|
|
"sub-sidekick"
|
|
)
|
|
(((game-task-node-command add-sidekick))
|
|
"add-sidekick"
|
|
)
|
|
(else
|
|
"*unknown*"
|
|
)
|
|
)
|
|
)
|
|
|
|
(deftype game-task-node-info (basic)
|
|
((level symbol)
|
|
(task game-task)
|
|
(name string)
|
|
(when-open (array game-task-event))
|
|
(flags game-task-node-flag)
|
|
(parent-node game-task-node 4)
|
|
(task-mask task-mask)
|
|
(on-open pair)
|
|
(info task-manager-info)
|
|
(borrow pair)
|
|
(open? (function game-task-node-info symbol))
|
|
(on-close pair)
|
|
(close-time time-frame)
|
|
(death-count uint16)
|
|
(gem-count uint16)
|
|
(skill-count uint16)
|
|
(suck-death-count uint8)
|
|
(add game-task-node-command)
|
|
(description text-id)
|
|
)
|
|
(:methods
|
|
(close! (_type_ symbol) int)
|
|
(open! (_type_ symbol) int)
|
|
(open? (_type_) symbol)
|
|
(copy-hooks! (_type_ game-task-node-info) game-task-node-info)
|
|
(eval-add (_type_) int)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype game-task-info (basic)
|
|
((name string)
|
|
(text-name text-id)
|
|
(pre-play-node game-task-node)
|
|
(kiosk-play-node game-task-node)
|
|
(pre-play-continue string)
|
|
(play-node game-task-node)
|
|
(play-continue string)
|
|
(kiosk-play-continue string)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype game-task-control (basic)
|
|
((counter uint32)
|
|
(actor game-task-actor)
|
|
(current-node game-task-node)
|
|
(current-event game-task-event)
|
|
)
|
|
(:methods
|
|
(new (symbol type game-task-actor) _type_)
|
|
(get-current-task-event (_type_) game-task-event)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype task-manager (process)
|
|
((node-info game-task-node-info)
|
|
(info task-manager-info)
|
|
(lev-name symbol)
|
|
(fail-on-death? symbol)
|
|
(fail-now symbol)
|
|
(retry-now symbol)
|
|
(allow-fail symbol)
|
|
(state-time time-frame)
|
|
(count int16)
|
|
(max-count int16)
|
|
(sub-state uint32)
|
|
(slave handle 32)
|
|
(arrow handle)
|
|
(link uint32)
|
|
(start-time time-frame)
|
|
(total-time time-frame)
|
|
(beep-time time-frame)
|
|
(time-limit time-frame)
|
|
(begin-pos vector :inline)
|
|
(end-pos vector :inline)
|
|
(data-int8 int8 32)
|
|
(data-int32 int32 32)
|
|
(data-float float 32)
|
|
(data-vector vector 32 :inline)
|
|
(actor-group (pointer entity-actor) 4)
|
|
(minimap connection-minimap 8)
|
|
(hud handle 4)
|
|
(hud-timer handle :overlay-at (-> hud 0))
|
|
(hud-counter handle :overlay-at (-> hud 1))
|
|
(sound-id sound-id 4)
|
|
(intro-time time-frame)
|
|
)
|
|
(:state-methods
|
|
wait
|
|
active
|
|
complete
|
|
fail
|
|
retry
|
|
)
|
|
(:methods
|
|
(initialize! (_type_) int)
|
|
(kill-all-children (_type_) int)
|
|
(check-time (_type_) int)
|
|
(task-manager-method-22 (_type_) symbol)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype ambient-control (structure)
|
|
((last-ambient-time time-frame)
|
|
(last-ambient string)
|
|
(last-ambient-id sound-id)
|
|
)
|
|
(:methods
|
|
(dummy-9 () none)
|
|
(dummy-10 () none)
|
|
(dummy-11 () none)
|
|
)
|
|
)
|
|
|
|
|
|
(define *traffic-engine* (the-as traffic-engine #f))
|