From c2eef61a8f8f38fedb57ef86f1610ad70c82466a Mon Sep 17 00:00:00 2001 From: danij Date: Fri, 24 Jan 2014 20:35:55 +0000 Subject: [PATCH] API: Added Def_Get() identifier DD_DEF_MUSIC_CDTRACK Returns the CD track attributed to the referenced music definition. --- doomsday/api/dd_share.h | 1 + doomsday/client/include/def_main.h | 1 + doomsday/client/src/def_main.cpp | 22 ++++++++++++++++++++++ 3 files changed, 24 insertions(+) diff --git a/doomsday/api/dd_share.h b/doomsday/api/dd_share.h index 429166aff1..ad7fb7cf3a 100644 --- a/doomsday/api/dd_share.h +++ b/doomsday/api/dd_share.h @@ -219,6 +219,7 @@ enum { DD_PLUGIN_HOMEURL, DD_PLUGIN_DOCSURL, DD_DEF_ACTION, + DD_DEF_MUSIC_CDTRACK, // Non-integer/special values for Set/Get DD_UNUSED9, // DD_TRANSLATIONTABLES_ADDRESS, diff --git a/doomsday/client/include/def_main.h b/doomsday/client/include/def_main.h index 1c42b6b1c9..21c6a826be 100644 --- a/doomsday/client/include/def_main.h +++ b/doomsday/client/include/def_main.h @@ -102,6 +102,7 @@ int Def_GetActionNum(char const *id); spritenum_t Def_GetSpriteNum(char const *name); int Def_GetModelNum(const char* id); +ded_music_t* Def_GetMusic(char const *id); int Def_GetMusicNum(const char* id); int Def_GetSoundNum(const char* id); ded_flag_t* Def_GetFlag(const char* id); diff --git a/doomsday/client/src/def_main.cpp b/doomsday/client/src/def_main.cpp index ac6a0c3941..b4e5f6ed2f 100644 --- a/doomsday/client/src/def_main.cpp +++ b/doomsday/client/src/def_main.cpp @@ -293,6 +293,21 @@ int Def_GetSoundNumForName(const char* name) return 0; } +ded_music_t* Def_GetMusic(char const *id) +{ + if(id && id[0] && defs.count.music.num) + { + for(int i = 0; i < defs.count.music.num; ++i) + { + if(!stricmp(defs.music[i].id, id)) + { + return &defs.music[i]; + } + } + } + return 0; +} + int Def_GetMusicNum(const char* id) { int idx = -1; @@ -2214,6 +2229,13 @@ int Def_Get(int type, const char* id, void* out) case DD_DEF_MUSIC: return Def_GetMusicNum(id); + case DD_DEF_MUSIC_CDTRACK: + if(ded_music_t *music = Def_GetMusic(id)) + { + return music->cdTrack; + } + return false; + case DD_DEF_MAP_INFO: { ddmapinfo_t *mout; struct uri_s *mapUri = Uri_NewWithPath2(id, RC_NULL);