forked from github/server
make att_modification not crash when a good/bad dream curse has no magician.
This commit is contained in:
parent
a4bd4320e5
commit
b05c2564e5
2
clibs
2
clibs
|
@ -1 +1 @@
|
|||
Subproject commit f91ef37f08c5244bf616f1836c0aa9caaf36805c
|
||||
Subproject commit 27c8b3202b52766465743c3324fc0b52c5ba4b11
|
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0"?>
|
||||
<eressea xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
<xi:include href="config://core/messages.xml"/>
|
||||
<xi:include href="config://core/de/strings.xml"/>
|
||||
<xi:include href="config://core/en/strings.xml"/>
|
||||
<xi:include href="config://game/spellinfo.xml" />
|
||||
<xi:include href="config://default/names-undead.xml"/>
|
||||
<xi:include href="config://default/names-skeletons.xml"/>
|
||||
<xi:include href="config://default/names-zombies.xml"/>
|
||||
<xi:include href="config://default/names-ghouls.xml"/>
|
||||
<xi:include href="config://default/names-dragons.xml"/>
|
||||
</eressea>
|
|
@ -210,7 +210,7 @@ extern "C" {
|
|||
typedef struct curse {
|
||||
variant data; /* pointer auf spezielle curse-unterstructs */
|
||||
struct curse *nexthash;
|
||||
const curse_type *type; /* Zeiger auf ein curse_type-struct */
|
||||
const curse_type *type; /* Zeiger auf ein curse_type-struct */
|
||||
struct unit *magician; /* Pointer auf den Magier, der den Spruch gewirkt hat */
|
||||
double vigour; /* Stärke der Verzauberung, Widerstand gegen Antimagie */
|
||||
double effect;
|
||||
|
|
|
@ -1301,7 +1301,7 @@ static int att_modification(const unit * u, skill_t sk)
|
|||
while (a && a->type == &at_curse) {
|
||||
curse *c = (curse *)a->data.v;
|
||||
|
||||
if (curse_active(c) && c->type == gbdream_ct) {
|
||||
if (c->magician && curse_active(c) && c->type == gbdream_ct) {
|
||||
int effect = curse_geteffect_int(c);
|
||||
bool allied = alliedunit(c->magician, u->faction, HELP_GUARD);
|
||||
if (allied) {
|
||||
|
|
|
@ -4726,7 +4726,7 @@ static int sp_gbdreams(castorder * co, const char *curse_name, int effect)
|
|||
|
||||
/* Erfolg melden */
|
||||
ADDMSG(&mage->faction->msgs, msg_message("regionmagic_effect",
|
||||
"unit region command", c->magician, mage->region, co->order));
|
||||
"unit region command", mage, mage->region, co->order));
|
||||
|
||||
return cast_level;
|
||||
}
|
||||
|
@ -4867,7 +4867,7 @@ int sp_sweetdreams(castorder * co)
|
|||
effect = 0.05f;
|
||||
c = create_curse(mage, &u->attribs, ct_find("orcish"), power, duration, effect, men);
|
||||
|
||||
msg = msg_message("sp_sweetdreams_effect", "mage unit region", c->magician, u, r);
|
||||
msg = msg_message("sp_sweetdreams_effect", "mage unit region", mage, u, r);
|
||||
r_addmessage(r, mage->faction, msg);
|
||||
if (u->faction != mage->faction) {
|
||||
r_addmessage(r, u->faction, msg);
|
||||
|
@ -4892,7 +4892,7 @@ int sp_disturbingdreams(castorder * co)
|
|||
c = create_curse(mage, &r->attribs, ct_find("badlearn"), power, duration, effect, 0);
|
||||
|
||||
ADDMSG(&mage->faction->msgs, msg_message("sp_disturbingdreams_effect",
|
||||
"mage region", c->magician, r));
|
||||
"mage region", mage, r));
|
||||
return cast_level;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue