jastey Posted May 15, 2020 Share Posted May 15, 2020 9 minutes ago, DavidW said: I’m not moving existing dialog states. Iylos interjects into dialog states that are added by Ascension. Ah, gotcha. I would just use STATE_WHICH_SAYS to identify the state numbers in case that suffices. Quote Link to comment
jastey Posted May 15, 2020 Share Posted May 15, 2020 Just another thought: It would also be possible to move Iylos' crossmod content into the Crossmod Banter Pack. This way, you wouldn't have to deal with it in Ascension at all. Quote Link to comment
DavidW Posted May 15, 2020 Author Share Posted May 15, 2020 1 hour ago, jastey said: Ah, gotcha. I would just use STATE_WHICH_SAYS to identify the state numbers in case that suffices. Does STATE_WHICH_SAYS work here? The dialog lines are Ascension-added, after all: Iylos won't know which they are. I guess you could parse Ascension's tra files, but that's getting messy, particularly when non-English installs are allowed for. I may be missing something here; STATE_WHICH_SAYS isn't something I use much. In a moment I'll do a separate thread on how I'm currently managing interjections into Ascension; if it turns out there's a better method, I'd be happy to hear about it. As for Crossmod - it's of course up to you as Iylos's maintainer, but my inclination is not to - I don't think people think of Ascension as an NPC mod (and it isn't, really: it's just that Balthazar functions a bit like an NPC for the purposes of the final Solar conversation). As and when Iylos handles Ascension correctly, I'd be inclined to enforce the Ascension->Iylos install order, by telling Ascension not to install if Iylos is there already. Quote Link to comment
vanatos Posted May 15, 2020 Share Posted May 15, 2020 9 hours ago, jastey said: Unless Imoen Romance gets installed before any NPC mods you will never be able to catch all of them. Would be recoding so that Imoen says her first original line and then romance added content would play an option for you? This is what I did for Edwin Romance (and also Keldorn): For the Finsol01 intrjections, he says his first original line. Then, in romance case, I do INTERJECT with the romance stuff and at the end COPY_TRANS edwin25J xx (xx being his original interjection state so the other interjections can go on as they would originally). This way, I do not have to worry about other NPC mods installed before the romance mods and having wrong transitions in their dialogues I will never be able to catch and change. The finsol01 dialogue branch gets very simple because it doesn't interest me at all, I add Edwin's Romance content to Edwin25J and am done with it! And also, it ensures that all other NPCs get to say their piece, as well, because not using COPY_TRANS would lead to new added NPCs being skipped. Unfortunately i am not the dialogue writer for the mod, and he is 'retired' now and doing this would require significant rewrite of that portion. I am not too bothered by this problem for new NPC'S, as its been a long-standing tradition to install new npc mods last and if they do inerject_tran_copy it will work. Quote Link to comment
DavidW Posted May 16, 2020 Author Share Posted May 16, 2020 On Imoen romance compatibility: The problem is that as currently coded, Imoen romance needs to redirect Imoen redirections to new blocks: block 15 gets redirected to 'FD', blocks 18 and 19 get redirected to 'finalbreak'. I would be inclined to repurpose those hardcoded numbers for the new blocks instead: that is, in FinalConversation.d, I'd do Quote REPLACE imoen25j IF ~~ THEN 15 SAY ~<CHARNAME>...~ [IRDusk] IF ~!Global("ImoenRomanceActive","GLOBAL",2) OR(2) Global("ImoenRomanceActive","GLOBAL",3) !Global("IRTBhaalImoen","GLOBAL",1)~ THEN GOTO imoen_15_old IF ~Global("ImoenRomanceActive","GLOBAL",2) Global("IRTImoenWarnedAboutLeaving","GLOBAL",1) !GlobalLT("IRTLoveMeter","GLOBAL",7)~ THEN GOTO FDWarned // Imoen was warned about the player probably leaving IF ~Global("ImoenRomanceActive","GLOBAL",2) !Global("IRTImoenWarnedAboutLeaving","GLOBAL",1) !GlobalLT("IRTLoveMeter","GLOBAL",7)~ THEN GOTO FDUnwarned // Imoen wasn't warned IF ~Global("ImoenRomanceActive","GLOBAL",2) !Global("IRTBhaalImoen","GLOBAL",1) GlobalLT("IRTLoveMeter","GLOBAL",7)~ THEN DO ~SetGlobal("IRTEpBreakup","GLOBAL",1) SetGlobal("ImoenRomanceActive","GLOBAL",5)~ GOTO FDBreakup // Love meter is too low, Imoen breaks up with the player IF ~!Global("ImoenRomanceActive","GLOBAL",2) !Global("ImoenRomanceActive","GLOBAL",3) Global("IRTBhaalImoen","GLOBAL",1)~ THEN DO ~SetGlobal("IRTCorruptProposal","GLOBAL",1)~ GOTO FDCorrupt // Imoen isn't romanced but the player corrupted her END IF ~~ THEN 18 SAY ~Wow.~ // Imoen not romanced, not corrupt (Vanilla responses - since priority is given from bottom to top, these will only be followed if none of the stuff below is met) IF ~Global("PlayerChoseEssence","GLOBAL",1) Global("ImoenRomanceActive","GLOBAL",0)~ GOTO imoen_18_old IF ~Global("PlayerChoseEssence","GLOBAL",0) Global("ImoenRomanceActive","GLOBAL",0)~ GOTO imoen_19_old <everything else in the current 'finalbreak' script block> END IF ~~ THEN 19 <exact copy of the '18' block> END Then, in the APPEND bit, you also include Quote IF ~~ THEN imoen_15_old SAY #67917 IF ~~ THEN GOTO 16 END IF ~~ THEN imoen_18_old SAY #68088 IF ~True()~ THEN EXTERN ~FINSOL01~ 33 IF ~IsValidForPartyDialog("Valygar") Global("ValygarRomanceActive","GLOBAL",2)~ THEN EXTERN ~VALYG25J~ 11 IF ~IsValidForPartyDialog("Anomen") Global("AnomenRomanceActive","GLOBAL",2)~ THEN EXTERN ~ANOME25J~ 20 IF ~IsValidForPartyDialog("Viconia") Global("ViconiaRomanceActive","GLOBAL",2)~ THEN EXTERN ~VICON25J~ 18 IF ~IsValidForPartyDialog("Aerie") Global("AerieRomanceActive","GLOBAL",2)~ THEN EXTERN ~AERIE25J~ 20 IF ~IsValidForPartyDialog("Jaheira") Global("JaheiraRomanceActive","GLOBAL",2)~ THEN EXTERN ~JAHEI25J~ 18 END IF ~~ THEN imoen_19_old SAY #68091 IF ~~ THEN GOTO 20 END (These are just renamed copies of imoen25j's blocks 15, 18, 19.) That lets you avoid any modifications to the solar's script and any problems with Ascension or extra NPCs, without needing to allow explicitly for Ascension and without having to restructure Imoen's dialog. The downside is that if some other mod wants to interject into Imoen's comment to the solar, it'll interject at slightly the wrong place. But that strikes me as an edge case, and less serious than the alternative (which risks Imoen's dramatically critical final lines being skipped entirely). Comments welcome from people who spend more time with NPCs than me. (@Jastey ?) Quote Link to comment
vanatos Posted May 16, 2020 Share Posted May 16, 2020 (edited) Actually i like where your suggestion is going, i think its similar to Jastey's. I will test it out to see if there's any issues unforeseen. Edited May 16, 2020 by vanatos Quote Link to comment
vanatos Posted May 16, 2020 Share Posted May 16, 2020 (edited) Thanks @DavidW and @jastey I have implemented basically the suggestion above, i think this greatly improves the stability of the final conversation with Imoen. One important question, is referencing the TLK line like #68091 for instance, guaranteed to be the same both for EE and Vanilla? Edited May 16, 2020 by vanatos Quote Link to comment
jastey Posted May 16, 2020 Share Posted May 16, 2020 Yes, that's basically what I suggested. (I would've tried to prevent a REPLACE but in the end, using Imoen's first line and leading on from there or replacing it and then leading on from there isn't such a difference, as DavidW said other mods will interject into the wrong state anyhow.) One thing for the romance additons, if you haven't already: Make sure they end with a COPY_TRANS imoen25j 16 / COPY_TRANS imoen25j 18 / COPY_TRANS imoen25j 20 (depending on the dialogue path) for compatibility with other NPC mods. 2 hours ago, vanatos said: is referencing the TLK line like #68091 for instance, guaranteed to be the same both for EE and Vanilla? Yes, it's in all BGII games the same string. Quote Link to comment
vanatos Posted May 16, 2020 Share Posted May 16, 2020 Wow thanks for that, tried to wrap my head around it and finally understood thats a subtle edge case bug. Quote Link to comment
DavidW Posted May 16, 2020 Author Share Posted May 16, 2020 @vanatos: is this something you're likely to release in the next few days? If so I'll disable my current Ascension-side workaround for this issue. Quote Link to comment
vanatos Posted May 16, 2020 Share Posted May 16, 2020 I have released a new version of Imoen Romance with the changes @DavidW Quote Link to comment
Caedwyr Posted May 19, 2020 Share Posted May 19, 2020 Is there anything special regarding Turnabout in light of the recent updates? The current version (1.3) of Turnabout has the following in the Readme Quote Q: Does Turnabout alter core Ascension code?A: Only slightly, and not in a way that affects gameplay. Specifically, we edit certain scripts so that your restored Turnabout allies are placed in formation at the end of the final battle. We also change the animation associated with PPGUY02.CRE (the part of the pool that "talks" to the PC) so that it works correctly with NPC interjections. We do not alter the behavior of Melissan, the Five, Irenicus, Bodhi, or the pool guardians in any way. Q: Is Turnabout compatible with other Ascension add-ons?A: We have not tested Turnabout with other mods which alter the TOB endgame, except for Wheels of Prophecy, which is fully compatible. Quote Link to comment
DavidW Posted May 19, 2020 Author Share Posted May 19, 2020 I haven't tested it this time around. IIRC it worked ok on 2.0.0. Quote Link to comment
Hoverdawg Posted May 26, 2020 Share Posted May 26, 2020 Is the Ascension-Wheels of Prophecy compability fixed now, or should I refrain from using WoP for now? Quote Link to comment
DavidW Posted May 27, 2020 Author Share Posted May 27, 2020 16 hours ago, Hoverdawg said: Is the Ascension-Wheels of Prophecy compability fixed now, or should I refrain from using WoP for now? I'm sad to say this, but I wouldn't recommend WoP right now. There are a lot of serious bugs being reported (there have been since EE, really). It needs some sustained love; it'll get it when I have a chance. Quote Link to comment
Recommended Posts
Join the conversation
You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.