--- deliantra/server/common/button.C 2018/11/17 23:39:59 1.74 +++ deliantra/server/common/button.C 2018/11/18 15:19:48 1.75 @@ -80,8 +80,8 @@ break; case T_HANDLE: - SET_ANIMATION (tmp, (tmp->value = tmp->stats.maxsp ? !state : state)); - update_object (tmp, UP_OBJ_FACE); + tmp->value = tmp->stats.maxsp ? !state : state; + tmp->update_anim_frame (tmp->value); break; case SIGN: @@ -102,16 +102,14 @@ case ALTAR: tmp->play_sound (tmp->sound ? tmp->sound : sound_find ("trigger_altar")); tmp->value = 1; - SET_ANIMATION (tmp, tmp->value); - update_object (tmp, UP_OBJ_FACE); + tmp->update_anim_frame (tmp->value); break; case BUTTON: case PEDESTAL: tmp->play_sound (tmp->sound ? tmp->sound : sound_find ("trigger_button")); tmp->value = state; - SET_ANIMATION (tmp, tmp->value); - update_object (tmp, UP_OBJ_FACE); + tmp->update_anim_frame (tmp->value); break; case MOOD_FLOOR: @@ -308,8 +306,7 @@ /* If this button hasn't changed, don't do anything */ if (op->value != old_value) { - SET_ANIMATION (op, op->value); - update_object (op, UP_OBJ_FACE); + op->update_anim_frame (op->value); push_button (op, originator); /* Make all other buttons the same */ } } @@ -330,10 +327,10 @@ void animate_turning (object *op) /* only one part objects */ { - if (++op->state >= NUM_ANIMATIONS (op) / 8) + if (++op->state >= op->anim_frames () / 8) op->state = 0; - SET_ANIMATION (op, (op->stats.sp - 1) * NUM_ANIMATIONS (op) / 8 + op->state); - update_object (op, UP_OBJ_FACE); + + op->update_anim_frame ((op->stats.sp - 1) * op->anim_frames () / 8 + op->state); } #define ARCH_SACRIFICE(xyz) ((xyz)->slaying) @@ -489,11 +486,7 @@ return 0; op->stats.ac = push; - if (NUM_ANIMATIONS (op) > 1) - { - SET_ANIMATION (op, push); - update_object (op, UP_OBJ_FACE); - } + op->update_anim_frame (push); if (in_movement || !push) return 0; @@ -524,14 +517,7 @@ return 0; op->stats.ac = push; - - if (NUM_ANIMATIONS (op) > 1) - { - SET_ANIMATION (op, push); - update_object (op, UP_OBJ_FACE); - } - - update_object (op, UP_OBJ_FACE); + op->update_anim_frame (push); if (in_movement || !push) return 0; @@ -548,11 +534,7 @@ if (operate_altar (op, &cause)) /* TODO: originator? */ { - if (NUM_ANIMATIONS (op) > 1) - { - SET_ANIMATION (op, 1); - update_object (op, UP_OBJ_FACE); - } + op->update_anim_frame (1); if (op->last_sp >= 0) { @@ -579,11 +561,7 @@ } else { - if (NUM_ANIMATIONS (op) > 1) - { - SET_ANIMATION (op, 0); - update_object (op, UP_OBJ_FACE); - } + op->update_anim_frame (0); /* If trigger_altar has "last_sp > 0" set on the map, * it will push the connected value only once per sacrifice. @@ -610,11 +588,7 @@ push = 1; } - if (NUM_ANIMATIONS (op) > 1) - { - SET_ANIMATION (op, push); - update_object (op, UP_OBJ_FACE); - } + op->update_anim_frame (push); trigger_move (op, push, cause); return 1;