jastey Posted October 21, 2021 Posted October 21, 2021 I want to change the transition from a reply options to another dlg state. I am trying to achieve this with ALTER_TRANS using the following syntax: ALTER_TRANS bdff1709 BEGIN 2 END BEGIN 1 END BEGIN ~EPILOGUE~ ~EXTERN bdff1709 0~ END ALTER_TRANS bdff1709 BEGIN 4 END BEGIN 0 END BEGIN ~EPILOGUE~ ~EXTERN bdff1709 0~ END My problem: it doesn't get done, but without any error or warning. The transition just doesn't get changed. Worse: if I put this into a d-file with other changes to the dlg (like APPEND bdff1709; ADD_STATE_TRIGGER), none of it gets patched to bdff1709.dlg. The bdff1709.dlg gets moved to the override, that's it. If I remove the ALTER_TRANS syntax, everything else gets patched into the dlg. If I include only the ALTER_TRANS, nothing is changed. The installer gives no errors or warnings. If someone could point out the obvious, I'd be grateful. Quote
argent77 Posted October 21, 2021 Posted October 21, 2021 EXTERN shouldn't be needed since you're referencing a state in the same dialog. Try this instead: ALTER_TRANS bdff1709 BEGIN 2 END BEGIN 1 END BEGIN ~EPILOGUE~ ~GOTO 0~ END Quote
jastey Posted October 21, 2021 Author Posted October 21, 2021 @argent77 thank you, that's exactly what I just tried and logged in to report that with this it works. I don't see why using EXTERN would let it choke that much but since it's working with "~GOTO 0~" I won't dig deeper into this. Quote
DavidW Posted October 21, 2021 Posted October 21, 2021 Bizarrely, ALTER_TRANS appears to be case-sensitive. If I do <<<<<<<< .../stratagems-inline/test.d ALTER_TRANS bdff1709 BEGIN 2 END BEGIN 1 END BEGIN "EPILOGUE" "EXTERN bdff1709 0" END ALTER_TRANS bdff1709 BEGIN 4 END BEGIN 0 END BEGIN "EPILOGUE" "EXTERN bdff1709 7" END >>>>>>>> COMPILE ".../stratagems-inline/test.d" then I can reproduce Jastey's bug. If I do <<<<<<<< .../stratagems-inline/test.d ALTER_TRANS bdff1709 BEGIN 2 END BEGIN 1 END BEGIN "EPILOGUE" "EXTERN BDFF1709 0" END ALTER_TRANS bdff1709 BEGIN 4 END BEGIN 0 END BEGIN "EPILOGUE" "EXTERN BDFF1709 7" END >>>>>>>> COMPILE ".../stratagems-inline/test.d" it works fine. Probably worth reporting to Wisp - it's undocumented as far as I can see. Quote
jastey Posted October 21, 2021 Author Posted October 21, 2021 @DavidW Thanks for trying this out! This would have been one of my next steps if changing it to "GOTO" wouldn't have worked. Tagging @Wisp fwiw. Quote
DavidW Posted October 21, 2021 Posted October 21, 2021 I guess GOTO doesn't require you to put the name of a dialog file at all, so case-sensitivity doesn't apply. Quote
jastey Posted October 21, 2021 Author Posted October 21, 2021 Just now, DavidW said: I guess GOTO doesn't require you to put the name of a dialog file at all, so case-sensitivity doesn't apply. Yes, I edited my post and removed the sentence you are referring to because it didn't make sense. Quote
Wisp Posted October 21, 2021 Posted October 21, 2021 So where (game? version?) would I need to run this code in order to reproduce the problem? Quote
DavidW Posted October 21, 2021 Posted October 21, 2021 Siege of Dragonspear, unmodded, I think any recent version. (But actually I reproduced it on a different dialog - AEEXTORT in BG2 - so I think you can try it on any dialog you like. Quote
Wisp Posted October 24, 2021 Posted October 24, 2021 So this is a about hash-table lookups. WeiDU does not normalise case when interring or looking up symbols, so it can store different case-variations of the same filename as they were different files. The "file" loaded by the EXTERN is written to disk after the file loaded by the main ALTER_TRANS action, but since it was loaded before ALTER_TRANS made any changes, it ends up overwriting the changes to the first file. Quote
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.