diff --git a/polymer/eduke32/source/common.c b/polymer/eduke32/source/common.c index 8ea805d85..5c60ef567 100644 --- a/polymer/eduke32/source/common.c +++ b/polymer/eduke32/source/common.c @@ -620,6 +620,15 @@ static void G_AddSteamPaths(const char *basepath) Bsnprintf(buf, sizeof(buf), "%s/steamapps/common/Duke Nukem 3D/gameroot/addons/vacation", basepath); addsearchpath_user(buf, SEARCHPATH_REMOVE); + Bsnprintf(buf, sizeof(buf), "%s/steamapps/common/Duke Nukem 3D/gameroot/music", basepath); + addsearchpath(buf); + + Bsnprintf(buf, sizeof(buf), "%s/steamapps/common/Duke Nukem 3D/gameroot/music/nwinter", basepath); + addsearchpath_user(buf, SEARCHPATH_NWINTER); + + Bsnprintf(buf, sizeof(buf), "%s/steamapps/common/Duke Nukem 3D/gameroot/music/vacation", basepath); + addsearchpath(buf); + #if defined __APPLE__ Bsnprintf(buf, sizeof(buf), "%s/steamapps/common/Nam/Nam.app/Contents/Resources/Nam.boxer/C.harddisk/NAM", basepath); #else @@ -862,6 +871,15 @@ void G_AddSearchPaths(void) Bsnprintf(buf, sizeof(buf), "%s/gameroot/addons/vacation", instpath); addsearchpath_user(buf, SEARCHPATH_REMOVE); + + Bsnprintf(buf, sizeof(buf), "%s/gameroot/music", instpath); + addsearchpath(buf); + + Bsnprintf(buf, sizeof(buf), "%s/gameroot/music/nwinter", instpath); + addsearchpath_user(buf, SEARCHPATH_NWINTER); + + Bsnprintf(buf, sizeof(buf), "%s/gameroot/music/vacation", instpath); + addsearchpath(buf); } if ((instpath = G_GetInstallPath(INSTPATH_GOG_DUKE3D))) @@ -893,6 +911,9 @@ void G_CleanupSearchPaths(void) if (!(NAM || NAPALM)) removesearchpaths_withuser(SEARCHPATH_NAM); + + if (!(NWINTER)) + removesearchpaths_withuser(SEARCHPATH_NWINTER); } ////////// diff --git a/polymer/eduke32/source/common_game.h b/polymer/eduke32/source/common_game.h index 33a0d4410..ca78d6c1f 100644 --- a/polymer/eduke32/source/common_game.h +++ b/polymer/eduke32/source/common_game.h @@ -20,6 +20,7 @@ extern int32_t usecwd; #define GAMEFLAG_ADDON 0x00000010 #define GAMEFLAG_SHAREWARE 0x00000020 #define GAMEFLAG_DUKEBETA 0x00000060 // includes 0x20 since it's a shareware beta +#define GAMEFLAG_NWINTER 0x00000080 extern int32_t g_gameType; @@ -32,6 +33,7 @@ extern int32_t g_dependencyCRC; #define WW2GI (g_gameType & GAMEFLAG_WW2GI) #define SHAREWARE (g_gameType & GAMEFLAG_SHAREWARE) #define DUKEBETA ((g_gameType & GAMEFLAG_DUKEBETA) == GAMEFLAG_DUKEBETA) +#define NWINTER (g_gameType & GAMEFLAG_NWINTER) enum Games_t { GAME_DUKE = 0, @@ -53,6 +55,8 @@ enum instpath_t { enum searchpathtypes_t { SEARCHPATH_REMOVE = 1<<0, SEARCHPATH_NAM = 1<<1, + + SEARCHPATH_NWINTER = 1<<2, }; typedef enum basepal_ { diff --git a/polymer/eduke32/source/grpscan.c b/polymer/eduke32/source/grpscan.c index 59ea9c06d..fde74a0ba 100644 --- a/polymer/eduke32/source/grpscan.c +++ b/polymer/eduke32/source/grpscan.c @@ -47,7 +47,7 @@ struct grpfile internalgrpfiles[NUMGRPFILES] = { "Duke Nukem 3D Mac Demo", DUKEMD_CRC, 10444391, GAMEFLAG_DUKE|GAMEFLAG_SHAREWARE, 0, NULL, NULL, NULL }, { "Duke it out in D.C.", DUKEDC_CRC, 8410183 , GAMEFLAG_DUKE|GAMEFLAG_ADDON, DUKE15_CRC, NULL, NULL, NULL }, { "Duke Caribbean: Life's a Beach", DUKECB_CRC, 22213819, GAMEFLAG_DUKE|GAMEFLAG_ADDON, DUKE15_CRC, NULL, NULL, NULL }, - { "Duke: Nuclear Winter", DUKENW_CRC, 16169365, GAMEFLAG_DUKE|GAMEFLAG_ADDON, DUKE15_CRC, "NWINTER.CON", NULL, NULL }, + { "Duke: Nuclear Winter", DUKENW_CRC, 16169365, GAMEFLAG_DUKE|GAMEFLAG_ADDON|GAMEFLAG_NWINTER, DUKE15_CRC, "NWINTER.CON", NULL, NULL }, { "NAM", NAM_CRC, 43448927, GAMEFLAG_NAM, 0, NULL, NULL, NULL }, { "NAPALM", NAPALM_CRC, 44365728, GAMEFLAG_NAM|GAMEFLAG_NAPALM, 0, NULL, NULL, NULL }, { "WWII GI", WW2GI_CRC, 77939508, GAMEFLAG_WW2GI|GAMEFLAG_NAM, 0, NULL, NULL, NULL },