Jump to content
Wisp

Things I think should be considered for Fixpack 10

Recommended Posts

Just an idea, but we might be able to resurrect the "Paws from Shapeshifting Can Not Be Dispelled" OBC component. If the user has TobEx installed, it would be fairly trivial to make this change:

 

/////                                                  \\\\\
///// shapeshifter paw fixes                           \\\\\
/////                                                  \\\\\

BEGIN @24 DESIGNATED 115
GROUP @2
REQUIRE_PREDICATE FILE_EXISTS_IN_GAME ~tobex_ini/tobexcore.ini~ @1100              // This component requires TobEx

// dummy file allows detection of this component
COPY_EXISTING ~sw1h01.itm~ ~override/cdfp0115.g3~

// Add the non-dispellable flag to shapechange weapons if TobEx is detected
// This will prevent the natural weapons of the shapechange forms (i.e. claws and such) from being removed by Dispel Magic and Dead Magic Zones
ACTION_FOR_EACH ~file~ IN                                                          // for each of the following files
              ~brblp~                                                             // Shapeshifts Black Bear
              ~brbrp~                                                             // Shapeshifts Brown Bear, Shapeshifts Werewolf, Shapeshifts Greater Werewolf
             ~druear~                                                             // earth elemental transformation
             ~drufir~                                                             // fire elemental transformation
            ~earthrn~                                                             // Shapechange Earth Elemental
             ~firern~                                                             // Shapechange Fire Elemental
             ~goliro~                                                             // used by iron golems, Shapechange Iron Golem
           ~mindflay~                                                             // used by mind flayers, Shapechange Mind Flayer
           ~plyjelly~                                                             // jelly from cloak of sewers
            ~plysala~                                                             // Fire Salamander (Avenger kit form)
            ~plyspid~                                                             // Sword Spider (Avenger kit form)
           ~plytroll~                                                             // troll from cloak of sewers
           ~plywyvrn~                                                             // Baby Wyvern shape attack
            ~polyrat~                                                             // rat from cloak of sewers
            ~shakti1~                                                             // short sword +4
           ~slayerwp~                                                             // slayer, Slayer Change
             ~squirp~                                                             // Sphere of Chaos
           ~trollall~                                                             // Shapechange Giant Troll
             ~wolfgr~                                                             // Shapechange Greater Wolfwere
              ~wolfm~                                                             // Shapeshifts Wolf
BEGIN                                                                              // execute the following
ACTION_IF FILE_EXISTS_IN_GAME ~%file%.itm~ BEGIN                                   // if the designated file with an ITM extension exists
COPY_EXISTING ~%file%.itm~ ~override~
 PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN                                         // protects against invalid files
// =============================================================================== // the actual work starts from here
   READ_BYTE 0x1b "flags"
   PATCH_IF (("%flags%" BAND "0b00000001") = "0b00000000") BEGIN                  // if bit 24 isn't set
     WRITE_BYTE "0x1b" ("%flags%" BOR "0b00000001")                               // set bit 24
   END
// =============================================================================== // the actual work ends here
END                                                                                // ends file size check
BUT_ONLY_IF_IT_CHANGES
END                                                                                // ends ACTION_IF FILE_EXISTS_IN_GAME block
END                                                                                // ends ACTION_FOR_EACH block

 

Note: TobEx will not be shipped with the Fixpack.

Share this post


Link to post

aVENGER,

 

couldn't the Fixpack just install those fixes that require ToBEx automatically upon detecting its ToBEx? In this case, those that don't want ToBEx will have a traditional installation while the others can enjoy the benefit of further fixes. It seems to me a win-win situation.

Share this post


Link to post

aVENGER,

 

couldn't the Fixpack just install those fixes that require ToBEx automatically upon detecting its ToBEx?

 

That's exactly what the code I posted above does.

Share this post


Link to post

I think Salk wants to incorporate it directly into Core Fixes. This is probably fine, but Fixpack should be installed first, so if somebody forgot to add ToBEx before it (but got it from another mod), they will not be able to see this fix.

 

Otherwise, the ToBEx check may be skipped and the flag set regardless. But I haven't tried to set new flags without ToBEx, and I know that at least it's 318 opcode will crash the vanilla engine. Probably doesn't apply to flags, though.

Share this post


Link to post

I think Salk wants to incorporate it directly into Core Fixes.

 

I believe it would be best to leave this as an OBC component.

 

With the current code, if you have TobEx, it will install right off the bat. If not, it will display a message that TobEx is required and be auto-skipped. Also, the readme section which describes this component would contain a link to the TobEx download location.

Edited by aVENGER_(RR)

Share this post


Link to post

Yes, I was actually thinking of your fix going into Beta (and later Core).

 

Aren't there many other possible ToBEx based fixes that could now be implemented into the Fixpack? In that case, having an OBC for each one might be too much. In that case, better then have an OBC component including all the ToBEx fixes (which is what I wished for a long time ago when the ToBEx was at its earliest stage).

Share this post


Link to post

Aren't there many other possible ToBEx based fixes that could now be implemented into the Fixpack?

 

 

No. Nearly all of TobEx' engine fixes merely require for it to be installed and function automatically after that. Hence, they could not be implemented in the fixpack without shipping TobEx.

 

The magical item dispellability fix is an exception since it requires additional item patching in order to work which makes it suitable for an OBC component.

Share this post


Link to post

I'm not a huge fan of that. Then we have to explain "For ToBEx only" and then have people going to figure out what ToBEx is, and then we're on the hook for it if they decide to install it.

 

A standalone pack for ToBEx users seems to be more appropriate. Let's keep the fixpack for working with the engine as BioWare provided. (And who knows what's going to happen with EE.)

 

That would be my inclination, at least.

Share this post


Link to post

A standalone pack might be a good idea, actually.

Share this post


Link to post

Following that logic, OBC stuff may also be made standalone, because it's components are rather tweaks than fixes.

 

Yes, I do hate multiple packages :)

 

and then we're on the hook for it if they decide to install it.
Eh? Either player had ToBEx and installed paws, or they didn't know what that was and followed the link in readme - after which they can decide whether they want to use a mod in beta stage.

Share this post


Link to post
But I think I would like a comment from DevSin or Cam, or whoever will eventually be vetting the changes for v10. Presumably these sorts of issues have come up before and if the answer was along the lines of "then don't raise your arm like that," I imagine it may be again.

Not that I don't sympathize, but if someone's managed to install Fixpack twice I doubt their installation is going to be saved by some conditionals. Code to protect users from themselves is not a bad thing but I'm always wary of messing with code that's already working. Perhaps a REQUIRE_PREDICATE for spbehbla.pro on the core? :)

 

Truthfully, my solution would be to revert the shell spells. Because anybody who was here years and years ago knows that I hate the shell spell fixes. I hate them! :-)

Oh, I don't think we need to go back years and years to figure that out. I'm not a fan either but there are some things we can't fix otherwise.

 

As far as the TobEX integration talk upstream, I have theoretical and pragmatic objections for its use in the core. In theory I don't like having a Fixpack that can't address bugs on all platforms equally. The pragmatic objection is that I don't want A64 and the TobEx folks to be shackled to the Fixpack development cycle. OBC stuff... eh, I guess it would depend.

Share this post


Link to post

Perhaps a REQUIRE_PREDICATE for spbehbla.pro on the core? :)

Sounds good to me.

Share this post


Link to post

Actually, let's use druidad.bcs, added by both Fixpack and Baldurdash, to kill two birds with one stone. And as long as we're here, we should also prevent core installation on Tutu games and BGEE (oh9350.are).

Share this post


Link to post

I don't know if this thread is dead or not, and if it is, sorry. But, looking at your fix for the Blackrazor sword, I was wondering if the level drain could be tied to the heal+haste+strength bonus, because currently the level drain is a seperate effect from the other three. Sometimes I drain enemy's level, sometimes I get healed, hasted, and buffed. Could a fix for this be added to v10?

Share this post


Link to post
Guest
You are commenting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×