Skip to main content
Expand description

the bsp-node class seems broken - it has int16's that get used a pointers.

Types​


bsp-header​

bsp-header: drawablesource
Fields​
type: type
id: int16
bsphere: vector
info: file-info
all-visible-list: pointer
visible-list-length: int16
extra-vis-list-length: int16
drawable-trees: drawable-tree-array
pat: pointer
pat-length: int32
texture-remap-table: pointer
texture-remap-table-len: int32
texture-ids: pointer
texture-page-count: int32
unknown-basic: basic
name: symbol
nickname: symbol
vis-info: level-vis-info
actors: drawable-inline-array-actor
cameras: array
nodes: inline-array
level: level
current-leaf-idx: uint16
texture-flags: texture-page-flag
cam-outside-bsp: uint8
cam-using-back: uint8
cam-box-idx: uint16
ambients: symbol
subdivide-close: float
subdivide-far: float
race-meshes: array
actor-birth-order: pointer
light-hash: light-hash
nav-meshes: array
actor-groups: array
region-trees: array
region-array: region-array
collide-hash: collide-hash
wind-array-length: int32
city-level-info: city-level-info
vis-spheres: vector-array
region-tree: drawable-tree-region-prim
tfrag-masks: texture-masks-array
tfrag-closest: pointer
tfrag-mask-count: uint32
shrub-masks: texture-masks-array
shrub-closest: pointer
shrub-mask-count: uint32
alpha-masks: texture-masks-array
alpha-closest: pointer
alpha-mask-count: uint32
water-masks: texture-masks-array
water-closest: pointer
water-mask-count: uint32
bsp-scale: vector
bsp-offset: vector
unk-data: uint32
end: uint8
Methods​
birth(obj: bsp-header) => nonesource
deactivate-entities(obj: bsp-header) => nonesource

bsp-node​

bsp-node: structuresource
Fields​
front: int16
back: int16
front-box-min: vector4b
front-box-max: vector4b
back-box-min: vector4b
back-box-max: vector4b

collide-stats​

collide-stats: structuresource
Fields​
calls: uint32
spheres: uint32
nodes: uint32
frags: uint32
tris: uint32
output: uint32
pad0: uint32
total-target: uint32
target-cache-fill: uint32
target-ray-poly: uint32

game-level​

game-level: basicsource
Fields​
type: type
master-bsp: basic

view-frustum​

view-frustum: structuresource
Fields​
hither-top-left: vector
hither-top-right: vector
hither-bottom-left: vector
hither-bottom-right: vector
yon-top-left: vector
yon-top-right: vector
yon-bottom-left: vector
yon-bottom-right: vector

Functions​


inspect-bsp-tree​

inspect-bsp-tree(arg0: bsp-header, arg1: bsp-node) => nonesource

map-bsp-tree​

map-bsp-tree(arg0: function, arg1: bsp-header, arg2: bsp-node) => nonesource
Expand description

The "bsp" is the main level data structure: the bsp-header contains references to all static level data.

The "bsp-tree" is a bsp used to associate camera positions with lists of visibible objects.

Functions​


bsp-camera-asm​

bsp-camera-asm(arg0: bsp-header, arg1: vector) => nonesource

Determine which leaf node of the bsp we are in, and store this in the bsp-header.

build-masks​

build-masks(arg0: bsp-header) => nonesource

Allocate texture masks as needed for a level.

level-remap-texture​

level-remap-texture(arg0: texture-id) => texture-idsource

Remap a texture id.

mem-usage-bsp-tree​

mem-usage-bsp-tree(arg0: bsp-header, arg1: bsp-node, arg2: memory-usage-block, arg3: int) => nonesource

Compute the memory usage of the bsp-tree part of a bsp-header

print-collide-stats() => nonesource

Display collide stats on screen.

Variables​


*test-shrub*​

*test-shrub*: intsource

level-h​

source

Types​


level​

level: basicsource
Fields​
type: type
name: symbol
load-name: string
nickname: string
index: int32
status: symbol
borrow-level: level
borrow-from-level: level
heap: kheap
borrow-heap: kheap
bsp: bsp-header
art-group: load-dir-art-group
info: level-load-info
texture-page: texture-page
loaded-texture-page: texture-page
loaded-texture-page-count: int32
entity: entity-links-array
closest-object: float
closest-object-array: float
upload-size: int32
inside-boxes: symbol
display?: symbol
render?: symbol
meta-inside?: symbol
force-inside?: symbol
mood-context: mood-context
mood-func: function
mood-init: function
vis-bits: pointer
all-visible?: symbol
force-all-visible?: symbol
linking: symbol
vis-info: level-vis-info
vis-self-index: int32
vis-adj-index: int32
vis-buffer: uint8
mem-usage-block: memory-usage-block
mem-usage: int32
code-memory-start: pointer
code-memory-end: pointer
load-start-time: time-frame
load-stop-time: time-frame
load-buffer: uint32
load-buffer-size: uint32
load-buffer-last: uint32
load-buffer-mode: load-buffer-mode
display-start-time: time-frame
memory-mask: uint32
task-mask: task-mask
tfrag-gs-test: gs-test
texture-dirty-masks: texture-mask
texture-mask: texture-mask
sky-mask: texture-mask
tfrag-masks: texture-masks-array
tfrag-dists: pointer
shrub-masks: texture-masks-array
shrub-dists: pointer
alpha-masks: texture-masks-array
alpha-dists: pointer
water-masks: texture-masks-array
water-dists: pointer
tfrag-last-calls: int32
tfrag-last-calls-u32: uint32
texture-anim-array: texture-anim-array
light-hash: light-hash
draw-priority: float
draw-index: int32
part-engine: engine
user-object: basic
loaded-text-info-count: int32
loaded-text-info: game-text-info
level-type: type
load-order: int64
pad: int8
Methods​
deactivate(obj: level) => _type_source

Take a level out of active/alive

is-object-visible?(obj: level, arg0: int) => symbolsource

Is drawable arg0 visible? Note that this will return #f if the visibility data is not loaded.

level-method-11: unknown
unload!(obj: level) => _type_source

Unload a level.

bsp-name(obj: level) => symbolsource

Get the name of the bsp. If this can't be done, get the name of the level.

compute-memory-usage!(obj: level, force?: symbol) => memory-usage-blocksource

Calculates the memory usage of the level, returns and stores the [[memory-usage-block]]
in mem-usage-block as well as the total size in mem-usage

@see memory-usage-block::10

inside-boxes-check(obj: level, arg0: vector) => symbolsource

NOTE: this function used to check if we were in boxes - here it just checks
a flag. However, it is still used to set the inside-boxes field, so it keeps
the name we gave it in Jak 1.

The jak 2 behavior is that any loaded level (with a bsp) is considered 'in-boxes'
except for if the require-force-inside flag is set in the bsp-header, in which case
it requires the level to be marked as force-inside?

update-vis!(obj: level, vis-info: level-vis-info, unused: uint, in-bsp-vis-string: pointer) => symbolsource
load-continue(obj: level) => _type_source

Run the loading/login state machine.
This will only make progress on loading, linking, and login for loads that have already started.
No 'scary' state transitions (like birth, alive, deactivate) are made here.

load-begin(obj: level) => _type_source

Begin loading a level.
This assigns memory to a level and is somewhat confusing.

login-begin(obj: level) => _type_source

Begin login of a level after linking.
The login is spread over multiple frames.

debug-print-region-splitbox(obj: level, arg0: vector, arg1: object) => nonesource

Display debug info about the regions of a level.

get-art-group-by-name(obj: level, arg0: string) => art-groupsource

As the name implies, look through the art-groups of this level and get the one
with the given name. Return #f if not found.

level-method-22(obj: level, arg0: symbol) => intsource
lookup-text(obj: level, arg0: text-id, arg1: symbol) => stringsource
level-method-24: unknown
birth(obj: level) => _type_source

Start running code for a level that has been loaded.

level-status-update!(obj: level, arg0: symbol) => _type_source

Try to update the level to the given status, calling whatever is needed
to make it happen.
This can do both loading, linking, login, and activation.
This is somewhat similar to level-get-for-use, but requires that you already have
the level object.
This function is the way to transition from loaded to alive/active.

load-required-packages(obj: level) => _type_source

Load packages for a level.
This just loads common, and this feature is not really useful.
Packages were only used during development, and seem only partially used in Jak 2
(the only package is common).

init-vis-from-bsp(obj: level) => nonesource

Set up a level's vis-infos from a bsp.

vis-clear(obj: level) => nonesource

Completely invalide all visibility data, vis-info, and set all-visible? to loading.

level-group​

level-group: basicsource
Fields​
type: type
length: int32
log-in-level-bsp: bsp-header
loading-level: level
entity-link: entity-links
border?: symbol
vis?: symbol
want-level: basic
receiving-level: basic
load-commands: pair
play?: symbol
target-pos: vector
camera-pos: vector
heap: kheap
sound-bank: basic
disk-load-timing?: symbol
load-level: basic
load-size: uint32
load-time: float
load-login-time: float
draw-level-count: int32
draw-level: level
draw-index-map: uint8
load-order: uint64
pad: uint8
level: level
level0: level
level1: level
level2: level
level3: level
level4: level
level5: level
default-level: level
pad2: uint8
Methods​
level-get(obj: level-group, arg0: symbol) => levelsource

Get a level by name or load-name

level-get-with-status(obj: level-group, arg0: symbol) => levelsource

Get a level with the given status.

get-level-by-heap-ptr-and-status(obj: level-group, arg0: pointer, arg1: symbol) => levelsource

Get a level by a heap pointer and status.
If no matching level is found, return #f.
The purpose of the status check is possibly to prevent bugs with getting stuff
from a level that's just been replaced with another.

level-get-for-use(obj: level-group, arg0: symbol, arg1: symbol) => levelsource

Request a level by name in the given state.
Will return quickly (non-blocking) and might not be able to get a level in the desired state,
though it will ofborrow do some small amount of work to make progress on loading.

This is the most general/powerful function like this: if there is no level with this name
it will kick out levels as needed to make a free slot, and set up a new level, and start
the load. This should only be used when you might want to start a load.

activate-levels!(obj: level-group) => intsource

Set all levels to active.

debug-print-entities(obj: level-group, arg0: symbol, arg1: type) => nonesource
debug-draw-actors(obj: level-group, arg0: symbol) => nonesource
assign-draw-indices(obj: level-group) => nonesource

Sort the levels by draw priority.

actors-update(obj: level-group) => nonesource
update-nav-meshes-method(obj: level-group) => nonesource

Clashes with a function name

level-update(obj: level-group) => nonesource
level-get-target-inside(obj: level-group) => levelsource

Get the level that target is 'in'. With a bunch of tricks for what 'in' really means.

alloc-levels-if-needed(obj: level-group, arg0: symbol) => nonesource

Setup for playing levels by loading the required base packages (art, common)
and allocating the level heap.

load-commands-set!(obj: level-group, arg0: pair) => nonesource

Set the load-commands of a level.

art-group-get-by-name(obj: level-group, arg0: string, arg1: pointer) => art-groupsource

Search all levels for an art-group. Return the art group, or #f. Optionally return the level index.

alt-load-command-get-index(obj: level-group, arg0: symbol, arg1: int) => pairsource

Get the n-th alt-load-command for the given level.
This is likely unused in jak 2 because no levels have alt-load-commands.

update-vis-volumes(obj: level-group) => nonesource
update-vis-volumes-from-nav-mesh(obj: level-group) => nonesource
print-volume-sizes(obj: level-group) => nonesource
level-status(obj: level-group, arg0: symbol) => symbolsource

Get the status of a level by name, return #f if no level is found.

load-in-progress?(obj: level-group) => symbolsource

Is a level being loaded right now?

level-get-most-disposable(obj: level-group) => levelsource

Get the level that's least useful.

level-load-info​

level-load-info: basicsource
Fields​
type: type
name-list: symbol
index: int16
task-level: uint8
name: symbol
visname: symbol
nickname: symbol
dbname: symbol
taskname: symbol
other-name-1: symbol
packages: pair
memory-mode: load-buffer-mode
music-bank: symbol
ambient-sounds: symbol
sound-reverb: float
mood-func: symbol
mood-init: symbol
ocean: symbol
sky: symbol
use-camera-other: symbol
part-engine-max: int32
city-map-bits: uint64
continues: pair
tasks: pair
priority: int32
load-commands: pair
alt-load-commands: pair
bsp-mask: uint64
buzzer: int32
buttom-height: meters
run-packages: pair
prev-level: symbol
next-level: symbol
wait-for-load: symbol
login-func: symbol
activate-func: symbol
deactivate-func: symbol
kill-func: symbol
borrow-size: uint16
borrow-level: symbol
borrow-display?: symbol
base-task-mask: task-mask
texture-anim: symbol
texture-anim-tfrag: symbol
texture-anim-pris: symbol
texture-anim-shrub: symbol
texture-anim-alpha: symbol
texture-anim-water: symbol
texture-anim-twarp: symbol
texture-anim-pris2: symbol
texture-anim-sprite: symbol
texture-anim-map: symbol
texture-anim-sky: symbol
draw-priority: float
level-flags: uint32
fog-height: float
bigmap-id: bigmap-id
ocean-near-translucent?: symbol
ocean-far?: symbol
mood-range: mood-range
max-rain: float
fog-mult: float
ocean-alpha: float
extra-sound-bank: pair

level-vis-info​

level-vis-info: basicsource
Fields​
type: type
level: level
from-level: level
from-bsp: bsp-header
flags: vis-info-flag
length: uint32
allocated-length: uint32
dictionary-length: uint32
dictionary: uint32
string-block: uint32
ramdisk: uint32
vis-bits: uint32
current-vis-string: uint32
vis-string: uint32

login-state​

login-state: basicsource
Fields​
type: type
state: int32
pos: uint32
elts: uint32
elt: drawable

Variables​


LEVEL_MAX​

LEVEL_MAX: unknownsource

LEVEL_TOTAL​

LEVEL_TOTAL: unknownsource

level-info​

source

Functions​


city-start​

city-start() => nonesource

Variables​


*level-load-list*​

*level-load-list*: pairsource

*task-level*​

*task-level*: arraysource

atoll​

const atoll: level-load-infosource

atollext​

atollext: level-load-infosource

casboss​

const casboss: level-load-infosource

cascity​

const cascity: level-load-infosource

casext​

casext: level-load-infosource

caspad​

caspad: level-load-infosource

castle​

const castle: level-load-infosource

chartest​

const chartest: level-load-infosource

consite​

consite: level-load-infosource

consiteb​

const consiteb: level-load-infosource

ctyasha​

ctyasha: level-load-infosource

ctyfarma​

ctyfarma: level-load-infosource

ctyfarmb​

const ctyfarmb: level-load-infosource

ctyfence​

const ctyfence: level-load-infosource

ctygena​

const ctygena: level-load-infosource

ctygenb​

const ctygenb: level-load-infosource

ctygenc​

const ctygenc: level-load-infosource

ctyinda​

const ctyinda: level-load-infosource

ctyindb​

const ctyindb: level-load-infosource

ctykora​

const ctykora: level-load-infosource

ctymarka​

const ctymarka: level-load-infosource

ctymarkb​

const ctymarkb: level-load-infosource

ctypal​

ctypal: level-load-infosource

ctyport​

const ctyport: level-load-infosource

ctysluma​

const ctysluma: level-load-infosource

ctyslumb​

const ctyslumb: level-load-infosource

ctyslumc​

const ctyslumc: level-load-infosource

ctywide​

const ctywide: level-load-infosource

default-level​

default-level: level-load-infosource

demo​

const demo: level-load-infosource

dig1​

const dig1: level-load-infosource

dig3a​

const dig3a: level-load-infosource

dig3b​

const dig3b: level-load-infosource

dptest​

dptest: level-load-infosource

drill​

const drill: level-load-infosource

drillb​

const drillb: level-load-infosource

drillmid​

const drillmid: level-load-infosource

drillmtn​

const drillmtn: level-load-infosource

fordumpa​

const fordumpa: level-load-infosource

fordumpb​

const fordumpb: level-load-infosource

fordumpc​

const fordumpc: level-load-infosource

fordumpd​

const fordumpd: level-load-infosource

forest​

const forest: level-load-infosource

forestb​

const forestb: level-load-infosource

forexita​

const forexita: level-load-infosource

forexitb​

const forexitb: level-load-infosource

forresca​

const forresca: level-load-infosource

forrescb​

const forrescb: level-load-infosource

garage​

const garage: level-load-infosource

gungame​

const gungame: level-load-infosource

halfpipe​

const halfpipe: level-load-infosource

hideout​

const hideout: level-load-infosource

hiphog​

const hiphog: level-load-infosource

intro​

intro: level-load-infosource

introcst​

const introcst: level-load-infosource

island1​

island1: level-load-infosource

kiosk​

kiosk: level-load-infosource

lashgrd​

lashgrd: level-load-infosource

lashthrn​

lashthrn: level-load-infosource

lbbush​

lbbush: level-load-infosource

lbombbot​

lbombbot: level-load-infosource

lbrnermk​

lbrnermk: level-load-infosource

lcguard​

lcguard: level-load-infosource

lcitylow​

lcitylow: level-load-infosource

ldjakbrn​

ldjakbrn: level-load-infosource

lerbrngd​

lerbrngd: level-load-infosource

lerlchal​

lerlchal: level-load-infosource

lerltess​

lerltess: level-load-infosource

lerrol​

const lerrol: level-load-infosource

lgarcsta​

lgarcsta: level-load-infosource

lguard​

lguard: level-load-infosource

lhelldog​

lhelldog: level-load-infosource

lhipout​

lhipout: level-load-infosource

lintcstb​

lintcstb: level-load-infosource

ljakdax​

const ljakdax: level-load-infosource

ljkdxash​

const ljkdxash: level-load-infosource

lkeirift​

const lkeirift: level-load-infosource

lkiddoge​

const lkiddoge: level-load-infosource

lmeetbrt​

const lmeetbrt: level-load-infosource

loutcstb​

const loutcstb: level-load-infosource

lpackage​

const lpackage: level-load-infosource

lportrun​

const lportrun: level-load-infosource

lpower​

const lpower: level-load-infosource

lprotect​

const lprotect: level-load-infosource

lprsncst​

const lprsncst: level-load-infosource

lprtrace​

const lprtrace: level-load-infosource

lracebb​

const lracebb: level-load-infosource

lracebf​

const lracebf: level-load-infosource

lracecb​

const lracecb: level-load-infosource

lracecf​

const lracecf: level-load-infosource

lracedb​

const lracedb: level-load-infosource

lracedf​

const lracedf: level-load-infosource

lracelit​

const lracelit: level-load-infosource

lsack​

const lsack: level-load-infosource

lsamergd​

const lsamergd: level-load-infosource

lshuttle​

const lshuttle: level-load-infosource

lsmysbrt​

const lsmysbrt: level-load-infosource

ltentob​

ltentob: level-load-infosource

ltentout​

ltentout: level-load-infosource

ltess​

const ltess: level-load-infosource

lthrnout​

const lthrnout: level-load-infosource

ltrnkrkd​

const ltrnkrkd: level-load-infosource

ltrntess​

const ltrntess: level-load-infosource

ltrnysam​

const ltrnysam: level-load-infosource

lwhack​

lwhack: level-load-infosource

lwidea​

const lwidea: level-load-infosource

lwideb​

const lwideb: level-load-infosource

lwidec​

const lwidec: level-load-infosource

lwidesta​

const lwidesta: level-load-infosource

lysamsam​

const lysamsam: level-load-infosource

lyskdcd​

const lyskdcd: level-load-infosource

mincan​

const mincan: level-load-infosource

mountain​

const mountain: level-load-infosource

mtnext​

const mtnext: level-load-infosource

nest​

const nest: level-load-infosource

nestb​

const nestb: level-load-infosource

onintent​

const onintent: level-load-infosource

oracle​

oracle: level-load-infosource

outrocst​

const outrocst: level-load-infosource

palboss​

const palboss: level-load-infosource

palcab​

const palcab: level-load-infosource

palent​

const palent: level-load-infosource

palout​

const palout: level-load-infosource

palroof​

const palroof: level-load-infosource

palshaft​

const palshaft: level-load-infosource

portwall​

const portwall: level-load-infosource

prison​

const prison: level-load-infosource

ruins​

const ruins: level-load-infosource

sagehut​

sagehut: level-load-infosource

sewer​

const sewer: level-load-infosource

sewerb​

const sewerb: level-load-infosource

sewesc​

const sewesc: level-load-infosource

sewescb​

const sewescb: level-load-infosource

skatea​

skatea: level-load-infosource

skatepark​

const skatepark: level-load-infosource

stadblmp​

const stadblmp: level-load-infosource

stadium​

const stadium: level-load-infosource

stadiumb​

const stadiumb: level-load-infosource

stadiumc​

const stadiumc: level-load-infosource

stadiumd​

const stadiumd: level-load-infosource

strip​

const strip: level-load-infosource

throne​

throne: level-load-infosource

title​

title: level-load-infosource

tobytest​

const tobytest: level-load-infosource

tomba​

const tomba: level-load-infosource

tombb​

const tombb: level-load-infosource

tombboss​

const tombboss: level-load-infosource

tombc​

const tombc: level-load-infosource

tombd​

const tombd: level-load-infosource

tombe​

const tombe: level-load-infosource

tombext​

const tombext: level-load-infosource

under​

const under: level-load-infosource

underb​

underb: level-load-infosource

village1​

const village1: level-load-infosource

vinroom​

vinroom: level-load-infosource

vistest​

const vistest: level-load-infosource

woodstest​

woodstest: level-load-infosource
Expand description

the level heap is a giant block of memory which is seperated into "pages" so that it can easily

be split into different sizes for the different kinds of level sizes.



it is split into 6 sections, 24-24-25-25-24-24 pages large.

this means the "center" portion of the main level heap is actually "larger"



which is why there is a special small-center level memory mode for two-section

levels that want to be placed in the middle of the heap for that slight size boost.



some code checks for 7 bits in the memory mask, indicating the heap was originally split

into 7 sections, which might explain the weird sizes in the center.

Functions​


add-bsp-drawable​

add-bsp-drawable(arg0: bsp-header, arg1: level, arg2: symbol, arg3: display-frame) => nonesource

Draw this bsp!
Calling draw on a bsp mostly just adds stuff to background-work, so maybe that's why
it's called 'add'. This also will do a debug-draw on the entire bsp if the
display-strip-lines option is set.

bg​

bg(arg0: symbol) => nonesource

Begin playing a level. Works with or without dproc running (won't start it).

give-all-stuff​

give-all-stuff() => game-featuresource

level-update-after-load​

level-update-after-load(lev: level, lstate: login-state) => levelsource

Make progress on login.
Will set status to loaded when done.

load-buffer-resize​

load-buffer-resize(arg0: level, arg1: dgo-header) => nonesource

Adjust the load buffers size and location.
The dgo-header passed in should be the load buffer we're about to use.

lookup-level-info​

lookup-level-info(arg0: symbol) => level-load-infosource

Get level-load-info for the specified level.
The level-load-info for all levels is always available to the engine and is used
to figure out how to load levels.

play​

play(arg0: symbol, arg1: symbol) => intsource

Set up the game engine for playing.

play-boot​

play-boot() => nonesource

Entry point from C to initialize game for running.
This simply calls (play #t #t) in a GOAL thread.

remap-level-name​

remap-level-name(arg0: level-load-info) => symbolsource

Get the name of a level to use. Picks the visname if the vis? setting is on.

show-level​

show-level(arg0: symbol) => intsource

update-sound-banks​

update-sound-banks() => intsource

Load sound banks as needed.

Variables​


*login-state*​

*login-state*: login-statesource
*print-login*: symbolsource

BORROW_MULT​

const BORROW_MULT: unknownsource

DEBUG_LEVEL_HEAP_MULT​

DEBUG_LEVEL_HEAP_MULT: unknownsource

DEBUG_LEVEL_HEAP_SIZE​

DEBUG_LEVEL_HEAP_SIZE: unknownsource

DEBUG_LEVEL_PAGE_SIZE​

DEBUG_LEVEL_PAGE_SIZE: unknownsource

LEVEL_HEAP_SIZE​

LEVEL_HEAP_SIZE: unknownsource

LEVEL_PAGE_SIZE​

LEVEL_PAGE_SIZE: unknownsource

LEVEL_PAGE_SIZE_KB​

LEVEL_PAGE_SIZE_KB: unknownsource

NUM_LEVEL_PAGES​

NUM_LEVEL_PAGES: unknownsource

region-h​

source

Types​


drawable-inline-array-region-prim​

drawable-inline-array-region-prim: drawable-inline-arraysource
Fields​
type: type
id: int16
bsphere: vector
length: int16
data: drawable-region-prim
pad: uint8

drawable-region-face​

drawable-region-face: drawable-region-primsource
Fields​
type: type
id: int16
bsphere: vector
region: region
data: region-face-data

drawable-region-prim​

drawable-region-prim: drawablesource
Fields​
type: type
id: int16
bsphere: vector
region: region
Methods​
debug-draw-region(obj: drawable-region-prim, arg0: int) => nonesource
track-region(obj: drawable-region-prim, arg0: region-prim-area) => symbolsource

TODO

within-area?(obj: drawable-region-prim, arg0: region-prim-area) => symbolsource

drawable-region-sphere​

drawable-region-sphere: drawable-region-primsource
Fields​
type: type
id: int16
bsphere: vector
region: region

drawable-region-volume​

drawable-region-volume: drawable-region-primsource
Fields​
type: type
id: int16
bsphere: vector
region: region
faces: region-face-array

drawable-tree-region-prim​

drawable-tree-region-prim: drawable-treesource
Fields​
type: type
id: int16
bsphere: vector
length: int16
data: drawable
name: basic
data2: drawable-inline-array
Methods​
drawable-tree-region-prim-method-17(obj: drawable-tree-region-prim, arg0: vector) => symbolsource
debug-print(obj: drawable-tree-region-prim, arg0: vector, arg1: object) => nonesource

region​

region: structuresource
Fields​
id: uint32
on-enter: pair
on-inside: pair
on-exit: pair
Methods​
region-method-9(obj: region, arg0: vector) => symbolsource

region-array​

region-array: inline-array-classsource
Fields​
type: type
length: int32
allocated-length: int32
_data: uint8
data: region

region-face-array​

region-face-array: inline-array-classsource
Fields​
type: type
length: int32
allocated-length: int32
_data: uint8
data: region-face-data

region-face-data​

region-face-data: structuresource
Fields​
normal: vector
normal-offset: float
num-points: uint32
points: vector

region-prim-list​

region-prim-list: structuresource
Fields​
num-items: int32
items: drawable-region-prim

region​

source

Functions​


region-execute​

region-execute() => nonesource

region-lookup-by-id​

region-lookup-by-id(arg0: int) => regionsource

region-prim-lookup-by-id​

region-prim-lookup-by-id(arg0: int, arg1: symbol, arg2: symbol) => drawable-region-primsource

region-tree-execute​

region-tree-execute(arg0: symbol, arg1: vector, arg2: vector) => nonesource