35 lines
638 B
C
35 lines
638 B
C
|
#ifndef __G_GMC_H__
|
||
|
#define __G_GMC_H__
|
||
|
|
||
|
#include <stdint.h>
|
||
|
#include <gmc/map.h>
|
||
|
|
||
|
typedef struct gmc_property {
|
||
|
uint32_t key;
|
||
|
uint32_t value;
|
||
|
} gmc_property;
|
||
|
|
||
|
typedef struct gmc_entity {
|
||
|
uint32_t property_count;
|
||
|
gmc_property* properties;
|
||
|
} gmc_entity;
|
||
|
|
||
|
typedef struct gmc_file {
|
||
|
uint64_t magic;
|
||
|
|
||
|
uint32_t string_buf_len;
|
||
|
char* string_buf;
|
||
|
|
||
|
uint32_t entity_count;
|
||
|
gmc_entity* entities;
|
||
|
} gmc_file;
|
||
|
|
||
|
gmc_file gmc_read(const char* filename);
|
||
|
gmc_file gmc_from_map(map_map map);
|
||
|
void gmc_write(gmc_file file, const char* filename);
|
||
|
void gmc_print(gmc_file file);
|
||
|
|
||
|
const extern uint64_t gmc_magic;
|
||
|
|
||
|
#endif
|