--- deliantra/server/common/button.C 2006/08/29 17:29:27 1.3 +++ deliantra/server/common/button.C 2006/09/03 00:18:39 1.6 @@ -1,6 +1,6 @@ /* * static char *rcsid_button_c = - * "$Id: button.C,v 1.3 2006/08/29 17:29:27 elmex Exp $"; + * "$Id: button.C,v 1.6 2006/09/03 00:18:39 root Exp $"; */ /* @@ -176,11 +176,13 @@ { oblinkpt *obp = get_button_links (op); + if (!obp) + return; + if (INVOKE_MAP (TRIGGER, op->map, ARG_INT64(obp->value), ARG_INT(op->value))) return; - if (obp && obp->link) - activate_connection_link (obp->link, op->value, op); + activate_connection_link (obp->link, op->value, op); } /* @@ -197,7 +199,7 @@ return; oblinkpt *obp = get_connection_links (map, connection); - if (obp && obp->link) + if (obp) activate_connection_link (obp->link, state); } @@ -219,7 +221,7 @@ if (obp) for (ol = obp->link; ol; ol = ol->next) { if (!ol->ob || ol->ob->count != ol->id) { - LOG(llevDebug, "Internal error in update_button (%s).\n", op->name); + LOG(llevDebug, "Internal error in update_button (%s).\n", &op->name); continue; } tmp = ol->ob; @@ -282,7 +284,7 @@ for (ol = obp->link; ol; ol = ol->next) { if (!ol->ob || ol->ob->count != ol->id) { LOG(llevError, "Internal error in update_button (%s (%dx%d):%d, connected %ld).\n", - ol->ob?ol->ob->name:"null", + ol->ob?(const char *)ol->ob->name:"null", ol->ob?ol->ob->x:-1, ol->ob?ol->ob->y:-1, ol->id, @@ -340,8 +342,8 @@ && sacrifice->type != PLAYER) { if ((ARCH_SACRIFICE(altar) == sacrifice->arch->name || - ARCH_SACRIFICE(altar) == sacrifice->name || - ARCH_SACRIFICE(altar) == sacrifice->slaying || + ARCH_SACRIFICE(altar) == sacrifice->name || + ARCH_SACRIFICE(altar) == sacrifice->slaying || (!strcmp(ARCH_SACRIFICE(altar),query_base_name(sacrifice,0)))) && NROF_SACRIFICE(altar) <= (sacrifice->nrof?sacrifice->nrof:1)) return 1; @@ -556,7 +558,7 @@ return 1; default: - LOG(llevDebug, "Unknown trigger type: %s (%d)\n", op->name, op->type); + LOG(llevDebug, "Unknown trigger type: %s (%d)\n", &op->name, op->type); return 0; } } @@ -815,7 +817,7 @@ for (obp = map->buttons; obp; obp = obp->next) { for (ol=obp->link; ol; ol=ol->next) { if (ol->id!=ol->ob->count) - LOG(llevError,"verify_button_links: object %s on list is corrupt (%d!=%d)\n",ol->ob->name, ol->id, ol->ob->count); + LOG(llevError,"verify_button_links: object %s on list is corrupt (%d!=%d)\n", &ol->ob->name, ol->id, ol->ob->count); } } }