Files
jak-project/goal_src/pc/engine/ui/progress/progress-static.gc
T
Tyler Wilding b21f0d3397 Add PC Port settings to legit start menu (#1217)
* decompiler: support adding new strings to the game_text.txt file

* gsrc: expand the pckernel type and functions to work better with the menu

* gsrc: add new text-ids

* gsrc: add new macros to help with menu code

* gsrc: make a new type to generalize their list menu options

* gsrc: add new menu options and enums

* gsrc: cleanup and refactor the list menu option drawing code

this allows us to easily add a new list menu option...well as easy as the rest is atleast (setting up static lists properly, etc)

* gsrc: add and cleanup handling of new menu options

* scripts: add checks with nice error messages for user facing taskfile recipes

* lint: formatting

* address simple feedback

* gsrc: move modified files to `pc/` folder

* gsrc: revert changes to originally decompiled files

* gsrc: move modified and new files to `goal_src/pc` folder

* gsrc: update paths in `all_files.gc`
2022-03-10 19:25:01 -05:00

1516 lines
69 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: progress-static.gc
;; name in dgo: progress-static
;; dgos: GAME, ENGINE
;; This file contains the layouts for all of the menus.
;; options in the start menu options
(define *main-options*
(new 'static 'boxed-array :type game-option :length 7 :allocated-length 7
(new 'static 'game-option :option-type #x6 :name (game-text-id game-options) :scale #t :param3 4)
(new 'static 'game-option :option-type #x6 :name (game-text-id graphic-options) :scale #t :param3 5)
(new 'static 'game-option :option-type #x6 :name (game-text-id sound-options) :scale #t :param3 6)
(new 'static 'game-option :option-type #x6 :name (game-text-id load-game) :scale #t :param3 16)
(new 'static 'game-option :option-type #x6 :name (game-text-id save-game) :scale #t :param3 17)
(new 'static 'game-option :option-type #x6 :name (game-text-id quit-game) :scale #t :param3 34)
(new 'static 'game-option :option-type #x8 :name (game-text-id back) :scale #t)
)
)
(define *title*
(new 'static 'boxed-array :type game-option :length 4 :allocated-length 4
(new 'static 'game-option :option-type #x6 :name (game-text-id new-game) :scale #t :param3 18)
(new 'static 'game-option :option-type #x6 :name (game-text-id load-game) :scale #t :param3 16)
(new 'static 'game-option :option-type #x6 :name (game-text-id options) :scale #t :param3 28)
(new 'static 'game-option :option-type #x8 :name (game-text-id back) :scale #t)
)
)
(define *options*
(new 'static 'boxed-array :type game-option :length 4 :allocated-length 4
(new 'static 'game-option :option-type #x6 :name (game-text-id game-options) :scale #t :param3 4)
(new 'static 'game-option :option-type #x6 :name (game-text-id graphic-options) :scale #t :param3 5)
(new 'static 'game-option :option-type #x6 :name (game-text-id sound-options) :scale #t :param3 6)
(new 'static 'game-option :option-type #x8 :name (game-text-id back) :scale #t)
)
)
(define *main-options-demo*
(new 'static 'boxed-array :type game-option :length 4 :allocated-length 4
(new 'static 'game-option :option-type #x6 :name (game-text-id game-options) :scale #t :param3 4)
(new 'static 'game-option :option-type #x6 :name (game-text-id graphic-options) :scale #t :param3 5)
(new 'static 'game-option :option-type #x6 :name (game-text-id sound-options) :scale #t :param3 6)
(new 'static 'game-option :option-type #x8 :name (game-text-id back) :scale #t)
)
)
;; param3 corresponds to the index defined in `*options-remap*` in progress.gc
;; it is the screen it should go to next, it's only used for type `6`
(define *main-options-demo-shared*
(new 'static 'boxed-array :type game-option :length 5 :allocated-length 5
(new 'static 'game-option :option-type #x6 :name (game-text-id game-options) :scale #t :param3 4)
(new 'static 'game-option :option-type #x6 :name (game-text-id graphic-options) :scale #t :param3 5)
(new 'static 'game-option :option-type #x6 :name (game-text-id sound-options) :scale #t :param3 6)
(new 'static 'game-option :option-type #x8 :name (game-text-id exit-demo) :scale #t)
(new 'static 'game-option :option-type #x8 :name (game-text-id back) :scale #t)
)
)
;; TODO - option type should be an enum
;; 1 - a list? (only used by language so there might be some bad assumptions here...)
;; 2 - boolean
;; 3 - dpad input (center screen)
;; 4 - used for aspect ratio, also a list
;; 6 - go forward a screen
;; 8 - go back a screen
;; ---
;; 10 - port aspect ratio
;; 11 - port resolution
;; 12 - port window type
;; 13 - port subtitle language
;; 14 - port subtitle speaker
(define *game-options*
(new 'static 'boxed-array :type game-option :length 5 :allocated-length 5
(new 'static 'game-option :option-type #x2 :name (game-text-id vibrations) :scale #t)
(new 'static 'game-option :option-type #x2 :name (game-text-id play-hints) :scale #t)
(new 'static 'game-option :option-type #x6 :name (game-text-id progress-language-options) :scale #t :param3 35)
(new 'static 'game-option :option-type #x2 :name (game-text-id progress-discord-rpc) :scale #t)
(new 'static 'game-option :option-type #x8 :name (game-text-id back) :scale #t)
)
)
(define *game-options-japan*
(new 'static 'boxed-array :type game-option :length 5 :allocated-length 5
(new 'static 'game-option :option-type #x2 :name (game-text-id vibrations) :scale #t)
(new 'static 'game-option :option-type #x2 :name (game-text-id play-hints) :scale #t)
(new 'static 'game-option :option-type #x1 :name (game-text-id progress-language-options) :scale #t :param3 35)
(new 'static 'game-option :option-type #x2 :name (game-text-id progress-discord-rpc) :scale #t)
(new 'static 'game-option :option-type #x8 :name (game-text-id back) :scale #t)
)
)
(define *game-options-demo*
(new 'static 'boxed-array :type game-option :length 5 :allocated-length 5
(new 'static 'game-option :option-type #x2 :name (game-text-id vibrations) :scale #t)
(new 'static 'game-option :option-type #x2 :name (game-text-id play-hints) :scale #t)
(new 'static 'game-option :option-type #x1 :name (game-text-id progress-language-options) :scale #t :param3 35)
(new 'static 'game-option :option-type #x2 :name (game-text-id progress-discord-rpc) :scale #t)
(new 'static 'game-option :option-type #x8 :name (game-text-id back) :scale #t)
)
)
(define *language-options*
(new 'static 'boxed-array :type game-option :length 5 :allocated-length 5
(new 'static 'game-option :option-type #x1 :name (game-text-id language) :scale #t)
(new 'static 'game-option :option-type #x2 :name (game-text-id progress-subtitles) :scale #t)
(new 'static 'game-option :option-type #x13 :name (game-text-id progress-subtitles-language) :scale #t)
(new 'static 'game-option :option-type #x14 :name (game-text-id progress-subtitles-label-speaker) :scale #t)
(new 'static 'game-option :option-type #x8 :name (game-text-id back) :scale #t)
))
(define *graphic-options*
(new 'static 'boxed-array :type game-option :length 5 :allocated-length 5
(new 'static 'game-option :option-type #x12 :name (game-text-id progress-display-mode) :scale #t)
(new 'static 'game-option :option-type #x10 :name (game-text-id aspect-ratio) :scale #t)
(new 'static 'game-option :option-type #x11 :name (game-text-id progress-resolution) :scale #t)
(new 'static 'game-option :option-type #x2 :name (game-text-id progress-letterbox) :scale #t)
(new 'static 'game-option :option-type #x8 :name (game-text-id back) :scale #t)
)
)
(define *graphic-title-options-pal*
(new 'static 'boxed-array :type game-option :length 4 :allocated-length 4
(new 'static 'game-option :option-type #x3 :name (game-text-id center-screen) :scale #t)
(new 'static 'game-option :option-type #x5 :name (game-text-id video-mode) :scale #t)
(new 'static 'game-option :option-type #x4 :name (game-text-id aspect-ratio) :scale #t)
(new 'static 'game-option :option-type #x8 :name (game-text-id back) :scale #t)
)
)
(define *sound-options*
(new 'static 'boxed-array :type game-option :length 4 :allocated-length 4
(new 'static 'game-option :name (game-text-id sfx-volume) :scale #t :param2 100.0)
(new 'static 'game-option :name (game-text-id music-volume) :scale #t :param2 100.0)
(new 'static 'game-option :name (game-text-id speech-volume) :scale #t :param2 100.0)
(new 'static 'game-option :option-type #x8 :name (game-text-id back) :scale #t)
)
)
(define *yes-no-options*
(new 'static 'boxed-array :type game-option :length 1 :allocated-length 1
(new 'static 'game-option :option-type #x7 :scale #f)
)
)
(define *ok-options*
(new 'static 'boxed-array :type game-option :length 1 :allocated-length 1
(new 'static 'game-option :option-type #x8 :name (game-text-id ok) :scale #f)
)
)
(define *load-options*
(new 'static 'boxed-array
:type game-option :length 5 :allocated-length 5
(new 'static 'game-option :option-type #x8 :scale #f)
(new 'static 'game-option :option-type #x8 :scale #f)
(new 'static 'game-option :option-type #x8 :scale #f)
(new 'static 'game-option :option-type #x8 :scale #f)
(new 'static 'game-option :option-type #x8 :name (game-text-id back) :scale #f)
)
)
(define *save-options*
(new 'static 'boxed-array :type game-option :length 5 :allocated-length 5
(new 'static 'game-option :option-type #x8 :scale #f)
(new 'static 'game-option :option-type #x8 :scale #f)
(new 'static 'game-option :option-type #x8 :scale #f)
(new 'static 'game-option :option-type #x8 :scale #f)
(new 'static 'game-option :option-type #x8 :name (game-text-id back) :scale #f)
)
)
(define *save-options-title*
(new 'static 'boxed-array
:type game-option :length 6 :allocated-length 6
(new 'static 'game-option :option-type #x8 :scale #f)
(new 'static 'game-option :option-type #x8 :scale #f)
(new 'static 'game-option :option-type #x8 :scale #f)
(new 'static 'game-option :option-type #x8 :scale #f)
(new 'static 'game-option :option-type #x8 :name (game-text-id continue-without-saving) :scale #f)
(new 'static 'game-option :option-type #x8 :name (game-text-id back) :scale #f)
)
)
;; maps options to a progress screen
(define *options-remap*
(new 'static 'boxed-array :type (array game-option) :length 0 :allocated-length 36)
)
;; TODO probably an enum.
;; maps "levels" to the appropriate offset in *level-task-data*
(define *level-task-data-remap*
(new 'static 'boxed-array :type int32 :length 23 :allocated-length 23
0
1
2
3 ;; jungle?
3 ;; jungleb?
4
5
6
7 ;; sunken?
7 ;; sunkenb?
8
9
10
11
12
13 ;; maincave?
13 ;; robocave?
13 ;; darkcave?
14
15 ;; citadel?
15 ;; finalboss?
4 ;; demo?
4 ;; intro?
)
)
;; maps goal language ID to its name string ID
(define *language-name-remap*
(new 'static 'boxed-array :type game-text-id :length 6 :allocated-length 6
(game-text-id english)
(game-text-id french)
(game-text-id german)
(game-text-id spanish)
(game-text-id italian)
(game-text-id japanese)
)
)
(define *pc-subtitle-language-name-remap*
(new 'static 'boxed-array :type game-text-id :length 14 :allocated-length 14
(game-text-id english)
(game-text-id french)
(game-text-id german)
(game-text-id spanish)
(game-text-id italian)
(game-text-id japanese)
(game-text-id progress-subtitle-language-uk-english)
(game-text-id progress-subtitle-language-portuguese)
(game-text-id progress-subtitle-language-finnish)
(game-text-id progress-subtitle-language-swedish)
(game-text-id progress-subtitle-language-danish)
(game-text-id progress-subtitle-language-norwegian)
(game-text-id progress-subtitle-language-korean)
(game-text-id progress-subtitle-language-russian)))
(define *pc-subtitle-speaker-setting-remap*
(new 'static 'boxed-array :type game-text-id :length 3 :allocated-length 3
(game-text-id progress-subtitles-label-speaker-on)
(game-text-id progress-subtitles-label-speaker-off)
(game-text-id progress-subtitles-label-speaker-auto)))
(define *pc-subtitle-speaker-valid-options*
(new 'static 'boxed-array :type symbol :length 3 :allocated-length 3 #t #f 'auto))
(define *pc-graphics-display-mode-symbol-options*
(new 'static 'boxed-array :type symbol :length 3 :allocated-length 3 'borderless 'fullscreen 'windowed))
(define *pc-graphics-display-mode-remap*
(new 'static 'boxed-array :type game-text-id :length 3 :allocated-length 3
(game-text-id progress-display-mode-borderless)
(game-text-id progress-display-mode-fullscreen)
(game-text-id progress-display-mode-windowed)))
(define *pc-graphics-aspect-ratio-options*
(new 'static 'boxed-array :type symbol :length 5 :allocated-length 5 'pc-aspect-4x3 'pc-aspect-5x4 'pc-aspect-16x9 'pc-aspect-21x9 'pc-aspect-32x9))
(define *pc-graphics-aspect-ratio-mode-remap*
(new 'static 'boxed-array :type game-text-id :length 5 :allocated-length 5
(game-text-id process-aspect-ratio-4x3)
(game-text-id process-aspect-ratio-5x4)
(game-text-id process-aspect-ratio-16x9)
(game-text-id process-aspect-ratio-21x9)
(game-text-id process-aspect-ratio-32x9)))
(define *pc-graphics-4x3-valid-resolutions*
(new 'static 'boxed-array :type symbol :length 5 :allocated-length 5 '640x480 '800x600 '1024x768 '1280x960 '1600x1200))
(define *pc-graphics-4x3-valid-resolutions-names*
(new 'static 'boxed-array :type game-text-id :length 5 :allocated-length 5
(game-text-id process-res-4x3-640x480)
(game-text-id process-res-4x3-800x600)
(game-text-id process-res-4x3-1024x768)
(game-text-id process-res-4x3-1280x960)
(game-text-id process-res-4x3-1600x1200)))
(define *pc-graphics-5x4-valid-resolutions*
(new 'static 'boxed-array :type symbol :length 3 :allocated-length 3 '960x768 '1280x1024 '1500x1200))
(define *pc-graphics-5x4-valid-resolutions-names*
(new 'static 'boxed-array :type game-text-id :length 3 :allocated-length 3
(game-text-id process-res-5x4-960x768)
(game-text-id process-res-5x4-1280x1024)
(game-text-id process-res-5x4-1500x1200)))
(define *pc-graphics-16x9-valid-resolutions*
(new 'static 'boxed-array :type symbol :length 7 :allocated-length 7 '854x480 '1280x720 '1920x1080 '2560x1440 '2880x1620 '3840x2160 '5120x2880))
(define *pc-graphics-16x9-valid-resolutions-names*
(new 'static 'boxed-array :type game-text-id :length 7 :allocated-length 7
(game-text-id process-res-16x9-854x480)
(game-text-id process-res-16x9-1280x720)
(game-text-id process-res-16x9-1920x1080)
(game-text-id process-res-16x9-2560x1440)
(game-text-id process-res-16x9-2880x1620)
(game-text-id process-res-16x9-3840x2160)
(game-text-id process-res-16x9-5120x2880)))
(define *pc-graphics-21x9-valid-resolutions*
(new 'static 'boxed-array :type symbol :length 6 :allocated-length 6 '2560x1080 '3120x1440 '3200x1440 '3440x1440 '3840x1600 '5120x2160))
(define *pc-graphics-21x9-valid-resolutions-names*
(new 'static 'boxed-array :type game-text-id :length 6 :allocated-length 6
(game-text-id process-res-21x9-2560x1080)
(game-text-id process-res-21x9-3120x1440)
(game-text-id process-res-21x9-3200x1440)
(game-text-id process-res-21x9-3440x1440)
(game-text-id process-res-21x9-3840x1600)
(game-text-id process-res-21x9-5120x2160)))
(define *pc-graphics-32x9-valid-resolutions*
(new 'static 'boxed-array :type symbol :length 1 :allocated-length 1 '5120x1440))
(define *pc-graphics-32x9-valid-resolutions-names*
(new 'static 'boxed-array :type game-text-id :length 1 :allocated-length 1
(game-text-id process-res-32x9-5120x1440)))
;; all level tasks
(define *level-task-data*
(new 'static 'boxed-array :type level-tasks-info :length 16 :allocated-length 16
(new 'static 'level-tasks-info
:level-name-id (game-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 game-text-id 4
(game-text-id training-gimmie-task-name)
(game-text-id training-gimmie-task-name)
(game-text-id training-gimmie-task-name)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task training-door)
:task-name
(new 'static 'array game-text-id 4
(game-text-id training-door-task-name)
(game-text-id training-door-task-name)
(game-text-id training-door-task-name)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task training-climb)
:task-name
(new 'static 'array game-text-id 4
(game-text-id training-climb-task-name)
(game-text-id training-climb-task-name)
(game-text-id training-climb-task-name)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task training-buzzer)
:task-name
(new 'static 'array game-text-id 4
(game-text-id training-buzzer-task-name)
(game-text-id training-buzzer-task-name)
(game-text-id training-buzzer-task-name)
(game-text-id zero)
)
)
)
)
(new 'static 'level-tasks-info
:level-name-id (game-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 game-text-id 4
(game-text-id village1-mayor-money)
(game-text-id village1-mayor-money)
(game-text-id village1-mayor-money)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task village1-uncle-money)
:task-name
(new 'static 'array game-text-id 4
(game-text-id vollage1-uncle-money)
(game-text-id vollage1-uncle-money)
(game-text-id vollage1-uncle-money)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task village1-yakow)
:task-name
(new 'static 'array game-text-id 4
(game-text-id village1-yakow-herd)
(game-text-id village1-yakow-herd)
(game-text-id village1-yakow-return)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task village1-oracle-money1)
:task-name
(new 'static 'array game-text-id 4
(game-text-id village1-oracle)
(game-text-id village1-oracle)
(game-text-id village1-oracle)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task village1-oracle-money2)
:task-name
(new 'static 'array game-text-id 4
(game-text-id village1-oracle)
(game-text-id village1-oracle)
(game-text-id village1-oracle)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task village1-buzzer)
:task-name
(new 'static 'array game-text-id 4
(game-text-id beach-buzzer)
(game-text-id beach-buzzer)
(game-text-id beach-buzzer)
(game-text-id zero)
)
)
)
)
(new 'static 'level-tasks-info
:level-name-id (game-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 game-text-id 4
(game-text-id beach-ecorocks)
(game-text-id beach-ecorocks)
(game-text-id beach-ecorocks)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task beach-flutflut)
:task-name
(new 'static 'array game-text-id 4
(game-text-id beach-flutflut-push)
(game-text-id beach-flutflut-push)
(game-text-id beach-flutflut-meet)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task beach-pelican)
:task-name
(new 'static 'array game-text-id 4
(game-text-id beach-pelican)
(game-text-id beach-pelican)
(game-text-id beach-pelican)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task beach-seagull)
:task-name
(new 'static 'array game-text-id 4
(game-text-id beach-seagull)
(game-text-id beach-seagull)
(game-text-id beach-seagull-get)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task beach-cannon)
:task-name
(new 'static 'array game-text-id 4
(game-text-id beach-cannon)
(game-text-id beach-cannon)
(game-text-id beach-cannon)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task beach-gimmie)
:task-name
(new 'static 'array game-text-id 4
(game-text-id beach-gimmie)
(game-text-id beach-gimmie)
(game-text-id beach-gimmie)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task beach-sentinel)
:task-name
(new 'static 'array game-text-id 4
(game-text-id beach-sentinel)
(game-text-id beach-sentinel)
(game-text-id beach-sentinel)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task beach-buzzer)
:task-name
(new 'static 'array game-text-id 4
(game-text-id beach-buzzer)
(game-text-id beach-buzzer)
(game-text-id beach-buzzer)
(game-text-id zero)
)
)
)
)
(new 'static 'level-tasks-info
:level-name-id (game-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 game-text-id 4
(game-text-id jungle-lurkerm-unblock)
(game-text-id jungle-lurkerm-connect)
(game-text-id jungle-lurkerm-return)
(game-text-id zero)
)
:text-index-when-resolved 1
)
(new 'static 'task-info-data
:task-id (game-task jungle-tower)
:task-name
(new 'static 'array game-text-id 4
(game-text-id jungle-tower)
(game-text-id jungle-tower)
(game-text-id jungle-tower)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task jungle-eggtop)
:task-name
(new 'static 'array game-text-id 4
(game-text-id jungle-eggtop)
(game-text-id jungle-eggtop)
(game-text-id jungle-eggtop)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task jungle-plant)
:task-name
(new 'static 'array game-text-id 4
(game-text-id jungle-plant)
(game-text-id jungle-plant)
(game-text-id jungle-plant)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task jungle-fishgame)
:task-name
(new 'static 'array game-text-id 4
(game-text-id jungle-fishgame)
(game-text-id jungle-fishgame)
(game-text-id jungle-fishgame)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task jungle-canyon-end)
:task-name
(new 'static 'array game-text-id 4
(game-text-id jungle-canyon-end)
(game-text-id jungle-canyon-end)
(game-text-id jungle-canyon-end)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task jungle-temple-door)
:task-name
(new 'static 'array game-text-id 4
(game-text-id jungle-temple-door)
(game-text-id jungle-temple-door)
(game-text-id jungle-temple-door)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task jungle-buzzer)
:task-name
(new 'static 'array game-text-id 4
(game-text-id beach-buzzer)
(game-text-id beach-buzzer)
(game-text-id beach-buzzer)
(game-text-id zero)
)
)
)
)
(new 'static 'level-tasks-info
:level-name-id (game-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 game-text-id 4
(game-text-id misty-muse-catch)
(game-text-id misty-muse-catch)
(game-text-id misty-muse-return)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task misty-boat)
:task-name
(new 'static 'array game-text-id 4
(game-text-id misty-boat)
(game-text-id misty-boat)
(game-text-id misty-boat)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task misty-cannon)
:task-name
(new 'static 'array game-text-id 4
(game-text-id misty-cannon)
(game-text-id misty-cannon)
(game-text-id misty-cannon)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task misty-warehouse)
:task-name
(new 'static 'array game-text-id 4
(game-text-id misty-return-to-pool)
(game-text-id misty-return-to-pool)
(game-text-id misty-return-to-pool)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task misty-bike)
:task-name
(new 'static 'array game-text-id 4
(game-text-id misty-find-transpad)
(game-text-id misty-balloon-lurkers)
(game-text-id misty-find-transpad)
(game-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 game-text-id 4
(game-text-id misty-bike-jump)
(game-text-id misty-bike-jump)
(game-text-id misty-bike-jump)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task misty-eco-challenge)
:task-name
(new 'static 'array game-text-id 4
(game-text-id misty-eco-challenge)
(game-text-id misty-eco-challenge)
(game-text-id misty-eco-challenge)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task misty-buzzer)
:task-name
(new 'static 'array game-text-id 4
(game-text-id beach-buzzer)
(game-text-id beach-buzzer)
(game-text-id beach-buzzer)
(game-text-id zero)
)
)
)
)
(new 'static 'level-tasks-info
:level-name-id (game-text-id fire-canyon-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 game-text-id 4
(game-text-id fire-canyon-end)
(game-text-id fire-canyon-end)
(game-text-id fire-canyon-end)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task firecanyon-buzzer)
:task-name
(new 'static 'array game-text-id 4
(game-text-id fire-canyon-buzzer)
(game-text-id fire-canyon-buzzer)
(game-text-id fire-canyon-buzzer)
(game-text-id zero)
)
)
)
)
(new 'static 'level-tasks-info
:level-name-id (game-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 game-text-id 4
(game-text-id village2-gambler-money)
(game-text-id village2-gambler-money)
(game-text-id village2-gambler-money)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task village2-geologist-money)
:task-name
(new 'static 'array game-text-id 4
(game-text-id village2-geologist-money)
(game-text-id village2-geologist-money)
(game-text-id village2-geologist-money)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task village2-warrior-money)
:task-name
(new 'static 'array game-text-id 4
(game-text-id village2-warrior-money)
(game-text-id village2-warrior-money)
(game-text-id village2-warrior-money)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task village2-oracle-money1)
:task-name
(new 'static 'array game-text-id 4
(game-text-id village2-oracle-money)
(game-text-id village2-oracle-money)
(game-text-id village2-oracle-money)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task village2-oracle-money2)
:task-name
(new 'static 'array game-text-id 4
(game-text-id village2-oracle-money)
(game-text-id village2-oracle-money)
(game-text-id village2-oracle-money)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task village2-buzzer)
:task-name
(new 'static 'array game-text-id 4
(game-text-id unknown-buzzers)
(game-text-id unknown-buzzers)
(game-text-id unknown-buzzers)
(game-text-id zero)
)
)
)
)
(new 'static 'level-tasks-info
:level-name-id (game-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 game-text-id 4
(game-text-id sunken-elevator-raise)
(game-text-id sunken-elevator-raise)
(game-text-id sunken-elevator-get-to-roof)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task sunken-pipe)
:task-name
(new 'static 'array game-text-id 4
(game-text-id sunken-pipe)
(game-text-id sunken-pipe)
(game-text-id sunken-pipe)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task sunken-slide)
:task-name
(new 'static 'array game-text-id 4
(game-text-id sunken-bottom)
(game-text-id sunken-bottom)
(game-text-id sunken-bottom)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task sunken-sharks)
:task-name
(new 'static 'array game-text-id 4
(game-text-id sunken-pool)
(game-text-id sunken-pool)
(game-text-id sunken-pool)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task sunken-platforms)
:task-name
(new 'static 'array game-text-id 4
(game-text-id sunken-platforms)
(game-text-id sunken-platforms)
(game-text-id sunken-platforms)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task sunken-top-of-helix)
:task-name
(new 'static 'array game-text-id 4
(game-text-id sunken-climb-tube)
(game-text-id sunken-climb-tube)
(game-text-id sunken-climb-tube)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task sunken-spinning-room)
:task-name
(new 'static 'array game-text-id 4
(game-text-id reach-center)
(game-text-id reach-center)
(game-text-id reach-center)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task sunken-buzzer)
:task-name
(new 'static 'array game-text-id 4
(game-text-id unknown-buzzers)
(game-text-id unknown-buzzers)
(game-text-id unknown-buzzers)
(game-text-id zero)
)
)
)
)
(new 'static 'level-tasks-info
:level-name-id (game-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 game-text-id 4
(game-text-id swamp-flutflut)
(game-text-id swamp-flutflut)
(game-text-id swamp-flutflut)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task swamp-billy)
:task-name
(new 'static 'array game-text-id 4
(game-text-id swamp-billy)
(game-text-id swamp-billy)
(game-text-id swamp-billy)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task swamp-battle)
:task-name
(new 'static 'array game-text-id 4
(game-text-id swamp-battle)
(game-text-id swamp-battle)
(game-text-id swamp-battle)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task swamp-tether-4)
:task-name
(new 'static 'array game-text-id 4
(game-text-id swamp-tether)
(game-text-id swamp-tether)
(game-text-id swamp-tether)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task swamp-tether-1)
:task-name
(new 'static 'array game-text-id 4
(game-text-id swamp-tether)
(game-text-id swamp-tether)
(game-text-id swamp-tether)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task swamp-tether-2)
:task-name
(new 'static 'array game-text-id 4
(game-text-id swamp-tether)
(game-text-id swamp-tether)
(game-text-id swamp-tether)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task swamp-tether-3)
:task-name
(new 'static 'array game-text-id 4
(game-text-id swamp-tether)
(game-text-id swamp-tether)
(game-text-id swamp-tether)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task swamp-buzzer)
:task-name
(new 'static 'array game-text-id 4
(game-text-id unknown-buzzers)
(game-text-id unknown-buzzers)
(game-text-id unknown-buzzers)
(game-text-id zero)
)
)
)
)
(new 'static 'level-tasks-info
:level-name-id (game-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 game-text-id 4
(game-text-id rolling-moles)
(game-text-id rolling-moles)
(game-text-id rolling-moles-return)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task rolling-robbers)
:task-name
(new 'static 'array game-text-id 4
(game-text-id rolling-robbers)
(game-text-id rolling-robbers)
(game-text-id rolling-robbers)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task rolling-race)
:task-name
(new 'static 'array game-text-id 4
(game-text-id rolling-race)
(game-text-id rolling-race)
(game-text-id rolling-race-return)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task rolling-lake)
:task-name
(new 'static 'array game-text-id 4
(game-text-id rolling-lake)
(game-text-id rolling-lake)
(game-text-id rolling-lake)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task rolling-plants)
:task-name
(new 'static 'array game-text-id 4
(game-text-id rolling-plants)
(game-text-id rolling-plants)
(game-text-id rolling-plants)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task rolling-ring-chase-1)
:task-name
(new 'static 'array game-text-id 4
(game-text-id rolling-ring-chase-1)
(game-text-id rolling-ring-chase-1)
(game-text-id rolling-ring-chase-1)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task rolling-ring-chase-2)
:task-name
(new 'static 'array game-text-id 4
(game-text-id rolling-ring-chase-2)
(game-text-id rolling-ring-chase-2)
(game-text-id rolling-ring-chase-2)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task rolling-buzzer)
:task-name
(new 'static 'array game-text-id 4
(game-text-id unknown-buzzers)
(game-text-id unknown-buzzers)
(game-text-id unknown-buzzers)
(game-text-id zero)
)
)
)
)
(new 'static 'level-tasks-info
:level-name-id (game-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 game-text-id 4
(game-text-id ogre-boss)
(game-text-id ogre-boss)
(game-text-id ogre-boss)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task ogre-end)
:task-name
(new 'static 'array game-text-id 4
(game-text-id ogre-end)
(game-text-id ogre-end)
(game-text-id ogre-end)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task ogre-secret)
:task-name
(new 'static 'array game-text-id 4
(game-text-id hidden-power-cell)
(game-text-id hidden-power-cell)
(game-text-id hidden-power-cell)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task ogre-buzzer)
:task-name
(new 'static 'array game-text-id 4
(game-text-id ogre-buzzer)
(game-text-id ogre-buzzer)
(game-text-id ogre-buzzer)
(game-text-id zero)
)
)
)
)
(new 'static 'level-tasks-info
:level-name-id (game-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 game-text-id 4
(game-text-id village3-miner-money)
(game-text-id village3-miner-money)
(game-text-id village3-miner-money)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task village3-miner-money2)
:task-name
(new 'static 'array game-text-id 4
(game-text-id village3-miner-money)
(game-text-id village3-miner-money)
(game-text-id village3-miner-money)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task village3-miner-money3)
:task-name
(new 'static 'array game-text-id 4
(game-text-id village3-miner-money)
(game-text-id village3-miner-money)
(game-text-id village3-miner-money)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task village3-miner-money4)
:task-name
(new 'static 'array game-text-id 4
(game-text-id village3-miner-money)
(game-text-id village3-miner-money)
(game-text-id village3-miner-money)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task village3-oracle-money1)
:task-name
(new 'static 'array game-text-id 4
(game-text-id village3-oracle-money)
(game-text-id village3-oracle-money)
(game-text-id village3-oracle-money)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task village3-oracle-money2)
:task-name
(new 'static 'array game-text-id 4
(game-text-id village3-oracle-money)
(game-text-id village3-oracle-money)
(game-text-id village3-oracle-money)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task village3-extra1)
:task-name
(new 'static 'array game-text-id 4
(game-text-id hidden-power-cell)
(game-text-id hidden-power-cell)
(game-text-id hidden-power-cell)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task village3-buzzer)
:task-name
(new 'static 'array game-text-id 4
(game-text-id village3-buzzer)
(game-text-id village3-buzzer)
(game-text-id village3-buzzer)
(game-text-id zero)
)
)
)
)
(new 'static 'level-tasks-info
:level-name-id (game-text-id snowy-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 game-text-id 4
(game-text-id snow-eggtop)
(game-text-id snow-eggtop)
(game-text-id snow-eggtop)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task snow-ram)
:task-name
(new 'static 'array game-text-id 4
(game-text-id snow-ram-3-left)
(game-text-id snow-ram-2-left)
(game-text-id snow-ram-1-left)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task snow-bumpers)
:task-name
(new 'static 'array game-text-id 4
(game-text-id snow-bumpers)
(game-text-id snow-bumpers)
(game-text-id snow-bumpers)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task snow-cage)
:task-name
(new 'static 'array game-text-id 4
(game-text-id snow-frozen-crate)
(game-text-id snow-frozen-crate)
(game-text-id snow-frozen-crate)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task snow-fort)
:task-name
(new 'static 'array game-text-id 4
(game-text-id snow-fort)
(game-text-id snow-fort)
(game-text-id snow-fort)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task snow-ball)
:task-name
(new 'static 'array game-text-id 4
(game-text-id snow-open-door)
(game-text-id snow-open-door)
(game-text-id snow-open-door)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task snow-bunnies)
:task-name
(new 'static 'array game-text-id 4
(game-text-id snow-bunnies)
(game-text-id snow-bunnies)
(game-text-id snow-bunnies)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task snow-buzzer)
:task-name
(new 'static 'array game-text-id 4
(game-text-id village3-buzzer)
(game-text-id village3-buzzer)
(game-text-id village3-buzzer)
(game-text-id zero)
)
)
)
)
(new 'static 'level-tasks-info
:level-name-id (game-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 game-text-id 4
(game-text-id cave-gnawers)
(game-text-id cave-gnawers)
(game-text-id cave-gnawers)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task cave-dark-crystals)
:task-name
(new 'static 'array game-text-id 4
(game-text-id cave-dark-crystals)
(game-text-id cave-dark-crystals)
(game-text-id cave-dark-crystals)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task cave-dark-climb)
:task-name
(new 'static 'array game-text-id 4
(game-text-id cave-dark-climb)
(game-text-id cave-dark-climb)
(game-text-id cave-dark-climb)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task cave-robot-climb)
:task-name
(new 'static 'array game-text-id 4
(game-text-id cave-robot-climb)
(game-text-id cave-robot-climb)
(game-text-id cave-robot-climb)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task cave-swing-poles)
:task-name
(new 'static 'array game-text-id 4
(game-text-id cave-swing-poles)
(game-text-id cave-swing-poles)
(game-text-id cave-swing-poles)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task cave-spider-tunnel)
:task-name
(new 'static 'array game-text-id 4
(game-text-id cave-spider-tunnel)
(game-text-id cave-spider-tunnel)
(game-text-id cave-spider-tunnel)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task cave-platforms)
:task-name
(new 'static 'array game-text-id 4
(game-text-id cave-platforms)
(game-text-id cave-platforms)
(game-text-id cave-platforms)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task cave-buzzer)
:task-name
(new 'static 'array game-text-id 4
(game-text-id village3-buzzer)
(game-text-id village3-buzzer)
(game-text-id village3-buzzer)
(game-text-id zero)
)
)
)
)
(new 'static 'level-tasks-info
:level-name-id (game-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 game-text-id 4
(game-text-id lavatube-end)
(game-text-id lavatube-end)
(game-text-id lavatube-end)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task lavatube-buzzer)
:task-name
(new 'static 'array game-text-id 4
(game-text-id lavatube-buzzer)
(game-text-id lavatube-buzzer)
(game-text-id lavatube-buzzer)
(game-text-id zero)
)
)
)
)
(new 'static 'level-tasks-info
:level-name-id (game-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 game-text-id 4
(game-text-id citadel-sage-blue)
(game-text-id citadel-sage-blue)
(game-text-id citadel-sage-blue)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task citadel-sage-red)
:task-name
(new 'static 'array game-text-id 4
(game-text-id citadel-sage-red)
(game-text-id citadel-sage-red)
(game-text-id citadel-sage-red)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task citadel-sage-yellow)
:task-name
(new 'static 'array game-text-id 4
(game-text-id citadel-sage-yellow)
(game-text-id citadel-sage-yellow)
(game-text-id citadel-sage-yellow)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task citadel-sage-green)
:task-name
(new 'static 'array game-text-id 4
(game-text-id citadel-sage-green)
(game-text-id citadel-sage-green)
(game-text-id citadel-sage-green)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task citadel-buzzer)
:task-name
(new 'static 'array game-text-id 4
(game-text-id citadel-buzzer)
(game-text-id citadel-buzzer)
(game-text-id citadel-buzzer)
(game-text-id zero)
)
)
)
)
)
)
;; goes down by 24 or 23 every time
(define *task-egg-starting-x*
(new 'static 'boxed-array :type int32 :length 9 :allocated-length 9
218
194
171
147
124
100
77
53
30
)
)
(define *game-counts* (the-as game-count-info #f))