mirror of
https://github.com/fabiangreffrath/woof.git
synced 2025-09-26 06:20:16 -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)
|
static void cheat_mus(char *buf)
|
||||||
{
|
{
|
||||||
int musnum;
|
int musnum;
|
||||||
|
mapentry_t* entry;
|
||||||
|
|
||||||
//jff 3/20/98 note: this cheat allowed in netgame/demorecord
|
//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
|
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)
|
if (gamemode == commercial)
|
||||||
{
|
{
|
||||||
musnum = mus_runnin + (buf[0]-'0')*10 + buf[1]-'0' - 1;
|
musnum = mus_runnin + (buf[0]-'0')*10 + buf[1]-'0' - 1;
|
||||||
|
|
||||||
//jff 4/11/98 prevent IDMUS00 in DOOMII and IDMUS36 or greater
|
//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
|
plyr->message = s_STSTR_NOMUS; // Ty 03/27/98 - externalized
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -334,7 +355,7 @@ static void cheat_mus(char *buf)
|
|||||||
musnum = mus_e1m1 + (buf[0]-'1')*9 + (buf[1]-'1');
|
musnum = mus_e1m1 + (buf[0]-'1')*9 + (buf[1]-'1');
|
||||||
|
|
||||||
//jff 4/11/98 prevent IDMUS0x IDMUSx0 in DOOMI and greater than introa
|
//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
|
plyr->message = s_STSTR_NOMUS; // Ty 03/27/98 - externalized
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -827,25 +827,7 @@ void S_Start(void)
|
|||||||
if (gamemode == commercial)
|
if (gamemode == commercial)
|
||||||
mnum = mus_runnin + WRAP(gamemap - 1, NUMMUSIC - mus_runnin);
|
mnum = mus_runnin + WRAP(gamemap - 1, NUMMUSIC - mus_runnin);
|
||||||
else
|
else
|
||||||
{
|
mnum = mus_e1m1 + WRAP((gameepisode-1)*9 + gamemap-1, mus_runnin - mus_e1m1);
|
||||||
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
|
// [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.
|
// 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)
|
void S_Init(int sfxVolume, int musicVolume)
|
||||||
{
|
{
|
||||||
//jff 1/22/98 skip sound init if sound not enabled
|
//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
|
// no sounds are playing, and they are not mus_paused
|
||||||
mus_paused = 0;
|
mus_paused = 0;
|
||||||
|
|
||||||
|
if (gamemode != commercial)
|
||||||
|
InitE4Music();
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
@ -66,6 +66,15 @@ musicinfo_t S_music[] = {
|
|||||||
{ "e3m7", 0 },
|
{ "e3m7", 0 },
|
||||||
{ "e3m8", 0 },
|
{ "e3m8", 0 },
|
||||||
{ "e3m9", 0 },
|
{ "e3m9", 0 },
|
||||||
|
{ "e4m1", 0 },
|
||||||
|
{ "e4m2", 0 },
|
||||||
|
{ "e4m3", 0 },
|
||||||
|
{ "e4m4", 0 },
|
||||||
|
{ "e4m5", 0 },
|
||||||
|
{ "e4m6", 0 },
|
||||||
|
{ "e4m7", 0 },
|
||||||
|
{ "e4m8", 0 },
|
||||||
|
{ "e4m9", 0 },
|
||||||
{ "inter", 0 },
|
{ "inter", 0 },
|
||||||
{ "intro", 0 },
|
{ "intro", 0 },
|
||||||
{ "bunny", 0 },
|
{ "bunny", 0 },
|
||||||
|
@ -139,6 +139,15 @@ typedef enum {
|
|||||||
mus_e3m7,
|
mus_e3m7,
|
||||||
mus_e3m8,
|
mus_e3m8,
|
||||||
mus_e3m9,
|
mus_e3m9,
|
||||||
|
mus_e4m1,
|
||||||
|
mus_e4m2,
|
||||||
|
mus_e4m3,
|
||||||
|
mus_e4m4,
|
||||||
|
mus_e4m5,
|
||||||
|
mus_e4m6,
|
||||||
|
mus_e4m7,
|
||||||
|
mus_e4m8,
|
||||||
|
mus_e4m9,
|
||||||
mus_inter,
|
mus_inter,
|
||||||
mus_intro,
|
mus_intro,
|
||||||
mus_bunny,
|
mus_bunny,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user