diff --git a/Source/monster.cpp b/Source/monster.cpp index d83b8e8e4..1e080efa7 100644 --- a/Source/monster.cpp +++ b/Source/monster.cpp @@ -5269,7 +5269,11 @@ void MAI_Lazurus(int i) MonsterStruct *Monst; if ((DWORD)i >= MAXMONSTERS) +#ifdef HELLFIRE + return; +#else app_fatal("MAI_Lazurus: Invalid monster %d", i); +#endif Monst = &monster[i]; if (monster[i]._mmode != MM_STAND) { @@ -5281,7 +5285,7 @@ void MAI_Lazurus(int i) md = M_GetDir(i); if (dFlags[mx][my] & BFLAG_VISIBLE) { if (gbMaxPlayers == 1) { - if (Monst->mtalkmsg == TEXT_VILE13 && Monst->_mgoal == MGOAL_INQUIRING && plr[myplr]._px == TEXT_VILE13 && plr[myplr]._py == 46) { + if (Monst->mtalkmsg == TEXT_VILE13 && Monst->_mgoal == MGOAL_INQUIRING && plr[myplr]._px == 35 && plr[myplr]._py == 46) { PlayInGameMovie("gendata\\fprst3.smk"); Monst->_mmode = MM_TALK; quests[Q_BETRAYER]._qvar1 = 5; @@ -5291,10 +5295,10 @@ void MAI_Lazurus(int i) if (Monst->mtalkmsg == TEXT_VILE13 && !effect_is_playing(USFX_LAZ1) && Monst->_mgoal == MGOAL_TALKING) { ObjChangeMapResync(1, 18, 20, 24); RedoPlayerVision(); - Monst->_msquelch = UCHAR_MAX; - Monst->mtalkmsg = 0; quests[Q_BETRAYER]._qvar1 = 6; Monst->_mgoal = MGOAL_NORMAL; + Monst->_msquelch = UCHAR_MAX; + Monst->mtalkmsg = 0; } #endif } @@ -5305,7 +5309,9 @@ void MAI_Lazurus(int i) } if (Monst->_mgoal == MGOAL_NORMAL || Monst->_mgoal == MGOAL_RETREAT || Monst->_mgoal == MGOAL_MOVE) { +#ifndef HELLFIRE Monst->mtalkmsg = 0; +#endif MAI_Counselor(i); }