From 18203cfdbf3de8080c932eeb08182a6e38307501 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Thu, 6 Mar 2014 07:15:43 -0800 Subject: [PATCH] begin writing a map exporter --- .gitattributes | 13 +++++++++++++ .gitmodules | 20 ++++++++++---------- CMakeLists.txt | 1 + cJSON | 2 +- cmake | 2 +- src/CMakeLists.txt | 4 ++++ src/export.c | 20 ++++++++++++++++++++ 7 files changed, 50 insertions(+), 12 deletions(-) create mode 100644 .gitattributes create mode 100644 src/export.c diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..a827124ce --- /dev/null +++ b/.gitattributes @@ -0,0 +1,13 @@ +*.json text +*.xml text +*.py text +*.md text +*.txt text +*.lua text + +# Shell scripts should *always* be LF, regardless of platfrom +s/* text eol=lf +*.sh text eol=lf + +# All third-party code should not be EOL-normalized +#third-party/** -text diff --git a/.gitmodules b/.gitmodules index 73d3e8156..c1607de9b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,31 +1,31 @@ [submodule "lunit"] path = lunit - url = git://github.com/badgerman/lunit.git + url = git@github.com:badgerman/lunit.git [submodule "crypto"] path = crypto - url = git://github.com/badgerman/crypto.git + url = git@github.com:badgerman/crypto.git [submodule "cmake"] path = cmake - url = git://github.com/badgerman/cmake.git + url = git@github.com:badgerman/cmake.git [submodule "quicklist"] path = quicklist - url = git://github.com/badgerman/quicklist.git + url = git@github.com:badgerman/quicklist.git [submodule "critbit"] path = critbit - url = git://github.com/badgerman/critbit.git + url = git@github.com:badgerman/critbit.git [submodule "dlmalloc"] path = dlmalloc - url = git://github.com/badgerman/dlmalloc.git + url = git@github.com:badgerman/dlmalloc.git [submodule "cutest"] path = cutest - url = git://github.com/badgerman/cutest.git + url = git@github.com:badgerman/cutest.git [submodule "iniparser"] path = iniparser - url = git://github.com/badgerman/iniparser.git + url = git@github.com:badgerman/iniparser.git [submodule "cJSON"] path = cJSON - url = git://github.com/kbranigan/cJSON.git + url = git@github.com:badgerman/cJSON.git [submodule "storage"] path = storage - url = git://github.com/badgerman/storage.git + url = git@github.com:badgerman/storage.git branch = master diff --git a/CMakeLists.txt b/CMakeLists.txt index a17de4558..80ab3ab0d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,6 +37,7 @@ find_package (ToLua REQUIRED) add_subdirectory (cutest) add_subdirectory (crypto) +add_subdirectory (cJSON) add_subdirectory (storage) add_subdirectory (iniparser) add_subdirectory (quicklist) diff --git a/cJSON b/cJSON index 43241a78d..43c04ad61 160000 --- a/cJSON +++ b/cJSON @@ -1 +1 @@ -Subproject commit 43241a78df3abc76ad7fc3d80f81e0b1db83a890 +Subproject commit 43c04ad61258ec3d54a2167eb3a43915bd003ab1 diff --git a/cmake b/cmake index 923b5e365..cd779ba36 160000 --- a/cmake +++ b/cmake @@ -1 +1 @@ -Subproject commit 923b5e3651c8849fb0769e158447d24646a11cca +Subproject commit cd779ba36efb4045a040af170588a8dfe496d7b9 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 006fe43c6..7102d5976 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -15,6 +15,7 @@ find_package (SQLite3 REQUIRED) include_directories (${CMAKE_CURRENT_SOURCE_DIR}) include_directories (${CRITBIT_INCLUDE_DIR}) +include_directories (${CJSON_INCLUDE_DIR}) include_directories (${STORAGE_INCLUDE_DIR}) include_directories (${CRYPTO_INCLUDE_DIR}) include_directories (${QUICKLIST_INCLUDE_DIR}) @@ -67,6 +68,7 @@ set (SERVER_SRC eressea.pkg.c settings.pkg.c eressea.c + export.c archetype.c creation.c creport.c @@ -120,6 +122,7 @@ target_link_libraries(eressea ${SQLITE3_LIBRARIES} ${CRITBIT_LIBRARIES} ${CRYPTO_LIBRARIES} + ${CJSON_LIBRARIES} ${CURSES_LIBRARIES} ${INIPARSER_LIBRARIES} ) @@ -146,6 +149,7 @@ target_link_libraries(test_eressea ${SQLITE3_LIBRARIES} ${CRITBIT_LIBRARIES} ${CRYPTO_LIBRARIES} + ${CJSON_LIBRARIES} ${CURSES_LIBRARIES} ${INIPARSER_LIBRARIES} ) diff --git a/src/export.c b/src/export.c new file mode 100644 index 000000000..0c8213f11 --- /dev/null +++ b/src/export.c @@ -0,0 +1,20 @@ +#include +#include +#include +#include +#include "cJSON.h" + +void export_json(const char *filename) { + region * r; + cJSON *json, *root = cJSON_CreateObject(); + cJSON_AddItemToObject(root, "regions", json = cJSON_CreateObject()); + for (r=regions; r; r=r->next) { + char id[32]; + cJSON *data; + snprintf(id, sizeof(id), "%u", r->uid); + cJSON_AddItemToObject(json, id, data = cJSON_CreateObject()); + cJSON_AddNumberToObject(data, "x", r->x); + cJSON_AddNumberToObject(data, "y", r->y); + cJSON_AddStringToObject(data, "terrain", r->terrain->_name); + } +}