Add Polyobj_StopSound special

This commit is contained in:
Nikolay Ambartsumov 2020-11-26 12:48:03 +02:00 committed by Chronos Ouroboros
parent 4bcea0ab78
commit cf30982ddf
2 changed files with 17 additions and 3 deletions

View file

@ -271,6 +271,7 @@ DEFINE_SPECIAL(Floor_MoveToValueAndCrush, 279, 4, 5, 5)
DEFINE_SPECIAL(Ceiling_MoveToValueAndCrush, 280, 4, 5, 5)
DEFINE_SPECIAL(Line_SetAutomapFlags, 281, 3, 3, 3)
DEFINE_SPECIAL(Line_SetAutomapStyle, 282, 2, 2, 2)
DEFINE_SPECIAL(Polyobj_StopSound, 283, 1, 1, 1)
DEFINE_SPECIAL(Line_QuickPortal, 301, -1, -1, 1)

View file

@ -57,6 +57,7 @@
#include "g_levellocals.h"
#include "vm.h"
#include "p_destructible.h"
#include "s_sndseq.h"
// Remaps EE sector change types to Generic_Floor values. According to the Eternity Wiki:
/*
@ -234,6 +235,20 @@ FUNC(LS_Polyobj_Stop)
return EV_StopPoly (Level, arg0);
}
FUNC(LS_Polyobj_StopSound)
// Polyobj_StopSound (po)
{
FPolyObj *poly;
poly = Level->GetPolyobj(arg0);
if (poly != nullptr)
{
SN_StopSequence(poly);
}
return true;
}
FUNC(LS_Door_Close)
// Door_Close (tag, speed, lighttag)
{
@ -3813,8 +3828,7 @@ static lnSpecFunc LineSpecials[] =
/* 280 */ LS_Ceiling_MoveToValueAndCrush,
/* 281 */ LS_Line_SetAutomapFlags,
/* 282 */ LS_Line_SetAutomapStyle,
/* 283 */ LS_Polyobj_StopSound,
};
#define DEFINE_SPECIAL(name, num, min, max, mmax) {#name, num, min, max, mmax},
@ -3965,4 +3979,3 @@ DEFINE_ACTION_FUNCTION(FLevelLocals, ExecuteSpecial)
ACTION_RETURN_INT(P_ExecuteSpecial(self, special, linedef, activator, lineside, arg1, arg2, arg3, arg4, arg5));
}