Mercurial > hg > early-roguelike
annotate urogue/status.c @ 295:1e1c81fbb533
Rogue V5: fix elemental wands.
Bolts often failed to hit, due to some struct members not being
initialized.
Reported by 'LazyCat' from RogueTemple.
| author | John "Elwin" Edwards | 
|---|---|
| date | Fri, 12 Jan 2018 18:02:39 -0500 | 
| parents | c495a4f288c6 | 
| children | 
| rev | line source | 
|---|---|
| 256 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 1 /* | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 2 status.c - functions for complex status determination of monsters/objects | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 3 | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 4 UltraRogue: The Ultimate Adventure in the Dungeons of Doom | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 5 Copyright (C) 1992, 1993, 1995 Herb Chong | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 6 All rights reserved. | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 7 | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 8 See the file LICENSE.TXT for full copyright and licensing information. | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 9 */ | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 10 | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 11 #include "rogue.h" | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 12 | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 13 /* | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 14 has_defensive_spell() | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 15 has monster cast a defensive spell. | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 16 Any flags added here must also be in player_powers[]. | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 17 */ | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 18 | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 19 int | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 20 has_defensive_spell(struct thing th) | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 21 { | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 22 if (on(th, HASOXYGEN)) | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 23 return(TRUE); | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 24 if (on(th, CANFLY)) | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 25 return(TRUE); | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 26 if (on(th, CANINWALL)) | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 27 return(TRUE); | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 28 if (on(th, CANREFLECT)) | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 29 return(TRUE); | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 30 if (on(th, CANSEE)) | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 31 return(TRUE); | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 32 if (on(th, HASMSHIELD)) | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 33 return(TRUE); | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 34 if (on(th, HASSHIELD)) | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 35 return(TRUE); | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 36 if (on(th, ISHASTE)) | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 37 return(TRUE); | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 38 if (on(th, ISREGEN)) | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 39 return(TRUE); | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 40 if (on(th, ISDISGUISE)) | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 41 return(TRUE); | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 42 if (on(th, ISINVIS)) | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 43 return(TRUE); | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 44 if (on(th, NOCOLD)) | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 45 return(TRUE); | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 46 if (on(th, NOFIRE)) | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 47 return(TRUE); | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 48 if (on(th, ISELECTRIC)) | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 49 return(TRUE); | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 50 | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 51 return(FALSE); | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 52 } | 
