From 8b1f947fd47ed20db392bc40e4db82cbc6d0ecb1 Mon Sep 17 00:00:00 2001 From: skyjake Date: Thu, 23 Jun 2011 17:01:54 +0300 Subject: [PATCH] Hexen: Fixed immediate plane moves The client was ignoring plane moves that happened with speed zero, meaning the move is supposed to happen immediately. This fixes the problem of e.g. windows not breaking in MAP01. --- doomsday/engine/portable/src/cl_world.c | 2 +- doomsday/plugins/jheretic/src/p_spec.c | 6 ++++++ doomsday/plugins/jhexen/src/p_acs.c | 7 +++++++ doomsday/plugins/jhexen/src/p_spec.c | 6 ++++++ 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/doomsday/engine/portable/src/cl_world.c b/doomsday/engine/portable/src/cl_world.c index dad0b94d23..4c27e003c4 100644 --- a/doomsday/engine/portable/src/cl_world.c +++ b/doomsday/engine/portable/src/cl_world.c @@ -245,7 +245,7 @@ void Cl_AddMover(uint sectornum, clmovertype_t type, float dest, float speed) dest, speed); #endif - if(speed == 0 || sectornum >= numSectors) + if(sectornum >= numSectors) return; // Remove any existing movers for the same plane. diff --git a/doomsday/plugins/jheretic/src/p_spec.c b/doomsday/plugins/jheretic/src/p_spec.c index f8749ce21b..6d64eb4764 100644 --- a/doomsday/plugins/jheretic/src/p_spec.c +++ b/doomsday/plugins/jheretic/src/p_spec.c @@ -432,6 +432,12 @@ void P_InitPicAnims(void) boolean P_ActivateLine(linedef_t *ld, mobj_t *mo, int side, int actType) { + if(IS_CLIENT) + { + // Clients do not activate lines. + return false; + } + switch(actType) { case SPAC_CROSS: diff --git a/doomsday/plugins/jhexen/src/p_acs.c b/doomsday/plugins/jhexen/src/p_acs.c index d032010f45..4bbdae1f38 100644 --- a/doomsday/plugins/jhexen/src/p_acs.c +++ b/doomsday/plugins/jhexen/src/p_acs.c @@ -359,6 +359,13 @@ boolean P_StartACS(int number, uint map, byte* args, mobj_t* activator, acs_t* script; aste_t* statePtr; +#ifdef _DEBUG + if(IS_CLIENT) + { + Con_Message("P_StartACS: Client is attempting to start a script!\n"); + } +#endif + NewScript = NULL; if(map && map-1 != gameMap) { // Script is not for the current map. diff --git a/doomsday/plugins/jhexen/src/p_spec.c b/doomsday/plugins/jhexen/src/p_spec.c index bce7008bf2..4ddd4727d2 100644 --- a/doomsday/plugins/jhexen/src/p_spec.c +++ b/doomsday/plugins/jhexen/src/p_spec.c @@ -614,6 +614,12 @@ boolean P_ActivateLine(linedef_t *line, mobj_t *mo, int side, int activationType boolean buttonSuccess; xline_t *xline = P_ToXLine(line); + if(IS_CLIENT) + { + // Clients do not activate lines. + return false; + } + lineActivation = GET_SPAC(xline->flags); if(lineActivation != activationType) return false;