summaryrefslogtreecommitdiff
path: root/src/hexen/p_map.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/hexen/p_map.c')
-rw-r--r--src/hexen/p_map.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/hexen/p_map.c b/src/hexen/p_map.c
index c8172555..11aa23e0 100644
--- a/src/hexen/p_map.c
+++ b/src/hexen/p_map.c
@@ -2003,6 +2003,7 @@ static boolean PuzzleActivated;
boolean PTR_PuzzleItemTraverse(intercept_t * in)
{
mobj_t *mobj;
+ byte args[3];
int sound;
if (in->isaline)
@@ -2045,8 +2046,14 @@ boolean PTR_PuzzleItemTraverse(intercept_t * in)
{ // Item type doesn't match
return false;
}
- P_StartACS(in->d.line->arg2, 0, &in->d.line->arg3,
- PuzzleItemUser, in->d.line, 0);
+
+ // Construct an args[] array that would contain the values from
+ // the line that would be passed by Vanilla Hexen.
+ args[0] = in->d.line->arg3;
+ args[1] = in->d.line->arg4;
+ args[2] = in->d.line->arg5;
+
+ P_StartACS(in->d.line->arg2, 0, args, PuzzleItemUser, in->d.line, 0);
in->d.line->special = 0;
PuzzleActivated = true;
return false; // Stop searching
@@ -2061,6 +2068,7 @@ boolean PTR_PuzzleItemTraverse(intercept_t * in)
{ // Item type doesn't match
return true;
}
+
P_StartACS(mobj->args[1], 0, &mobj->args[2], PuzzleItemUser, NULL, 0);
mobj->special = 0;
PuzzleActivated = true;