diff --git a/docs/rh-log.txt b/docs/rh-log.txt index e171b1fade..1ba5fdf50b 100644 --- a/docs/rh-log.txt +++ b/docs/rh-log.txt @@ -1,4 +1,5 @@ August 14, 2008 (Changes by Graf Zahl) +- Fixed: The count parameter of A_Jump is a constant, not an expression. - Fixed: A_Jump used a wrong index into the jump address table. - Fixed: The recent changes in the DECORATE parser require the special parameter to A_CallSpecial to be an expression, not a constant. diff --git a/src/thingdef/thingdef.h b/src/thingdef/thingdef.h index 2b37662a45..0010cce96c 100644 --- a/src/thingdef/thingdef.h +++ b/src/thingdef/thingdef.h @@ -196,6 +196,8 @@ struct StateCallData #define ACTION_PARAM_START(count) +#define ACTION_PARAM_CONST(var, i) \ + int var = StateParameters[ParameterIndex+i]; #define ACTION_PARAM_INT(var, i) \ int var = EvalExpressionI(StateParameters[ParameterIndex+i], self); #define ACTION_PARAM_BOOL(var,i) \ diff --git a/src/thingdef/thingdef_codeptr.cpp b/src/thingdef/thingdef_codeptr.cpp index 2aa67bc367..5123064213 100644 --- a/src/thingdef/thingdef_codeptr.cpp +++ b/src/thingdef/thingdef_codeptr.cpp @@ -448,7 +448,7 @@ static void DoJump(AActor * self, FState * CallingState, int offset, StateCallDa DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_Jump) { ACTION_PARAM_START(3); - ACTION_PARAM_INT(count, 0); + ACTION_PARAM_CONST(count, 0); ACTION_PARAM_INT(maxchance, 1); ACTION_PARAM_VARARG(jumps, 2);