mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-01-30 21:20:54 +00:00
Merge branch 'music-cleanup' into musicplus-core
This commit is contained in:
commit
94393e759d
2 changed files with 35 additions and 15 deletions
|
@ -1839,6 +1839,7 @@ void T_ThwompSector(levelspecthink_t *thwomp)
|
||||||
#define ceilingwasheight vars[5]
|
#define ceilingwasheight vars[5]
|
||||||
fixed_t thwompx, thwompy;
|
fixed_t thwompx, thwompy;
|
||||||
sector_t *actionsector;
|
sector_t *actionsector;
|
||||||
|
ffloor_t *rover = NULL;
|
||||||
INT32 secnum;
|
INT32 secnum;
|
||||||
|
|
||||||
// If you just crashed down, wait a second before coming back up.
|
// If you just crashed down, wait a second before coming back up.
|
||||||
|
@ -1853,7 +1854,16 @@ void T_ThwompSector(levelspecthink_t *thwomp)
|
||||||
secnum = P_FindSectorFromTag((INT16)thwomp->vars[0], -1);
|
secnum = P_FindSectorFromTag((INT16)thwomp->vars[0], -1);
|
||||||
|
|
||||||
if (secnum > 0)
|
if (secnum > 0)
|
||||||
|
{
|
||||||
actionsector = §ors[secnum];
|
actionsector = §ors[secnum];
|
||||||
|
|
||||||
|
// Look for thwomp FFloor
|
||||||
|
for (rover = actionsector->ffloors; rover; rover = rover->next)
|
||||||
|
{
|
||||||
|
if (rover->master == thwomp->sourceline)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
return; // Bad bad bad!
|
return; // Bad bad bad!
|
||||||
|
|
||||||
|
@ -1942,10 +1952,13 @@ void T_ThwompSector(levelspecthink_t *thwomp)
|
||||||
{
|
{
|
||||||
mobj_t *mp = (void *)&actionsector->soundorg;
|
mobj_t *mp = (void *)&actionsector->soundorg;
|
||||||
|
|
||||||
if (thwomp->sourceline->flags & ML_EFFECT4)
|
if (!rover || (rover->flags & FF_EXISTS))
|
||||||
S_StartSound(mp, sides[thwomp->sourceline->sidenum[0]].textureoffset>>FRACBITS);
|
{
|
||||||
else
|
if (thwomp->sourceline->flags & ML_EFFECT4)
|
||||||
S_StartSound(mp, sfx_thwomp);
|
S_StartSound(mp, sides[thwomp->sourceline->sidenum[0]].textureoffset>>FRACBITS);
|
||||||
|
else
|
||||||
|
S_StartSound(mp, sfx_thwomp);
|
||||||
|
}
|
||||||
|
|
||||||
thwomp->direction = 1; // start heading back up
|
thwomp->direction = 1; // start heading back up
|
||||||
thwomp->distance = TICRATE; // but only after a small delay
|
thwomp->distance = TICRATE; // but only after a small delay
|
||||||
|
@ -1959,18 +1972,22 @@ void T_ThwompSector(levelspecthink_t *thwomp)
|
||||||
thinker_t *th;
|
thinker_t *th;
|
||||||
mobj_t *mo;
|
mobj_t *mo;
|
||||||
|
|
||||||
// scan the thinkers to find players!
|
if (!rover || (rover->flags & FF_EXISTS))
|
||||||
for (th = thinkercap.next; th != &thinkercap; th = th->next)
|
|
||||||
{
|
{
|
||||||
if (th->function.acp1 != (actionf_p1)P_MobjThinker)
|
// scan the thinkers to find players!
|
||||||
continue;
|
for (th = thinkercap.next; th != &thinkercap; th = th->next)
|
||||||
|
|
||||||
mo = (mobj_t *)th;
|
|
||||||
if (mo->type == MT_PLAYER && mo->health && mo->z <= thwomp->sector->ceilingheight
|
|
||||||
&& P_AproxDistance(thwompx - mo->x, thwompy - mo->y) <= 96*FRACUNIT)
|
|
||||||
{
|
{
|
||||||
thwomp->direction = -1;
|
if (th->function.acp1 != (actionf_p1)P_MobjThinker)
|
||||||
break;
|
continue;
|
||||||
|
|
||||||
|
mo = (mobj_t *)th;
|
||||||
|
if (mo->type == MT_PLAYER && mo->health && mo->player && !mo->player->spectator
|
||||||
|
&& mo->z <= thwomp->sector->ceilingheight
|
||||||
|
&& P_AproxDistance(thwompx - mo->x, thwompy - mo->y) <= 96*FRACUNIT)
|
||||||
|
{
|
||||||
|
thwomp->direction = -1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1592,14 +1592,17 @@ void S_ChangeMusicEx(const char *mmusic, UINT16 mflags, boolean looping, UINT32
|
||||||
S_StopMusic();
|
S_StopMusic();
|
||||||
|
|
||||||
if (!S_LoadMusic(newmusic))
|
if (!S_LoadMusic(newmusic))
|
||||||
|
{
|
||||||
|
CONS_Alert(CONS_ERROR, "Music %.6s could not be loaded!\n", newmusic);
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
music_flags = mflags;
|
music_flags = mflags;
|
||||||
music_looping = looping;
|
music_looping = looping;
|
||||||
|
|
||||||
if (!S_PlayMusic(looping, fadeinms))
|
if (!S_PlayMusic(looping, fadeinms))
|
||||||
{
|
{
|
||||||
CONS_Alert(CONS_ERROR, "Music cannot be played!\n");
|
CONS_Alert(CONS_ERROR, "Music %.6s could not be played!\n", newmusic);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue