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