mirror of
https://github.com/fabiangreffrath/woof.git
synced 2025-09-26 14:33:46 -04:00
support dedicated music for Episode 4 of Ultimate Doom (#818)
* support dedicated music for Episode 4 of Ultimate Doom * suppoer UMAPINFO music in the IDMUS cheat
This commit is contained in:
parent
c338701fea
commit
b596220967
@ -307,6 +307,7 @@ static void cheat_autoaim()
|
||||
static void cheat_mus(char *buf)
|
||||
{
|
||||
int musnum;
|
||||
mapentry_t* entry;
|
||||
|
||||
//jff 3/20/98 note: this cheat allowed in netgame/demorecord
|
||||
|
||||
@ -316,12 +317,32 @@ static void cheat_mus(char *buf)
|
||||
|
||||
plyr->message = s_STSTR_MUS; // Ty 03/27/98 - externalized
|
||||
|
||||
// First check if we have a mapinfo entry for the requested level.
|
||||
if (gamemode == commercial)
|
||||
entry = G_LookupMapinfo(1, 10*(buf[0]-'0') + (buf[1]-'0'));
|
||||
else
|
||||
entry = G_LookupMapinfo(buf[0]-'0', buf[1]-'0');
|
||||
|
||||
if (entry && entry->music[0])
|
||||
{
|
||||
musnum = W_CheckNumForName(entry->music);
|
||||
|
||||
if (musnum == -1)
|
||||
plyr->message = s_STSTR_NOMUS;
|
||||
else
|
||||
{
|
||||
S_ChangeMusInfoMusic(musnum, 1);
|
||||
idmusnum = -1;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (gamemode == commercial)
|
||||
{
|
||||
musnum = mus_runnin + (buf[0]-'0')*10 + buf[1]-'0' - 1;
|
||||
|
||||
//jff 4/11/98 prevent IDMUS00 in DOOMII and IDMUS36 or greater
|
||||
if (musnum < mus_runnin || ((buf[0]-'0')*10 + buf[1]-'0') > 35)
|
||||
if (musnum < mus_runnin || musnum >= NUMMUSIC)
|
||||
plyr->message = s_STSTR_NOMUS; // Ty 03/27/98 - externalized
|
||||
else
|
||||
{
|
||||
@ -334,7 +355,7 @@ static void cheat_mus(char *buf)
|
||||
musnum = mus_e1m1 + (buf[0]-'1')*9 + (buf[1]-'1');
|
||||
|
||||
//jff 4/11/98 prevent IDMUS0x IDMUSx0 in DOOMI and greater than introa
|
||||
if (buf[0] < '1' || buf[1] < '1' || ((buf[0]-'1')*9 + buf[1]-'1') > 31)
|
||||
if (musnum < mus_e1m1 || musnum >= mus_runnin)
|
||||
plyr->message = s_STSTR_NOMUS; // Ty 03/27/98 - externalized
|
||||
else
|
||||
{
|
||||
|
@ -827,25 +827,7 @@ void S_Start(void)
|
||||
if (gamemode == commercial)
|
||||
mnum = mus_runnin + WRAP(gamemap - 1, NUMMUSIC - mus_runnin);
|
||||
else
|
||||
{
|
||||
static const int spmus[] = // Song - Who? - Where?
|
||||
{
|
||||
mus_e3m4, // American e4m1
|
||||
mus_e3m2, // Romero e4m2
|
||||
mus_e3m3, // Shawn e4m3
|
||||
mus_e1m5, // American e4m4
|
||||
mus_e2m7, // Tim e4m5
|
||||
mus_e2m4, // Romero e4m6
|
||||
mus_e2m6, // J.Anderson e4m7 CHIRON.WAD
|
||||
mus_e2m5, // Shawn e4m8
|
||||
mus_e1m9 // Tim e4m9
|
||||
};
|
||||
|
||||
if(gameepisode < 4)
|
||||
mnum = mus_e1m1 + WRAP((gameepisode-1)*9 + gamemap-1, mus_runnin - mus_e1m1);
|
||||
else
|
||||
mnum = spmus[WRAP(gamemap-1, 9)];
|
||||
}
|
||||
}
|
||||
|
||||
// [crispy] reset musinfo data at the start of a new map
|
||||
@ -860,6 +842,36 @@ void S_Start(void)
|
||||
// allocates channel buffer, sets S_sfx lookup.
|
||||
//
|
||||
|
||||
static void InitE4Music (void)
|
||||
{
|
||||
int i, j;
|
||||
static const int spmus[] = // Song - Who? - Where?
|
||||
{
|
||||
mus_e3m4, // American e4m1
|
||||
mus_e3m2, // Romero e4m2
|
||||
mus_e3m3, // Shawn e4m3
|
||||
mus_e1m5, // American e4m4
|
||||
mus_e2m7, // Tim e4m5
|
||||
mus_e2m4, // Romero e4m6
|
||||
mus_e2m6, // J.Anderson e4m7 CHIRON.WAD
|
||||
mus_e2m5, // Shawn e4m8
|
||||
mus_e1m9 // Tim e4m9
|
||||
};
|
||||
|
||||
for (i = mus_e4m1, j = 0; i <= mus_e4m9; i++, j++)
|
||||
{
|
||||
musicinfo_t *music = &S_music[i];
|
||||
char namebuf[9];
|
||||
|
||||
sprintf(namebuf, "d_%s", music->name);
|
||||
|
||||
if (W_CheckNumForName(namebuf) == -1)
|
||||
{
|
||||
music->name = S_music[spmus[j]].name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void S_Init(int sfxVolume, int musicVolume)
|
||||
{
|
||||
//jff 1/22/98 skip sound init if sound not enabled
|
||||
@ -880,6 +892,9 @@ void S_Init(int sfxVolume, int musicVolume)
|
||||
|
||||
// no sounds are playing, and they are not mus_paused
|
||||
mus_paused = 0;
|
||||
|
||||
if (gamemode != commercial)
|
||||
InitE4Music();
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
@ -66,6 +66,15 @@ musicinfo_t S_music[] = {
|
||||
{ "e3m7", 0 },
|
||||
{ "e3m8", 0 },
|
||||
{ "e3m9", 0 },
|
||||
{ "e4m1", 0 },
|
||||
{ "e4m2", 0 },
|
||||
{ "e4m3", 0 },
|
||||
{ "e4m4", 0 },
|
||||
{ "e4m5", 0 },
|
||||
{ "e4m6", 0 },
|
||||
{ "e4m7", 0 },
|
||||
{ "e4m8", 0 },
|
||||
{ "e4m9", 0 },
|
||||
{ "inter", 0 },
|
||||
{ "intro", 0 },
|
||||
{ "bunny", 0 },
|
||||
|
@ -139,6 +139,15 @@ typedef enum {
|
||||
mus_e3m7,
|
||||
mus_e3m8,
|
||||
mus_e3m9,
|
||||
mus_e4m1,
|
||||
mus_e4m2,
|
||||
mus_e4m3,
|
||||
mus_e4m4,
|
||||
mus_e4m5,
|
||||
mus_e4m6,
|
||||
mus_e4m7,
|
||||
mus_e4m8,
|
||||
mus_e4m9,
|
||||
mus_inter,
|
||||
mus_intro,
|
||||
mus_bunny,
|
||||
|
Loading…
x
Reference in New Issue
Block a user