libdoom-umapinfo  1.0.0
Parser for Doom UMAPINFO data
Typedefs | Functions
doom_umi.h File Reference

Library header of libdoom-umapinfo. More...

#include <stddef.h>

Macros

Fatal error return values

Fatal error code values are always negative.

The meaning of the error code values may differ between major API versions.
Always use the symbolic names to checks.

#define DOOM_UMI1_ERROR_INTERNAL   -1
 Internal error (bug)
 
#define DOOM_UMI1_ERROR_INVALID   -2
 Invalid argument(s)
 
#define DOOM_UMI1_ERROR_MEMORY   -3
 Memory allocation failed.
 
#define DOOM_UMI1_ERROR_NOTFOUND   -4
 Selected object not found.
 
Info (nonfatal error) return values

Info code values are always positive.

The meaning of the info code values may differ between major API versions.
Always use the symbolic names for checks.

#define DOOM_UMI1_INFO_SYNTAX   1
 Syntax error(s) detected. The imported data may be incomplete.
 
Value types

The meaning of the type code values may differ between major API versions.
Always use the symbolic names for checks.

#define DOOM_UMI1_TYPE_INVALID   0
 Reserved for internal use.
 
#define DOOM_UMI1_TYPE_CLEAR   1
 Clear flag ('clear')
 
#define DOOM_UMI1_TYPE_BOOL   2
 Boolean value ('false'/'true')
 
#define DOOM_UMI1_TYPE_NUMBER   3
 Unsigned number.
 
#define DOOM_UMI1_TYPE_QSTRING   4
 Quoted string.
 
#define DOOM_UMI1_TYPE_THING   5
 Thing type.
 
Key identifiers

The meaning of the key code values may differ between major API versions.
Always use the symbolic names for checks.

#define DOOM_UMI1_KEY_AUTHOR   0U
 Key "author".
 
#define DOOM_UMI1_KEY_LABEL   1U
 Key "label".
 
#define DOOM_UMI1_KEY_LEVELNAME   2U
 Key "levelname".
 
#define DOOM_UMI1_KEY_LEVELPIC   3U
 Key "levelpic".
 
#define DOOM_UMI1_KEY_NEXT   4U
 Key "next".
 
#define DOOM_UMI1_KEY_NEXTSECRET   5U
 Key "nextsecret".
 
#define DOOM_UMI1_KEY_SKYTEXTURE   6U
 Key "skytexture".
 
#define DOOM_UMI1_KEY_MUSIC   7U
 Key "music".
 
#define DOOM_UMI1_KEY_EXITPIC   8U
 Key "exitpic".
 
#define DOOM_UMI1_KEY_ENTERPIC   9U
 Key "enterpic".
 
#define DOOM_UMI1_KEY_PARTIME   10U
 Key "partime".
 
#define DOOM_UMI1_KEY_ENDGAME   11U
 Key "endgame".
 
#define DOOM_UMI1_KEY_ENDPIC   12U
 Key "endpic".
 
#define DOOM_UMI1_KEY_ENDBUNNY   13U
 Key "endbunny".
 
#define DOOM_UMI1_KEY_ENDCAST   14U
 Key "endcast".
 
#define DOOM_UMI1_KEY_NOINTERMISSION   15U
 Key "nointermission".
 
#define DOOM_UMI1_KEY_INTERTEXT   16U
 Key "intertext".
 
#define DOOM_UMI1_KEY_INTERTEXTSECRET   17U
 Key "intertextsecret".
 
#define DOOM_UMI1_KEY_INTERBACKDROP   18U
 Key "interbackdrop".
 
#define DOOM_UMI1_KEY_INTERMUSIC   19U
 Key "intermusic".
 
#define DOOM_UMI1_KEY_EPISODE   20U
 Key "episode".
 
#define DOOM_UMI1_KEY_BOSSACTION   21U
 Key "bossaction".
 

Typedefs

typedef struct doom_umi1_i_data * doom_umi1_handle
 Handle type for opaque UMAPINFO object. More...
 
typedef struct doom_umi1_i_ts_state * doom_umi1_ts_state
 Handle type for opaque thread-safe state object. More...
 

Functions

void doom_umi1_register_mmanager (void *(*ext_realloc)(void *, size_t), void(*ext_free)(void *))
 Register optional external memory manager. More...
 
int doom_umi1_create (doom_umi1_handle *handle, const unsigned char *data, size_t length, int verbose)
 Create opaque UMAPINFO object. More...
 
void doom_umi1_destroy (doom_umi1_handle *handle)
 Destroy opaque UMAPINFO object. More...
 
int doom_umi1_ts_state_create (doom_umi1_ts_state *state, doom_umi1_handle handle)
 Initialize opaque thread-safe state object. More...
 
void doom_umi1_ts_state_destroy (doom_umi1_ts_state *state)
 Destroy opaque thread-safe state object. More...
 
int doom_umi1_ts_map_count (doom_umi1_ts_state state, size_t *count)
 Get number of maps in UMAPINFO data. More...
 
int doom_umi1_ts_map_search (doom_umi1_ts_state state, unsigned int episode, unsigned int map)
 Search for toplevel map block in UMAPINFO data. More...
 
int doom_umi1_ts_map_next (doom_umi1_ts_state state)
 Select next toplevel map block in UMAPINFO data. More...
 
int doom_umi1_ts_map_read (doom_umi1_ts_state state, unsigned int *episode, unsigned int *map)
 Read episode and map number of currently selected map. More...
 
int doom_umi1_ts_key_count (doom_umi1_ts_state state, size_t *count)
 Get number of keys in map block in UMAPINFO data. More...
 
int doom_umi1_ts_key_next (doom_umi1_ts_state state)
 Select next key of selected map block in UMAPINFO data. More...
 
int doom_umi1_ts_key_read (doom_umi1_ts_state state, const char **keyword, size_t *keyid)
 Read keyword of currently selected key. More...
 
int doom_umi1_ts_value_count (doom_umi1_ts_state state, size_t *count)
 Get number of values of selected key from map block in UMAPINFO data. More...
 
int doom_umi1_ts_value_next (doom_umi1_ts_state state)
 Select next value of selected key from map block in UMAPINFO data. More...
 
int doom_umi1_ts_value_type (doom_umi1_ts_state state, int *type)
 Select next value of selected key from map block in UMAPINFO data. More...
 
int doom_umi1_ts_value_read_number (doom_umi1_ts_state state, unsigned int *number)
 Read number from currently selected value. More...
 
int doom_umi1_ts_value_read_thing (doom_umi1_ts_state state, const char **thing, size_t *thingid)
 Read thing from currently selected value. More...
 
int doom_umi1_ts_value_read_qstring (doom_umi1_ts_state state, size_t *length, const unsigned char **qstring)
 Read quoted string from currently selected value. More...
 

Detailed Description

Library header of libdoom-umapinfo.

Public API (compatible between versions with same major number).
API documentation: UMAPINFO

Author
Michael Baeuerle
Date
2022-2023

Generated using  doxygen