Skip to main content

hud-classes-pc​

source

Types​


hud-battle-enemy​

hud-battle-enemy: hudsource
Fields​
type: type
name: basic
mask: process-mask
parent: pointer
brother: pointer
child: pointer
ppointer: pointer
self: process-tree
pool: dead-pool
status: basic
pid: int32
main-thread: cpu-thread
top-thread: thread
entity: entity-actor
state: state
trans-hook: function
post-hook: function
event-hook: function
allocated-length: int32
next-state: state
heap-base: pointer
heap-top: pointer
heap-cur: pointer
stack-frame-top: stack-frame
connection-list: connectable
stack: uint8
value: int32
value2: int32
target-value: int32
last-increment-time: time-frame
last-target-equal-time: time-frame
offset: int32
y-offset: int32
next-y-offset: int32
x-sgn: int32
y-sgn: int32
text-x: int32
text-y: int32
friend: int32
first-init: symbol
increment-on-event: symbol
skip-particle: int32
disable: symbol
force-on-screen: symbol
deactivate-when-hidden: symbol
trigger-time: time-frame
last-hide-time: time-frame
nb-of-icons: int32
icons: hud-icon
max-nb-of-particles: int32
nb-of-particles: int32
particles: hud-particle
want-skel: symbol
want-skel2: symbol
last-battle: handle
battle-entity: entity-actor
battle-max: int32
battle-alive: int32
battle-mode: symbol
last-task: entity-actor
task-entity: entity-actor
task-track: int32
task2-entity: entity-actor
task2-time: time-frame
task2-track: int32
last-level: symbol
ready?: symbol
kicked: symbol
display-mode?: symbol
Methods​
make-enemy-icon(obj: hud-battle-enemy, idx: int, skel-sym: symbol, enemy-ent: entity) => intsource
make a new icon for the hud
kill-icon(obj: hud-battle-enemy, idx: int) => intsource
kill a hud icon
kill-all-icons(obj: hud-battle-enemy) => intsource
kill all hud icons
update-display-status(obj: hud-battle-enemy, skel: symbol, ent: entity, icon-idx: int, trigger-force: symbol) => intsource
logic for displaying or hiding the hud, and drawing the icons.

hud-parts-pc​

hud-parts-pc: structuresource
Fields​
battle-enemy: pointer
parts: pointer

hud-pc​

hud-pc: hudsource
Fields​
type: type
name: basic
mask: process-mask
parent: pointer
brother: pointer
child: pointer
ppointer: pointer
self: process-tree
pool: dead-pool
status: basic
pid: int32
main-thread: cpu-thread
top-thread: thread
entity: entity-actor
state: state
trans-hook: function
post-hook: function
event-hook: function
allocated-length: int32
next-state: state
heap-base: pointer
heap-top: pointer
heap-cur: pointer
stack-frame-top: stack-frame
connection-list: connectable
stack: uint8
value: int32
value2: int32
target-value: int32
last-increment-time: time-frame
last-target-equal-time: time-frame
offset: int32
y-offset: int32
next-y-offset: int32
x-sgn: int32
y-sgn: int32
text-x: int32
text-y: int32
friend: int32
first-init: symbol
increment-on-event: symbol
skip-particle: int32
disable: symbol
force-on-screen: symbol
deactivate-when-hidden: symbol
trigger-time: time-frame
last-hide-time: time-frame
nb-of-icons: int32
icons: hud-icon
max-nb-of-particles: int32
nb-of-particles: int32
particles: hud-particle

Functions​


activate-hud-pc​

activate-hud-pc(tree: process-tree) => intsource
make the pc hud

deactivate-hud-pc​

deactivate-hud-pc() => intsource
kill the pc hud

dma-add-process-drawable-hud-with-hud-lights​

dma-add-process-drawable-hud-with-hud-lights(proc: process-drawable, draw: draw-control, arg2: symbol, buf: dma-buffer) => nonesource

dma-add-process-drawable-hud-with-lights​

dma-add-process-drawable-hud-with-lights(proc: process-drawable, draw: draw-control, arg2: symbol, buf: dma-buffer) => nonesource

Variables​


*hud-parts-pc*​

*hud-parts-pc*: hud-parts-pcsource

*hud-pc-lights*​

*hud-pc-lights*: vu-lightssource

HUD_ICON_COUNT​

HUD_ICON_COUNT: unknownsource

HUD_PART_PC_AMOUNT​

HUD_PART_PC_AMOUNT: unknownsource

pckernel-common​

source

Types​


entity-debug-inspect​

entity-debug-inspect: basicsource
Fields​
type: type
scroll-y: int16
scroll-y-max: int16
entity: entity
show-actor-info: symbol
Methods​
set-entity!(obj: entity-debug-inspect, e: entity) => entitysource
set the entity to inspect
update-pad(obj: entity-debug-inspect, pad-idx: int) => nonesource
respond to pad inputs

Functions​


bcd->dec​

bcd->dec(bcd: uint) => uintsource
Convert a number encoded in BCD to its decimal equivalent

file-stream-read-float​

file-stream-read-float(file: file-stream) => floatsource

file-stream-read-int​

file-stream-read-int(file: file-stream) => intsource

file-stream-read-symbol​

file-stream-read-symbol(file: file-stream) => symbolsource

file-stream-read-word​

file-stream-read-word(file: file-stream) => stringsource

file-stream-seek-past-whitespace​

file-stream-seek-past-whitespace(file: file-stream) => intsource

find-flava-log​

find-flava-log(music: symbol, flava-idx: int) => symbolsource
return #t if the given music's flava is logged into the *pc-settings*, #f otherwise.

find-music-log​

find-music-log(music: symbol) => symbolsource
return #t if the given music is logged into the *pc-settings*, #f otherwise.
print-music-log(out: object) => intsource

Variables​


*collision-mode*​

*collision-mode*: pc-collision-modesource

*collision-renderer*​

*collision-renderer*: symbolsource

*collision-wireframe*​

*collision-wireframe*: symbolsource

*entity-debug-inspect*​

*entity-debug-inspect*: entity-debug-inspectsource

*pc-cheat-temp*​

*pc-cheat-temp*: pointersource

pckernel-h​

source

Types​


pc-bingo-info​

pc-bingo-info: structuresource

pc-cstring-64​

pc-cstring-64: structuresource
Fields​
chars: uint8
last: uint8

pc-game-secrets​

pc-game-secrets: structuresource
Fields​
art: pc-jak1-concept-art
music: pc-music-log-entry
hard-fish-hiscore: int32
hard-rats?: symbol
hard-rats-hiscore: int32
hard-rats-hiwave: int32
hero-mode?: symbol
hud-map?: symbol
hud-counters?: symbol
hud-watch?: symbol
watch-12hr?: symbol

pc-music-log-entry​

pc-music-log-entry: structuresource
Fields​
name: symbol
flava-mask: int32

pc-settings​

pc-settings: basicsource
Fields​
type: type
version: pckernel-version
target-fps: int16
width: int32
height: int32
win-width: int32
win-height: int32
real-width: int32
real-height: int32
lbox-width: int32
lbox-height: int32
dpi-x: float
dpi-y: float
aspect-ratio-auto?: symbol
aspect-ratio: float
aspect-ratio-scale: float
aspect-ratio-reciprocal: float
aspect-custom-x: int
aspect-custom-y: int
display-mode: symbol
letterbox?: symbol
vsync?: symbol
font-scale: float
monitor: int32
os: symbol
user: symbol
debug?: symbol
movie?: symbol
ignore-controller-win-unfocused?: symbol
controller-hp-led?: symbol
controller-eco-led?: symbol
stick-deadzone: float
keyboard-enabled?: symbol
mouse-enabled?: symbol
mouse-camera?: symbol
mouse-xsens: float
mouse-ysens: float
mouse-movement?: symbol
auto-hide-cursor?: symbol
audio-latency-ms: int16
audio-pan-override: float
audio-volume-override: float
audio-channel-nb: int16
gfx-renderer: pc-gfx-renderer
gfx-resolution: float
gfx-anisotropy: float
gfx-msaa: int32
ps2-read-speed?: symbol
ps2-parts?: symbol
ps2-music?: symbol
ps2-se?: symbol
ps2-hints?: symbol
ps2-lod-dist?: symbol
force-envmap?: symbol
shrub-dist-mod: float
lod-dist-mod: float
lod-force-tfrag: int8
lod-force-tie: int8
lod-force-ocean: int8
lod-force-actor: int8
force-actors?: symbol
use-vis?: symbol
hinttitles?: symbol
text-language: pc-subtitle-lang
subtitle-speaker?: symbol
first-camera-h-inverted?: symbol
first-camera-v-inverted?: symbol
third-camera-h-inverted?: symbol
third-camera-v-inverted?: symbol
music-fadeout?: symbol
music-fadein?: symbol
bingo: pc-bingo-info
secrets: pc-game-secrets
scenes-seen: uint8
discord-rpc?: symbol
speedrunner-mode?: symbol
cheats: pc-cheats
cheats-known: pc-cheats
flava-hack: int64
Methods​
set-defaults!(obj: pc-settings) => nonesource
Set default settings for the object that aren't handled by the file reading,
this is intended to be called upon object creation.

This is to avoid propagating events to the runtime informing it needs to make changes on startup
when there really is no changes to be made. ie. changing the window size multiple times when ultimately
the true value is within the file that we are about to read.

TODO - it would probably be a lot cleaner to have one struct for the file, and another for settings that
are manipulated at runtime so there is a clear separation of responsibilities
set-defaults-input!(obj: pc-settings) => nonesource
Set default general input settings
set-defaults-controller!(obj: pc-settings) => nonesource
Set default controller settings
set-defaults-mouse!(obj: pc-settings) => nonesource
Set default mouse settings
update(obj: pc-settings) => nonesource
Update settings to/from PC kernel. Call this at the start of every frame.
This will update things like the aspect-ratio, which will be used for graphics code later.
update-from-os(obj: pc-settings) => nonesource
Update settings from the C kernel to GOAL.
update-to-os(obj: pc-settings) => nonesource
Update settings from GOAL to the C kernel.
update-discord-rpc(obj: pc-settings-jak1) => nonesource
update discord rpc module
update-speedrun(obj: pc-settings-jak1) => nonesource
update speedrun module
update-video-hacks(obj: pc-settings-jak1) => objectsource
update the graphics hacks used for sprites and other things. ugh.
reset(obj: pc-settings) => nonesource
Reset back to default settings
reset-audio(obj: pc-settings) => nonesource
Set the default audio settings
reset-input(obj: pc-settings, device: symbol) => nonesource
Set the default input settings
reset-gfx(obj: pc-settings) => nonesource
Set the default graphics settings
reset-ps2(obj: pc-settings) => nonesource
Set the default ps2 settings
reset-misc(obj: pc-settings) => nonesource
Set the default misc settings
reset-original-camera(obj: pc-settings) => nonesource
Set the original game's camera controls
reset-extra(obj: pc-settings) => nonesource
Set the default goodies settings
print-debug-misc(obj: pc-settings-jak1) => objectsource
prints various miscellaneous debug text to the game console, according to what's enabled in this object.
draw(obj: pc-settings, buf: dma-buffer) => objectsource
debug draw some things on-screen
draw-memory(obj: pc-settings, buf: dma-buffer) => symbolsource
draw the memory heap status in the bottom right corner
set-display-mode!(obj: pc-settings, mode: symbol) => intsource
sets the game's display mode
set-size!(obj: pc-settings, width: int, height: int) => nonesource
sets the size of the display window
set-aspect!(obj: pc-settings, aw: int, ah: int) => nonesource
set the aspect ratio used for rendering. this forces native widescreen and takes width and height ratios.
set-aspect-ratio!(obj: pc-settings, aspect: float) => nonesource
set the aspect ratio used for rendering.
set-frame-rate!(obj: pc-settings, rate: int) => intsource
set the target framerate.
set-monitor!(obj: pc-settings, monitor: int) => nonesource
set the monitor to use when in fullscreen/borderless
set-game-setting!(obj: pc-settings-jak1, setting: symbol, value: symbol) => objectsource
get-game-setting(obj: pc-settings-jak1, setting: symbol) => symbolsource
set-game-language!(obj: pc-settings-jak1, lang: language-enum) => language-enumsource
get-game-language(obj: pc-settings-jak1) => language-enumsource
get-current-game-width(obj: pc-settings) => intsource
return the current width in pixels of the visible portion of the game
get-current-game-height(obj: pc-settings) => intsource
return the current height in pixels of the visible portion of the game
read-from-file(obj: pc-settings, filename: string) => symbolsource
read settings from a file
write-to-file(obj: pc-settings, filename: string) => symbolsource
write settings to a file
handle-input-settings(obj: pc-settings, file: file-stream) => objectsource
handle the text parsing input for the 'settings' group
handle-output-settings(obj: pc-settings, file: file-stream) => objectsource
handle the text writing output for the 'settings' group
update-cheats(obj: pc-settings) => intsource
run cheats.
update-music-log(obj: pc-settings) => intsource
update music log settings.
add-to-music-log(obj: pc-settings, music: symbol, flava: int) => intsource
add music and flava information to the music log.
if music already exists, adds flava. if flava already exists, nothing happens.
commit-to-file(obj: pc-settings) => nonesource
commits the current settings to the file
load-settings(obj: pc-settings) => intsource
load
set-ignore-controller-in-bg!(obj: pc-settings, val: symbol) => nonesource
sets whether or not to ignore controller inputs if the window is in the background
set-enable-keyboard!(obj: pc-settings, val: symbol) => nonesource
sets whether to ignore keyboard input events
update-mouse-controls!(obj: pc-settings) => nonesource
Uses whatever is set on the pc-settings to update the runtime on how it should interpret mouse events

pckernel-version​

pckernel-version: int64source

Variables​


*display-actor-bank*​

*display-actor-bank*: symbolsource

*display-actor-counts*​

*display-actor-counts*: symbolsource

*display-heap-status*​

*display-heap-status*: symbolsource

*display-pad-debug*​

*display-pad-debug*: symbolsource

*display-sha*​

*display-sha*: symbolsource

*display-text-box*​

*display-text-box*: symbolsource

*pc-temp-string-1*​

*pc-temp-string-1*: stringsource

*pc-temp-string*​

*pc-temp-string*: stringsource

ASPECT_16X9​

ASPECT_16X9: unknownsource

ASPECT_16X9_SCALE​

ASPECT_16X9_SCALE: unknownsource

ASPECT_4X3​

ASPECT_4X3: unknownsource

PC_BASE_HEIGHT​

PC_BASE_HEIGHT: unknownsource

PC_BASE_WIDTH​

PC_BASE_WIDTH: unknownsource

PC_CHEAT_MAX​

PC_CHEAT_MAX: unknownsource

PC_KERNEL_INVALID_VERSION​

PC_KERNEL_INVALID_VERSION: unknownsource

PC_KERNEL_VER_BUILD​

PC_KERNEL_VER_BUILD: unknownsource

PC_KERNEL_VER_MAJOR​

PC_KERNEL_VER_MAJOR: unknownsource

PC_KERNEL_VER_MINOR​

PC_KERNEL_VER_MINOR: unknownsource

PC_KERNEL_VER_REVISION​

PC_KERNEL_VER_REVISION: unknownsource

PC_KERNEL_VERSION​

PC_KERNEL_VERSION: unknownsource

PC_MIN_HEIGHT​

PC_MIN_HEIGHT: unknownsource

PC_MIN_WIDTH​

PC_MIN_WIDTH: unknownsource

PC_MUSIC_LOG_LENGTH​

PC_MUSIC_LOG_LENGTH: unknownsource

PC_SPOOL_LOG_LENGTH​

PC_SPOOL_LOG_LENGTH: unknownsource

PC_TEMP_STRING_LEN​

PC_TEMP_STRING_LEN: unknownsource

PC_VOICE_AMOUNT​

PC_VOICE_AMOUNT: unknownsource

PS2_VOICE_AMOUNT​

PS2_VOICE_AMOUNT: unknownsource

pckernel-impl​

source

Types​


discord-info​

discord-info: structuresource
Fields​
fuel: pointer
money-total: pointer
buzzer-total: pointer
deaths: pointer
status: string
level: string
cutscene?: symbol
ogreboss?: symbol
plant-boss?: symbol
racer?: symbol
flutflut?: symbol
time-of-day: pointer

pc-settings-jak1​

pc-settings-jak1: pc-settingssource
Fields​
type: type
version: pckernel-version
target-fps: int16
width: int32
height: int32
win-width: int32
win-height: int32
real-width: int32
real-height: int32
lbox-width: int32
lbox-height: int32
dpi-x: float
dpi-y: float
aspect-ratio-auto?: symbol
aspect-ratio: float
aspect-ratio-scale: float
aspect-ratio-reciprocal: float
aspect-custom-x: int
aspect-custom-y: int
display-mode: symbol
letterbox?: symbol
vsync?: symbol
font-scale: float
monitor: int32
os: symbol
user: symbol
debug?: symbol
movie?: symbol
ignore-controller-win-unfocused?: symbol
controller-hp-led?: symbol
controller-eco-led?: symbol
stick-deadzone: float
keyboard-enabled?: symbol
mouse-enabled?: symbol
mouse-camera?: symbol
mouse-xsens: float
mouse-ysens: float
mouse-movement?: symbol
auto-hide-cursor?: symbol
audio-latency-ms: int16
audio-pan-override: float
audio-volume-override: float
audio-channel-nb: int16
gfx-renderer: pc-gfx-renderer
gfx-resolution: float
gfx-anisotropy: float
gfx-msaa: int32
ps2-read-speed?: symbol
ps2-parts?: symbol
ps2-music?: symbol
ps2-se?: symbol
ps2-hints?: symbol
ps2-lod-dist?: symbol
force-envmap?: symbol
shrub-dist-mod: float
lod-dist-mod: float
lod-force-tfrag: int8
lod-force-tie: int8
lod-force-ocean: int8
lod-force-actor: int8
force-actors?: symbol
use-vis?: symbol
hinttitles?: symbol
text-language: pc-subtitle-lang
subtitle-speaker?: symbol
first-camera-h-inverted?: symbol
first-camera-v-inverted?: symbol
third-camera-h-inverted?: symbol
third-camera-v-inverted?: symbol
music-fadeout?: symbol
music-fadein?: symbol
bingo: pc-bingo-info
secrets: pc-game-secrets
scenes-seen: uint8
discord-rpc?: symbol
speedrunner-mode?: symbol
cheats: pc-cheats
cheats-known: pc-cheats
flava-hack: int64
skip-movies?: symbol
subtitles?: symbol
subtitle-language: pc-subtitle-lang
money-starburst?: symbol
extra-hud?: symbol

Functions​


get-video-params​

get-video-params() => video-parmssource

set-reactive-controller-led!​

set-reactive-controller-led!(current-hp: float, eco-level: float, eco-kind: int) => nonesource

Variables​


*display-bug-report*​

*display-bug-report*: symbolsource

*fallback-text-lookup?*​

*fallback-text-lookup?*: symbolsource

*mood-override-debug*​

*mood-override-debug*: symbolsource

*mood-override-table*​

*mood-override-table*: pointersource

*pc-settings*​

*pc-settings*: pc-settings-jak1source

PC_KERNEL_VERSION​

PC_KERNEL_VERSION: unknownsource

pckernel​

source

Functions​


draw-build-revision​

draw-build-revision() => pointersource

Variables​


*pc-dead-pool*​

*pc-dead-pool*: dead-poolsource

progress-pc​

source

Types​


progress-carousell-state​

progress-carousell-state: structuresource
Fields​
int-backup: int
symbol-backup: symbol
subtitle-backup: pc-subtitle-lang
aspect-native-choice: symbol
current-carousell: array
selection: int
direction: symbol
transition: symbol
x-offset: int32

progress-scroll​

progress-scroll: structuresource
Fields​
transition: float
start-index: int16
real-index: int16
direction: int8
last-screen: progress-screen

Functions​


build-binding-reassignment-options​

build-binding-reassignment-options(screen: progress-screen) => arraysource
Dynamically creates menu options for reassigning bindings for controllers/mice/keyboard

build-controller-options​

build-controller-options() => arraysource
Dynamically creates menu options for selecting your controller.
Will attempt to use the name of the controller, but will fallback to a generic number otherwise

build-flava-player-options​

build-flava-player-options(mus-idx: int) => arraysource

build-monitor-options​

build-monitor-options() => arraysource

build-resolution-options​

build-resolution-options() => intsource

draw-memcard-auto-save-disabled​

draw-memcard-auto-save-disabled(obj: progress, arg0: font-context) => intsource

draw-memcard-disable-auto-save​

draw-memcard-disable-auto-save(obj: progress, arg0: font-context) => intsource

draw-memcard-speedrun-options​

draw-memcard-speedrun-options(obj: progress, arg0: font-context) => intsource

get-language-name​

get-language-name(lang: pc-subtitle-lang) => text-idsource
get the text-id from a lang

init-game-options​

init-game-options(obj: progress) => nonesource
Set the options for all of the menus.
print-string-in-carousell(arg0: text-id, arg1: font-context, arg2: int, arg3: symbol) => font-contextsource

progress-draw-carousell-from-string-list​

progress-draw-carousell-from-string-list(options: array, font: font-context, y-off: int, new-val: int) => font-contextsource
yep.

progress-fast-save-and-start-speedrun​

progress-fast-save-and-start-speedrun(category: speedrun-category) => nonesource
saves to first slot, updates last-slot-saved for cursor, then starts speedrun

Variables​


*accessibility-options*​

*accessibility-options*: arraysource

*analog-bind-names*​

*analog-bind-names*: arraysource

*aspect-ratio-options*​

*aspect-ratio-options*: arraysource

*button-bind-names*​

*button-bind-names*: arraysource

*camera-options*​

*camera-options*: arraysource

*carousell-frame-rate*​

*carousell-frame-rate*: arraysource

*cheats*​

*cheats*: arraysource

*checkpoint-select-options*​

*checkpoint-select-options*: arraysource

*controller-options*​

*controller-options*: arraysource

*game-options-pc*​

*game-options-pc*: arraysource

*gfx-ps2-options*​

*gfx-ps2-options*: arraysource

*graphic-options-no-frame-rate-pc*​

*graphic-options-no-frame-rate-pc*: arraysource

*graphic-options-pc*​

*graphic-options-pc*: arraysource

*input-options*​

*input-options*: arraysource

*main-options-pc*​

*main-options-pc*: arraysource

*main-options-secrets*​

*main-options-secrets*: arraysource

*misc-options*​

*misc-options*: arraysource

*mouse-options*​

*mouse-options*: arraysource

*music-flava-name-list*​

*music-flava-name-list*: arraysource

*music-list*​

*music-list*: pairsource

*music-player-options*​

*music-player-options*: arraysource

*progress-carousell*​

*progress-carousell*: progress-carousell-statesource

*progress-music*​

*progress-music*: intsource

*progress-pad-timeout*​

*progress-pad-timeout*: time-framesource

*progress-scroll-end*​

*progress-scroll-end*: unknownsource

*progress-scroll-start*​

*progress-scroll-start*: unknownsource

*progress-scroll*​

*progress-scroll*: progress-scrollsource

*quit-to-title*​

*quit-to-title*: symbolsource

*reassign-binds-options*​

*reassign-binds-options*: arraysource

*secrets-title*​

*secrets-title*: arraysource

*secrets*​

*secrets*: arraysource

*sound-options-pc*​

*sound-options-pc*: arraysource

*speedrun-cat-ext-options*​

*speedrun-cat-ext-options*: arraysource

*speedrun-il-options*​

*speedrun-il-options*: arraysource

*speedrun-options*​

*speedrun-options*: arraysource

*subtitle-languages*​

*subtitle-languages*: arraysource

*temp-options*​

*temp-options*: arraysource

*text-languages*​

*text-languages*: arraysource

*title-pc*​

*title-pc*: arraysource

GAME_MIN_RES_MULT​

GAME_MIN_RES_MULT: unknownsource

PROGRESS_PC_PAGE_HEIGHT​

PROGRESS_PC_PAGE_HEIGHT: unknownsource

PROGRESS_SCROLL_DIR_DOWN​

PROGRESS_SCROLL_DIR_DOWN: unknownsource

PROGRESS_SCROLL_DIR_UP​

PROGRESS_SCROLL_DIR_UP: unknownsource

subtitle​

source

Types​


subtitle​

subtitle: processsource
Fields​
type: type
name: basic
mask: process-mask
parent: pointer
brother: pointer
child: pointer
ppointer: pointer
self: process-tree
pool: dead-pool
status: basic
pid: int32
main-thread: cpu-thread
top-thread: thread
entity: entity-actor
state: state
trans-hook: function
post-hook: function
event-hook: function
allocated-length: int32
next-state: state
heap-base: pointer
heap-top: pointer
heap-cur: pointer
stack-frame-top: stack-frame
connection-list: connectable
stack: uint8
font: font-context
bank-backup: subtitle-bank
state-time: time-frame
notice-id: text-id
spool-name: string
old-spool-name: string
text-id: text-id
cur-channel: pc-subtitle-channel
debug-lines?: symbol
checking-lines?: symbol
current-debug-scene: int16
current-debug-line: int16
want-subtitle: subtitle-keyframe
hint-subtitle?: symbol
Methods​
subtitle-format(obj: subtitle, keyframe: subtitle-keyframe) => stringsource
check settings and format subtitle accordingly.
States​
subtitle-debug: TODO
subtitle-debug-checking-lines: TODO

subtitle-bank​

subtitle-bank: structuresource
Fields​
scale: float
width: float
height: float
lines: float
notice-height: float
hint-height: float

subtitle-keyframe​

subtitle-keyframe: structuresource
Fields​
frame: int32
string: string
speaker: string
flags: pc-subtitle-flags

subtitle-text​

subtitle-text: structuresource
Fields​
kind: pc-subtitle-channel
length: int16
keyframes: inline-array
name: string
id: text-id
hash: uint64

subtitle-text-info​

subtitle-text-info: basicsource
Fields​
type: type
length: int32
lang: pc-subtitle-lang
dummy: int32
data: subtitle-text
Methods​
get-scene-by-name(obj: subtitle-text-info, kind: pc-subtitle-channel, name: string) => subtitle-textsource
get a subtitle scene info with the corresponding name. #f = none found
get-scene-by-text-id(obj: subtitle-text-info, kind: pc-subtitle-channel, id: text-id) => subtitle-textsource
get a subtitle scene info with the corresponding name. #f = none found

Functions​


draw-subtitle​

draw-subtitle() => nonesource

load-level-subtitle-files​

load-level-subtitle-files(idx: int) => nonesource
Load the subtitle files needed for level idx.
This function made more sense back when text files were split up, but in the end they put everything
in a single text group and file.

load-subtitle-text-info​

load-subtitle-text-info(txt-name: string, curr-text: symbol, heap: kheap) => intsource
load a subtitles text file onto a heap.
txt-name = language-agnostic file name
curr-text = a symbol to a subtitle-text-info to link the file to
heap = the text heap to load the file onto
print-game-subtitle(str: string, font-ctxt: font-context, opaque: symbol, alpha: int, line-height: int) => floatsource
Print text. Not worth commenting until we get stack variables in lets, I think

setup-subtitle-font​

setup-subtitle-font() => font-contextsource

subtitle-init-by-other​

subtitle-init-by-other() => objectsource

subtitle-start​

subtitle-start() => pointersource
start the subtitle process

subtitle-stop​

subtitle-stop() => pointersource
kill the subtitle process

subtitle-str-adjust​

subtitle-str-adjust(pos: int) => intsource

subtitle?​

subtitle?(hinttitles?: symbol) => symbolsource
can a subtitle be displayed right now?

Variables​


*SUBTITLE-bank*​

*SUBTITLE-bank*: subtitle-banksource

*subtitle-text-heap*​

*subtitle-text-heap*: kheapsource

*subtitle-text*​

*subtitle-text*: subtitle-text-infosource

*subtitle*​

*subtitle*: pointersource

PC_SUB_DBG_CHECK_GROUP_SIZE​

PC_SUB_DBG_CHECK_GROUP_SIZE: unknownsource

PC_SUB_DBG_Y​

PC_SUB_DBG_Y: unknownsource

PC_SUBTITLE_DEBUG​

PC_SUBTITLE_DEBUG: unknownsource

PC_SUBTITLE_FILE_NAME​

PC_SUBTITLE_FILE_NAME: unknownsource

PC_SUBTITLE_FILE_SIZE​

PC_SUBTITLE_FILE_SIZE: unknownsource

SUBTITLE_CHANNEL_COUNT​

SUBTITLE_CHANNEL_COUNT: unknownsource