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(Ceiling_MoveToValueAndCrush, 280, 4, 5, 5)
DEFINE_SPECIAL(Line_SetAutomapFlags, 281, 3, 3, 3) DEFINE_SPECIAL(Line_SetAutomapFlags, 281, 3, 3, 3)
DEFINE_SPECIAL(Line_SetAutomapStyle, 282, 2, 2, 2) DEFINE_SPECIAL(Line_SetAutomapStyle, 282, 2, 2, 2)
DEFINE_SPECIAL(Polyobj_StopSound, 283, 1, 1, 1)
DEFINE_SPECIAL(Line_QuickPortal, 301, -1, -1, 1) DEFINE_SPECIAL(Line_QuickPortal, 301, -1, -1, 1)

View file

@ -57,6 +57,7 @@
#include "g_levellocals.h" #include "g_levellocals.h"
#include "vm.h" #include "vm.h"
#include "p_destructible.h" #include "p_destructible.h"
#include "s_sndseq.h"
// Remaps EE sector change types to Generic_Floor values. According to the Eternity Wiki: // 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); 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) FUNC(LS_Door_Close)
// Door_Close (tag, speed, lighttag) // Door_Close (tag, speed, lighttag)
{ {
@ -3813,8 +3828,7 @@ static lnSpecFunc LineSpecials[] =
/* 280 */ LS_Ceiling_MoveToValueAndCrush, /* 280 */ LS_Ceiling_MoveToValueAndCrush,
/* 281 */ LS_Line_SetAutomapFlags, /* 281 */ LS_Line_SetAutomapFlags,
/* 282 */ LS_Line_SetAutomapStyle, /* 282 */ LS_Line_SetAutomapStyle,
/* 283 */ LS_Polyobj_StopSound,
}; };
#define DEFINE_SPECIAL(name, num, min, max, mmax) {#name, num, min, max, mmax}, #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)); ACTION_RETURN_INT(P_ExecuteSpecial(self, special, linedef, activator, lineside, arg1, arg2, arg3, arg4, arg5));
} }