;;-*-Lisp-*- (in-package goal) ;; name: text-h.gc ;; name in dgo: text-h ;; dgos: GAME, ENGINE ;; This file contains types related to game text. ;; Each game string is assigned an ID number. ;; This ID is used to lookup the string for the currently selected language. (defenum game-text-id :type uint32 :bitfield #f (zero 0) (pause #x109) (sfx-volume #x10a) (music-volume #x10b) (speech-volume #x10c) (language #x10d) (vibrations #x10e) (play-hints #x10f) (center-screen #x110) (english #x114) (french #x115) (german #x116) (spanish #x117) (italian #x118) (japanese #x119) (aspect-ratio #x125) (video-mode #x126) (game-options #x127) (graphic-options #x128) (sound-options #x129) (hidden-power-cell #x12f) ;; why is this here?? (continue-without-saving #x13f) (back #x13e) (load-game #x14b) (save-game #x14c) (options #x150) (new-game #x15c) (ok #x15e) (exit-demo #x15f) (quit-game #x16f) (village1-mayor-money #x200) (vollage1-uncle-money #x201) (village1-yakow-herd #x202) (village1-yakow-return #x203) (village1-oracle #x204) (beach-ecorocks #x205) (beach-flutflut-push #x206) (beach-flutflut-meet #x207) (beach-pelican #x208) (beach-seagull #x209) (beach-cannon #x20a) (beach-buzzer #x20b) (jungle-lurkerm-connect #x20c) (jungle-tower #x20d) (jungle-eggtop #x20e) (jungle-plant #x20f) (jungle-fishgame #x210) (misty-muse-catch #x211) (misty-muse-return #x212) (misty-boat #x213) (misty-cannon #x214) (misty-return-to-pool #x215) ;; task name?? (misty-find-transpad #x216) ;; task name? (misty-balloon-lurkers #x217) (village1-level-name #x220) (beach-level-name #x221) (jungle-level-name #x222) (misty-level-name #x223) (beach-seagull-get #x22e) (jungle-lurkerm-unblock #x22f) (jungle-lurkerm-return #x230) (MISSING-orb-hint #x233) (beach-gimmie #x262) (beach-sentinel #x263) (jungle-canyon-end #x264) (jungle-temple-door #x265) (misty-bike-jump #x266) (misty-eco-challenge #x267) (village2-gambler-money #x300) (village2-geologist-money #x301) (village2-warrior-money #x302) (village2-oracle-money #x303) (swamp-tether #x304) (swamp-flutflut #x307) (swamp-billy #x309) (sunken-elevator-raise #x30a) (sunken-elevator-get-to-roof #x30b) (sunken-pipe #x30c) (sunken-climb-tube #x30d) ;; task name? (sunken-pool #x30e) ;; task name? (sunken-platforms #x30f) (rolling-moles #x310) (rolling-moles-return #x311) (rolling-robbers #x312) (rolling-race #x313) (rolling-race-return #x314) (rolling-lake #x315) (rolling-plants #x316) (unknown-buzzers #x317) (village2-level-name #x319) (rolling-level-name #x31b) (swamp-level-name #x31c) (sunken-level-name #x31d) (ogre-level-name #x31e) (swamp-battle #x321) (sunken-bottom #x322) ;; task name? (reach-center #x323) ;; task name? (rolling-ring-chase-1 #x324) (rolling-ring-chase-2 #x325) (village3-miner-money #x400) (village3-oracle-money #x401) (snow-ram-3-left #x402) (snow-ram-2-left #x403) (snow-ram-1-left #x404) (snow-fort #x405) (snow-bunnies #x406) (snow-open-door #x408) ;; task name? (cave-robot-climb #x40e) (cave-dark-climb #x40f) ;; destroy crystals (cave-gnawers #x410) (cave-dark-crystals #x411) (village3-buzzer #x413) (village3-level-name #x415) (snowy-level-name #x417) (cave-level-name #x419) (lavatube-level-name #x41b) (snow-eggtop #x421) (cave-spider-tunnel #x423) (cave-platforms #x424) (cave-swing-poles #x426) (snow-frozen-crate #x42b) ;; task name? (snow-bumpers #x42c) (fire-canyon-end #x500) (fire-canyon-buzzer #x501) (fire-canyon-level-name #x50c) (ogre-end #x600) (ogre-buzzer #x601) (ogre-boss #x603) (lavatube-end #x700) (lavatube-buzzer #x701) (citadel-buzzer #x800) (citadel-level-name #x801) (citadel-sage-blue #x802) (citadel-sage-red #x803) (citadel-sage-yellow #x804) (citadel-sage-green #x805) (training-gimmie-task-name #x91b) (training-buzzer-task-name #x91c) (training-door-task-name #x91d) (training-climb-task-name #x91e) (training-level-name #x91f) (inc #xf10) (europe #xf11) ) ;; an individual string. (deftype game-text (structure) ((id uint32 :offset-assert 0) (text string :offset-assert 4) ) :pack-me :method-count-assert 9 :size-assert #x8 :flag-assert #x900000008 ) ;; A table of all strings. (deftype game-text-info (basic) ((length int32 :offset-assert 4) (language-id int32 :offset-assert 8) (group-name string :offset-assert 12) (data game-text :inline :dynamic :offset-assert 16) ) :method-count-assert 10 :size-assert #x10 :flag-assert #xa00000010 (:methods (lookup-text! (_type_ game-text-id symbol) string 9) ) ) (define *text-group-names* (new 'static 'boxed-array :type string :length 1 "common")) ;; The heap for storing text (define *common-text-heap* (new 'global 'kheap)) ;; will store the COMMON text when it is loaded. (define *common-text* (the-as game-text-info #f))