diff options
Diffstat (limited to 'src/hexen/p_map.c')
-rw-r--r-- | src/hexen/p_map.c | 12 |
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; |