diff --git a/src/loaders/JSONLoader/JSONLoader.c b/src/loaders/JSONLoader/JSONLoader.c new file mode 100644 index 0000000..754d840 --- /dev/null +++ b/src/loaders/JSONLoader/JSONLoader.c @@ -0,0 +1,36 @@ +#include +#define TYPE_MODULE evmod_assets +#include +#include + +#include "../LoaderCommon.h" +#include "JSONLoader.h" + +JSONAsset +ev_jsonloader_loadasset( + AssetHandle handle) +{ + const Asset *asset = ev_asset_getfromhandle(handle); + JSONAsset inter = (JSONAsset) { + .json_data = evjs_init(), + }; + evjs_loadjson(inter.json_data, asset->data); + + ev_asset_markas(handle, LoaderData.assetType, &inter); + + return inter; +} + +void +ev_jsonloader_jsonasset_destr( + JSONAsset json) +{ + evjs_fini(json.json_data); +} + +void +ev_jsonloader_setassettype( + GenericHandle type) +{ + LoaderData.assetType = type; +} diff --git a/src/loaders/JSONLoader/JSONLoader.h b/src/loaders/JSONLoader/JSONLoader.h new file mode 100644 index 0000000..3fd1e62 --- /dev/null +++ b/src/loaders/JSONLoader/JSONLoader.h @@ -0,0 +1,13 @@ +#pragma once + +JSONAsset +ev_jsonloader_loadasset( + AssetHandle handle); + +void +ev_jsonloader_jsonasset_destr( + JSONAsset json); + +void +ev_jsonloader_setassettype( + GenericHandle type);