From 0e8d055d8bf7a6bb6c125b1ae1c0ca69042ffbd6 Mon Sep 17 00:00:00 2001 From: Simon Robertshaw Date: Tue, 12 Jun 2012 18:54:03 +0100 Subject: TPT: Fix the bug with stickman standing on the screen edge. d0a1b14409 diff --git a/src/simulation/elements/STKM.cpp b/src/simulation/elements/STKM.cpp index 772a3e5..0a8560a 100644 --- a/src/simulation/elements/STKM.cpp +++ b/src/simulation/elements/STKM.cpp @@ -74,6 +74,8 @@ int Element_STKM::graphics(GRAPHICS_FUNC_ARGS) return 1; } +#define INBOND(x, y) ((x)>=0 && (y)>=0 && (x)legs[8] += (playerp->legs[8]-parts[i].x)*d; playerp->legs[9] += (playerp->legs[9]-parts[i].y)*d; - if (!sim->eval_move(PT_DUST, playerp->legs[4], playerp->legs[5], NULL)) + if (INBOND(playerp->legs[4], playerp->legs[5]) && !sim->eval_move(PT_DUST, playerp->legs[4], playerp->legs[5], NULL)) { playerp->legs[4] = playerp->legs[6]; playerp->legs[5] = playerp->legs[7]; } - if (!sim->eval_move(PT_DUST, playerp->legs[12], playerp->legs[13], NULL)) + if (INBOND(playerp->legs[12], playerp->legs[13]) && !sim->eval_move(PT_DUST, playerp->legs[12], playerp->legs[13], NULL)) { playerp->legs[12] = playerp->legs[14]; playerp->legs[13] = playerp->legs[15]; } //This makes stick man "pop" from obstacles - if (!sim->eval_move(PT_DUST, playerp->legs[4], playerp->legs[5], NULL)) + if (INBOND(playerp->legs[4], playerp->legs[5]) && !sim->eval_move(PT_DUST, playerp->legs[4], playerp->legs[5], NULL)) { float t; t = playerp->legs[4]; playerp->legs[4] = playerp->legs[6]; playerp->legs[6] = t; t = playerp->legs[5]; playerp->legs[5] = playerp->legs[7]; playerp->legs[7] = t; } - if (!sim->eval_move(PT_DUST, playerp->legs[12], playerp->legs[13], NULL)) + if (INBOND(playerp->legs[12], playerp->legs[13]) && !sim->eval_move(PT_DUST, playerp->legs[12], playerp->legs[13], NULL)) { float t; t = playerp->legs[12]; playerp->legs[12] = playerp->legs[14]; playerp->legs[14] = t; @@ -540,4 +542,4 @@ void Element_STKM::STKM_init_legs(Simulation * sim, playerst* playerp, int i) } -Element_STKM::~Element_STKM() {} \ No newline at end of file +Element_STKM::~Element_STKM() {} -- cgit v0.9.2-21-gd62e