jak-project/goal_src/jak1/engine/ui/text-h.gc
2023-11-18 14:52:49 -05:00

888 lines
27 KiB
Common Lisp

;;-*-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.
;; These ID's are shared with short spoken audio clips (daxter hints)
;; most (all?) of the daxter clips don't have text strings.
(defenum text-id
:type uint32
:bitfield #f
;; GAME-TEXT-ID ENUM BEGINS
(zero 0)
(one 1)
(confirm #x103)
(press-to-talk #x104)
(press-to-use #x105)
(confirm-play #x106)
(play-again? #x107)
(quit #x108)
(pause #x109)
(sfx-volume #x10a)
(music-volume #x10b)
(speech-volume #x10c)
(language #x10d)
(vibrations #x10e)
(play-hints #x10f)
(center-screen #x110)
(on #x111)
(off #x112)
(move-dpad #x113)
(english #x114)
(french #x115)
(german #x116)
(spanish #x117)
(italian #x118)
(japanese #x119)
(press-to-trade-money #x11a)
(press-to-trade-money-oracle #x11b)
(press-to-warp #x11c)
(press-to-exit #x11d)
(press-to-talk-to-sage #x123)
(press-to-talk-to-assistant #x124)
(aspect-ratio #x125)
(video-mode #x126)
(game-options #x127)
(graphic-options #x128)
(sound-options #x129)
(4x3 #x12a)
(16x9 #x12b)
(60hz #x12c)
(50hz #x12d)
(game-title #x12e)
(hidden-power-cell #x12f) ;; why is this here??
(memcard-no-space #x130)
(memcard-not-inserted #x131)
(memcard-not-formatted-title #x132)
(memcard-space-requirement1 #x133)
(memcard-space-requirement2 #x134)
(memcard-not-formatted-msg #x135)
(saving-data #x136)
(loading-data #x137)
(memcard-do-not-remove #x138)
(overwrite? #x139)
(format? #x13a)
(yes #x13c)
(no #x13d)
(back #x13e)
(continue-without-saving #x13f)
(select-file-to-save #x140)
(select-file-to-load #x141)
(save-data-already-exists #x142)
(insert-memcard #x143)
(continue? #x144)
(load-game #x14b)
(save-game #x14c)
(formatting #x14d)
(creating-save-data #x14e)
(empty #x14f)
(options #x150)
(error-loading #x151)
(error-saving #x152)
(error-formatting #x153)
(error-creating-data #x154)
(memcard-removed #x156)
(autosave-disabled-title #x157)
(autosave-disabled-msg #x158)
(no-save-data #x159)
(create-save-data? #x15a)
(check-memcard #x15b)
(new-game #x15c)
(back? #x15d)
(ok #x15e)
(exit-demo #x15f)
(autosave-warn-title #x160)
(autosave-warn-msg #x161)
(task-completed #x162)
(check-memcard-and-retry #x163)
(screen-change-to-60hz #x164)
(screen-60hz-warn-support #x165)
(screen-60hz-warn-timer #x166)
(screen-now-60hz #x167)
(screen-60hz-keep? #x168)
(warp-gate-use-dpad #x169)
(no-disc-title #x16a)
(no-disc-msg #x16b)
(bad-disc-title #x16c)
(bad-disc-msg #x16d)
(press-start #x16e)
(quit-game #x16f)
(quit? #x170)
(total-collected #x171)
(village1-mayor-money #x200)
(village1-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)
(misty-find-transpad #x216)
(misty-balloon-lurkers #x217)
(village1-poi-farmer #x218)
(village1-poi-mayor #x219)
(village1-poi-bird-lady #x21a)
(village1-poi-sculptor #x21b)
(village1-poi-explorer #x21c)
(village1-poi-fisherman #x21d)
(village1-poi-sage-hut #x21e)
(village1-poi-assistant #x21f)
(village1-level-name #x220)
(beach-level-name #x221)
(jungle-level-name #x222)
(misty-level-name #x223)
(village1-poi-firecanyon #x224)
(jungleb-level-name #x225)
(generic-yes #x226)
(generic-no #x227)
(flutflut #x228)
(oracle #x229)
(trans-pad #x22a)
(green-eco-harvester #x22b)
(money #x22c)
(fuel-cell #x22d)
(beach-seagull-get #x22e)
(jungle-lurkerm-unblock #x22f)
(jungle-lurkerm-return #x230)
(sidekick-reminder-fishermans-boat #x231)
(sidekick-hint-fishermans-boat #x232)
(sidekick-reminder-money #x233)
(sidekick-reminder-oracle #x234)
(sidekick-hint-oracle #x235)
(sidekick-hint-seagulls #x236)
(sidekick-hint-pelican #x237)
(sidekick-hint-ecorocks #x239)
(sidekick-hint-mistycannon #x23a)
(sidekick-hint-dive #x23b)
(sidekick-hint-rounddoor #x23c)
(sidekick-hint-lurkerm #x23d)
(sidekick-hint-tower #x23e)
(sidekick-reminder-fish #x240)
(firecanyon-need-cells #x24f)
(sidekick-hint-orb-cache-top #x251)
(sidekick-hint-precurbridge #x25b)
(sidekick-hint-launcher #x25c)
(jungle-lurkerm-resolution #x25e)
(jungle-lurkerm-hint #x25f)
(beach-gimmie #x262)
(beach-sentinel #x263)
(jungle-canyon-end #x264)
(jungle-temple-door #x265)
(misty-bike-jump #x266)
(misty-eco-challenge #x267)
(sidekick-seagulls1 #x268)
(sidekick-hint-seagulls2 #x269)
(sidekick-seagulls2 #x26a)
(sidekick-seagulls3 #x26b)
(sidekick-seagulls4 #x26c)
(sidekick-warehouse #x26e)
(sidekick-misty #x26f)
(beach-seagulls-avalanche #x273)
(beach-pelican-quick-get-cell #x274)
(beach-flutflutegg-hint #x275)
(sidekick-hint-fish-powerup #x278)
(misty-bike-hint #x27e)
(misty-bike-mines-hint #x27f)
(sidekick-hint-trans-pad #x280)
(sidekick-hint-crate-darkeco1 #x281)
(sidekick-hint-buzzer #x282)
(sidekick-hint-crate-steel-break1 #x283)
(sidekick-hint-crate-iron #x284)
(sidekick-hint-crate-steel #x285)
(sidekick-hint-fuel-cell #x286)
(sidekick-hint-money #x287)
(beach-ecorocks-resolution #x288)
(jungle-eggtop-resolution #x289)
(misty-cannon-resolution #x28a)
(misty-bike-resolution #x28b)
(sidekick-hint-crate-steel-break2 #x28e)
(sidekick-hint-crate-darkeco2 #x28f)
(sidekick-launcher1 #x290)
(sidekick-launcher2 #x291)
(sidekick-mistycannon #x292)
(sidekick-unknown1 #x293)
(sidekick-hint-buzzer2 #x294)
(sidekick-hint-buzzer3 #x295)
(sidekick-buzzer-resolution #x296)
(village1-yakow-resolution #x297)
(sidekick-hint-periscope #x29c)
(sidekick-hint-reflector-mirror #x29d)
(sidekick-hint-aphid #x29e)
(sidekick-hint-periscope2 #x29f)
(sidekick-hint-periscope3 #x2a0)
(sidekick-hint-eco-door #x2a1)
(misty-teetertotter #x2a4)
(misty-eco-red-hint #x2a5)
(misty-eco-red-first-use #x2a6)
(misty-eco-plat #x2a7)
(fish? #x2a9)
(misty-bone-bridge-hint #x2aa)
(beach-grottopole-increment #x2af)
(village1cam-enough-cells #x2b1)
(village1cam-enough-cells2 #x2b2)
(firecanyon-need-cells-text #x2b3)
(caught #x2b4)
(missed #x2b5)
(lose! #x2b6)
(village2-gambler-money #x300)
(village2-geologist-money #x301)
(village2-warrior-money #x302)
(village2-oracle-money #x303)
(swamp-tether #x304)
(swamp-arm #x305)
(swamp-poles #x306)
(swamp-flutflut #x307)
(swamp-tetherrocks #x308)
(swamp-billy #x309)
(sunken-elevator-raise #x30a)
(sunken-elevator-get-to-roof #x30b)
(sunken-pipe #x30c)
(sunken-climb-tube #x30d)
(sunken-pool #x30e)
(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)
(generic-buzzer #x317)
(poi-bluesage-hut #x318)
(village2-level-name #x319)
(poi-levitator #x31a)
(rolling-level-name #x31b)
(swamp-level-name #x31c)
(sunken-level-name #x31d)
(ogre-level-name #x31e)
(levitator-yes #x31f)
(levitator-no #x320)
(swamp-battle #x321)
(sunken-slide #x322)
(sunken-spinning-room #x323)
(rolling-ring-chase-1 #x324)
(rolling-ring-chase-2 #x325)
(sunken-room-resolution #x326)
(rolling-robbers-resolution #x327)
(swamp-flutflut-resolution #x328)
(rolling-race-beat-record #x335)
(sidekick-hint-crate-darkeco-rolling #x336)
(rolling-moles-hint #x337)
(rolling-moles-resolution #x338)
(rolling-plants-hint #x339)
(rolling-plants-hint-eco-green #x33a)
(rolling-plants-hint-eco-green2 #x33b)
(rolling-robbers-hint #x33c)
(rolling-moles-hint-hole #x33d)
(rolling-plants-hint-eco-green3 #x33e)
(rolling-ring-chase-1-hint #x33f)
(rolling-ring-chase-2-hint #x340)
(rolling-ring-chase-fail #x341)
(rolling-ring-grass #x342)
(sunken-pipegame-hint #x343)
(sunken-helix-hint #x344)
(sunken-blue-eco-charger-hint #x345)
(sunken-room-hint #x346)
(sunken-double-lurker-hint #x347)
(sunken-helix-darkeco-hint #x348)
(sunken-helix-darkeco-close #x349)
(sunken-qbert-plat-hint #x34a)
(sunken-bully-dive-hint #x34b)
(sunken-tube-hint #x34c)
(sunken-blue-eco-charger-all-hint #x34d)
(sunken-hotpipes #x34e)
(sunken-water1 #x34f)
(sunken-water2 #x350)
(swamp-tetherrocks-hint #x351)
(swamp-tetherrock-eco-yellow-hint #x352)
(swamp-billy-reminder #x353)
(swamp-flutflut-doublejump #x354)
(swamp-tar #x355)
(swamp-water #x356)
(swamp-kermit-tongue-hint #x357)
(swamp-rat-nest-hint #x358)
(swamp-eco-yellow-first-use #x359)
(swamp-eco-yellow-hint #x35a)
(swamp-swingpole #x35b)
(swamp-bramble #x35c)
(swamp-tether-hint #x35d)
(swamp-kermit-charge-hint #x35e)
(swamp-kermit-flee #x35f)
(swamp-battle-hint #x360)
(swamp-arm-hint #x361)
(swamp-tar-hint #x362)
(swamp-bat-eco-yellow-hint #x363)
(swamp-bat-duck-hint #x364)
(swamp-tetherrocks-3-left #x365)
(swamp-tetherrocks-2-left #x366)
(swamp-tetherrocks-1-left #x367)
(swamp-flutflut-hint #x368)
(swamp-rats-hurt #x369)
(rolling-plants-resolution #x36a)
(swamp-arm-resolution #x36b)
(village2-levitator-need-cells #x36c)
(village2-levitator-find-cells #x36d)
(village2-button-reminder #x36f)
(village2-button-reminder2 #x370)
(village2-button-reminder3 #x371)
(village2-levitator-need-cells-text #x372)
(time #x373)
(record #x374)
(new-record #x375)
(try-again #x376)
(race-aborted #x377)
(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)
(red-eggtop #x407)
(snow-ball #x408)
(cave-gem #x409)
(cave-drilling-lurkers #x40a)
(snow-top #x40b)
(snow-troops #x40c)
(snow-troops2 #x40d)
(cave-robot-climb #x40e)
(cave-dark-climb #x40f)
(cave-gnawers #x410)
(cave-dark-crystals #x411)
(cave-bats #x412)
(village3-buzzer #x413)
(village3-poi-redsage-hut #x414)
(village3-level-name #x415)
(village3-poi-gondola #x416)
(snow-level-name #x417)
(village3-poi-yosemite #x418)
(cave-level-name #x419)
(village3-poi-ogre #x41a)
(lavatube-level-name #x41b)
(gondola-ride? #x41c)
(gondola-yes #x41d)
(gondola-no #x41e)
(snow-ram-boss #x41f)
(snow-lake #x420)
(snow-eggtop #x421)
(snow-birds #x422)
(cave-spider-tunnel #x423)
(cave-platforms #x424)
(cave-swing-poles #x426)
(assistant-lavatube-hint #x427)
(assistant-lavatube-need-cells #x428)
(gondola-need-cells #x429)
(gondola-enough-cells #x42a)
(snow-cage #x42b)
(snow-bumpers #x42c)
(cave-dark-crystals-resolution #x432)
(cave-gnawers-look-around #x433)
(cave-darkeco #x434)
(cave-dark-crystals-reminder #x435)
(cave-gnawers-reminder #x436)
(darkcave-light-end #x437)
(darkcave-light-hint #x438)
(cave-dark-crystals-flee #x439)
(robocave-introduction #x43a)
(cave-spider-egg-hint #x43b)
(darkcave-introduction #x43c)
(cave-spiderweb-hint #x43d)
(cave-spider-hurt #x43e)
(cave-baby-spider-hint #x43f)
(cave-trap-nest-hint #x440)
(cave-spider-egg-spawn #x441)
(cave-spider-nest-flee #x442)
(snow-fort-hint #x443)
(snow-ram-boss-red-eco-hint #x444)
(snow-platform-hint #x445)
(snow-vent-hint #x446)
(snow-eggtop-hint #x447)
(snow-ice-cube-hint #x448)
(snow-button-hint #x449)
(snow-plat-hint #x44a)
(snow-red-eco-hint #x44b)
(snow-eggtop-resolution #x44c)
(snow-cage-resolution #x44d)
(snow-ball-hint #x44e)
(assistant-lavatube-enough-cells #x44f)
(assistant-lavatube-enough-cells2 #x450)
(assistant-lavatube-reminder #x451)
(village3-button-reminder #x452)
(village3-button-reminder2 #x453)
(village3-button-reminder3 #x454)
(assistant-lavatube-need-cells-text #x455)
(firecanyon-end #x500)
(firecanyon-buzzer #x501)
(firecanyon-balloon-hint #x502)
(firecanyon-ramp-hint #x503)
(firecanyon-heat-warning1 #x504)
(firecanyon-steer-hint #x505)
(firecanyon-crate-darkeco1 #x506)
(firecanyon-crate-darkeco2 #x507)
(firecanyon-babak-hint #x508)
(firecanyon-heat-warning2 #x509)
(firecanyon-heat-warning3 #x50a)
(firecanyon-heat-warning4 #x50b)
(firecanyon-level-name #x50c)
(firecanyon-balloon-reminder #x50d)
(firecanyon-balloon-reminder2 #x50e)
(firecanyon-heat-warning5 #x50f)
(firecanyon-balloon-missed #x510)
(firecanyon-heat-warning6 #x511)
(firecanyon-heat-warning7 #x512)
(firecanyon-heat-warning8 #x513)
(firecanyon-heat-warning9 #x514)
(firecanyon-end-resolution #x515)
(firecanyon-buzzer-hint #x516)
(ogre-end #x600)
(ogre-buzzer #x601)
(ogre-poi-ogre #x602)
(ogre-boss #x603)
(ogre-boss-resolution #x604)
(ogre-race-hint #x605)
(ogre-race-introduction #x607)
(ogre-tnt-hint #x608)
(ogre-race-ahead-hint #x609)
(ogre-eco-blue-hint #x60a)
(ogre-tree-hint #x60b)
(ogre-eco-blue-reminder #x60c)
(ogre-tnt-reminder #x60d)
(ogre-hole-hint #x60e)
(ogre-bonk-hint #x60f)
(ogre-flying-lurker-hint #x610)
(ogre-flying-lurker-reminder #x611)
(ogre-flying-lurker-pass #x612)
(ogre-flying-lurker-passed #x613)
(ogre-race-losing #x614)
(ogre-race-winning #x615)
(ogre-race-reminder #x616)
(ogre-jump-hint #x617)
(ogre-race-end-almost #x618)
(ogre-race-end-almost2 #x619)
(ogre-race-end-almost3 #x61a)
(ogre-race-end-almost-losing #x61b)
(ogre-plunger-lurker-resolution #x61c)
(ogre-race-resolution #x61d)
(lavatube-end #x700)
(lavatube-buzzer #x701)
(lavatube-hurry #x702)
(lavatube-hurry-path #x703)
(lavatube-chainmine #x704)
(lavatube-darkecobarrel #x705)
(lavatube-balloon #x706)
(lavatube-heat1 #x707)
(lavatube-heat2 #x708)
(lavatube-eco-blue #x709)
(lavatube-eco-yellow #x70a)
(lavatube-tunnel1 #x70b)
(lavatube-tunnel2 #x70c)
(lavatube-balls #x70d)
(lavatube-balls-almost-dead #x70e)
(lavatube-balls-resolution #x710)
(lavatube-tunnel3 #x711)
(lavatube-end-resolution #x712)
(citadel-buzzer #x800)
(citadel-level-name #x801)
(citadel-sage-blue #x802)
(citadel-sage-red #x803)
(citadel-sage-yellow #x804)
(citadel-sage-green #x805)
(citadel-generator #x806)
(citadel-edge #x807)
(citadel-battle #x808)
(citadel-generator-no-mushroom #x809)
(citadel-button #x80a)
(citadel-robotboss #x80b)
(citadel-plat #x80c)
(citadel-launcher #x80d)
(citadel-battle2 #x80e)
(citadel-sagecage #x80f)
(citadel-hub1 #x810)
(citadel-hub2 #x811)
(citadel-launcher2 #x812)
(citadel-battle-end #x813)
(training-voicebox #x900)
(training-money #x901)
(training-fuel-cell #x902)
(training-buzzer-hint #x903)
(training-buzzer-resolution #x904)
(training-sharkey #x905)
(training-fuel-cell-reminder #x906)
(training-blue-eco-vent #x907)
(training-eco-green #x908)
(training-eco-blue #x909)
(training-eco-reminder #x90a)
(training-precursor-door #x90b)
(training-eco-opened-door #x90c)
(training-progress #x90d)
(training-double-jump #x90e)
(training-spin #x90f)
(training-spin-bad1 #x910)
(training-spin-bad2 #x911)
(training-spin-success #x912)
(training-punch #x914)
(training-punch-bad1 #x914)
(training-punch-bad2 #x915)
(training-punch-success #x916)
(training-ironcrate #x917)
(training-combo #x918)
(training-warp-gate-blocked #x919)
(training-warp-gate-reminder #x91a)
(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)
;; extra IDs for pc port
(camera-options #x1000)
(normal #x1001)
(inverted #x1002)
(camera-controls-first-horz #x1003)
(camera-controls-first-vert #x1004)
(camera-controls-third-horz #x1005)
(camera-controls-third-vert #x1006)
(restore-defaults #x1007)
(auto-save-disabled #x100c)
(disable-auto-save-query #x100d)
(disable-auto-save #x100e)
(misc-options #x100f)
(accessibility-options #x1010)
(money-starburst #x1011)
(ps2-options #x1020)
(ps2-load-speed #x1021)
(ps2-parts #x1022)
(music-fadeout #x1023)
(music-fadein #x1024)
(force-actors #x1025)
(force-background #x1026)
(force-envmap #x1027)
(discord-rpc #x1030)
(display-mode #x1031)
(windowed #x1032)
(borderless #x1033)
(fullscreen #x1034)
(game-resolution #x1035)
(resolution-fmt #x1036)
(ps2-aspect-ratio #x1037)
(ps2-aspect-ratio-msg #x1038)
(aspect-ratio-ps2 #x1039)
(fit-to-screen #x103a)
(vsync #x103b)
(aspect4x3-ps2 #x103c)
(aspect16x9-ps2 #x103d)
(aspect-fmt #x103e)
(subtitle-hint #x103f)
(subtitle-enabled #x1040)
(subtitle-disabled #x1041)
(text-language #x1042)
(display #x1043)
(display-fmt #x1044)
(msaa #x1050)
(x-times-fmt #x1051)
(2-times #x1052)
(4-times #x1053)
(8-times #x1054)
(16-times #x1055)
(frame-rate #x1060)
(60fps #x1061)
(100fps #x1062)
(150fps #x1063)
(lod-bg #x1070)
(lod-fg #x1071)
(lod-highest #x1072)
(lod-high #x1073)
(lod-mid #x1074)
(lod-low #x1075)
(lod-lowest #x1076)
(lod-ps2 #x1077)
(subtitles #x1078)
(hinttitles #x1079)
(subtitles-language #x107a)
(subtitles-speaker #x107b)
(speaker-always #x107c)
(speaker-never #x107d)
(speaker-auto #x107e)
(hint-log #x107f)
(cheats #x1080)
(secrets #x1081)
(select-level #x1082)
(select-flava #x1083)
(finalboss-level-name #x1084)
(credits #x1085)
(locked #x1086)
(ogreboss #x1087)
(fishgame #x1088)
(danger-mus #x1089)
(flava-player-controls #x108a)
(cheat-eco-blue #x1090)
(cheat-eco-red #x1091)
(cheat-eco-green #x1092)
(cheat-eco-yellow #x1093)
(cheat-sidekick-alt #x1094)
(cheat-invinc #x1095)
(cheat-tunes #x1096)
(cheat-sky #x1097)
(cheat-req-100-percent #x1098)
(cheat-req-beat-game #x1099)
(cheat-big-head #x109a)
(cheat-small-head #x109b)
(cheat-big-fist #x109c)
(cheat-big-head-npc #x109d)
(cheat-no-tex #x109e)
(cheat-mirror #x109f)
(cheat-huge-head #x10a0)
(music-player #x10c0)
(scene-player #x10c1)
(play-credits #x10c2)
(scrapbook #x10c3)
(default #x10d0)
(flava-vi1-unused0 #x10d1)
(flava-sage #x10d2)
(flava-sage-hut #x10d3)
(flava-birdlady #x10d4)
(flava-farmer #x10d5)
(flava-assistant #x10d6)
(flava-mayor #x10d7)
(flava-sculptor #x10d8)
(flava-explorer #x10d9)
(flava-dock #x10da)
(flava-jun-temple-exit #x10db)
(flava-jun-lurkerm #x10dc)
(flava-jun-temple-top #x10dd)
(flava-jub-eggtop #x10de)
(flava-jub-plant-boss #x10df)
(flava-bea-sentinel #x10e0)
(flava-bea-cannon #x10e1)
(flava-bea-grotto #x10e2)
(flava-mis-battle #x10e3)
(flava-mis-boat #x10e4)
(flava-mis-unused0 #x10e5)
(flava-racer #x10e6)
(flava-flutflut #x10e7)
(flava-fic-unused0 #x10e8)
(flava-warrior #x10e9)
(flava-geologist #x10ea)
(flava-gambler #x10eb)
(flava-levitator #x10ec)
(flava-swa-game #x10ed)
(flava-swa-launcher #x10ee)
(flava-swa-battle #x10ef)
(flava-rol-gorge #x10f0)
(flava-ogr-middle #x10f1)
(flava-ogr-end #x10f2)
(flava-vi3-mai #x10f3)
(flava-vi3-sno #x10f4)
(flava-vi3-miners #x10f5)
(flava-mai-rob #x10f6)
(flava-mai-rob-top #x10f7)
(flava-mai-mai #x10f8)
(flava-mai-dar #x10f9)
(flava-sno-battle #x10fa)
(flava-sno-cave #x10fb)
(flava-sno-fort #x10fc)
(flava-sno-balls #x10fd)
(flava-lav-middle #x10fe)
(flava-lav-end #x10ff)
(flava-cit-yellowsage #x1100)
(flava-cit-redsage #x1101)
(flava-cit-bluesage #x1102)
(flava-cit-hub #x1103)
(flava-fin-middle #x1104)
(flava-fin-end #x1105)
(flava-credits-middle #x1106)
(flava-credits-end #x1107)
(uk-english #x1110)
(portuguese #x1111)
(br-portuguese #x1112)
(finnish #x1113)
(swedish #x1114)
(danish #x1115)
(norwegian #x1116)
(hungarian #x1117)
(dutch #x1118)
(catalan #x1119)
(icelandic #x111a)
(polish #x111b)
(lithuanian #x111c)
(scene-0 #x1200)
(scene-255 #x12ff)
(hint-0 #x1300)
(hint-511 #x14ff)
(speedrunner-mode #x1500)
(cutscene-skips #x1501)
(checkpoint-select #x1502)
(speedrun-options-heading #x1503)
(speedrun-options-warning #x1504)
(speedrun-reset-current-run #x1505)
(speedrun-new-full-game #x1506)
;; (speedrun-full-game-any #x1507)
;; (speedrun-full-game-100 #x1508)
;; (speedrun-full-game-nolts #x1509)
;; (speedrun-full-game-nofcs #x150a)
;; (speedrun-full-game-orbless #x150b)
;; (speedrun-full-game-all-flies #x150c)
;; (speedrun-full-game-all-orbs #x150d)
(speedrun-new-individual-level #x150e)
(speedrun-il-training #x150f)
(speedrun-il-village1 #x1510)
(speedrun-il-beach #x1511)
(speedrun-il-jungle #x1512)
(speedrun-il-misty #x1513)
(speedrun-il-firecanyon #x1514)
(speedrun-il-village2 #x1515)
(speedrun-il-sunken #x1516)
(speedrun-il-swamp #x1517)
(speedrun-il-rolling #x1518)
(speedrun-il-ogre #x1519)
(speedrun-il-village3 #x151a)
(speedrun-il-snow #x151b)
(speedrun-il-cave #x151c)
(speedrun-il-lavatube #x151d)
(speedrun-il-citadel #x151e)
(speedrun-new-cat-ext #x151f)
(speedrun-new-game-plus #x1520)
(speedrun-hub1-100 #x1521)
(speedrun-hub2-100 #x1522)
(speedrun-hub3-100 #x1523)
(speedrun-all-cutscenes #x1524)
;; input options
(input-options #x1600)
(input-opts-select-controller #x1601)
(input-opts-analog-deadzone #x1602)
(input-opts-ignore-controller-win-focus #x1603)
(input-opts-controller-led-reflect-hp #x1604)
(input-opts-controller-led-reflect-eco #x1605)
(input-opts-mouse-enable-camera #x1606)
(input-opts-mouse-horizontal-sens #x1607)
(input-opts-mouse-vertical-sens #x1608)
(input-opts-mouse-enable-movement #x1609)
(input-opts-binds-controller #x160a)
(input-opts-binds-keyboard #x160b)
(input-opts-binds-mouse #x160c)
(input-opts-controller-opts #x160d)
(input-opts-enable-kb #x160e)
(input-opts-enable-mouse #x160f)
(input-opts-mouse-opts #x1610)
(input-opts-reassign-binds #x1611)
(input-opts-generic-controller #x1612)
(input-opts-auto-hide-cursor #x1613)
(input-opts-binds-unset #x1614)
(input-opts-binds-unknown #x1615)
(progress-no-other-resolution-options #x1616)
(input-opts-controller-led-reflect-heat #x1617)
;; GAME-TEXT-ID ENUM ENDS
)
;; DECOMP BEGINS
;; an individual string.
(deftype game-text (structure)
((id text-id)
(text string)
)
:pack-me
)
;; A table of all strings.
(deftype game-text-info (basic)
((length int32)
(language-id int32)
(group-name string)
(data game-text :inline :dynamic)
)
(:methods
(lookup-text! (_type_ text-id symbol) string)
)
)
;; all text is stored in the COMMON text files (one file per language).
;; in theory, you could have multiple text files that are only loaded when needed, but they didn't do this.
(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))
;; og:preserve-this
;; NOTE - PC PORT difference
;; Partial translations are a thing that we should support. Parts of translating the game are intentionally made
;; difficult for normal translators due to not wanting to make all the strings public (or in the case of subtitles,
;; we straight up didn't have them yet)
;;
;; So to remedy this, we always load the english text as a fallback so that if there is only a partial translation
;; the UX won't be horrible with everything displaying as UNKNOWN.
;;
;; One of the reasons we didn't do this is because it makes it obvious which strings are remaining,
;; but there are better ways to keep track or check if strings are missing.
(#when PC_PORT
(kheap-alloc (define *fallback-text-heap* (new 'global 'kheap)) (* 48 1024)) ;; 48K heap, should be plenty
(define *fallback-text* (the-as game-text-info #f)))
(defun-extern print-game-text string font-context symbol int int float)
;; added
(defun-debug text-id->string ((text text-id))
(enum->string text-id text)
)