From dd9c6e50c2463d3f0d17d3a354c987574d4e8b09 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Sun, 2 Oct 2005 07:33:21 +0000 Subject: [PATCH] Fixed a null-pointer crash in randenc. Dead code in economy removed. --- src/common/gamecode/economy.c | 9 --------- src/common/gamecode/randenc.c | 24 +++++++++++++----------- 2 files changed, 13 insertions(+), 20 deletions(-) diff --git a/src/common/gamecode/economy.c b/src/common/gamecode/economy.c index 2cbe0e518..57f61a642 100644 --- a/src/common/gamecode/economy.c +++ b/src/common/gamecode/economy.c @@ -1001,15 +1001,6 @@ gebaeude_stuerzt_ein(region * r, building * b) } } - /* Falls Karawanserei, Damm oder Tunnel einstürzen, wird die schon - * gebaute Straße zur Hälfte vernichtet */ - if (b->type == bt_find("caravan") || b->type == bt_find("dam") || b->type == bt_find("tunnel")) { - for (d=0;d!=MAXDIRECTIONS;++d) if (rroad(r, d) > 0) { - road = 1; - /* vernichtung findet erst in destroy_building statt! */ - break; - } - } msg = msg_message("buildingcrash", "region building opfer road", r, b, opfer, road); add_message(&r->msgs, msg); for (u=r->units; u; u=u->next) { diff --git a/src/common/gamecode/randenc.c b/src/common/gamecode/randenc.c index 943684f96..dee7f3a37 100644 --- a/src/common/gamecode/randenc.c +++ b/src/common/gamecode/randenc.c @@ -455,19 +455,21 @@ get_allies(region * r, unit * u) break; } - u_setfaction(newunit, u->faction); - set_racename(&newunit->attribs, get_racename(u->attribs)); - if(u->race->flags & RCF_SHAPESHIFT) { - newunit->irace = u->irace; - } - if (fval(u, UFL_PARTEITARNUNG)) fset(newunit, UFL_PARTEITARNUNG); - fset(newunit, UFL_ISNEW); + if (newunit!=NULL) { + u_setfaction(newunit, u->faction); + set_racename(&newunit->attribs, get_racename(u->attribs)); + if(u->race->flags & RCF_SHAPESHIFT) { + newunit->irace = u->irace; + } + if (fval(u, UFL_PARTEITARNUNG)) fset(newunit, UFL_PARTEITARNUNG); + fset(newunit, UFL_ISNEW); - sprintf(buf, "Plötzlich stolper%c %s über einige %s. Nach kurzem " - "Zögern entschließen sich die %s, sich Deiner Partei anzuschließen.", - u->number == 1 ? 't' : 'n', unitname(u), newunit->name, newunit->name); + sprintf(buf, "Plötzlich stolper%c %s über einige %s. Nach kurzem " + "Zögern entschließen sich die %s, sich Deiner Partei anzuschließen.", + u->number == 1 ? 't' : 'n', unitname(u), newunit->name, newunit->name); - addmessage(r, u->faction, buf, MSG_EVENT, ML_IMPORTANT); + addmessage(r, u->faction, buf, MSG_EVENT, ML_IMPORTANT); + } } static void