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]