Pocket Plane Group

Friends and Neighbors => Weimer Republic (WeiDU.org) => WeiDU => Topic started by: jastey on August 10, 2017, 08:33:23 AM

Title: Question to COMPILE ~first.d~ ~second.d~
Post by: jastey on August 10, 2017, 08:33:23 AM
If I compile two .d-files with one COMPILE they are treated as if the content would be in the same .d-file - or so I thought?
This doesn't seem to be true for INTERJECT or ADD_TRANS_TRIGGER, at least not if I try to do it into a mod/custom dialogue state.
What I mean is, the following works if it is inside the same .d file:
Code: (auto:0) [Select]
SAY @17
IF ~~ THEN DO ~AddexperienceParty(600)SetGlobal("SeniyadXP","GLOBAL",1)Shout(3)EscapeArea()~ EXIT

~OR(3) !InParty("jaheira") !InMyArea("jaheira") StateCheck("jaheira",CD_STATE_NOTVALID)~
DO 0

But if it is separated into two .d-files and compiled as one via COMPILE ~first.d~ ~second.d~, the error message is that it cannot resolve dlg state "JA#SENIYA_07". Same if I try INTERJECT SENIYA JA#SENIYA_07 etc.
Is this intended behavior / something we have to live with or could it be changed so that both cases work?
Title: Re: Question to COMPILE ~first.d~ ~second.d~
Post by: Wisp on August 10, 2017, 12:19:22 PM
COMPILE does not treat several files as a single one, it maintains state between each (it's not quite the same thing, as we see here). It just so happens that files are compiled in reverse order. You can also use APPEND_EARLY to make the append action order-independent, which is the intended way to append states which are to be targetted by actions in other D files.
Title: Re: Question to COMPILE ~first.d~ ~second.d~
Post by: jastey on August 11, 2017, 01:12:18 AM
It didn't occur to me that the order of files could be the problem. This was very helpful information. And indeed, if I compile it as "COMPILE ~second.d~ ~first.d~" with "second.d" being the patches, it works.
Thank you very much! I am very happy.