Jo Engine 2026.11.1
Jo Sega Saturn Engine
Loading...
Searching...
No Matches
level_format.h File Reference

Go to the source code of this file.

Data Structures

struct  jo_level_file_header
 File header (16 bytes). More...
struct  jo_level_directory_entry
 Directory entry (one per section, after the file header) (24 bytes). More...
struct  jo_level_info_header
 Level: header (8 bytes). More...
struct  jo_level_terr_header
 Terrain: header (28 bytes). More...
struct  jo_level_plnt_record
 Plants: record (20 bytes). More...
struct  jo_level_modl_record
 Models: record (20 bytes). More...
struct  jo_level_mbox_record
 Collision boxes: record (8 bytes). More...
struct  jo_level_inst_record
 Instances: record (24 bytes). More...
struct  jo_level_decl_record
 Decals: record (16 bytes). More...
struct  jo_level_enti_record
 Entities: record (44 bytes). More...
struct  jo_level_prop_record
 Properties: record (12 bytes). More...
struct  jo_level_cell_record
 Cells: record (40 bytes). More...
struct  jo_level_prtl_record
 Portals: record (52 bytes). More...
struct  jo_level_weap_record
 Weapons: record (76 bytes). More...

Macros

#define JO_LEVEL_MAGIC
 File magic.
#define JO_LEVEL_FORMAT_VERSION
 Version of the file format (header and directory).
#define JO_LEVEL_FLAG_REQUIRED
 A reader that doesn't know this section must refuse the file.
#define JO_LEVEL_NO_STRING
 No string (field of type string).
#define JO_LEVEL_NO_INDEX
 No record (field of type index).
#define JO_LEVEL_ID(A, B, C, D)
 Identifier of a section from its 4 characters.
#define JO_LEVEL_SECTION_INFO
#define JO_LEVEL_INFO_VERSION
#define JO_LEVEL_INFO_HEADER_DEFAULTS
 Default values (the fields missing in an older file, see jo_level_get_records()).
#define JO_LEVEL_SECTION_STRS
#define JO_LEVEL_STRS_VERSION
#define JO_LEVEL_SECTION_TERR
#define JO_LEVEL_TERR_VERSION
#define JO_LEVEL_TERR_HEADER_DEFAULTS
 Default values (the fields missing in an older file, see jo_level_get_records()).
#define JO_LEVEL_SECTION_PLNT
#define JO_LEVEL_PLNT_VERSION
#define JO_LEVEL_PLNT_RECORD_DEFAULTS
 Default values (the fields missing in an older file, see jo_level_get_records()).
#define JO_LEVEL_SECTION_MODL
#define JO_LEVEL_MODL_VERSION
#define JO_LEVEL_MODL_RECORD_DEFAULTS
 Default values (the fields missing in an older file, see jo_level_get_records()).
#define JO_LEVEL_SECTION_MBOX
#define JO_LEVEL_MBOX_VERSION
#define JO_LEVEL_MBOX_RECORD_DEFAULTS
 Default values (the fields missing in an older file, see jo_level_get_records()).
#define JO_LEVEL_SECTION_INST
#define JO_LEVEL_INST_VERSION
#define JO_LEVEL_INST_RECORD_DEFAULTS
 Default values (the fields missing in an older file, see jo_level_get_records()).
#define JO_LEVEL_SECTION_DECL
#define JO_LEVEL_DECL_VERSION
#define JO_LEVEL_DECL_RECORD_DEFAULTS
 Default values (the fields missing in an older file, see jo_level_get_records()).
#define JO_LEVEL_SECTION_ENTI
#define JO_LEVEL_ENTI_VERSION
#define JO_LEVEL_ENTI_RECORD_DEFAULTS
 Default values (the fields missing in an older file, see jo_level_get_records()).
#define JO_LEVEL_SECTION_PROP
#define JO_LEVEL_PROP_VERSION
#define JO_LEVEL_PROP_RECORD_DEFAULTS
 Default values (the fields missing in an older file, see jo_level_get_records()).
#define JO_LEVEL_SECTION_LINK
#define JO_LEVEL_LINK_VERSION
#define JO_LEVEL_LINK_RECORD_DEFAULTS
 Default values (the fields missing in an older file, see jo_level_get_records()).
#define JO_LEVEL_SECTION_CELL
#define JO_LEVEL_CELL_VERSION
#define JO_LEVEL_CELL_RECORD_DEFAULTS
 Default values (the fields missing in an older file, see jo_level_get_records()).
#define JO_LEVEL_SECTION_PRTL
#define JO_LEVEL_PRTL_VERSION
#define JO_LEVEL_PRTL_RECORD_DEFAULTS
 Default values (the fields missing in an older file, see jo_level_get_records()).
#define JO_LEVEL_SECTION_WEAP
#define JO_LEVEL_WEAP_VERSION
#define JO_LEVEL_WEAP_RECORD_DEFAULTS
 Default values (the fields missing in an older file, see jo_level_get_records()).
#define JO_LEVEL_EVENT_TRIGGER
 Events of an entity (LINK.event): what happened to the source.
#define JO_LEVEL_EVENT_ENTER
#define JO_LEVEL_EVENT_EXIT
#define JO_LEVEL_EVENT_DAMAGE
#define JO_LEVEL_EVENT_DEATH
#define JO_LEVEL_ACTION_TRIGGER
 Actions sent to an entity (LINK.action): what the target does.
#define JO_LEVEL_ACTION_DAMAGE
#define JO_LEVEL_ACTION_KILL
#define JO_LEVEL_ACTION_ENABLE
#define JO_LEVEL_ACTION_DISABLE
#define JO_LEVEL_ACTION_TOGGLE
#define JO_LEVEL_ACTION_USE
#define JO_LEVEL_ACTION_OPEN
#define JO_LEVEL_ACTION_CLOSE
#define JO_LEVEL_CELL_SLOPE_FLAT
 Floors of the cells (CELL.slope).
#define JO_LEVEL_CELL_SLOPE_X
#define JO_LEVEL_CELL_SLOPE_Z
#define JO_LEVEL_PORTAL_DOOR
 Kinds of portals (PRTL.kind).
#define JO_LEVEL_PORTAL_MIRROR
#define JO_LEVEL_PORTAL_WINDOW
#define JO_LEVEL_PROPERTY_INT
 Types of the properties of the entities (PROP.type).
#define JO_LEVEL_PROPERTY_FIXED
#define JO_LEVEL_PROPERTY_STRING
#define JO_LEVEL_ENTITY_FLAG_DISABLED
 Flags of the entities (ENTI.flags).
#define JO_LEVEL_ENTITY_FLAG_SOLID
#define JO_LEVEL_ENTITY_FLAG_HIDDEN

Data Structure Documentation

◆ jo_level_file_header

struct jo_level_file_header

File header (16 bytes).

Data Fields
unsigned short flags
unsigned int magic
unsigned int section_count
unsigned int size
unsigned short version

◆ jo_level_directory_entry

struct jo_level_directory_entry

Directory entry (one per section, after the file header) (24 bytes).

Data Fields
unsigned short flags
unsigned short header_size
unsigned int id
unsigned int offset
unsigned int record_count
unsigned short record_size
unsigned int size
unsigned short version

◆ jo_level_info_header

struct jo_level_info_header

Level: header (8 bytes).

Data Fields
unsigned int flags
unsigned int name

◆ jo_level_terr_header

struct jo_level_terr_header

Terrain: header (28 bytes).

Data Fields
unsigned short cell
unsigned int colors
unsigned int heights
unsigned int hole_count
unsigned int holes
unsigned short n
int origin_x
int origin_z

◆ jo_level_plnt_record

struct jo_level_plnt_record

Plants: record (20 bytes).

Data Fields
unsigned char __pad0[2]
short angle
unsigned short kind
unsigned short scale
int x
int y
int z

◆ jo_level_modl_record

struct jo_level_modl_record

Models: record (20 bytes).

Data Fields
unsigned short box_count
unsigned int file
unsigned short first_box
short floor[5]
unsigned short has_floor

◆ jo_level_mbox_record

struct jo_level_mbox_record

Collision boxes: record (8 bytes).

Data Fields
short half_x
short half_z
short x
short z

◆ jo_level_inst_record

struct jo_level_inst_record

Instances: record (24 bytes).

Data Fields
short half_x
short half_z
unsigned short inside_model
unsigned short model
unsigned short near_model
int x
int y
short yaw
int z

◆ jo_level_decl_record

struct jo_level_decl_record

Decals: record (16 bytes).

Data Fields
unsigned char __pad0[2]
short angle
unsigned short kind
unsigned short size
int x
int z

◆ jo_level_enti_record

struct jo_level_enti_record

Entities: record (44 bytes).

Data Fields
unsigned char __pad0[2]
unsigned int cls
unsigned short first_link
unsigned short first_prop
unsigned short flags
short health
unsigned short height
unsigned short link_count
unsigned int model
unsigned int name
unsigned short prop_count
unsigned short radius
int x
int y
short yaw
int z

◆ jo_level_prop_record

struct jo_level_prop_record

Properties: record (12 bytes).

Data Fields
unsigned char __pad0[2]
unsigned int key
unsigned short type
int value

◆ jo_level_link_record

struct jo_level_link_record

Links: record (12 bytes).

Data Fields
unsigned short action
unsigned short delay
unsigned short event
int param
unsigned short target

◆ jo_level_cell_record

struct jo_level_cell_record

Cells: record (40 bytes).

Data Fields
unsigned short first_portal
int floor0
int floor1
unsigned int model
unsigned short portal_count
unsigned int reflection
unsigned short slope
int x0
int x1
short yaw
int z0
int z1

◆ jo_level_prtl_record

struct jo_level_prtl_record

Portals: record (52 bytes).

Data Fields
unsigned short cell
unsigned short kind
int points[12]

◆ jo_level_weap_record

struct jo_level_weap_record

Weapons: record (76 bytes).

Data Fields
unsigned char __pad0[2]
unsigned char __pad1[2]
unsigned short ammo_max
unsigned short ammo_start
unsigned short ammo_type
unsigned short automatic
unsigned short casing
unsigned short convergence
unsigned short damage
unsigned short fire_delay
unsigned int flash
unsigned short flash_size
unsigned short kick
unsigned short magazine
unsigned int model
jo_fixed muzzle_y
jo_fixed muzzle_z
unsigned int name
unsigned short recoil
unsigned short reload_time
unsigned short shot_volume
unsigned int sound_reload
unsigned int sound_shot
unsigned short spread
unsigned short switch_time
jo_fixed x
jo_fixed y
jo_fixed z

Macro Definition Documentation

◆ JO_LEVEL_ACTION_CLOSE

#define JO_LEVEL_ACTION_CLOSE

◆ JO_LEVEL_ACTION_DAMAGE

#define JO_LEVEL_ACTION_DAMAGE

◆ JO_LEVEL_ACTION_DISABLE

#define JO_LEVEL_ACTION_DISABLE

◆ JO_LEVEL_ACTION_ENABLE

#define JO_LEVEL_ACTION_ENABLE

◆ JO_LEVEL_ACTION_KILL

#define JO_LEVEL_ACTION_KILL

◆ JO_LEVEL_ACTION_OPEN

#define JO_LEVEL_ACTION_OPEN

◆ JO_LEVEL_ACTION_TOGGLE

#define JO_LEVEL_ACTION_TOGGLE

◆ JO_LEVEL_ACTION_TRIGGER

#define JO_LEVEL_ACTION_TRIGGER

Actions sent to an entity (LINK.action): what the target does.

◆ JO_LEVEL_ACTION_USE

#define JO_LEVEL_ACTION_USE

◆ JO_LEVEL_CELL_RECORD_DEFAULTS

#define JO_LEVEL_CELL_RECORD_DEFAULTS

Default values (the fields missing in an older file, see jo_level_get_records()).

◆ JO_LEVEL_CELL_SLOPE_FLAT

#define JO_LEVEL_CELL_SLOPE_FLAT

Floors of the cells (CELL.slope).

◆ JO_LEVEL_CELL_SLOPE_X

#define JO_LEVEL_CELL_SLOPE_X

◆ JO_LEVEL_CELL_SLOPE_Z

#define JO_LEVEL_CELL_SLOPE_Z

◆ JO_LEVEL_CELL_VERSION

#define JO_LEVEL_CELL_VERSION

◆ JO_LEVEL_DECL_RECORD_DEFAULTS

#define JO_LEVEL_DECL_RECORD_DEFAULTS

Default values (the fields missing in an older file, see jo_level_get_records()).

◆ JO_LEVEL_DECL_VERSION

#define JO_LEVEL_DECL_VERSION

◆ JO_LEVEL_ENTI_RECORD_DEFAULTS

#define JO_LEVEL_ENTI_RECORD_DEFAULTS

Default values (the fields missing in an older file, see jo_level_get_records()).

◆ JO_LEVEL_ENTI_VERSION

#define JO_LEVEL_ENTI_VERSION

◆ JO_LEVEL_ENTITY_FLAG_DISABLED

#define JO_LEVEL_ENTITY_FLAG_DISABLED

Flags of the entities (ENTI.flags).

◆ JO_LEVEL_ENTITY_FLAG_HIDDEN

#define JO_LEVEL_ENTITY_FLAG_HIDDEN

◆ JO_LEVEL_ENTITY_FLAG_SOLID

#define JO_LEVEL_ENTITY_FLAG_SOLID

◆ JO_LEVEL_EVENT_DAMAGE

#define JO_LEVEL_EVENT_DAMAGE

◆ JO_LEVEL_EVENT_DEATH

#define JO_LEVEL_EVENT_DEATH

◆ JO_LEVEL_EVENT_ENTER

#define JO_LEVEL_EVENT_ENTER

◆ JO_LEVEL_EVENT_EXIT

#define JO_LEVEL_EVENT_EXIT

◆ JO_LEVEL_EVENT_TRIGGER

#define JO_LEVEL_EVENT_TRIGGER

Events of an entity (LINK.event): what happened to the source.

◆ JO_LEVEL_FLAG_REQUIRED

#define JO_LEVEL_FLAG_REQUIRED

A reader that doesn't know this section must refuse the file.

◆ JO_LEVEL_FORMAT_VERSION

#define JO_LEVEL_FORMAT_VERSION

Version of the file format (header and directory).

◆ JO_LEVEL_ID

#define JO_LEVEL_ID ( A,
B,
C,
D )

Identifier of a section from its 4 characters.

◆ JO_LEVEL_INFO_HEADER_DEFAULTS

#define JO_LEVEL_INFO_HEADER_DEFAULTS

Default values (the fields missing in an older file, see jo_level_get_records()).

◆ JO_LEVEL_INFO_VERSION

#define JO_LEVEL_INFO_VERSION

◆ JO_LEVEL_INST_RECORD_DEFAULTS

#define JO_LEVEL_INST_RECORD_DEFAULTS

Default values (the fields missing in an older file, see jo_level_get_records()).

◆ JO_LEVEL_INST_VERSION

#define JO_LEVEL_INST_VERSION

◆ JO_LEVEL_LINK_RECORD_DEFAULTS

#define JO_LEVEL_LINK_RECORD_DEFAULTS

Default values (the fields missing in an older file, see jo_level_get_records()).

◆ JO_LEVEL_LINK_VERSION

#define JO_LEVEL_LINK_VERSION

◆ JO_LEVEL_MAGIC

#define JO_LEVEL_MAGIC

File magic.

◆ JO_LEVEL_MBOX_RECORD_DEFAULTS

#define JO_LEVEL_MBOX_RECORD_DEFAULTS

Default values (the fields missing in an older file, see jo_level_get_records()).

◆ JO_LEVEL_MBOX_VERSION

#define JO_LEVEL_MBOX_VERSION

◆ JO_LEVEL_MODL_RECORD_DEFAULTS

#define JO_LEVEL_MODL_RECORD_DEFAULTS

Default values (the fields missing in an older file, see jo_level_get_records()).

◆ JO_LEVEL_MODL_VERSION

#define JO_LEVEL_MODL_VERSION

◆ JO_LEVEL_NO_INDEX

#define JO_LEVEL_NO_INDEX

No record (field of type index).

◆ JO_LEVEL_NO_STRING

#define JO_LEVEL_NO_STRING

No string (field of type string).

◆ JO_LEVEL_PLNT_RECORD_DEFAULTS

#define JO_LEVEL_PLNT_RECORD_DEFAULTS

Default values (the fields missing in an older file, see jo_level_get_records()).

◆ JO_LEVEL_PLNT_VERSION

#define JO_LEVEL_PLNT_VERSION

◆ JO_LEVEL_PORTAL_DOOR

#define JO_LEVEL_PORTAL_DOOR

Kinds of portals (PRTL.kind).

◆ JO_LEVEL_PORTAL_MIRROR

#define JO_LEVEL_PORTAL_MIRROR

◆ JO_LEVEL_PORTAL_WINDOW

#define JO_LEVEL_PORTAL_WINDOW

◆ JO_LEVEL_PROP_RECORD_DEFAULTS

#define JO_LEVEL_PROP_RECORD_DEFAULTS

Default values (the fields missing in an older file, see jo_level_get_records()).

◆ JO_LEVEL_PROP_VERSION

#define JO_LEVEL_PROP_VERSION

◆ JO_LEVEL_PROPERTY_FIXED

#define JO_LEVEL_PROPERTY_FIXED

◆ JO_LEVEL_PROPERTY_INT

#define JO_LEVEL_PROPERTY_INT

Types of the properties of the entities (PROP.type).

◆ JO_LEVEL_PROPERTY_STRING

#define JO_LEVEL_PROPERTY_STRING

◆ JO_LEVEL_PRTL_RECORD_DEFAULTS

#define JO_LEVEL_PRTL_RECORD_DEFAULTS

Default values (the fields missing in an older file, see jo_level_get_records()).

◆ JO_LEVEL_PRTL_VERSION

#define JO_LEVEL_PRTL_VERSION

◆ JO_LEVEL_SECTION_CELL

#define JO_LEVEL_SECTION_CELL

◆ JO_LEVEL_SECTION_DECL

#define JO_LEVEL_SECTION_DECL

◆ JO_LEVEL_SECTION_ENTI

#define JO_LEVEL_SECTION_ENTI

◆ JO_LEVEL_SECTION_INFO

#define JO_LEVEL_SECTION_INFO

◆ JO_LEVEL_SECTION_INST

#define JO_LEVEL_SECTION_INST

◆ JO_LEVEL_SECTION_LINK

#define JO_LEVEL_SECTION_LINK

◆ JO_LEVEL_SECTION_MBOX

#define JO_LEVEL_SECTION_MBOX

◆ JO_LEVEL_SECTION_MODL

#define JO_LEVEL_SECTION_MODL

◆ JO_LEVEL_SECTION_PLNT

#define JO_LEVEL_SECTION_PLNT

◆ JO_LEVEL_SECTION_PROP

#define JO_LEVEL_SECTION_PROP

◆ JO_LEVEL_SECTION_PRTL

#define JO_LEVEL_SECTION_PRTL

◆ JO_LEVEL_SECTION_STRS

#define JO_LEVEL_SECTION_STRS

◆ JO_LEVEL_SECTION_TERR

#define JO_LEVEL_SECTION_TERR

◆ JO_LEVEL_SECTION_WEAP

#define JO_LEVEL_SECTION_WEAP

◆ JO_LEVEL_STRS_VERSION

#define JO_LEVEL_STRS_VERSION

◆ JO_LEVEL_TERR_HEADER_DEFAULTS

#define JO_LEVEL_TERR_HEADER_DEFAULTS

Default values (the fields missing in an older file, see jo_level_get_records()).

◆ JO_LEVEL_TERR_VERSION

#define JO_LEVEL_TERR_VERSION

◆ JO_LEVEL_WEAP_RECORD_DEFAULTS

#define JO_LEVEL_WEAP_RECORD_DEFAULTS

Default values (the fields missing in an older file, see jo_level_get_records()).

◆ JO_LEVEL_WEAP_VERSION

#define JO_LEVEL_WEAP_VERSION