;;-*-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))