Announcement: Be excellent to each other.


Caravel Forum : DROD Boards : Bugs : Error beep when pushing Halph
New Topic New Poll Post Reply
Poster Message
Dragon Fogel
Level: Smitemaster
Rank Points: 2434
Registered: 06-21-2014
IP: Logged
icon Error beep when pushing Halph (+1)  
If Halph is heading for an orb and you push him into the tile he would have moved into, there's an error beep when he starts moving again. I'd check the error log for the message, but I don't remember what directory it's kept in.

I haven't noticed any particular side effects to this, it just beeps for some reason.
11-30-2020 at 12:16 AM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
Xindaris
Level: Smitemaster
Avatar
Rank Points: 1531
Registered: 06-13-2015
IP: Logged

File: hey i died.hold (810 bytes)
Downloaded 47 times.
License: Public Domain
icon Re: Error beep and death when pushing Halph (0)  
Uh, actually...
In this minimal test room, I found that not only is there an error beep and drod.err is empty, but HALPH DIES inexplicably on the turn after I push him to where he's trying to go anyway. Pushing him anywhere else seems to be fine, though?

____________________________
109th Skywatcher

Here are some links to Things!
Click here to view the secret text


[Last edited by Xindaris at 11-30-2020 01:17 AM]
11-30-2020 at 01:15 AM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
Dragon Fogel
Level: Smitemaster
Rank Points: 2434
Registered: 06-21-2014
IP: Logged
icon Re: Error beep when pushing Halph (0)  
I'm not getting the death. What are you doing, exactly?

Edit: Should note that I was testing in the latest release, not the alpha. Going to try this in the alpha and see if that makes a difference.

[Last edited by Dragon Fogel at 11-30-2020 01:26 AM]
11-30-2020 at 01:24 AM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
Xindaris
Level: Smitemaster
Avatar
Rank Points: 1531
Registered: 06-13-2015
IP: Logged
icon Re: Error beep when pushing Halph (0)  
Just grabbing the stick, bonking the door so halph will start moving toward the orb, then undo after I see where he's trying to go so I can use the stick to push him. Wait 1 turn for him to be un-stunned and voila, instant "Hey, I died".

I am running the absolutely most recent release candidate thing, so if you're on something older maybe the death is a result of one regression piling on top of an earlier regression? Or--I'm running it on windows, but I think you are too and it'd be really strange for this to be an OS difference.

____________________________
109th Skywatcher

Here are some links to Things!
Click here to view the secret text


[Last edited by Xindaris at 11-30-2020 01:26 AM]
11-30-2020 at 01:25 AM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
Dragon Fogel
Level: Smitemaster
Rank Points: 2434
Registered: 06-21-2014
IP: Logged
icon Re: Error beep when pushing Halph (+1)  
Yeah, okay, death is happening in the alpha build. So this must have somehow been introduced by some change.

I don't know which one, since all it involves is Halph and a staff. Maybe the bug causing the error beep in the old version is interacting with a change in a weird way? Something like, the game thinks Halph is moving into himself, and some change has somehow given Halph a bodykill.

(If that wild speculation is correct, I don't think it actually makes a difference otherwise if Halph has a bodykill, because he pathfinds around monsters anyways. The one exception is puffs, which kill him so bodykilling is irrelevant.)

[Last edited by Dragon Fogel at 11-30-2020 01:52 AM]
11-30-2020 at 01:50 AM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
mxvladi
Level: Smitemaster
Rank Points: 2505
Registered: 02-11-2008
IP: Logged
icon Re: Error beep when pushing Halph (+4)  
Dragon Fogel wrote:
Yeah, okay, death is happening in the alpha build. So this must have somehow been introduced by some change.

Apparently there was a change 17 days ago to fix assertion error thing - this one (well, it literally says "Fixed a bug where pushing a halph that's on his way could result on assertion beep if he was pushed onto his own calculated path"). For some reason the fix isn't listed in 5.1.1 changelist topic here.

It seems removing this check and not recalculating path lead to interesting results.

Assertion error in release version - the assert thrown by that one check from Halph file which is now skipped in the fix above:

Assertion error in line 470 of .\Halph.cpp: "wCol != this->wX || wRow != this->wY"


Assertion errors in 5.1.1 look more interesting:

Assertion error in line 2197 of Monster.cpp: "this->CanDaggerStep(pMonster->wType, false)"
Assertion error in line 2198 of Monster.cpp: "bIsStalwart(this->wType) || this->wType == M_GUARD || this->wType == M_SLAYER || this->wType == M_SLAYER2"
Assertion error in line 2201 of Monster.cpp: "room.KillMonster(pMonster, *pCueEvents, false, this)"
Assertion error in line 3406 of DbRooms.cpp: "this->pMonsterSquares[ARRAYINDEX(pMonster->wX,pMonster->wY)]==pMonster"
Assertion error in line 2197 of Monster.cpp: "this->CanDaggerStep(pMonster->wType, false)"
Assertion error in line 2198 of Monster.cpp: "bIsStalwart(this->wType) || this->wType == M_GUARD || this->wType == M_SLAYER || this->wType == M_SLAYER2"
Assertion error in line 2201 of Monster.cpp: "room.KillMonster(pMonster, *pCueEvents, false, this)"
Assertion error in line 3406 of DbRooms.cpp: "this->pMonsterSquares[ARRAYINDEX(pMonster->wX,pMonster->wY)]==pMonster"


I *guess* that game logic thinks that monster is occupying the same time as something else (namely, itself) and that causes room.KillMonster to kill it in some weird way?

EDIT: Also, it works the same way with Slayer (note: need to use stealthy role or a mimic with stick to test this properly) - in 5.1.1 if he planned out a path to an orb, you push him along his path and wait a turn - he dies. In this case it throws the following assertion errors:

Assertion error in line 2197 of Monster.cpp: "this->CanDaggerStep(pMonster->wType, false)"
Assertion error in line 3406 of DbRooms.cpp: "this->pMonsterSquares[ARRAYINDEX(pMonster->wX,pMonster->wY)]==pMonster"


In release version he throws the following assert:

Assertion error in line 532 of .\Monster.cpp: "wCol != this->wX || wRow != this->wY || this->wType == M_GENTRYII"


Seems to be only issue with Halph and Slayer when they go for orb.

[Last edited by mxvladi at 11-30-2020 08:17 AM]
11-30-2020 at 07:53 AM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
mrimer
Level: Legendary Smitemaster
Avatar
Rank Points: 5056
Registered: 02-04-2003
IP: Logged
icon Re: Error beep when pushing Halph (0)  
I merged a fix by hyperme (thank you!) to address this regression.

PR

____________________________
Gandalf? Yes... That's what they used to call me.
Gandalf the Grey. That was my name.
I am Gandalf the White.
And I come back to you now at the turn of the tide.
07-26-2021 at 08:12 PM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores This architect's holds Quote Reply
New Topic New Poll Post Reply
Caravel Forum : DROD Boards : Bugs : Error beep when pushing Halph
Surf To:


Forum Rules:
Can I post a new topic? No
Can I reply? No
Can I read? Yes
HTML Enabled? No
UBBC Enabled? Yes
Words Filter Enable? No

Contact Us | CaravelGames.com

Powered by: tForum tForumHacks Edition b0.98.8
Originally created by Toan Huynh (Copyright © 2000)
Enhanced by the tForumHacks team and the Caravel team.