forked from github/server
fixing crashes from triggers
This commit is contained in:
parent
4988d0f425
commit
fe841cd3c0
7 changed files with 43 additions and 49 deletions
|
@ -46,7 +46,7 @@ clonedied_handle(trigger * t, void * data)
|
|||
{
|
||||
/* destroy the unit */
|
||||
unit * u = (unit*)t->data.v;
|
||||
if (u!=NULL) {
|
||||
if (u) {
|
||||
attrib *a = a_find(u->attribs, &at_clone);
|
||||
if(a) a_remove(&u->attribs, a);
|
||||
} else
|
||||
|
|
|
@ -69,7 +69,7 @@ createcurse_handle(trigger * t, void * data)
|
|||
* data.v -> ( variant event, int timer )
|
||||
*/
|
||||
createcurse_data * td = (createcurse_data*)t->data.v;
|
||||
if (td->mage!=NULL && td->target!=NULL) {
|
||||
if (td->mage && td->target && td->mage->number && td->target->number) {
|
||||
variant var;
|
||||
var.i = td->effect;
|
||||
create_curse(td->mage, &td->target->attribs,
|
||||
|
|
|
@ -44,7 +44,7 @@ gate_handle(trigger * t, void * data)
|
|||
struct building * b = gd->gate;
|
||||
struct region * r = gd->target;
|
||||
|
||||
if (b && r) {
|
||||
if (b && b->region && r) {
|
||||
unit ** up = &b->region->units;
|
||||
while (*up) {
|
||||
unit * u = *up;
|
||||
|
|
|
@ -62,7 +62,7 @@ giveitem_handle(trigger * t, void * data)
|
|||
* data.v -> ( variant event, int timer )
|
||||
*/
|
||||
giveitem_data * td = (giveitem_data*)t->data.v;
|
||||
if (td->u!=NULL) {
|
||||
if (td->u && td->u->number) {
|
||||
i_change(&td->u->items, td->itype, td->number);
|
||||
} else {
|
||||
log_error(("could not perform giveitem::handle()\n"));
|
||||
|
|
|
@ -60,14 +60,12 @@ removecurse_handle(trigger * t, void * data)
|
|||
* data.v -> ( variant event, int timer )
|
||||
*/
|
||||
removecurse_data * td = (removecurse_data*)t->data.v;
|
||||
if (td->curse!=NULL && td->target!=NULL) {
|
||||
if (td->curse && td->target) {
|
||||
attrib * a = a_select(td->target->attribs, td->curse, cmp_curse);
|
||||
if (a) {
|
||||
a_remove(&td->target->attribs, a);
|
||||
}
|
||||
else log_error(("could not perform removecurse::handle()\n"));
|
||||
} else {
|
||||
log_error(("could not perform removecurse::handle()\n"));
|
||||
}
|
||||
unused(data);
|
||||
return 0;
|
||||
|
|
|
@ -90,10 +90,8 @@ shock_handle(trigger * t, void * data)
|
|||
{
|
||||
/* destroy the unit */
|
||||
unit * u = (unit*)t->data.v;
|
||||
if (u!=NULL) {
|
||||
if (u && u->number) {
|
||||
do_shock(u, "trigger");
|
||||
} else {
|
||||
log_error(("could not perform shock::handle()\n"));
|
||||
}
|
||||
unused(data);
|
||||
return 0;
|
||||
|
|
|
@ -63,11 +63,9 @@ unitmessage_handle(trigger * t, void * data)
|
|||
* data.v -> ( variant event, int timer )
|
||||
*/
|
||||
unitmessage_data * td = (unitmessage_data*)t->data.v;
|
||||
if (td->target!=NULL) {
|
||||
if (td->target && td->target->no) {
|
||||
struct faction * f = td->target->faction;
|
||||
addmessage(td->target->region, f, LOC(f->locale, td->string), td->type, td->level);
|
||||
} else {
|
||||
log_error(("could not perform unitmessage::handle()\n"));
|
||||
}
|
||||
unused(data);
|
||||
return 0;
|
||||
|
|
Loading…
Reference in a new issue