--- deliantra/server/common/anim.C 2008/05/06 16:55:25 1.30 +++ deliantra/server/common/anim.C 2009/09/17 01:57:31 1.31 @@ -130,27 +130,15 @@ * is facing. */ - if (NUM_FACINGS (op) == 2) - { - if (dir < 5) - base_state = 0; - else - base_state = NUM_ANIMATIONS (op) / 2; - } - else if (NUM_FACINGS (op) == 4) - { - if (dir == 0) - base_state = 0; - else - base_state = ((dir - 1) / 2) * (NUM_ANIMATIONS (op) / 4); - } - else if (NUM_FACINGS (op) == 8) - { - if (dir == 0) - base_state = 0; - else - base_state = (dir - 1) * (NUM_ANIMATIONS (op) / 8); - } + if (dir > 0) + switch (NUM_FACINGS (op)) + { + case 2: base_state = ((dir - 1) / (8 / 2)) * (NUM_ANIMATIONS (op) / 2); break; + case 4: base_state = ((dir - 1) / (8 / 4)) * (NUM_ANIMATIONS (op) / 4); break; + case 8: base_state = ((dir - 1) / (8 / 8)) * (NUM_ANIMATIONS (op) / 8); break; + } + else + base_state = 0; /* If beyond drawable states, reset */ if (op->state >= max_state)