Jump to content

A few bugs of SR (and also SRR) I


grodrigues

Recommended Posts

Doing a (long term) project to implement some of the changes of SRR to SR via patching and then some more of my own. The scaffolding is done, now is just the grinding. In the meantime, uncovered a few bugs in SR v4.18 as of stable release, that is, if any new commit fixed them in the meantime I missed it. I will add more as I uncover them, to this post or some other post.

- Mage Armor: protection from mage armor opcode has wrong target (preset instead of self) and power (3 instead of 1). Missing protections against ghost armor and spirit armor. For SRR: the last spell header was not deleted as documented.

- Glitterdust: Has protection against non-existent SPPR114F. The two protection from spell opcodes have duration 23 -- maybe needed for implementation quirks?

note(s); think I understand the duration 23. There is a cast spell opcode for precisely that spell delayed to 24, and you prolly need the protection until there to guarantee some stray glitterdust does not mess things up.

- Ghost Armor: Missing protections against mage armor and ghost armor.

- Wraith Form: blur (65) opcode has wrong power (2 instead of 3) and wrong dispel/bypass (0 instead of 1). Fixed duration of 1 turn instead of scaling as documented.

- Spirit Armor: protection from spell opcodes have power 3 instead of 4.

- Ice Armor: duration of movement rate opcode is 24 instead of 6. As I understand, the opcodes are applied once a round, as many rounds as dictated in the appropriate field of the projectile.

- Spell Thrust: trigger and explosion radius of projectile dvsplthr.pro do not coincide. Whether this is important or not I do not know.

- Fire Shield: duration of protection from spell opcodes (the ones protecting from insects) does not scale but remains at fixed 60 (checked only the first few headers). Also the range of the spell retaliating with fire damage is 6 -- isn't this 1 more or is it accounting for some engine quirk?

- MGoI: fixed 2 turn duration; documentation is 1 round / level. Repeated protection against fireball.

And another (because I am working on it right now and am on a roll):

- Secret Word: says it dispels Dispelling Screen but this does not seem correct, for it would need to apply a remove opcode by secondary type with sectype k1-dispel (or whatever its exact name is) and there is none. Other spell removal protections may suffer the same problem.

- Greater Malison: fixed 2 turn duration; documentation is 2 round / level. The "take an extra point of spell damage for each die rolled" is a -1 penalty to luck and +1 to thac0 (??).

Oh man, at this rate I got my work cut out for me...

For SRR only:

- skull trap: spurious Use EFF protecting against a non-existent spell.

Edited by grodrigues
Add spell thrust projectile. Fire Shield. MGoI. Secret Word. Wraith Form. Glitterdust
Link to post
10 hours ago, grodrigues said:

- Glitterdust: Has protection against non-existent SPPR114F.

Thanks.  This needs to be corrected in both spwi224.spl and sppr114.spl.

10 hours ago, grodrigues said:

Doing a (long term) project to implement some of the changes of SRR to SR via patching and then some more of my own. The scaffolding is done, now is just the grinding. In the meantime, uncovered a few bugs in SR v4.18 as of stable release, that is, if any new commit fixed them in the meantime I missed it. I will add more as I uncover them, to this post or some other post.

Any fixes that you can contribute to the GitHub repo would be appreciated.

Link to post
On 12/31/2019 at 9:52 AM, Endarire said:

Since you seem to be modifying spells, may we get an install option to allow skull trap to also affect Undead?

My project is to implement some of the SRR changes and then some on top of SR, by patching (not via NI or dltcep) -- because it is actually easier in most cases. But this is a long term project, which given how life rolls, will probably fizzle out. To give you an idea, I have gone over about 30 spells and have not gone past wizard level 4.

All this convoluted, and probably unncessary explanation, to say that no, I do not intend to add such an option. I can tell you how to do it yourself though, as it is pretty easy.

Link to post

Even if the project is not going to be fully completed, you have still done quite some work already (30 spells is no small amount).

Take heart and grind on... 😀

Link to post
On 12/30/2019 at 7:38 AM, grodrigues said:

- Mage Armor: For SRR: the last spell header was not deleted as documented.

- Spirit Armor: protection from spell opcodes have power 3 instead of 4.

For SRR only:

- skull trap: spurious Use EFF protecting against a non-existent spell.

These seemed to be the three that affected SRR. Thanks! However, the Skull Trap one is not a bug - it was implemented it as a failsafe. Essentially, the reason the immunizing .effs are specified twice, and once with a non-existent (spwi313d).spl defined, is that while spwi313d.spl does not exist by way of the main component, once you install the "AoE Spells Are Deflected" or whatever subcomponent, spwi313 outsources its effects to a newly created spwi313d. Indeed, I just tested this to make sure - I installed non-revised SR (with protections only against spwi313) and then the AoE Spell Deflection subcomponent, and then created some undead creatures and cast Skull Trap at them, and they were affected by the Skull Trap. So the double immunizations are unfortunately necessarily (and indeed, I had to implement a number of workarounds for this subcomponent, as it creates a number of issues in addition to it not affecting not as many spells as it should've because of said issues it creates that you have to account for and fix).

Edited by Bartimaeus
Link to post
Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...