bool DarkMoonEngine::killMonsterExtra(EoBMonsterInPlay *m) { if (_currentLevel == 16 && _currentSub == 1 && (_monsterProps[m->type].capsFlags & 4)) { if (m->type) { _playFinale = true; _runFlag = false; delay(850); } else { m->hitPointsCur = 150; m->curRemoteWeapon = 0; m->numRemoteAttacks = 255; m->shpIndex++; m->type++; seq_dranDragonTransformation(); } return false; } return true; }
bool DarkMoonEngine::killMonsterExtra(EoBMonsterInPlay *m) { // WORKAROUND for bug #3611077 (see DarkMoonEngine::replaceMonster()) // The mindflayers have monster type 0, just like Dran. Using a monster slot occupied by a mindflayer would trigger the dragon transformation // sequence when all 30 monster slots are used up. We avoid this by checking for m->sub == 1. if (_currentLevel == 16 && _currentSub == 1 && m->sub == 1 && (_monsterProps[m->type].capsFlags & 4)) { if (m->type) { _playFinale = true; _runFlag = false; delay(850); } else { m->hitPointsCur = 150; m->curRemoteWeapon = 0; m->numRemoteAttacks = 255; m->shpIndex++; m->type++; seq_dranDragonTransformation(); } return false; } return true; }