--- deliantra/server/common/button.C 2006/12/21 01:33:49 1.18 +++ deliantra/server/common/button.C 2006/12/25 11:25:49 1.19 @@ -37,8 +37,6 @@ void activate_connection_link (objectlink * ol, bool state, object *source = 0) { - object *tmp = 0; - for (; ol; ol = ol->next) { if (!ol->ob) @@ -57,7 +55,8 @@ if (QUERY_FLAG (ol->ob, FLAG_FREED)) return; - tmp = ol->ob; + + object *tmp = ol->ob; /* if the criteria isn't appropriate, don't do anything */ if (state && !QUERY_FLAG (tmp, FLAG_ACTIVATE_ON_PUSH)) @@ -67,90 +66,90 @@ switch (tmp->type) { - case GATE: - case HOLE: - tmp->value = tmp->stats.maxsp ? !state : state; - tmp->speed = 0.5; - update_ob_speed (tmp); - break; - - case CF_HANDLE: - SET_ANIMATION (tmp, (tmp->value = tmp->stats.maxsp ? !state : state)); - update_object (tmp, UP_OBJ_FACE); - break; + case GATE: + case HOLE: + tmp->value = tmp->stats.maxsp ? !state : state; + tmp->speed = 0.5; + update_ob_speed (tmp); + break; - case SIGN: - if (!tmp->stats.food || tmp->last_eat < tmp->stats.food) - { - new_info_map (NDI_UNIQUE | NDI_NAVY, tmp->map, tmp->msg); - if (tmp->stats.food) - tmp->last_eat++; - } - break; + case CF_HANDLE: + SET_ANIMATION (tmp, (tmp->value = tmp->stats.maxsp ? !state : state)); + update_object (tmp, UP_OBJ_FACE); + break; - case ALTAR: - tmp->value = 1; - SET_ANIMATION (tmp, tmp->value); - update_object (tmp, UP_OBJ_FACE); - break; - - case BUTTON: - case PEDESTAL: - tmp->value = state; - SET_ANIMATION (tmp, tmp->value); - update_object (tmp, UP_OBJ_FACE); - break; - - case MOOD_FLOOR: - do_mood_floor (tmp, source); - break; - - case TIMED_GATE: - tmp->speed = tmp->arch->clone.speed; - update_ob_speed (tmp); /* original values */ - tmp->value = tmp->arch->clone.value; - tmp->stats.sp = 1; - tmp->stats.hp = tmp->stats.maxhp; - /* Handle multipart gates. We copy the value for the other parts - * from the head - this ensures that the data will consistent - */ - for (tmp = tmp->more; tmp != NULL; tmp = tmp->more) - { - tmp->speed = tmp->head->speed; - tmp->value = tmp->head->value; - tmp->stats.sp = tmp->head->stats.sp; - tmp->stats.hp = tmp->head->stats.hp; - update_ob_speed (tmp); - } - break; + case SIGN: + if (!tmp->stats.food || tmp->last_eat < tmp->stats.food) + { + new_info_map (NDI_UNIQUE | NDI_NAVY, tmp->map, tmp->msg); + if (tmp->stats.food) + tmp->last_eat++; + } + break; - case DIRECTOR: - case FIREWALL: - if (!QUERY_FLAG (tmp, FLAG_ANIMATE) && tmp->type == FIREWALL) - move_firewall (tmp); - else - { - if ((tmp->stats.sp += tmp->stats.maxsp) > 8) /* next direction */ - tmp->stats.sp = ((tmp->stats.sp - 1) % 8) + 1; - animate_turning (tmp); - } - break; + case ALTAR: + tmp->value = 1; + SET_ANIMATION (tmp, tmp->value); + update_object (tmp, UP_OBJ_FACE); + break; + + case BUTTON: + case PEDESTAL: + tmp->value = state; + SET_ANIMATION (tmp, tmp->value); + update_object (tmp, UP_OBJ_FACE); + break; - case TELEPORTER: - move_teleporter (tmp); - break; - - case CREATOR: - move_creator (tmp); - break; - - case TRIGGER_MARKER: - move_marker (tmp); - break; - - case DUPLICATOR: - move_duplicator (tmp); - break; + case MOOD_FLOOR: + do_mood_floor (tmp, source); + break; + + case TIMED_GATE: + tmp->speed = tmp->arch->clone.speed; + update_ob_speed (tmp); /* original values */ + tmp->value = tmp->arch->clone.value; + tmp->stats.sp = 1; + tmp->stats.hp = tmp->stats.maxhp; + /* Handle multipart gates. We copy the value for the other parts + * from the head - this ensures that the data will consistent + */ + for (tmp = tmp->more; tmp != NULL; tmp = tmp->more) + { + tmp->speed = tmp->head->speed; + tmp->value = tmp->head->value; + tmp->stats.sp = tmp->head->stats.sp; + tmp->stats.hp = tmp->head->stats.hp; + update_ob_speed (tmp); + } + break; + + case DIRECTOR: + case FIREWALL: + if (!QUERY_FLAG (tmp, FLAG_ANIMATE) && tmp->type == FIREWALL) + move_firewall (tmp); + else + { + if ((tmp->stats.sp += tmp->stats.maxsp) > 8) /* next direction */ + tmp->stats.sp = ((tmp->stats.sp - 1) % 8) + 1; + animate_turning (tmp); + } + break; + + case TELEPORTER: + move_teleporter (tmp); + break; + + case CREATOR: + move_creator (tmp); + break; + + case TRIGGER_MARKER: + move_marker (tmp); + break; + + case DUPLICATOR: + move_duplicator (tmp); + break; } } } @@ -611,17 +610,16 @@ LOG (llevError, "Tried to add button-link without map.\n"); return; } - if (!editor) - button->path_attuned = connected; /* peterm: I need this so I can rebuild - a connected map from a template map. */ -/* LOG(llevDebug,"adding button %s (%d)\n", button->name, connected);*/ + button->path_attuned = connected; /* peterm: I need this so I can rebuild + a connected map from a template map. */ SET_FLAG (button, FLAG_IS_LINKED); ol->ob = button; - for (obp = map->buttons; obp && obp->value != connected; obp = obp->next); + for (obp = map->buttons; obp && obp->value != connected; obp = obp->next) + ; if (obp) {