devilutionX icon indicating copy to clipboard operation
devilutionX copied to clipboard

Bug fixes from unofficial Hellfire 1.02.A5

Open AJenbo opened this issue 4 years ago • 22 comments

  • [ ] Monster Double Deaths: In MP games, monsters could die more than once, dropping duplicate items and granting extra experience
  • [x] Player Deadlock: Switching gear during combat could freeze your hero indefinitely
  • [ ] Portals Into Walls: In MP games, other players' portals could deposit you inside solid walls
  • [ ] Stone Curse: Quickly Stone Cursing a monster more than once, then leaving the floor stoned it permanently
  • [x] Service Menus: Item lists shown when getting services from Cain, Griswold and Adria didn't show uniques in gold text
  • [x] Fire Arrow Traps: Insanely high damage significantly reduced; beware though, they can still kill you if you're weakened
  • [x] Loading Screens: Most computers should now load into town or dungeons up to 3x faster
  • [ ] Shrines: No longer can your Magic be reduced to a negative value (Barbarians rejoice!)
  • [ ] Shrines: No permanent Life/Mana loss when a shrine tries to reduce your Magic or Vitality and it is already 0
  • [x] Monster Ranged Attacks: BEWARE! Most monsters previously couldn't hit you up close with arrows or spells; now they can
  • [x] Item stat overflow: Chance To Hit less than 0% could roll over to a positive value under 65536%
  • [ ] Item stat overflow: Armor Class less than 0 could roll over to a positive value under 256
  • [x] Block Bonus: Each class now gains its intended chance to block bonus (previously always ignored in Hellfire)
  • [ ] Doppelganger's: Cloning effect disabled in MP games due to sync issues and crashes
  • [x] of Peril: Now properly updates your Life Orb to show damage taken (previously only updated if you had Life Steal)
  • [ ] Quick Attack (Melee): Did not actually increase your attack speed; now it has the same effect as Fast Attack
  • [ ] Diablo: Now makes his death cry even if the ending cinematic is disabled
  • [ ] The Shredded: All 528 animation frames are now properly centered; were too far to the left
  • [ ] Resurrect: The spell sound effect was set incorrectly and would never play; now you'll hear it as intended
  • [ ] Rejuvenation Potion: A bug with the amount of Life and Mana restored for Monks and Bards has been fixed (50% more effective for each)
  • [ ] Rejuvenation Potion: No longer looks identical to Full Rejuvenation while on the ground; is now a dim gold, as seemed intended
  • [x] Long War Bow: Gains what appears to be its intended inventory graphic (previously looked identical to Long Battle Bow)
  • [x] Warlord of Blood Quest: Now enabled in Multiplayer, appearing in 33% of games (single player should be unaffected)
  • [ ] Warlord of Blood Quest: No Warlord speech in Multiplayer (his speech would not activate for all players, making him invincible to them)
  • [ ] Warlord of Blood Quest: Steel Tome dialogue does not replay every time you re-enter floor in Multiplayer - Warlord of Blood: Loses Lightning Immunity, gains Lightning Resistance (now the same as his lackeys)
  • Sir Gorash: Gains Fire Resistance, Lightning Resistance, and Magic Resistance
  • Na-Krul: Retains Fire Immunity, but Lightning and Magic immunities lowered to resistances
  • [ ] Devil Kin Brute: A missing walk animation that resulted in a sliding motion has been improved
  • [x] Footstep Sounds: Disabled since Hellfire's original release, the subtle sounds of your feet may now be heard once again

AJenbo avatar Mar 10 '21 00:03 AJenbo

Quick Attack (Melee): Did not actually increase your attack speed; now it has the same effect as Fast Attack

LMAO. What a terrible way to "fix" it 🤣

julealgon avatar Mar 10 '21 01:03 julealgon

Rejuvenation Potion: No longer looks identical to Full Rejuvenation while on the ground; is now a dim gold, as seemed intended Long War Bow: Gains what appears to be its intended inventory graphic (previously looked identical to Long Battle Bow)

Wait, are there separate CELs for those that are not used?

julealgon avatar Mar 10 '21 01:03 julealgon

Warlord of Blood: Loses Lightning Immunity, gains Lightning Resistance (now the same as his lackeys) Sir Gorash: Gains Fire Resistance, Lightning Resistance, and Magic Resistance Na-Krul: Retains Fire Immunity, but Lightning and Magic immunities lowered to resistances

These seem like completely arbitrary balance changes.

julealgon avatar Mar 10 '21 01:03 julealgon

of Peril: Now properly updates your Life Orb to show damage taken (previously only updated if you had Life Steal)

What? Can someone elaborate on this one a bit more?

julealgon avatar Mar 10 '21 01:03 julealgon

Monster Ranged Attacks: BEWARE! Most monsters previously couldn't hit you up close with arrows or spells; now they can

This is also news to me. What are we talking about here?

julealgon avatar Mar 10 '21 01:03 julealgon

Service Menus: Item lists shown when getting services from Cain, Griswold and Adria didn't show uniques in gold text

Interesting one. Simple, nice and consistent. I like it.

julealgon avatar Mar 10 '21 01:03 julealgon

Rejuvenation Potion: No longer looks identical to Full Rejuvenation while on the ground; is now a dim gold, as seemed intended Long War Bow: Gains what appears to be its intended inventory graphic (previously looked identical to Long Battle Bow)

Wait, are there separate CELs for those that are not used?

i think they are simply recoloring uring trn, but i have no idea :D

AJenbo avatar Mar 10 '21 10:03 AJenbo

Monster Ranged Attacks: BEWARE! Most monsters previously couldn't hit you up close with arrows or spells; now they can

This is also news to me. What are we talking about here?

i know hellfire change the missile spawn to be in front of monsters instead of on them, this was probably done to have the hawkdemon spawn goo balls next to itself, but this could be a consequence of it. it would also make missiles reach there targets ealer then in d1

AJenbo avatar Mar 10 '21 10:03 AJenbo

Player Deadlock: Switching gear during combat could freeze your hero indefinitely

This is also in Vanilla 1.09, and learned recently you can actually break out of this state, at least with Warrior. Spamming shift left click can eventually break you out, but I forget some of the details... I think you might not be able to break out with certain weapons, and it's easier with some other? I suspect there's a small window of frames where you can rescue yourself from this state.

NiteKat avatar Apr 04 '21 02:04 NiteKat

Player Deadlock: Switching gear during combat could freeze your hero indefinitely

This is also in Vanilla 1.09, and learned recently you can actually break out of this state, at least with Warrior. Spamming shift left click can eventually break you out, but I forget some of the details... I think you might not be able to break out with certain weapons, and it's easier with some other? I suspect there's a small window of frames where you can rescue yourself from this state.

Do you know exactly what time frame this has to happen in?

AJenbo avatar Apr 04 '21 02:04 AJenbo

Could you make it so if the player mode isn't stand then you can't remove gear?

galaxyhaxz avatar Apr 04 '21 02:04 galaxyhaxz

Could you make it so if the player mode isn't stand then you can't remove gear?

That would make the game a lot more clunky.

julealgon avatar Apr 04 '21 02:04 julealgon

Could also allow changing gear when walking, just not attacking or casting a spell.

galaxyhaxz avatar Apr 04 '21 02:04 galaxyhaxz

or blocking :D

qndel avatar Apr 04 '21 02:04 qndel

Isn't that the case already though?

julealgon avatar Apr 04 '21 03:04 julealgon

of Peril: Now properly updates your Life Orb to show damage taken (previously only updated if you had Life Steal)

What? Can someone elaborate on this one a bit more?

This probably has to do with the drawhpflag variable. I did a bit of investigation on this when working on the Mana Shield fixes.

Before the Mana Shield fixes, the logic for of Peril didn't set drawhpflag. https://github.com/diasurgical/devilutionX/blob/4c0581ca5edb8ed884200c2b7b7cab1663d84ca0/Source/player.cpp#L2518

You can see here how the logic for Life Steal does set that flag just a few lines down. https://github.com/diasurgical/devilutionX/blob/4c0581ca5edb8ed884200c2b7b7cab1663d84ca0/Source/player.cpp#L2545

Assuming I'm right about this being the cause, the Mana Shield fix would have solved this by setting drawhpflag any time the player's health changes. https://github.com/diasurgical/devilutionX/blob/4faf09c2df103597071a0d24cf4d0226b8400ed9/Source/player.cpp#L2048

Also note that if you were playing DevilutionX in a window wider than 640 pixels, you never would have seen this bug. When I was investigating drawhpflag, I stumbled upon the following conditional statement that leads to setting drawhpflag to true in every frame if your screen width is greater than the panel width. https://github.com/diasurgical/devilutionX/blob/4c0581ca5edb8ed884200c2b7b7cab1663d84ca0/Source/scrollrt.cpp#L1559

StephenCWills avatar Apr 22 '21 00:04 StephenCWills

We need to get rid of all these draw flags and just draw everything on every frame IMHO.

julealgon avatar Apr 22 '21 00:04 julealgon

It's a big hit to performance on small devices. RG300 runs at 27fps as is.

AJenbo avatar Apr 22 '21 00:04 AJenbo

I just tested a Scimitar of Peril in 640x480 window mode against builds before and after the Mana Shield fixes. I was able to reproduce the issue before the fixes, but not after. That corroborates the theory that drawhpflag is to blame.

StephenCWills avatar Apr 22 '21 02:04 StephenCWills

Marked "of Peril: Now properly updates your Life Orb to show damage taken (previously only updated if you had Life Steal)" as fixed.

AJenbo avatar Apr 22 '21 14:04 AJenbo

Fire Arrow Traps: Insanely high damage significantly reduced; beware though, they can still kill you if you're weakened

#1672

StephenCWills avatar Apr 24 '21 06:04 StephenCWills