Hello -
_laerta.d is not entirely sufficient for an analysis, because that quest has some flags that get set in other places.
_arkion.d does let you see what's going on. In a nutshell, BG1NPC is taking over these dialogs to such an extent that they are overriding the new BG2 journal behavior. In unmodified EasyTutu, here are the relevant states:
IF WEIGHT #0 ~NumberOfTimesTalkedTo(0)
~ THEN BEGIN 1 // from:
SAY #73313 /* ~I've got a dirty deed fer ya. How 'bout you go down into the sewers and bring me up a body. Now, I don't ask questions 'bout how you come 'bout them and I don't want any questions 'bout what I use 'em fer. Bring 'em to me when ya find 'em.~ */
IF ~~ THEN UNSOLVED_JOURNAL #73314 /* ~A corpse for Arkion
A necromancer named Arkion is in need of corpses, and has singled me out for the task of finding one. According to him, the sewers are the best place for that sort of thing. If I were to decide to procure one for him, I can find him again in a house just south of the Elfsong tavern.~ */ EXIT
END
IF WEIGHT #3 /* Triggers after states #: 3 5 even though they appear after this state */
~Global("HelpArkion","GLOBAL",0)
~ THEN BEGIN 2 // from:
SAY #73315 /* ~So, have ya got a few stiffs fer me?~ */
IF ~~ THEN EXIT
END
IF WEIGHT #1 ~PartyHasItem("_MISC80")
Global("HelpArkion","GLOBAL",0)
~ THEN BEGIN 3 // from:
SAY #73316 /* ~Ah, a ripe one. Ya've done well, there haven't ya. Here's 250 gp to relieve the stink of it all... Ah, Nemphre, I'll have that ring yet!~ */
IF ~~ THEN DO ~EraseJournalEntry(73314)
SetGlobal("HelpArkion","GLOBAL",1)
TakePartyItem("_MISC80")
GivePartyGold(250)
AddexperienceParty(1800)
~ SOLVED_JOURNAL #76992 /* ~A corpse for Arkion
I delivered a corpse to Arkion the necromancer, as requested. He rewarded me with some gold for my trouble.~ */ EXIT
END
In BG1NC, here's what the same dialog looks like:
IF WEIGHT #1 /* Triggers after states #: 7 even though they appear after this state */
~NumberOfTimesTalkedTo(0)
~ THEN BEGIN 1 // from:
SAY #85265 /* ~I've got a dirty deed fer ya. How 'bout you go down into the sewers and bring me up a body. Now, I don't ask questions 'bout how you come 'bout them and I don't want any questions 'bout what I use 'em fer. Bring 'em to me when ya find 'em.~ */
IF ~~ THEN UNSOLVED_JOURNAL #85266 /* ~A corpse for Arkion
A necromancer named Arkion is in need of corpses, and has singled me out for the task of finding one. According to him, the sewers are the best place for that sort of thing. If I were to decide to procure one for him, I can find him again in a house just south of the Elfsong tavern.~ */ EXIT
IF ~Global("X#ARKION1","GLOBAL",0)
InParty("faldorn")
InMyArea("faldorn")
!StateCheck("faldorn",CD_STATE_NOTVALID)
~ THEN DO ~SetGlobal("X#ARKION1","GLOBAL",1)~ EXTERN ~_FALDOJ~ 157
IF ~Global("X#ARKION1","GLOBAL",0)
InParty("faldorn")
InMyArea("faldorn")
!StateCheck("faldorn",CD_STATE_NOTVALID)
~ THEN DO ~SetGlobal("X#ARKION1","GLOBAL",1)~ EXTERN ~_FALDOJ~ 158
IF ~Global("X#ARKION1","GLOBAL",0)
InParty("viconia")
InMyArea("viconia")
!StateCheck("viconia",CD_STATE_NOTVALID)
~ THEN DO ~SetGlobal("X#ARKION1","GLOBAL",1)~ EXTERN ~_VICONJ~ 193
IF ~Global("X#ARKION1","GLOBAL",0)
InParty("viconia")
InMyArea("viconia")
!StateCheck("viconia",CD_STATE_NOTVALID)
~ THEN DO ~SetGlobal("X#ARKION1","GLOBAL",1)~ GOTO 10
IF ~Global("X#ARKION1","GLOBAL",0)
InParty("viconia")
InMyArea("viconia")
!StateCheck("viconia",CD_STATE_NOTVALID)
~ THEN DO ~SetGlobal("X#ARKION1","GLOBAL",1)~ EXTERN ~_VICONJ~ 195
IF ~Global("X#ARKION1","GLOBAL",0)
InParty("skie")
InMyArea("skie")
!StateCheck("skie",CD_STATE_NOTVALID)
~ THEN DO ~SetGlobal("X#ARKION1","GLOBAL",1)~ EXTERN ~_SKIEJ~ 191
IF ~Global("X#ARKION1","GLOBAL",0)
InParty("jaheira")
InMyArea("jaheira")
!StateCheck("jaheira",CD_STATE_NOTVALID)
~ THEN DO ~SetGlobal("X#ARKION1","GLOBAL",1)~ EXTERN ~_JAHEIJ~ 383
IF ~Global("X#ARKION1","GLOBAL",0)
InParty("edwin")
InMyArea("edwin")
!StateCheck("edwin",CD_STATE_NOTVALID)
~ THEN DO ~SetGlobal("X#ARKION1","GLOBAL",1)~ EXTERN ~_EDWINJ~ 167
IF ~Global("X#ARKION1","GLOBAL",0)
InParty("alora")
InMyArea("alora")
!StateCheck("alora",CD_STATE_NOTVALID)
~ THEN DO ~SetGlobal("X#ARKION1","GLOBAL",1)~ EXTERN ~_ALORAJ~ 118
END
IF WEIGHT #4 /* Triggers after states #: 3 5 7 even though they appear after this state */
~Global("HelpArkion","GLOBAL",0)
~ THEN BEGIN 2 // from:
SAY #85267 /* ~So, have ya got a few stiffs fer me?~ */
IF ~~ THEN EXIT
END
IF WEIGHT #2 /* Triggers after states #: 7 even though they appear after this state */
~Global("HelpArkion","GLOBAL",0)
PartyHasItem("_MISC80")
~ THEN BEGIN 3 // from:
SAY #85268 /* ~Ah, a ripe one. Ya've done well, there haven't ya. Here's 250 gp to relieve the stink of it all... Ah, Nemphre, I'll have that ring yet!~ */
IF ~PartyHasItem("_MISC80")
~ THEN DO ~SetGlobal("HelpArkion","GLOBAL",1)
TakePartyItem("_MISC79")
GivePartyGold(250)
AddexperienceParty(1800)
~ EXIT
IF ~Global("X#ARKION3","GLOBAL",0)
InParty("xzar")
InMyArea("xzar")
!StateCheck("xzar",CD_STATE_NOTVALID)
~ THEN DO ~SetGlobal("X#ARKION3","GLOBAL",1)~ GOTO 16
IF ~Global("X#ARKION3","GLOBAL",0)
InParty("xzar")
InMyArea("xzar")
!StateCheck("xzar",CD_STATE_NOTVALID)
~ THEN DO ~SetGlobal("X#ARKION3","GLOBAL",1)~ EXTERN ~_XZARJ~ 234
IF ~Global("X#ARKION3","GLOBAL",0)
InParty("quayle")
InMyArea("quayle")
!StateCheck("quayle",CD_STATE_NOTVALID)
~ THEN DO ~SetGlobal("X#ARKION3","GLOBAL",1)~ GOTO 18
IF ~Global("X#ARKION3","GLOBAL",0)
InParty("quayle")
InMyArea("quayle")
!StateCheck("quayle",CD_STATE_NOTVALID)
~ THEN DO ~SetGlobal("X#ARKION3","GLOBAL",1)~ EXTERN ~_QUAYLJ~ 45
END
Notice that all traces of the EraseJournalEntry and SOLVED_JOURNAL have been removed from the quest's ending transition in the BG1NPC version.
This same thing happened to me in my own test playthrough. The Aldeth / druid quest entry never got cleaned up because the BG1NPC Jaheira quest interjected itself. And I suspect that I would have seen even more of instances of this problem, but I was still coding as I was playtesting, and then applying the work to my playtest installation, effectively grafting the missing functionality from dialogs like the one above back onto them.