Skip to content

[MOD] jmerry's Tweak Collection

13»

Comments

  • jmerryjmerry Member Posts: 3,829
    That, I understand. Without "Bigger random spawns", you're running into that error I found (writing at an undefined location). With it, it's the error I haven't figured out yet.
  • ReverieReverie Member Posts: 30
    Alight, well, fingers crossed! I passed on this or that during the install when I had errors, but these components sound too fun to miss out on ;)
  • jmerryjmerry Member Posts: 3,829
    edited April 2023
    Getting into testing ... I have a new version of the component which won't cause problems on a clean install without the "bigger random spawns" component before it. But that ARS005.ARE still breaks it.

    All right, speed things up by only modifying that one troublesome file. Reactivate feedback ... looks like all my reads are good. But wait, there's one last step - adding the new spawn points using the fj_are_structure function included in WeiDU. And it looks like that's what's breaking. Turn on debug mode for that function ...
    Install Component [Random spawns scale with difficulty]?
    [I]nstall, or [N]ot Install or [Q]uit? i
    
    Installing [Random spawns scale with difficulty] [3.1]
    Copying and patching 1 file ...
    Copying and patching 1 file ...
    Copying and patching 0 files ...
    Copying and patching 0 files ...
    Copying and patching 1 file ...
    Copying and patching 1 file ...
    Copying and patching 1 file ...
    Copying and patching 1 file ...
    Copying and patching 0 files ...
    Copying and patching 1 file ...
    Copying and patching 0 files ...
    Copying and patching 0 files ...
    Copying and patching 0 files ...
    Copying and patching 1 file ...
    Copying and patching 0 files ...
    Copying and patching 0 files ...
    Copying and patching 0 files ...
    
    Beginning unmarshalling.
    
    Reading actor 0.
    
    Reading actor 1.
    
    Reading actor 2.
    
    Reading actor 3.
    
    Reading actor 4.
    
    Reading actor 5.
    
    Reading actor 6.
    
    Reading actor 7.
    
    Reading actor 8.
    
    Reading actor 9.
    
    Reading actor 10.
    
    Reading actor 11.
    
    Reading actor 12.
    
    Reading actor 13.
    
    Reading actor 14.
    
    Reading actor 15.
    
    Reading actor 16.
    
    Reading actor 17.
    
    Reading actor 18.
    
    Reading actor 19.
    
    Reading actor 20.
    
    Reading actor 21.
    
    Reading actor 22.
    
    Reading actor 23.
    
    Reading actor 24.
    
    Reading actor 25.
    
    Reading actor 26.
    
    Reading actor 27.
    
    Reading actor 28.
    
    Reading actor 29.
    
    Reading actor 30.
    
    Reading actor 31.
    
    Reading region 0.
    
      Associating vertices.
    
    Reading region 1.
    
      Associating vertices.
    
    Reading region 2.
    
      Associating vertices.
    
    Reading region 3.
    
      Associating vertices.
    
    Reading region 4.
    
      Associating vertices.
    
    Reading region 5.
    
      Associating vertices.
    
    Reading region 6.
    
      Associating vertices.
    
    Reading region 7.
    
      Associating vertices.
    
    Reading region 8.
    
      Associating vertices.
    
    Reading region 9.
    
      Associating vertices.
    
    Reading region 10.
    
      Associating vertices.
    
    Reading region 11.
    
      Associating vertices.
    
    Reading region 12.
    
      Associating vertices.
    
    Reading region 13.
    
      Associating vertices.
    
    Reading region 14.
    
      Associating vertices.
    
    Reading region 15.
    
      Associating vertices.
    
    Reading region 16.
    
      Associating vertices.
    
    Reading region 17.
    
      Associating vertices.
    
    Reading region 18.
    
      Associating vertices.
    
    Reading region 19.
    
      Associating vertices.
    
    Reading region 20.
    
      Associating vertices.
    
    Reading spawn 0
    
    Reading spawn 1
    
    Reading spawn 2
    
    Reading spawn 3
    
    Reading entrance 0
    
    Reading entrance 1
    
    Reading ambient 0
    
    Reading ambient 1
    
    Reading ambient 2
    
    Reading ambient 3
    
    Reading animation 0.
    
    Reading animation 1.
    
    Reading animation 2.
    
    Reading animation 3.
    
    Reading animation 4.
    
    Reading animation 5.
    
    Reading animation 6.
    
    Reading animation 7.
    
    Reading animation 8.
    
    Reading animation 9.
    
    Reading animation 10.
    
    Reading animation 11.
    
    Reading animation 12.
    
    Reading animation 13.
    
    Reading animation 14.
    
    Reading animation 15.
    
    Reading bitmask (should only exist in saved game areas).
    
    Reading songs (obligatory structure).
    
    Trimming ARS005.BCS down to the header.
    
    Reassembling ARS005.BCS.
    
    Reinserting actor number 0.
    
    Reinserting actor number 1.
    
    Reinserting actor number 2.
    
    Reinserting actor number 3.
    
    Reinserting actor number 4.
    
    Reinserting actor number 5.
    
    Reinserting actor number 6.
    
    Reinserting actor number 7.
    
    Reinserting actor number 8.
    
    Reinserting actor number 9.
    
    Reinserting actor number 10.
    
    Reinserting actor number 11.
    
    Reinserting actor number 12.
    
    Reinserting actor number 13.
    
    Reinserting actor number 14.
    
    Reinserting actor number 15.
    
    Reinserting actor number 16.
    
    Reinserting actor number 17.
    
    Reinserting actor number 18.
    
    Reinserting actor number 19.
    
    Reinserting actor number 20.
    
    Reinserting actor number 21.
    
    Reinserting actor number 22.
    
    Reinserting actor number 23.
    
    Reinserting actor number 24.
    
    Reinserting actor number 25.
    
    Reinserting actor number 26.
    
    Reinserting actor number 27.
    
    Reinserting actor number 28.
    
    Reinserting actor number 29.
    
    Reinserting actor number 30.
    
    Reinserting actor number 31.
    
    Reinserting region number 0.
    
    Reinserting region number 1.
    
    Reinserting region number 2.
    
    Reinserting region number 3.
    
    Reinserting region number 4.
    
    Reinserting region number 5.
    
    Reinserting region number 6.
    
    Reinserting region number 7.
    
    Reinserting region number 8.
    
    Reinserting region number 9.
    
    Reinserting region number 10.
    
    Reinserting region number 11.
    
    Reinserting region number 12.
    
    Reinserting region number 13.
    
    Reinserting region number 14.
    
    Reinserting region number 15.
    
    Reinserting region number 16.
    
    Reinserting region number 17.
    
    Reinserting region number 18.
    
    Reinserting region number 19.
    
    Reinserting region number 20.
    
    Reinserting spawn number 0.
    
    Reinserting spawn number 1.
    
    Reinserting spawn number 2.
    
    Reinserting spawn number 3.
    
    Adding new spawn structure.
    
    Reinserting entrance number 0.
    
    Reinserting entrance number 1.
    
    Reinserting ambient number 0.
    
    Reinserting ambient number 1.
    
    Reinserting ambient number 2.
    
    Reinserting ambient number 3.
    
    Reassociating vertices to region 0.
    
    Reassociating vertices to region 1.
    
    Reassociating vertices to region 2.
    
    Reassociating vertices to region 3.
    
    Reassociating vertices to region 4.
    
    Reassociating vertices to region 5.
    
    Reassociating vertices to region 6.
    
    Reassociating vertices to region 7.
    
    Reassociating vertices to region 8.
    
    Reassociating vertices to region 9.
    
    Reassociating vertices to region 10.
    
    Reassociating vertices to region 11.
    
    Reassociating vertices to region 12.
    
    Reassociating vertices to region 13.
    
    Reassociating vertices to region 14.
    
    Reassociating vertices to region 15.
    
    Reassociating vertices to region 16.
    
    Reassociating vertices to region 17.
    
    Reassociating vertices to region 18.
    
    Reassociating vertices to region 19.
    
    Reassociating vertices to region 20.
    
    Reinserting animation number 0.
    
    Reinserting animation number 1.
    
    Reinserting animation number 2.
    
    Reinserting animation number 3.
    
    Reinserting animation number 4.
    
    Reinserting animation number 5.
    
    Reinserting animation number 6.
    
    Reinserting animation number 7.
    
    Reinserting animation number 8.
    
    Reinserting animation number 9.
    
    Reinserting animation number 10.
    
    Reinserting animation number 11.
    
    Reinserting animation number 12.
    
    Reinserting animation number 13.
    
    Reinserting animation number 14.
    
    Reinserting animation number 15.
    
    Reinserting bitmask number 0.
    
    Reinserting songs number 0.
    
    Beginning unmarshalling.
    
    Reading actor 0.
    
    Reading actor 1.
    
    Reading actor 2.
    
    Reading actor 3.
    
    Reading actor 4.
    
    Reading actor 5.
    
    Reading actor 6.
    
    Reading actor 7.
    
    Reading actor 8.
    
    Reading actor 9.
    
    Reading actor 10.
    
    Reading actor 11.
    
    Reading actor 12.
    
    Reading actor 13.
    
    Reading actor 14.
    
    Reading actor 15.
    
    Reading actor 16.
    
    Reading actor 17.
    
    Reading actor 18.
    
    Reading actor 19.
    
    Reading actor 20.
    
    Reading actor 21.
    
    Reading actor 22.
    
    Reading actor 23.
    
    Reading actor 24.
    
    Reading actor 25.
    
    Reading actor 26.
    
    Reading actor 27.
    
    Reading actor 28.
    
    Reading actor 29.
    
    Reading actor 30.
    
    Reading actor 31.
    
    Reading region 0.
    
      Associating vertices.
    
    Reading region 1.
    
      Associating vertices.
    
    Reading region 2.
    
      Associating vertices.
    
    Reading region 3.
    
      Associating vertices.
    
    Reading region 4.
    
      Associating vertices.
    
    Reading region 5.
    
      Associating vertices.
    
    Reading region 6.
    
      Associating vertices.
    
    Reading region 7.
    
      Associating vertices.
    
    Reading region 8.
    
      Associating vertices.
    
    Reading region 9.
    
      Associating vertices.
    
    Reading region 10.
    
      Associating vertices.
    
    Reading region 11.
    
      Associating vertices.
    
    Reading region 12.
    
      Associating vertices.
    
    Reading region 13.
    
      Associating vertices.
    
    Reading region 14.
    
      Associating vertices.
    
    Reading region 15.
    
      Associating vertices.
    
    Reading region 16.
    
      Associating vertices.
    
    Reading region 17.
    
      Associating vertices.
    
    Reading region 18.
    
      Associating vertices.
    
    Reading region 19.
    
      Associating vertices.
    
    Reading region 20.
    
      Associating vertices.
    
    Reading spawn 0
    
    Reading spawn 1
    
    Reading spawn 2
    
    Reading spawn 3
    
    Reading spawn 4
    
    Reading entrance 0
    
    Reading entrance 1
    
    Reading ambient 0
    
    Reading ambient 1
    
    Reading ambient 2
    
    Reading ambient 3
    
    Reading animation 0.
    
    Reading animation 1.
    
    Reading animation 2.
    
    Reading animation 3.
    
    Reading animation 4.
    
    Reading animation 5.
    
    Reading animation 6.
    
    Reading animation 7.
    
    Reading animation 8.
    
    Reading animation 9.
    
    Reading animation 10.
    
    Reading animation 11.
    
    Reading animation 12.
    
    Reading animation 13.
    
    Reading animation 14.
    
    Reading animation 15.
    
    Reading bitmask (should only exist in saved game areas).
    
    Reading songs (obligatory structure).
    
    Reading rest interrupt table (obligatory structure).
    ERROR: illegal 228-byte read from offset 17600 of 17600-byte file ARS005.ARE
    ERROR: [ARS005.ARE] -> [override/ARS005.ARE] Patching Failed (COPY) (Failure("ARS005.ARE: read out of bounds"))
    Stopping installation because of error.
    
    (Very long debug log spoilered)

    It isn't anything I did that broke. It's fj_are_structure choking on an area because it doesn't have a rest interrupt table. I think literally every area in BG2EE has that table - even if it's 228 bytes of zeros in some cases - but there are areas in BGEE that lack the tables. Such as the upper floor of the Flaming Fist headquarters, for example. It's still definitely bad practice to create an area without it, but I can't call it truly malformed.

    ...

    All right, there's one thing I can do. I can insert a sanity check that will exclude any such areas from modification. And throw a warning while I'm at it. Better than erroring out of the whole component.

    Version 3.1 will be coming in the not-too-distant future.
  • Christian79Christian79 Member Posts: 48
    What exactly does the Inquisitor True Sight component do? It is not listed in the description here and the readme of the tweak-collection
  • jmerryjmerry Member Posts: 3,829
    You're right, I was missing that readme entry. Here, have a newly written version:

    14. Inquisitor True Sight is consistent with other versions of the spell
    Games: BGEE, BG2EE, EET

    Unlike all other versions of True Sight/True Seeing and indeed all divination attack spells, the initial pulse of the Inquisitor kit's True Sight spell hits as a level 5 spell. This allows certain defenses such as a lich or rakshasa's low-level spell immunity to block the effect.
    This component corrects the spell to hit as level 0, like all other similar spells and even the later pulses of the inquisitor's own spell.
  • ReverieReverie Member Posts: 30
    edited April 2023
    Would it not make sense to add those missing files in a fix and fill them with 0s, as some others have? Sounds like other mods could trip over it as well, no?

    Either way, looking forward to the new version. Cheers.
  • jmerryjmerry Member Posts: 3,829
    Reverie wrote: »
    Would it not make sense to add those missing files in a fix and fill them with 0s, as some others have?

    It would, actually. And ... two lines of code? That's all it takes, aside from the conditional for when to do it? Well, OK, I still want to print a warning - make that three lines of code.
    (There is literally a WeiDU command for "insert X bytes worth of zeros starting at this point Y in the file". That's a one-line operation.)
  • ReverieReverie Member Posts: 30
    Whatever works! :blush: Hope it's smooth sailing and we get to enjoy both tweaks soon ^^
  • EndarireEndarire Member Posts: 1,512
    Thankee for the encouraging news!
  • ReverieReverie Member Posts: 30
    I have cheated the system and pulled out the ARS005 file for a second, installed the 2 components, and put it back in. Wonder if things explode. Prooobably not (: Wanted to check things out before leaving for Easter xd
  • Christian79Christian79 Member Posts: 48
    Installation of "Shapeshift corrections -> Mage polymorphs and shapechanges only" failed on my BGEE install. Logs attached in zip.
  • jmerryjmerry Member Posts: 3,829
    I've reproduced the error with nothing but that component (BGEE, mage polymorphs only). That doesn't mean I understand it. This is a simple copy operation, and the only thing I do inside it is write to a "flags" entry in the file. Also, the "all transformations" option has a bigger version of the same copy operation which doesn't break. And before that, all I did is replace some descriptions.

    ... wait, that's it. The flags are a four-byte field, and I was using the wrong "write" operation. Replace that WRITE_BYTE with a WRITE_LONG, and it'll work. Until then, the "mage only" and "druid only" options don't work in BGEE. The fix will be in 3.1, of course.
  • Christian79Christian79 Member Posts: 48
    The component installed on BGIIEE just fine. Will it work on both games after applying the fix?

    Thanks for the quick feedback btw.
  • jmerryjmerry Member Posts: 3,829
    Yes, it'll work on both games after applying the fix. The code for installing that component on BG2EE or EET is completely separate from the code for installing on BGEE anyway, due to the two games having different models for handling polymorphs. And this bit of bad code from me was only in the BGEE half.
  • Christian79Christian79 Member Posts: 48
    Installation did work now. Many thanks!
  • ReverieReverie Member Posts: 30
    I don't mean to rush you, of course, just curious if there's perhaps an ETA on the hotfix for the spawns components? Or will there not be a hotfix at all and the fix will only come with a new release?
  • jmerryjmerry Member Posts: 3,829
    No hotfix; I'm working on the next version to be released soon.
  • jmerryjmerry Member Posts: 3,829
    Did I say "soon"? Ouch. I have a serious procrastination problem. But I finally buckled down and did it. Updated to version 3.1, with two small new components and fixes to two existing components.

    The new components:
    - Warrior and rogue HLAs can't be removed by spell-breakers: Prevents abilities such as Hardiness and Evasion from being removed by spells such as Breach or Spell Thrust.
    - Deactivate Spellhold picture monsters until their doors are opened: Exactly what it says. Now if you install an AI mod that gives some of those monsters teleportation abilities (SCS), they won't come out of their rooms until you actually open the door.
  • OrlonKronsteenOrlonKronsteen Member Posts: 905
    Thank you!
Sign In or Register to comment.