8#ifndef __JO_LEVEL_FORMAT_H__
9# define __JO_LEVEL_FORMAT_H__
12# define JO_LEVEL_MAGIC (0x4A4F4C56)
14# define JO_LEVEL_FORMAT_VERSION (1)
16# define JO_LEVEL_FLAG_REQUIRED (0x0001)
18# define JO_LEVEL_NO_STRING (0xFFFFFFFFU)
20# define JO_LEVEL_NO_INDEX (0xFFFF)
23# define JO_LEVEL_ID(A, B, C, D) (((unsigned int)(A) << 24) | ((unsigned int)(B) << 16) | ((unsigned int)(C) << 8) | (unsigned int)(D))
51# define JO_LEVEL_SECTION_INFO JO_LEVEL_ID('I', 'N', 'F', 'O')
52# define JO_LEVEL_INFO_VERSION (1)
62# define JO_LEVEL_INFO_HEADER_DEFAULTS {.name = 0xFFFFFFFF}
67# define JO_LEVEL_SECTION_STRS JO_LEVEL_ID('S', 'T', 'R', 'S')
68# define JO_LEVEL_STRS_VERSION (1)
73# define JO_LEVEL_SECTION_TERR JO_LEVEL_ID('T', 'E', 'R', 'R')
74# define JO_LEVEL_TERR_VERSION (1)
90# define JO_LEVEL_TERR_HEADER_DEFAULTS {}
95# define JO_LEVEL_SECTION_PLNT JO_LEVEL_ID('P', 'L', 'N', 'T')
96# define JO_LEVEL_PLNT_VERSION (1)
111# define JO_LEVEL_PLNT_RECORD_DEFAULTS {}
116# define JO_LEVEL_SECTION_MODL JO_LEVEL_ID('M', 'O', 'D', 'L')
117# define JO_LEVEL_MODL_VERSION (1)
130# define JO_LEVEL_MODL_RECORD_DEFAULTS {.file = 0xFFFFFFFF}
135# define JO_LEVEL_SECTION_MBOX JO_LEVEL_ID('M', 'B', 'O', 'X')
136# define JO_LEVEL_MBOX_VERSION (1)
148# define JO_LEVEL_MBOX_RECORD_DEFAULTS {}
153# define JO_LEVEL_SECTION_INST JO_LEVEL_ID('I', 'N', 'S', 'T')
154# define JO_LEVEL_INST_VERSION (1)
171# define JO_LEVEL_INST_RECORD_DEFAULTS {.model = 0xFFFF, .near_model = 0xFFFF, .inside_model = 0xFFFF}
176# define JO_LEVEL_SECTION_DECL JO_LEVEL_ID('D', 'E', 'C', 'L')
177# define JO_LEVEL_DECL_VERSION (1)
191# define JO_LEVEL_DECL_RECORD_DEFAULTS {}
196# define JO_LEVEL_SECTION_ENTI JO_LEVEL_ID('E', 'N', 'T', 'I')
197# define JO_LEVEL_ENTI_VERSION (1)
221# define JO_LEVEL_ENTI_RECORD_DEFAULTS {.name = 0xFFFFFFFF, .cls = 0xFFFFFFFF, .model = 0xFFFFFFFF}
226# define JO_LEVEL_SECTION_PROP JO_LEVEL_ID('P', 'R', 'O', 'P')
227# define JO_LEVEL_PROP_VERSION (1)
239# define JO_LEVEL_PROP_RECORD_DEFAULTS {.key = 0xFFFFFFFF}
244# define JO_LEVEL_SECTION_LINK JO_LEVEL_ID('L', 'I', 'N', 'K')
245# define JO_LEVEL_LINK_VERSION (1)
258# define JO_LEVEL_LINK_RECORD_DEFAULTS {.target = 0xFFFF, .param = -1}
263# define JO_LEVEL_SECTION_CELL JO_LEVEL_ID('C', 'E', 'L', 'L')
264# define JO_LEVEL_CELL_VERSION (3)
284# define JO_LEVEL_CELL_RECORD_DEFAULTS {.model = 0xFFFFFFFF, .reflection = 0xFFFFFFFF}
289# define JO_LEVEL_SECTION_PRTL JO_LEVEL_ID('P', 'R', 'T', 'L')
290# define JO_LEVEL_PRTL_VERSION (1)
301# define JO_LEVEL_PRTL_RECORD_DEFAULTS {.cell = 0xFFFF}
306# define JO_LEVEL_SECTION_WEAP JO_LEVEL_ID('W', 'E', 'A', 'P')
307# define JO_LEVEL_WEAP_VERSION (1)
343# define JO_LEVEL_WEAP_RECORD_DEFAULTS {.name = 0xFFFFFFFF, .model = 0xFFFFFFFF, .convergence = 0x258, .fire_delay = 4, .damage = 0x19, .recoil = 0xA, .kick = 2, .magazine = 0x1E, .ammo_max = 0x3E7, .reload_time = 0x32, .switch_time = 0xC, .flash = 0xFFFFFFFF, .flash_size = 0x16, .sound_shot = 0xFFFFFFFF, .sound_reload = 0xFFFFFFFF, .shot_volume = 0x78}
346# define JO_LEVEL_EVENT_TRIGGER (0)
347# define JO_LEVEL_EVENT_ENTER (1)
348# define JO_LEVEL_EVENT_EXIT (2)
349# define JO_LEVEL_EVENT_DAMAGE (3)
350# define JO_LEVEL_EVENT_DEATH (4)
353# define JO_LEVEL_ACTION_TRIGGER (0)
354# define JO_LEVEL_ACTION_DAMAGE (1)
355# define JO_LEVEL_ACTION_KILL (2)
356# define JO_LEVEL_ACTION_ENABLE (3)
357# define JO_LEVEL_ACTION_DISABLE (4)
358# define JO_LEVEL_ACTION_TOGGLE (5)
359# define JO_LEVEL_ACTION_USE (6)
360# define JO_LEVEL_ACTION_OPEN (7)
361# define JO_LEVEL_ACTION_CLOSE (8)
364# define JO_LEVEL_CELL_SLOPE_FLAT (0)
365# define JO_LEVEL_CELL_SLOPE_X (1)
366# define JO_LEVEL_CELL_SLOPE_Z (2)
369# define JO_LEVEL_PORTAL_DOOR (0)
370# define JO_LEVEL_PORTAL_MIRROR (1)
371# define JO_LEVEL_PORTAL_WINDOW (2)
374# define JO_LEVEL_PROPERTY_INT (0)
375# define JO_LEVEL_PROPERTY_FIXED (1)
376# define JO_LEVEL_PROPERTY_STRING (2)
379# define JO_LEVEL_ENTITY_FLAG_DISABLED (0x0001)
380# define JO_LEVEL_ENTITY_FLAG_SOLID (0x0002)
381# define JO_LEVEL_ENTITY_FLAG_HIDDEN (0x0004)
Directory entry (one per section, after the file header) (24 bytes).
Definition level_format.h:37
int jo_fixed
Fixed point Q16.16 number.
Definition types.h:48