From 8c87b3fac0b30a161fa8f759992fcf6e9f305518 Mon Sep 17 00:00:00 2001 From: skyjake Date: Wed, 2 Jan 2013 20:23:09 +0200 Subject: [PATCH] libdoom: Import available public APIs --- doomsday/engine/api/api_base.h | 2 +- doomsday/engine/api/api_def.h | 8 ++++---- doomsday/plugins/common/src/gl_drawpatch.c | 1 + doomsday/plugins/jdoom/include/d_api.h | 10 ++++++++++ doomsday/plugins/jdoom/src/d_api.c | 20 ++++++++++++++++++++ 5 files changed, 36 insertions(+), 5 deletions(-) diff --git a/doomsday/engine/api/api_base.h b/doomsday/engine/api/api_base.h index 03701ffb30..d8f16b6301 100644 --- a/doomsday/engine/api/api_base.h +++ b/doomsday/engine/api/api_base.h @@ -49,7 +49,7 @@ typedef struct de_api_s { #define DENG_DECLARE_API(Name) DENG_API_T(Name) _api_##Name #define DENG_USING_API(Name) DENG_EXTERN_C DENG_DECLARE_API(Name) #define DENG_API_EXCHANGE(APIs) \ - extern "C" void deng_API(int id, void *api) { \ + DENG_EXTERN_C void deng_API(int id, void *api) { \ switch(id) { APIs \ default: break; } } #define DENG_GET_API(Ident, Name) \ diff --git a/doomsday/engine/api/api_def.h b/doomsday/engine/api/api_def.h index c2c3da562b..d570cb9076 100644 --- a/doomsday/engine/api/api_def.h +++ b/doomsday/engine/api/api_def.h @@ -30,8 +30,8 @@ DENG_API_TYPEDEF(Def) // v1 { de_api_t api; - int (*Get)(int type, const char* id, void* out); - int (*Set)(int type, int index, int value, const void* ptr); + int (*_Get)(int type, const char* id, void* out); + int (*_Set)(int type, int index, int value, const void* ptr); int (*EvalFlags)(char* flags); // Functions related to DED database manipulation (deprecated): @@ -41,8 +41,8 @@ DENG_API_TYPEDEF(Def) // v1 DENG_API_T(Def); #ifndef DENG_NO_API_MACROS_DEFINITIONS -#define Def_Get _api_Def.Get -#define Def_Set _api_Def.Set +#define Def_Get _api_Def._Get +#define Def_Set _api_Def._Set #define Def_EvalFlags _api_Def.EvalFlags #endif diff --git a/doomsday/plugins/common/src/gl_drawpatch.c b/doomsday/plugins/common/src/gl_drawpatch.c index 6630de70c8..73c7945f72 100644 --- a/doomsday/plugins/common/src/gl_drawpatch.c +++ b/doomsday/plugins/common/src/gl_drawpatch.c @@ -24,6 +24,7 @@ #include #include "doomsday.h" +#include "common.h" #include "gl_drawpatch.h" void GL_DrawPatch3(patchid_t id, const Point2Raw* origin, int alignFlags, int patchFlags) diff --git a/doomsday/plugins/jdoom/include/d_api.h b/doomsday/plugins/jdoom/include/d_api.h index 223b921d54..fcbd7d274f 100644 --- a/doomsday/plugins/jdoom/include/d_api.h +++ b/doomsday/plugins/jdoom/include/d_api.h @@ -34,6 +34,7 @@ #endif #include "dd_api.h" +#include "doomsday.h" #ifdef __cplusplus extern "C" { @@ -42,6 +43,15 @@ extern "C" { extern game_import_t gi; extern game_export_t gx; +DENG_USING_API(Base); +DENG_USING_API(Con); +DENG_USING_API(Def); +DENG_USING_API(F); +DENG_USING_API(Material); +DENG_USING_API(Plug); +DENG_USING_API(Uri); +DENG_USING_API(W); + #ifdef __cplusplus } // extern "C" #endif diff --git a/doomsday/plugins/jdoom/src/d_api.c b/doomsday/plugins/jdoom/src/d_api.c index c7c67868cc..5cbedccecb 100644 --- a/doomsday/plugins/jdoom/src/d_api.c +++ b/doomsday/plugins/jdoom/src/d_api.c @@ -278,3 +278,23 @@ const char* deng_LibraryType(void) { return "deng-plugin/game"; } + +DENG_DECLARE_API(Base); +DENG_DECLARE_API(Con); +DENG_DECLARE_API(Def); +DENG_DECLARE_API(F); +DENG_DECLARE_API(Material); +DENG_DECLARE_API(Plug); +DENG_DECLARE_API(Uri); +DENG_DECLARE_API(W); + +DENG_API_EXCHANGE( + DENG_GET_API(DE_API_BASE_v1, Base); + DENG_GET_API(DE_API_CONSOLE_v1, Con); + DENG_GET_API(DE_API_DEFINITIONS_v1, Def); + DENG_GET_API(DE_API_FILE_SYSTEM_v1, F); + DENG_GET_API(DE_API_MATERIALS_v1, Material); + DENG_GET_API(DE_API_PLUGIN_v1, Plug); + DENG_GET_API(DE_API_URI_v1, Uri); + DENG_GET_API(DE_API_WAD_v1, W); +)