Jump to content

[Solved]Faiths and Powers breaks after EET conversion


AL|EN

Recommended Posts

Faiths and Powers can be installed without errors for BG1EE/BG2EE. Yet when I try to install it just after EET conversion, it fails.

 

Steps to reproduce:

 

1. Install clean BG1EE

2. Install clean BG2EE

3. Install EET

4. Install Faiths and Powers @101 = ~ALL the new kits, the kit selection dialogue, and the sphere system~

Defining Faiths and Powers info for kit d5cmazu ...
Appending to files ...
Appending to files ...
Appending to files ...
Copying and patching 3 files ...
Adding D5_CF_CLANG Kit ...
Appending to files ...
Appending to files column-wise ...
Appending to files ...
Appending to files ...
Appending to files ...
Appending to files ...
Copying 1 file ...
Appending to files ...
Appending to files ...
Appending to files ...
Appending to files ...
Appending to files ...
Copying and patching 2 files ...
Copying and patching 1 file ...
Appending to files ...
Copying and patching 2 files ...
Copying and patching 1 file ...
Added D5_CF_CLANG Kit
Copying and patching 1 file ...
Copying 1 file ...
Copying and patching 1 file ...
Copying and patching 1 file ...
Copying and patching 1 file ...
Copying and patching 1 file ...
Copying 1 file ...
Copying and patching 1 file ...
Copying and patching 1 file ...
Copying and patching 1 file ...
Copying and patching 1 file ...
ERROR: cannot convert kit_code or %kit_code% to an integer
ERROR: [override/QD_MCP01.spl] -> [override] Patching Failed (COPY) (Not_found)
Stopping installation because of error.
Stopping installation because of error.
ERROR: [d5cfcla.2da] -> [override] Patching Failed (COPY) (Not_found)
Stopping installation because of error.
Stopping installation because of error.
Stopping installation because of error.
Stopping installation because of error.

Faiths and Powers can be installed without errors for BG1EE/BG2EE.

 

Is there anything inside EET related to conversion of the BG1EE resources which might break QD_MCP01.spl / d5cfcla.2da?

Link to comment
Is there anything inside EET related to conversion of the BG1EE resources which might break QD_MCP01.spl / d5cfcla.2da?

 

no, I don't think so. And these files are added by F&P mod either way. The crucial part of report is this:

ERROR: cannot convert kit_code or %kit_code% to an integer

so if anything I would guess problem with reading kitlist.2da or something like that. But there are no differences in the file by default between BG2:EE and EET so dunno.

Link to comment

 

Is there anything inside EET related to conversion of the BG1EE resources which might break QD_MCP01.spl / d5cfcla.2da?

 

no, I don't think so. And these files are added by F&P mod either way. The crucial part of report is this:

ERROR: cannot convert kit_code or %kit_code% to an integer

so if anything I would guess problem with reading kitlist.2da or something like that. But there are no differences in the file by default between BG2:EE and EET so dunno.

 

In my latest BWS install for EET, I received a similar error for my Sandrah mod when installing her kit. I paused BWS, installed the component manually without any issue (i.e. there is nothing wrong in the mod). Could be the same problem?

Link to comment

ALIENQuake, have you cleared all the weidu variables ? Aka, used the CLEAR_MEMORY command anywhere in the files. It could be that a mod sets the same variable and then the Faiths and Powers inherited from the former action.. not that I would know from where it comes from, but if a mod doesn't reliably *first set and then read the variables, something like this could ensue. Say like if the former mod used the %kit_code% as a string variable, instead of a integer variable.

 

*This is done by first using the INT_VAR or OUTER_SET commands to set a bloat load of variables to a zero for example to start the functionality and then updating then each when needed and so forth. For example, weidu's own macroes do this religiously.

Link to comment

I actually ran a test install of FnP on a clean EET install (rc8.5) and it went perfectly fine.

 

I think I chose install option #2 for the test, do that is one difference... but, options 1 and 2 are almost identical. It's really weird that there would be a difference that prevents installation...

also just tried it on a fresh clean EET installation without other mods and the same problem happened. If it's windows only (since you're using mac) maybe the reason for this is related to newlines? The only difference in kitlist.2da compared to BG2:EE (if BG:EE mods didn't add new kits) is that PREETY_PRINT_2DA was used on it during EET installation (which is always the case for 2da files that are analysed during EET installation), so maybe this is somehow messing with your code on windows. Just guessing, no idea, really.

 

btw. these warnings:

WARNING: No rule to identify SOD

are caused by this:

GAME_IS ~bgee sod~

sod is not (and likely won't be) a valid argument for GAME_IS. There is GAME_INCLUDES command to check SoD content presence.

Link to comment

What file is the SoD line in? I looked around and couldn't find it. (One of the issues with breaking up a mod into 50+ .tpa files.) The SoD warning should be harmless if using Weidu v240 or higher. But I'd still like to remove it.

 

The other thing is weird.

 

It's not a problem with the variables - that code processes about 20 different multiclass, and only fails on this one.

Link to comment

I'll be able to install and test it tomorrow.

 

SD: We may just be missing something simple in the one kit. It might be best to copy a working kit and make appropriate changes to fix the problem

 

Edit: this is the reason why we have the sod check in so many different kits

 

Edit2:kit kit kit

Link to comment

Not sure, but this:

Added D5_CF_CLANG Kit
...
ERROR: cannot convert kit_code or %kit_code% to an integer 

Might give the hint that the kit name should be just 8 characters long. And the D5_CF_CLANG is 10 characters. Same also of course goes for all the .2da file etc.

Link to comment

Not sure, but this:

Added D5_CF_CLANG Kit
...
ERROR: cannot convert kit_code or %kit_code% to an integer 
Might give the hint that the kit name should be just 8 characters long. And the D5_CF_CLANG is 10 characters. Same also of course goes for all the .2da file etc.
I wish it was that easy, my friend.

 

I have kits with internal names that are insanely long that install just fine...

Link to comment

Right - kit names are not bound by the 8 letter maximum. (Man, it was freeing when I found that out.)

 

BUT it is something to do with that. The QD_multiclass function isn't working with the Clangeddin kit.

 

https://github.com/aquadrizzt/QDMULTI/blob/master/qd_multiclass.tpa

 

%kit_code% is supposed to be defined by locating the kit name at line 462 of that .tpa; and then the variable is used in line 511. The mod is choking because the variable isn't being defined when it should be.

 

But again, I find it weird because the procedure works perfectly fine for more than a dozen of other multiclass kits before this. And in each case, the QD_multi function runs almost immediately after the kit is added, so in each case, the kit in question is the last kit in kitlist.2da. Same with the Clangeddin kit here: you can see from the debug text that the kit itself installed successfully, and then the 7 COPY commands for its kit abilities run successfully. Then the QD_multi function begins, and there are three successful COPY+PATCH commands (the marker file, kitlist.2da, and the kit's clab file), and then that 4th COPY+PATCH command must be in the INNER_ACTION, which fails at line 511 because the COPY+PATCH of kitlist.2da did not, for some reason, return a usable value for %kit_code%.

 

So, I'm stumped. But I'm also tired. I'll put fresh eyes on it. Maybe we should ask Aquadrizzt to take a look as well...

Link to comment
BUT it is something to do with that. The QD_multiclass function isn't working with the Clangeddin kit.

 

I modified code to print messages and stop loop after match is found:

              PATCH_IF ~%k_kit%~ STRING_EQUAL_CASE ~%kit_name%~ BEGIN
                SET kit_row = %k_row%
                READ_2DA_ENTRY_FORMER k_rows kit_row 9 kit_code
                PATCH_PRINT ~kit_code = %kit_code% (k_kit = %k_kit%, k_row = %k_row%, kit_name = %kit_name%)~
                SET k_row = k_rows
              END ELSE BEGIN
                PATCH_PRINT ~k_kit = %k_kit%, k_row = %k_row%, kit_name = %kit_name%~
              END

Based on debug file it looks like for some reason k_kit is never equal D5_CF_CLANG, so the kit_code is not checked for this kit. Last line checked before error is this one:

k_kit = D5_CM_AZUTH, k_row = 112, kit_name = D5_CF_CLANG
Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...