1
0
Fork 0
mirror of https://codeberg.org/noisytoot/notnotdnethack.git synced 2025-05-01 12:55:11 +01:00

Bugfix for Wards and Scroll of Warding

More flexibility for wished wards.

Scrolls of warding now detect if the TYPE of engraving currently on the square is wrong.
This commit is contained in:
Chris-plus-alphanumericgibberish 2014-02-12 13:25:17 -05:00
parent 3e95cb1a0a
commit cd56872298
2 changed files with 20 additions and 7 deletions

View file

@ -2563,7 +2563,9 @@ srch:
typ = SCR_WARD;
goto typfnd;
}
if(!strncmpi(actualn, "circle of acheron", 9)){
if(!strncmpi(actualn, "acheron", 7) ||
!strncmpi(actualn, "circle", 6) ||
!strncmpi(actualn, "circle of acheron", 17)){
acheron = TRUE;
typ = SCR_WARD;
goto typfnd;
@ -2578,7 +2580,8 @@ srch:
typ = SCR_WARD;
goto typfnd;
}
if(!strncmpi(actualn, "hamsa", 5)){
if(!strncmpi(actualn, "hamsa mark", 10) ||
!strncmpi(actualn, "hamsa", 5)){
hamsa = TRUE;
typ = SCR_WARD;
goto typfnd;
@ -2588,22 +2591,31 @@ srch:
typ = SCR_WARD;
goto typfnd;
}
if(!strncmpi(actualn, "elder elemental eye", 19)){
if(!strncmpi(actualn, "elder elemental eye", 19)
||!strncmpi(actualn, "elder eye", 9)
||!strncmpi(actualn, "elemental eye", 13)){
eye = TRUE;
typ = SCR_WARD;
goto typfnd;
}
if(!strncmpi(actualn, "sign of the scion queen mother", 30)){
if(!strncmpi(actualn, "sign of the scion queen mother", 30)\
||!strncmpi(actualn, "scion queen mother", 18)
||!strncmpi(actualn, "queen mother", 12)
||!strncmpi(actualn, "mother", 6)){
queen = TRUE;
typ = SCR_WARD;
goto typfnd;
}
if(!strncmpi(actualn, "cartouche of the cat lord", 25)){
if(!strncmpi(actualn, "cartouche of the cat lord", 25)
||!strncmpi(actualn, "cat lord", 8)
||!strncmpi(actualn, "cartouche", 9)){
cartouche = TRUE;
typ = SCR_WARD;
goto typfnd;
}
if(!strncmpi(actualn, "wings of garuda", 15)){
if(!strncmpi(actualn, "wings of garuda", 15)
||!strncmpi(actualn, "wings", 5)
||!strncmpi(actualn, "garuda", 6)){
garuda = TRUE;
typ = SCR_WARD;
goto typfnd;

View file

@ -1675,7 +1675,8 @@ struct obj *sobj;
engrHere->ward_type = BURN;
engrHere->complete_wards = 1;
}
else if(engrHere->ward_id != wardNum){
else if(engrHere->ward_id != wardNum
|| engrHere->ward_type != BURN){
engrHere->ward_id = wardNum;
engrHere->ward_type = BURN;
engrHere->complete_wards = sobj->blessed ?