mirror of
https://github.com/open-goal/jak-project
synced 2026-08-06 09:54:10 -04:00
1415 lines
59 KiB
Common Lisp
1415 lines
59 KiB
Common Lisp
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
(bundles "ENGINE.CGO" "GAME.CGO")
|
|
(require "engine/ui/progress/progress-h.gc")
|
|
(require "engine/ui/text-h.gc")
|
|
(require "engine/game/task/game-task-h.gc")
|
|
|
|
;; Static menu descriptions and the task data used by the progress screen. init-game-options
|
|
;; connects these templates to live setting fields and installs them in *options-remap*.
|
|
|
|
;; Pause-menu options. Demo builds stop after the three settings submenus; demo-shared also
|
|
;; provides an exit button for returning to its launcher.
|
|
(define *main-options*
|
|
(new 'static
|
|
'boxed-array
|
|
:type
|
|
game-option
|
|
(new 'static
|
|
'game-option
|
|
:option-type (game-option-type menu)
|
|
:name (text-id game-options)
|
|
:scale #t
|
|
:param3 (game-option-menu game-settings))
|
|
(new 'static
|
|
'game-option
|
|
:option-type (game-option-type menu)
|
|
:name (text-id graphic-options)
|
|
:scale #t
|
|
:param3 (game-option-menu graphic-settings))
|
|
(new 'static
|
|
'game-option
|
|
:option-type (game-option-type menu)
|
|
:name (text-id sound-options)
|
|
:scale #t
|
|
:param3 (game-option-menu sound-settings))
|
|
(new 'static
|
|
'game-option
|
|
:option-type (game-option-type menu)
|
|
:name (text-id load-game)
|
|
:scale #t
|
|
:param3 (game-option-menu load-game))
|
|
(new 'static
|
|
'game-option
|
|
:option-type (game-option-type menu)
|
|
:name (text-id save-game)
|
|
:scale #t
|
|
:param3 (game-option-menu save-game))
|
|
(new 'static
|
|
'game-option
|
|
:option-type (game-option-type menu)
|
|
:name (text-id quit-game)
|
|
:scale #t
|
|
:param3 (game-option-menu quit))
|
|
(new 'static 'game-option :option-type (game-option-type button) :name (text-id back) :scale #t)))
|
|
|
|
(define *title*
|
|
(new 'static
|
|
'boxed-array
|
|
:type
|
|
game-option
|
|
(new 'static
|
|
'game-option
|
|
:option-type (game-option-type menu)
|
|
:name (text-id new-game)
|
|
:scale #t
|
|
:param3 (game-option-menu save-game-title))
|
|
(new 'static
|
|
'game-option
|
|
:option-type (game-option-type menu)
|
|
:name (text-id load-game)
|
|
:scale #t
|
|
:param3 (game-option-menu load-game))
|
|
(new 'static
|
|
'game-option
|
|
:option-type (game-option-type menu)
|
|
:name (text-id options)
|
|
:scale #t
|
|
:param3 (game-option-menu settings-title))
|
|
(new 'static 'game-option :option-type (game-option-type button) :name (text-id back) :scale #t)))
|
|
|
|
(define *options*
|
|
(new 'static
|
|
'boxed-array
|
|
:type
|
|
game-option
|
|
(new 'static
|
|
'game-option
|
|
:option-type (game-option-type menu)
|
|
:name (text-id game-options)
|
|
:scale #t
|
|
:param3 (game-option-menu game-settings))
|
|
(new 'static
|
|
'game-option
|
|
:option-type (game-option-type menu)
|
|
:name (text-id graphic-options)
|
|
:scale #t
|
|
:param3 (game-option-menu graphic-settings))
|
|
(new 'static
|
|
'game-option
|
|
:option-type (game-option-type menu)
|
|
:name (text-id sound-options)
|
|
:scale #t
|
|
:param3 (game-option-menu sound-settings))
|
|
(new 'static 'game-option :option-type (game-option-type button) :name (text-id back) :scale #t)))
|
|
|
|
(define *main-options-demo*
|
|
(new 'static
|
|
'boxed-array
|
|
:type
|
|
game-option
|
|
(new 'static
|
|
'game-option
|
|
:option-type (game-option-type menu)
|
|
:name (text-id game-options)
|
|
:scale #t
|
|
:param3 (game-option-menu game-settings))
|
|
(new 'static
|
|
'game-option
|
|
:option-type (game-option-type menu)
|
|
:name (text-id graphic-options)
|
|
:scale #t
|
|
:param3 (game-option-menu graphic-settings))
|
|
(new 'static
|
|
'game-option
|
|
:option-type (game-option-type menu)
|
|
:name (text-id sound-options)
|
|
:scale #t
|
|
:param3 (game-option-menu sound-settings))
|
|
(new 'static 'game-option :option-type (game-option-type button) :name (text-id back) :scale #t)))
|
|
|
|
(define *main-options-demo-shared*
|
|
(new 'static
|
|
'boxed-array
|
|
:type
|
|
game-option
|
|
(new 'static
|
|
'game-option
|
|
:option-type (game-option-type menu)
|
|
:name (text-id game-options)
|
|
:scale #t
|
|
:param3 (game-option-menu game-settings))
|
|
(new 'static
|
|
'game-option
|
|
:option-type (game-option-type menu)
|
|
:name (text-id graphic-options)
|
|
:scale #t
|
|
:param3 (game-option-menu graphic-settings))
|
|
(new 'static
|
|
'game-option
|
|
:option-type (game-option-type menu)
|
|
:name (text-id sound-options)
|
|
:scale #t
|
|
:param3 (game-option-menu sound-settings))
|
|
(new 'static 'game-option :option-type (game-option-type button) :name (text-id exit-demo) :scale #t)
|
|
(new 'static 'game-option :option-type (game-option-type button) :name (text-id back) :scale #t)))
|
|
|
|
(define *game-options*
|
|
(new 'static
|
|
'boxed-array
|
|
:type
|
|
game-option
|
|
(new 'static 'game-option :option-type (game-option-type on-off) :name (text-id vibrations) :scale #t)
|
|
(new 'static 'game-option :option-type (game-option-type on-off) :name (text-id play-hints) :scale #t)
|
|
(new 'static 'game-option :option-type (game-option-type language) :name (text-id language) :scale #t)
|
|
(new 'static 'game-option :option-type (game-option-type button) :name (text-id back) :scale #t)))
|
|
|
|
(define *game-options-japan*
|
|
(new 'static
|
|
'boxed-array
|
|
:type
|
|
game-option
|
|
(new 'static 'game-option :option-type (game-option-type on-off) :name (text-id vibrations) :scale #t)
|
|
(new 'static 'game-option :option-type (game-option-type on-off) :name (text-id play-hints) :scale #t)
|
|
(new 'static 'game-option :option-type (game-option-type button) :name (text-id back) :scale #t)))
|
|
|
|
(define *game-options-demo*
|
|
(new 'static
|
|
'boxed-array
|
|
:type
|
|
game-option
|
|
(new 'static 'game-option :option-type (game-option-type on-off) :name (text-id vibrations) :scale #t)
|
|
(new 'static 'game-option :option-type (game-option-type on-off) :name (text-id play-hints) :scale #t)
|
|
(new 'static 'game-option :option-type (game-option-type button) :name (text-id back) :scale #t)))
|
|
|
|
(define *graphic-options*
|
|
(new 'static
|
|
'boxed-array
|
|
:type
|
|
game-option
|
|
(new 'static 'game-option :option-type (game-option-type center-screen) :name (text-id center-screen) :scale #t)
|
|
(new 'static 'game-option :option-type (game-option-type aspect-ratio) :name (text-id aspect-ratio) :scale #t)
|
|
(new 'static 'game-option :option-type (game-option-type button) :name (text-id back) :scale #t)))
|
|
|
|
(define *graphic-title-options-pal*
|
|
(new 'static
|
|
'boxed-array
|
|
:type
|
|
game-option
|
|
(new 'static 'game-option :option-type (game-option-type center-screen) :name (text-id center-screen) :scale #t)
|
|
(new 'static 'game-option :option-type (game-option-type video-mode) :name (text-id video-mode) :scale #t)
|
|
(new 'static 'game-option :option-type (game-option-type aspect-ratio) :name (text-id aspect-ratio) :scale #t)
|
|
(new 'static 'game-option :option-type (game-option-type button) :name (text-id back) :scale #t)))
|
|
|
|
(define *sound-options*
|
|
(new 'static
|
|
'boxed-array
|
|
:type
|
|
game-option
|
|
(new 'static 'game-option :name (text-id sfx-volume) :scale #t :param2 100.0)
|
|
(new 'static 'game-option :name (text-id music-volume) :scale #t :param2 100.0)
|
|
(new 'static 'game-option :name (text-id speech-volume) :scale #t :param2 100.0)
|
|
(new 'static 'game-option :option-type (game-option-type button) :name (text-id back) :scale #t)))
|
|
|
|
(define *yes-no-options*
|
|
(new 'static 'boxed-array :type game-option (new 'static 'game-option :option-type (game-option-type yes-no) :scale #f)))
|
|
|
|
(define *ok-options*
|
|
(new 'static
|
|
'boxed-array
|
|
:type
|
|
game-option
|
|
(new 'static 'game-option :option-type (game-option-type button) :name (text-id ok) :scale #f)))
|
|
|
|
(define *load-options*
|
|
(new 'static
|
|
'boxed-array
|
|
:type
|
|
game-option
|
|
(new 'static 'game-option :option-type (game-option-type button) :scale #f)
|
|
(new 'static 'game-option :option-type (game-option-type button) :scale #f)
|
|
(new 'static 'game-option :option-type (game-option-type button) :scale #f)
|
|
(new 'static 'game-option :option-type (game-option-type button) :scale #f)
|
|
(new 'static 'game-option :option-type (game-option-type button) :name (text-id back) :scale #f)))
|
|
|
|
(define *save-options*
|
|
(new 'static
|
|
'boxed-array
|
|
:type
|
|
game-option
|
|
(new 'static 'game-option :option-type (game-option-type button) :scale #f)
|
|
(new 'static 'game-option :option-type (game-option-type button) :scale #f)
|
|
(new 'static 'game-option :option-type (game-option-type button) :scale #f)
|
|
(new 'static 'game-option :option-type (game-option-type button) :scale #f)
|
|
(new 'static 'game-option :option-type (game-option-type button) :name (text-id back) :scale #f)))
|
|
|
|
(define *save-options-title*
|
|
(new 'static
|
|
'boxed-array
|
|
:type
|
|
game-option
|
|
(new 'static 'game-option :option-type (game-option-type button) :scale #f)
|
|
(new 'static 'game-option :option-type (game-option-type button) :scale #f)
|
|
(new 'static 'game-option :option-type (game-option-type button) :scale #f)
|
|
(new 'static 'game-option :option-type (game-option-type button) :scale #f)
|
|
(new 'static 'game-option :option-type (game-option-type button) :name (text-id continue-without-saving) :scale #f)
|
|
(new 'static 'game-option :option-type (game-option-type button) :name (text-id back) :scale #f)))
|
|
|
|
;; Maps each progress-screen state to its option array. init-game-options clears and fills this
|
|
;; table at startup. The PC menu adds more screen states, so its allocation follows the expanded
|
|
;; progress-screen enum instead of the original 35 entries.
|
|
(define *options-remap*
|
|
(new 'static 'boxed-array :type (array game-option) :length 0 :allocated-length (#if (not PC_PORT) 35 68)))
|
|
|
|
;; added in PC port
|
|
;; Canonical progress regions. Several streamed level files share one task/count record.
|
|
(defenum level-task-data-index
|
|
:type int32
|
|
(training 0)
|
|
(village1 1)
|
|
(beach 2)
|
|
(jungle 3)
|
|
(misty 4)
|
|
(firecanyon 5)
|
|
(village2 6)
|
|
(sunken 7)
|
|
(swamp 8)
|
|
(rolling 9)
|
|
(ogre 10)
|
|
(village3 11)
|
|
(snow 12)
|
|
(cave 13)
|
|
(lavatube 14)
|
|
(citadel 15)
|
|
(max 16))
|
|
|
|
;; Maps the zero-based level-info index used by callers to a canonical progress region. The paired
|
|
;; jungle and sunken files, the three cave files, the citadel/final-boss pair, and the intro/demo
|
|
;; files intentionally share task and count storage.
|
|
(define *level-task-data-remap*
|
|
(new 'static
|
|
'boxed-array
|
|
:type
|
|
int32
|
|
(level-task-data-index training)
|
|
(level-task-data-index village1)
|
|
(level-task-data-index beach)
|
|
(level-task-data-index jungle) ;; jungle
|
|
(level-task-data-index jungle) ;; jungleb
|
|
(level-task-data-index misty)
|
|
(level-task-data-index firecanyon)
|
|
(level-task-data-index village2)
|
|
(level-task-data-index sunken) ;; sunken
|
|
(level-task-data-index sunken) ;; sunkenb
|
|
(level-task-data-index swamp)
|
|
(level-task-data-index rolling)
|
|
(level-task-data-index ogre)
|
|
(level-task-data-index village3)
|
|
(level-task-data-index snow)
|
|
(level-task-data-index cave) ;; maincave
|
|
(level-task-data-index cave) ;; robocave
|
|
(level-task-data-index cave) ;; darkcave
|
|
(level-task-data-index lavatube)
|
|
(level-task-data-index citadel) ;; citadel
|
|
(level-task-data-index citadel) ;; finalboss
|
|
(level-task-data-index misty) ;; demo
|
|
(level-task-data-index misty) ;; intro
|
|
))
|
|
|
|
;; Maps each GOAL language ID to the localized language-name string displayed by the menu.
|
|
(define *language-name-remap*
|
|
(new 'static
|
|
'boxed-array
|
|
:type
|
|
text-id
|
|
(text-id english)
|
|
(text-id french)
|
|
(text-id german)
|
|
(text-id spanish)
|
|
(text-id italian)
|
|
(text-id japanese)))
|
|
|
|
;; One task/count description per canonical progress region. nb-of-tasks selects the live prefix
|
|
;; of each eight-entry task-info array; buzzer-task-index identifies the scout-fly entry. Each task
|
|
;; reserves four text slots; the first three describe its introduction, reminder, and resolution.
|
|
(define *level-task-data*
|
|
(new 'static
|
|
'boxed-array
|
|
:type
|
|
level-tasks-info
|
|
(new 'static
|
|
'level-tasks-info
|
|
:level-name-id (text-id training-level-name)
|
|
:text-group-index 1
|
|
:nb-of-tasks 4
|
|
:buzzer-task-index 3
|
|
:task-info
|
|
(new 'static
|
|
'array
|
|
task-info-data
|
|
8
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task training-gimmie)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id training-gimmie-task-name)
|
|
(text-id training-gimmie-task-name)
|
|
(text-id training-gimmie-task-name)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task training-door)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id training-door-task-name)
|
|
(text-id training-door-task-name)
|
|
(text-id training-door-task-name)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task training-climb)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id training-climb-task-name)
|
|
(text-id training-climb-task-name)
|
|
(text-id training-climb-task-name)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task training-buzzer)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id training-buzzer-task-name)
|
|
(text-id training-buzzer-task-name)
|
|
(text-id training-buzzer-task-name)
|
|
(text-id zero)))))
|
|
(new 'static
|
|
'level-tasks-info
|
|
:level-name-id (text-id village1-level-name)
|
|
:text-group-index 1
|
|
:nb-of-tasks 6
|
|
:buzzer-task-index 5
|
|
:task-info
|
|
(new 'static
|
|
'array
|
|
task-info-data
|
|
8
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task village1-mayor-money)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id village1-mayor-money)
|
|
(text-id village1-mayor-money)
|
|
(text-id village1-mayor-money)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task village1-uncle-money)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id village1-uncle-money)
|
|
(text-id village1-uncle-money)
|
|
(text-id village1-uncle-money)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task village1-yakow)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id village1-yakow-herd)
|
|
(text-id village1-yakow-herd)
|
|
(text-id village1-yakow-return)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task village1-oracle-money1)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id village1-oracle)
|
|
(text-id village1-oracle)
|
|
(text-id village1-oracle)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task village1-oracle-money2)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id village1-oracle)
|
|
(text-id village1-oracle)
|
|
(text-id village1-oracle)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task village1-buzzer)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id beach-buzzer) (text-id beach-buzzer) (text-id beach-buzzer) (text-id zero)))))
|
|
(new 'static
|
|
'level-tasks-info
|
|
:level-name-id (text-id beach-level-name)
|
|
:text-group-index 1
|
|
:nb-of-tasks 8
|
|
:buzzer-task-index 7
|
|
:task-info
|
|
(new 'static
|
|
'array
|
|
task-info-data
|
|
8
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task beach-ecorocks)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id beach-ecorocks) (text-id beach-ecorocks) (text-id beach-ecorocks) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task beach-flutflut)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id beach-flutflut-push)
|
|
(text-id beach-flutflut-push)
|
|
(text-id beach-flutflut-meet)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task beach-pelican)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id beach-pelican) (text-id beach-pelican) (text-id beach-pelican) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task beach-seagull)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id beach-seagull) (text-id beach-seagull) (text-id beach-seagull-get) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task beach-cannon)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id beach-cannon) (text-id beach-cannon) (text-id beach-cannon) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task beach-gimmie)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id beach-gimmie) (text-id beach-gimmie) (text-id beach-gimmie) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task beach-sentinel)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id beach-sentinel) (text-id beach-sentinel) (text-id beach-sentinel) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task beach-buzzer)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id beach-buzzer) (text-id beach-buzzer) (text-id beach-buzzer) (text-id zero)))))
|
|
(new 'static
|
|
'level-tasks-info
|
|
:level-name-id (text-id jungle-level-name)
|
|
:text-group-index 1
|
|
:nb-of-tasks 8
|
|
:buzzer-task-index 7
|
|
:task-info
|
|
(new 'static
|
|
'array
|
|
task-info-data
|
|
8
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task jungle-lurkerm)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id jungle-lurkerm-unblock)
|
|
(text-id jungle-lurkerm-connect)
|
|
(text-id jungle-lurkerm-return)
|
|
(text-id zero))
|
|
:text-index-when-resolved 1)
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task jungle-tower)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id jungle-tower) (text-id jungle-tower) (text-id jungle-tower) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task jungle-eggtop)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id jungle-eggtop) (text-id jungle-eggtop) (text-id jungle-eggtop) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task jungle-plant)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id jungle-plant) (text-id jungle-plant) (text-id jungle-plant) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task jungle-fishgame)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id jungle-fishgame)
|
|
(text-id jungle-fishgame)
|
|
(text-id jungle-fishgame)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task jungle-canyon-end)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id jungle-canyon-end)
|
|
(text-id jungle-canyon-end)
|
|
(text-id jungle-canyon-end)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task jungle-temple-door)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id jungle-temple-door)
|
|
(text-id jungle-temple-door)
|
|
(text-id jungle-temple-door)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task jungle-buzzer)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id beach-buzzer) (text-id beach-buzzer) (text-id beach-buzzer) (text-id zero)))))
|
|
(new 'static
|
|
'level-tasks-info
|
|
:level-name-id (text-id misty-level-name)
|
|
:text-group-index 1
|
|
:nb-of-tasks 8
|
|
:buzzer-task-index 7
|
|
:task-info
|
|
(new 'static
|
|
'array
|
|
task-info-data
|
|
8
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task misty-muse)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id misty-muse-catch)
|
|
(text-id misty-muse-catch)
|
|
(text-id misty-muse-return)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task misty-boat)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id misty-boat) (text-id misty-boat) (text-id misty-boat) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task misty-cannon)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id misty-cannon) (text-id misty-cannon) (text-id misty-cannon) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task misty-warehouse)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id misty-return-to-pool)
|
|
(text-id misty-return-to-pool)
|
|
(text-id misty-return-to-pool)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task misty-bike)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id misty-find-transpad)
|
|
(text-id misty-balloon-lurkers)
|
|
(text-id misty-find-transpad)
|
|
(text-id zero))
|
|
:text-index-when-resolved 1)
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task misty-bike-jump)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id misty-bike-jump)
|
|
(text-id misty-bike-jump)
|
|
(text-id misty-bike-jump)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task misty-eco-challenge)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id misty-eco-challenge)
|
|
(text-id misty-eco-challenge)
|
|
(text-id misty-eco-challenge)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task misty-buzzer)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id beach-buzzer) (text-id beach-buzzer) (text-id beach-buzzer) (text-id zero)))))
|
|
(new 'static
|
|
'level-tasks-info
|
|
:level-name-id (text-id firecanyon-level-name)
|
|
:text-group-index 5
|
|
:nb-of-tasks 2
|
|
:buzzer-task-index 1
|
|
:task-info
|
|
(new 'static
|
|
'array
|
|
task-info-data
|
|
8
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task firecanyon-end)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id firecanyon-end) (text-id firecanyon-end) (text-id firecanyon-end) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task firecanyon-buzzer)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id firecanyon-buzzer)
|
|
(text-id firecanyon-buzzer)
|
|
(text-id firecanyon-buzzer)
|
|
(text-id zero)))))
|
|
(new 'static
|
|
'level-tasks-info
|
|
:level-name-id (text-id village2-level-name)
|
|
:text-group-index 2
|
|
:nb-of-tasks 6
|
|
:buzzer-task-index 5
|
|
:task-info
|
|
(new 'static
|
|
'array
|
|
task-info-data
|
|
8
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task village2-gambler-money)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id village2-gambler-money)
|
|
(text-id village2-gambler-money)
|
|
(text-id village2-gambler-money)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task village2-geologist-money)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id village2-geologist-money)
|
|
(text-id village2-geologist-money)
|
|
(text-id village2-geologist-money)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task village2-warrior-money)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id village2-warrior-money)
|
|
(text-id village2-warrior-money)
|
|
(text-id village2-warrior-money)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task village2-oracle-money1)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id village2-oracle-money)
|
|
(text-id village2-oracle-money)
|
|
(text-id village2-oracle-money)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task village2-oracle-money2)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id village2-oracle-money)
|
|
(text-id village2-oracle-money)
|
|
(text-id village2-oracle-money)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task village2-buzzer)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id generic-buzzer) (text-id generic-buzzer) (text-id generic-buzzer) (text-id zero)))))
|
|
(new 'static
|
|
'level-tasks-info
|
|
:level-name-id (text-id sunken-level-name)
|
|
:text-group-index 2
|
|
:nb-of-tasks 8
|
|
:buzzer-task-index 7
|
|
:task-info
|
|
(new 'static
|
|
'array
|
|
task-info-data
|
|
8
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task sunken-room)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id sunken-elevator-raise)
|
|
(text-id sunken-elevator-raise)
|
|
(text-id sunken-elevator-get-to-roof)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task sunken-pipe)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id sunken-pipe) (text-id sunken-pipe) (text-id sunken-pipe) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task sunken-slide)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id sunken-slide) (text-id sunken-slide) (text-id sunken-slide) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task sunken-sharks)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id sunken-pool) (text-id sunken-pool) (text-id sunken-pool) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task sunken-platforms)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id sunken-platforms)
|
|
(text-id sunken-platforms)
|
|
(text-id sunken-platforms)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task sunken-top-of-helix)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id sunken-climb-tube)
|
|
(text-id sunken-climb-tube)
|
|
(text-id sunken-climb-tube)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task sunken-spinning-room)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id sunken-spinning-room)
|
|
(text-id sunken-spinning-room)
|
|
(text-id sunken-spinning-room)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task sunken-buzzer)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id generic-buzzer) (text-id generic-buzzer) (text-id generic-buzzer) (text-id zero)))))
|
|
(new 'static
|
|
'level-tasks-info
|
|
:level-name-id (text-id swamp-level-name)
|
|
:text-group-index 2
|
|
:nb-of-tasks 8
|
|
:buzzer-task-index 7
|
|
:task-info
|
|
(new 'static
|
|
'array
|
|
task-info-data
|
|
8
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task swamp-flutflut)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id swamp-flutflut) (text-id swamp-flutflut) (text-id swamp-flutflut) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task swamp-billy)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id swamp-billy) (text-id swamp-billy) (text-id swamp-billy) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task swamp-battle)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id swamp-battle) (text-id swamp-battle) (text-id swamp-battle) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task swamp-tether-4)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id swamp-tether) (text-id swamp-tether) (text-id swamp-tether) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task swamp-tether-1)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id swamp-tether) (text-id swamp-tether) (text-id swamp-tether) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task swamp-tether-2)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id swamp-tether) (text-id swamp-tether) (text-id swamp-tether) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task swamp-tether-3)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id swamp-tether) (text-id swamp-tether) (text-id swamp-tether) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task swamp-buzzer)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id generic-buzzer) (text-id generic-buzzer) (text-id generic-buzzer) (text-id zero)))))
|
|
(new 'static
|
|
'level-tasks-info
|
|
:level-name-id (text-id rolling-level-name)
|
|
:text-group-index 2
|
|
:nb-of-tasks 8
|
|
:buzzer-task-index 7
|
|
:task-info
|
|
(new 'static
|
|
'array
|
|
task-info-data
|
|
8
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task rolling-moles)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id rolling-moles)
|
|
(text-id rolling-moles)
|
|
(text-id rolling-moles-return)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task rolling-robbers)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id rolling-robbers)
|
|
(text-id rolling-robbers)
|
|
(text-id rolling-robbers)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task rolling-race)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id rolling-race) (text-id rolling-race) (text-id rolling-race-return) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task rolling-lake)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id rolling-lake) (text-id rolling-lake) (text-id rolling-lake) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task rolling-plants)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id rolling-plants) (text-id rolling-plants) (text-id rolling-plants) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task rolling-ring-chase-1)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id rolling-ring-chase-1)
|
|
(text-id rolling-ring-chase-1)
|
|
(text-id rolling-ring-chase-1)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task rolling-ring-chase-2)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id rolling-ring-chase-2)
|
|
(text-id rolling-ring-chase-2)
|
|
(text-id rolling-ring-chase-2)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task rolling-buzzer)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id generic-buzzer) (text-id generic-buzzer) (text-id generic-buzzer) (text-id zero)))))
|
|
(new 'static
|
|
'level-tasks-info
|
|
:level-name-id (text-id ogre-level-name)
|
|
:text-group-index 6
|
|
:nb-of-tasks 4
|
|
:buzzer-task-index 3
|
|
:task-info
|
|
(new 'static
|
|
'array
|
|
task-info-data
|
|
8
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task ogre-boss)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id ogre-boss) (text-id ogre-boss) (text-id ogre-boss) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task ogre-end)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id ogre-end) (text-id ogre-end) (text-id ogre-end) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task ogre-secret)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id hidden-power-cell)
|
|
(text-id hidden-power-cell)
|
|
(text-id hidden-power-cell)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task ogre-buzzer)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id ogre-buzzer) (text-id ogre-buzzer) (text-id ogre-buzzer) (text-id zero)))))
|
|
(new 'static
|
|
'level-tasks-info
|
|
:level-name-id (text-id village3-level-name)
|
|
:text-group-index 3
|
|
:nb-of-tasks 8
|
|
:buzzer-task-index 7
|
|
:task-info
|
|
(new 'static
|
|
'array
|
|
task-info-data
|
|
8
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task village3-miner-money1)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id village3-miner-money)
|
|
(text-id village3-miner-money)
|
|
(text-id village3-miner-money)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task village3-miner-money2)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id village3-miner-money)
|
|
(text-id village3-miner-money)
|
|
(text-id village3-miner-money)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task village3-miner-money3)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id village3-miner-money)
|
|
(text-id village3-miner-money)
|
|
(text-id village3-miner-money)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task village3-miner-money4)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id village3-miner-money)
|
|
(text-id village3-miner-money)
|
|
(text-id village3-miner-money)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task village3-oracle-money1)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id village3-oracle-money)
|
|
(text-id village3-oracle-money)
|
|
(text-id village3-oracle-money)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task village3-oracle-money2)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id village3-oracle-money)
|
|
(text-id village3-oracle-money)
|
|
(text-id village3-oracle-money)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task village3-extra1)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id hidden-power-cell)
|
|
(text-id hidden-power-cell)
|
|
(text-id hidden-power-cell)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task village3-buzzer)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id village3-buzzer)
|
|
(text-id village3-buzzer)
|
|
(text-id village3-buzzer)
|
|
(text-id zero)))))
|
|
(new 'static
|
|
'level-tasks-info
|
|
:level-name-id (text-id snow-level-name)
|
|
:text-group-index 3
|
|
:nb-of-tasks 8
|
|
:buzzer-task-index 7
|
|
:task-info
|
|
(new 'static
|
|
'array
|
|
task-info-data
|
|
8
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task snow-eggtop)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id snow-eggtop) (text-id snow-eggtop) (text-id snow-eggtop) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task snow-ram)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id snow-ram-3-left)
|
|
(text-id snow-ram-2-left)
|
|
(text-id snow-ram-1-left)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task snow-bumpers)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id snow-bumpers) (text-id snow-bumpers) (text-id snow-bumpers) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task snow-cage)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id snow-cage) (text-id snow-cage) (text-id snow-cage) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task snow-fort)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id snow-fort) (text-id snow-fort) (text-id snow-fort) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task snow-ball)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id snow-ball) (text-id snow-ball) (text-id snow-ball) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task snow-bunnies)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id snow-bunnies) (text-id snow-bunnies) (text-id snow-bunnies) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task snow-buzzer)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id village3-buzzer)
|
|
(text-id village3-buzzer)
|
|
(text-id village3-buzzer)
|
|
(text-id zero)))))
|
|
(new 'static
|
|
'level-tasks-info
|
|
:level-name-id (text-id cave-level-name)
|
|
:text-group-index 3
|
|
:nb-of-tasks 8
|
|
:buzzer-task-index 7
|
|
:task-info
|
|
(new 'static
|
|
'array
|
|
task-info-data
|
|
8
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task cave-gnawers)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id cave-gnawers) (text-id cave-gnawers) (text-id cave-gnawers) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task cave-dark-crystals)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id cave-dark-crystals)
|
|
(text-id cave-dark-crystals)
|
|
(text-id cave-dark-crystals)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task cave-dark-climb)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id cave-dark-climb)
|
|
(text-id cave-dark-climb)
|
|
(text-id cave-dark-climb)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task cave-robot-climb)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id cave-robot-climb)
|
|
(text-id cave-robot-climb)
|
|
(text-id cave-robot-climb)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task cave-swing-poles)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id cave-swing-poles)
|
|
(text-id cave-swing-poles)
|
|
(text-id cave-swing-poles)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task cave-spider-tunnel)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id cave-spider-tunnel)
|
|
(text-id cave-spider-tunnel)
|
|
(text-id cave-spider-tunnel)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task cave-platforms)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id cave-platforms) (text-id cave-platforms) (text-id cave-platforms) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task cave-buzzer)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id village3-buzzer)
|
|
(text-id village3-buzzer)
|
|
(text-id village3-buzzer)
|
|
(text-id zero)))))
|
|
(new 'static
|
|
'level-tasks-info
|
|
:level-name-id (text-id lavatube-level-name)
|
|
:text-group-index 3
|
|
:nb-of-tasks 2
|
|
:buzzer-task-index 1
|
|
:task-info
|
|
(new 'static
|
|
'array
|
|
task-info-data
|
|
8
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task lavatube-end)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id lavatube-end) (text-id lavatube-end) (text-id lavatube-end) (text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task lavatube-buzzer)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id lavatube-buzzer)
|
|
(text-id lavatube-buzzer)
|
|
(text-id lavatube-buzzer)
|
|
(text-id zero)))))
|
|
(new 'static
|
|
'level-tasks-info
|
|
:level-name-id (text-id citadel-level-name)
|
|
:text-group-index 4
|
|
:nb-of-tasks 5
|
|
:buzzer-task-index 4
|
|
:task-info
|
|
(new 'static
|
|
'array
|
|
task-info-data
|
|
8
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task citadel-sage-blue)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id citadel-sage-blue)
|
|
(text-id citadel-sage-blue)
|
|
(text-id citadel-sage-blue)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task citadel-sage-red)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id citadel-sage-red)
|
|
(text-id citadel-sage-red)
|
|
(text-id citadel-sage-red)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task citadel-sage-yellow)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id citadel-sage-yellow)
|
|
(text-id citadel-sage-yellow)
|
|
(text-id citadel-sage-yellow)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task citadel-sage-green)
|
|
:task-name
|
|
(new 'static
|
|
'array
|
|
text-id
|
|
4
|
|
(text-id citadel-sage-green)
|
|
(text-id citadel-sage-green)
|
|
(text-id citadel-sage-green)
|
|
(text-id zero)))
|
|
(new 'static
|
|
'task-info-data
|
|
:task-id (game-task citadel-buzzer)
|
|
:task-name
|
|
(new 'static 'array text-id 4 (text-id citadel-buzzer) (text-id citadel-buzzer) (text-id citadel-buzzer) (text-id zero)))))))
|
|
|
|
;; Starting X coordinate for a row of zero through eight task eggs. Index by nb-of-tasks; the
|
|
;; roughly 24-pixel steps keep the complete row centered.
|
|
(define *task-egg-starting-x* (new 'static 'boxed-array :type int32 218 194 171 147 124 100 77 53 30))
|
|
|
|
;; The active progress process installs its per-level collected-orb and scout-fly counts here.
|
|
(define *game-counts* (the-as game-count-info #f))
|