Skip to content

Commit

Permalink
F API: Added F_LumpIndex() (returns the global index), use in wadmapc…
Browse files Browse the repository at this point in the history
…onverter
  • Loading branch information
danij-deng committed Jun 28, 2014
1 parent 5ee689b commit c10174b
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 13 deletions.
6 changes: 6 additions & 0 deletions doomsday/api/api_filesys.h
Expand Up @@ -67,6 +67,11 @@ DENG_API_TYPEDEF(F)
AutoStr* (*ReadFileIntoString)(Str const *path, dd_bool *isCustom);

dd_bool (*WriteFile)(const char* path, const char* source, size_t length);

/**
* Returns a pointer to the global WAD lump index.
*/
void* (*LumpIndex)();
}
DENG_API_T(F);

Expand All @@ -78,6 +83,7 @@ DENG_API_T(F);
#define M_ReadFile _api_F.ReadFile
#define M_ReadFileIntoString _api_F.ReadFileIntoString
#define M_WriteFile _api_F.WriteFile
#define F_LumpIndex _api_F.LumpIndex
#endif

#ifdef __DOOMSDAY__
Expand Down
6 changes: 0 additions & 6 deletions doomsday/api/api_plugin.h
Expand Up @@ -63,12 +63,6 @@ enum {
/// Zero is not a valid ID.
typedef int pluginid_t;

/// Parameters for HOOK_MAP_CONVERT
typedef struct {
void *lumpIndex;
uri_s *mapUri;
} ddhook_map_convert_t;

/// Parameters for HOOK_FINALE_EVAL_IF
typedef struct {
const char* token;
Expand Down
5 changes: 1 addition & 4 deletions doomsday/client/src/world/worldsystem.cpp
Expand Up @@ -441,10 +441,7 @@ DENG2_PIMPL(WorldSystem)
// Ask each converter in turn whether the map format is recognizable
// and if so to interpret and transfer it to us via the runtime map
// editing interface.
ddhook_map_convert_t parm;
parm.lumpIndex = const_cast<LumpIndex *>(&App_FileSystem().nameIndex());
parm.mapUri = const_cast<uri_s *>(reinterpret_cast<uri_s const *>(&uri));
if(!DD_CallHooks(HOOK_MAP_CONVERT, 0, &parm))
if(!DD_CallHooks(HOOK_MAP_CONVERT, 0, const_cast<uri_s *>(reinterpret_cast<uri_s const *>(&uri))))
return 0;

// A converter signalled success.
Expand Down
1 change: 1 addition & 0 deletions doomsday/plugins/wadmapconverter/include/wadmapconverter.h
Expand Up @@ -30,6 +30,7 @@
#include "id1map.h"

DENG_USING_API(Base);
DENG_USING_API(F);
DENG_USING_API(Map);
DENG_USING_API(Material);
DENG_USING_API(MPE);
Expand Down
7 changes: 4 additions & 3 deletions doomsday/plugins/wadmapconverter/src/wadmapconverter.cpp
Expand Up @@ -37,11 +37,10 @@ using namespace wadimp;
int ConvertMapHook(int /*hookType*/, int /*parm*/, void *context)
{
DENG2_ASSERT(context != 0);
ddhook_map_convert_t const &p = *static_cast<ddhook_map_convert_t *>(context);

// Attempt to locate the identified map data marker lump.
LumpIndex const &lumpIndex = *reinterpret_cast<de::LumpIndex *>(p.lumpIndex);
de::Uri const &mapUri = *reinterpret_cast<de::Uri const *>(p.mapUri);
LumpIndex const &lumpIndex = *reinterpret_cast<LumpIndex *>(F_LumpIndex());
de::Uri const &mapUri = *reinterpret_cast<de::Uri const *>(context);
lumpnum_t lumpIndexOffset = lumpIndex.findLast(mapUri.path() + ".lmp");
if(lumpIndexOffset < 0) return false;

Expand Down Expand Up @@ -90,6 +89,7 @@ extern "C" char const *deng_LibraryType()
}

DENG_DECLARE_API(Base);
DENG_DECLARE_API(F);
DENG_DECLARE_API(Material);
DENG_DECLARE_API(Map);
DENG_DECLARE_API(MPE);
Expand All @@ -98,6 +98,7 @@ DENG_DECLARE_API(Uri);

DENG_API_EXCHANGE(
DENG_GET_API(DE_API_BASE, Base);
DENG_GET_API(DE_API_FILE_SYSTEM, F);
DENG_GET_API(DE_API_MATERIALS, Material);
DENG_GET_API(DE_API_MAP, Map);
DENG_GET_API(DE_API_MAP_EDIT, MPE);
Expand Down

0 comments on commit c10174b

Please sign in to comment.