forked from github/server
export to a stream
can write a dict of simple regions now.
This commit is contained in:
parent
18203cfdbf
commit
40d7d236ac
17
src/export.c
17
src/export.c
|
@ -2,9 +2,10 @@
|
||||||
#include <kernel/types.h>
|
#include <kernel/types.h>
|
||||||
#include <kernel/region.h>
|
#include <kernel/region.h>
|
||||||
#include <kernel/terrain.h>
|
#include <kernel/terrain.h>
|
||||||
|
#include <stream.h>
|
||||||
#include "cJSON.h"
|
#include "cJSON.h"
|
||||||
|
|
||||||
void export_json(const char *filename) {
|
void export_json(stream * out) {
|
||||||
region * r;
|
region * r;
|
||||||
cJSON *json, *root = cJSON_CreateObject();
|
cJSON *json, *root = cJSON_CreateObject();
|
||||||
cJSON_AddItemToObject(root, "regions", json = cJSON_CreateObject());
|
cJSON_AddItemToObject(root, "regions", json = cJSON_CreateObject());
|
||||||
|
@ -15,6 +16,18 @@ void export_json(const char *filename) {
|
||||||
cJSON_AddItemToObject(json, id, data = cJSON_CreateObject());
|
cJSON_AddItemToObject(json, id, data = cJSON_CreateObject());
|
||||||
cJSON_AddNumberToObject(data, "x", r->x);
|
cJSON_AddNumberToObject(data, "x", r->x);
|
||||||
cJSON_AddNumberToObject(data, "y", r->y);
|
cJSON_AddNumberToObject(data, "y", r->y);
|
||||||
cJSON_AddStringToObject(data, "terrain", r->terrain->_name);
|
cJSON_AddStringToObject(data, "type", r->terrain->_name);
|
||||||
|
}
|
||||||
|
if (out) {
|
||||||
|
char *tok, *output;
|
||||||
|
output = cJSON_Print(json);
|
||||||
|
tok = strtok(output, "\n\r");
|
||||||
|
while (tok) {
|
||||||
|
if (tok[0]) {
|
||||||
|
out->api->writeln(out->handle, tok);
|
||||||
|
}
|
||||||
|
tok = strtok(NULL, "\n\r");
|
||||||
|
}
|
||||||
|
free(output);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue