diff --git a/src/common/kernel/xmlreader.c b/src/common/kernel/xmlreader.c index 6f7ed5d00..bad1445ea 100644 --- a/src/common/kernel/xmlreader.c +++ b/src/common/kernel/xmlreader.c @@ -1405,6 +1405,7 @@ parse_spells(xmlDocPtr doc) xmlChar * propValue; int k; spell * sp = calloc(1, sizeof(spell)); + static int modes[] = { 0, PRECOMBATSPELL, COMBATSPELL, POSTCOMBATSPELL }; /* spellname */ propValue = xmlGetProp(node, BAD_CAST "name"); @@ -1442,6 +1443,8 @@ parse_spells(xmlDocPtr doc) if (xml_bvalue(node, "ocean", false)) sp->sptyp |= OCEANCASTABLE; if (xml_bvalue(node, "far", false)) sp->sptyp |= FARCASTING; if (xml_bvalue(node, "variable", false)) sp->sptyp |= SPELLLEVEL; + k = xml_ivalue(node, "combat", 0); + if (k>=0 && k<=3) sp->sptyp |= modes[k]; if (gamecode_enabled) { /* reading eressea/spells/spell/function */ diff --git a/src/res/e2k9/spells.xml b/src/res/e2k9/spells.xml index beeea5358..da4fba606 100644 --- a/src/res/e2k9/spells.xml +++ b/src/res/e2k9/spells.xml @@ -1,7 +1,7 @@ - + @@ -14,7 +14,7 @@ - + @@ -35,11 +35,11 @@ - + - + @@ -47,7 +47,7 @@ - + @@ -76,7 +76,7 @@ - + @@ -98,7 +98,7 @@ - + @@ -110,7 +110,7 @@ - + @@ -119,7 +119,7 @@ - + @@ -131,7 +131,7 @@ - + @@ -140,7 +140,7 @@ - + @@ -183,7 +183,7 @@ - + @@ -191,11 +191,11 @@ - + - + @@ -205,7 +205,7 @@ - + @@ -217,7 +217,7 @@ - + @@ -297,7 +297,7 @@ - + @@ -305,11 +305,11 @@ - + - + @@ -322,11 +322,11 @@ - + - + @@ -348,7 +348,7 @@ - + @@ -511,7 +511,7 @@ - + @@ -525,7 +525,7 @@ - + @@ -539,7 +539,7 @@ - + @@ -554,19 +554,19 @@ - + - + - + - + @@ -592,13 +592,13 @@ - + - + - + @@ -627,22 +627,22 @@ - + - + - + - + - + @@ -653,25 +653,25 @@ - + - + - + - + - + - + - +