Jump to content

BiG World patches for SCS files. Cool, right ?


Jarno Mikkola

Recommended Posts

@DavidW: The first post should be up to date, if you are in a hurry, just read this post, so you are up to date with the current BWS process, the rest of the discussion is not completely related to your mod, and it might go off topic plenty.

Up to date to May 11th, 2016.

 

This topic is here cause I just relay what others have done, apparently it was "Not cool." enough to horde the info in the BW Fixpacks, it's not me that did any of these, the originals can be easily found here, and the credits go to several people, including:

Whiteagus, Creevdaak, Lollorian(as omni-axa), ALIENQuake, CamDawn and subtledoctor.

 

.. anyways, the patches are done in the very rudimentary + and - lines like any patch file todays, which are extremely easy to apply to the files manually too with Notepad, or Notepad++ by typing and looking. You don't need to be able to even read. :devlook:

--- stratagems\lib\always.tph	Sat Jan 17 15:04:43 2015
+++ D:\EE_Patchstudio\patched files\stratagems\lib\always.tph	Sat Jan 09 22:47:44 2016
@@ -15,6 +15,9 @@
   ACTION_IF GAME_IS "bgee bg2ee" BEGIN
     LOAD_TRA ~%scsroot%/tra/ee/english/english.tra~
     LOAD_TRA ~%scsroot%/tra/ee/%LANGUAGE%/%LANGUAGE%.tra~
+	OUTER_SPRINT eetra ~ee/~
+  END ELSE BEGIN
+	OUTER_SPRINT eetra ~~  
   END
 
--- stratagems\initial\initial.tpa	Sat Dec 27 21:22:55 2014
+++ D:\EE_Patchstudio\patched files\stratagems\initial\initial.tpa	Sat Jan 09 23:18:28 2016
@@ -465,13 +465,14 @@
       PATCH_IF !(FILE_CONTAINS ~override/player1.dlg~ ~slayer3~) BEGIN
           INNER_ACTION BEGIN
                 COMPILE ~%scsroot%/%component_loc%/dlg/player1.d~
-                   USING  ~%scsroot%/tra/english/player1.tra~
-                          ~%s/player1.tra~
+                   USING  ~%scsroot%/tra/%eetra%english/player1.tra~
+                          ~%scsroot%/tra/%eetra%%s/player1.tra~
           END
       END
    END
    
-   ADD_JOURNAL EXISTING @314 @315 @316
+   ADD_JOURNAL EXISTING @314 @315 @316 USING ~%scsroot%/tra/%eetra%english/player1.tra~
+											 ~%scsroot%/tra/%eetra%%s/player1.tra~
 END
 
 // rudimentary scripting shift to make enemy-summoned Planetars and Devas avoid healing the party

 

--- stratagems\sfo\general\lib_macro.tpa	Sun Dec 28 17:55:28 2014
+++ C:\BWP Patchstudio\patched files\stratagems\sfo\general\lib_macro.tpa	Fri Dec 18 23:47:11 2015
@@ -335,7 +335,7 @@
                      DELETE_BYTES 0x0 3
                   END
                   TO_UPPER resource
-                  PATCH_IF !VARIABLE_IS_SET "RESREF_%resource%_LEVEL" BEGIN
+                  PATCH_IF !VARIABLE_IS_SET "RESREF_%resource%_LEVEL" && FILE_EXISTS_IN_GAME "%resource%.spl" BEGIN
                       INNER_ACTION BEGIN
                          COPY_EXISTING "%resource%.spl" "%workspace%"
                                LPF SPL_read_level RET "RESREF_%resource%_LEVEL"=value END
@@ -349,7 +349,7 @@
                      DELETE_BYTES 0x0 3
                   END
                   TO_UPPER resource
-                  PATCH_IF !VARIABLE_IS_SET "RESREF_%resource%_KIT_EFFECTS_ADD" BEGIN
+                  PATCH_IF !VARIABLE_IS_SET "RESREF_%resource%_KIT_EFFECTS_ADD" && FILE_EXISTS_IN_GAME "%resource%.spl" BEGIN
                       INNER_ACTION BEGIN
                         ACTION_IF FILE_EXISTS_IN_GAME "%resource%.spl" BEGIN
                          COPY_EXISTING "%resource%.spl" "%workspace%"

 

--- stratagems\setup-stratagems.tp2	Tue Jan 20 10:27:56 2015
+++ C:\BWP Patchstudio\patched files\stratagems\setup-stratagems.tp2	 Fri Dec 18 23:48:38 2015
@@ -1,6 +1,6 @@
 BACKUP ~stratagems_external/backup/stratagems~
 AUTHOR ~For help troubleshooting installation problems, go to the Sword Coast Stratagems forum at forums.gibberlings3.net.~
-VERSION ~v30~
+VERSION ~v30 BWP Fix~
 README ~stratagems/readme-stratagems.html~
 AUTO_EVAL_STRINGS
 
24.03.2016 Edit:

This bit.

--- stratagems\sfo\general\lib_iterate.tpa	Thu Mar 27 17:55:28 2016
+++ C:\BWP Patchstudio\patched files\stratagems\sfo\general\lib_iterate.tpa	Thu Mar 27 17:55:28 2016
@@ -626,8 +626,10 @@
       COUNT_2DA_ROWS 2 rowcount
       FOR (i=0;i<rowcount;i+=1) BEGIN
           READ_2DA_ENTRY i 0 2 idscode
-          LPF idscode_to_spell INT_VAR idscode RET resref END
-          SPRINT list "%list% %resref%.spl"
+          PATCH_IF IS_AN_INT idscode BEGIN
+            LPF idscode_to_spell INT_VAR idscode RET resref END
+            SPRINT list "%list% %resref%.spl"
+          END 
       END
    BUT_ONLY
    COPY_EXISTING_REGEXP "\(clab\|lu\).*\.2da" "%workspace%"
I of course do not object you to read every post and all the details on our imaginary character of you, but that's not entirely relevant to the point of this thread.

 

 

Next bit:

--- stratagems\sfo\general\lib_macro.tpa 	Sun Dec 28 17:55:28 2014
+++ C:\BWP Patchstudio\patched files\stratagems\sfo\general\lib_macro.tpa	Fri Dec 18 23:47:11 2015
@@ -335,7 +335,7 @@
--- lib_macro.tpa	Sun Dec 28 17:55:28 2014
+++ lib_macro2.tpa	Fri Mar 25 18:52:49 2016
@@ -111,9 +111,14 @@
   ACTION_IF !VARIABLE_IS_SET ~macro_read_in_spellcodes~ BEGIN
    OUTER_SPRINT ~macro_read_in_spellcodes~ ~~
 
+    ACTION_IF ENGINE_IS ~bgee bg2ee eet~ BEGIN
+       OUTER_SET ids_first_row = 1
+    END ELSE BEGIN
+       OUTER_SET ids_first_row = 0
+    END
     COPY_EXISTING ~spell.ids~ ~override~
          READ_2DA_ENTRIES_NOW ~spell_array~ 2
-         FOR (i=0;i<~spell_array~;i=i+1) BEGIN
+         FOR (i=ids_first_row;i<~spell_array~;i=i+1) BEGIN
            READ_2DA_ENTRY_FORMER ~spell_array~ i 0 ~spellcode~
            INNER_PATCH_SAVE ~spellcode~ ~%spellcode%~ BEGIN
               READ_ASCII 0x1 ~level~ (1)
@@ -335,7 +340,7 @@
                       DELETE_BYTES 0x0 3
                    END
                    TO_UPPER resource
@@ -9,7 +25,7 @@
                        INNER_ACTION BEGIN
                           COPY_EXISTING "%resource%.spl" "%workspace%"
                                 LPF SPL_read_level RET "RESREF_%resource%_LEVEL"=value END
@@ -349,7 +349,7 @@
@@ -349,7 +354,7 @@
                       DELETE_BYTES 0x0 3
                    END
                    TO_UPPER resource
@@ -18,3 +34,28 @@
                        INNER_ACTION BEGIN
                          ACTION_IF FILE_EXISTS_IN_GAME "%resource%.spl" BEGIN
                           COPY_EXISTING "%resource%.spl" "%workspace%"
@@ -666,16 +671,21 @@
             SET  ~PROFICIENCY_RATE_%MACRO_class%~=MACRO_rate
        END
     BUT_ONLY
-    COPY_EXISTING profsmax.2da "%workspace%"
+	ACTION_IF ENGINE_IS ~bgee bg2ee eet~ BEGIN
+       OUTER_SET 2da_first_row = 1
+	END ELSE BEGIN
+       OUTER_SET 2da_first_row = 0
+	END
+     COPY_EXISTING profsmax.2da "%workspace%"
           READ_2DA_ENTRIES_NOW MACRO_prof_max_data 3
-          FOR (i=0;i<MACRO_prof_max_data;i+=1) BEGIN
+          FOR (i=2da_first_row;i<MACRO_prof_max_data;i+=1) BEGIN
             READ_2DA_ENTRY_FORMER MACRO_prof_max_data i 0 MACRO_class
             READ_2DA_ENTRY_FORMER MACRO_prof_max_data i 1 MACRO_first_level
             READ_2DA_ENTRY_FORMER MACRO_prof_max_data i 2 MACRO_other_level
             SET "PROFICIENCY_FIRST_LEVEL_MAX_%MACRO_class%"=MACRO_first_level
             SET "PROFICIENCY_OTHER_LEVEL_MAX_%MACRO_class%"=MACRO_other_level
           END
-    BUT_ONLY
+     BUT_ONLY
    END
 END
 

 

 

The next patch will replaces the above spoiler'ed ones to look silly, as it fixes fixes that were not so fixes and thus the fixes were off ... this is the end result:

--- stratagems\sfo\general\lib_macro.tpa	Sun Dec 28 17:55:28 2014
+++ stratagems\sfo\general\lib_macro2.tpa	Fri Mar 25 18:52:49 2016
@@ -111,9 +111,14 @@
   ACTION_IF !VARIABLE_IS_SET ~macro_read_in_spellcodes~ BEGIN
    OUTER_SPRINT ~macro_read_in_spellcodes~ ~~
 
+    ACTION_IF ENGINE_IS ~bgee bg2ee eet~ BEGIN
+       OUTER_SET ids_first_row = 1
+    END ELSE BEGIN
+       OUTER_SET ids_first_row = 0
+    END
     COPY_EXISTING ~spell.ids~ ~override~
          READ_2DA_ENTRIES_NOW ~spell_array~ 2
-         FOR (i=0;i<~spell_array~;i=i+1) BEGIN
+         FOR (i=ids_first_row;i<~spell_array~;i=i+1) BEGIN
            READ_2DA_ENTRY_FORMER ~spell_array~ i 0 ~spellcode~
            INNER_PATCH_SAVE ~spellcode~ ~%spellcode%~ BEGIN
               READ_ASCII 0x1 ~level~ (1)
@@ -335,7 +340,7 @@
                      DELETE_BYTES 0x0 3
                   END
                   TO_UPPER resource
-                  PATCH_IF !VARIABLE_IS_SET "RESREF_%resource%_LEVEL" BEGIN
+                  PATCH_IF !VARIABLE_IS_SET "RESREF_%resource%_LEVEL" && FILE_EXISTS_IN_GAME "%resource%.spl" BEGIN
                       INNER_ACTION BEGIN
                          COPY_EXISTING "%resource%.spl" "%workspace%"
                                LPF SPL_read_level RET "RESREF_%resource%_LEVEL"=value END
@@ -349,7 +354,7 @@
                      DELETE_BYTES 0x0 3
                   END
                   TO_UPPER resource
-                  PATCH_IF !VARIABLE_IS_SET "RESREF_%resource%_KIT_EFFECTS_ADD" BEGIN
+                  PATCH_IF !VARIABLE_IS_SET "RESREF_%resource%_KIT_EFFECTS_ADD" && FILE_EXISTS_IN_GAME "%resource%.spl" BEGIN
                       INNER_ACTION BEGIN
                         ACTION_IF FILE_EXISTS_IN_GAME "%resource%.spl" BEGIN
                          COPY_EXISTING "%resource%.spl" "%workspace%"
@@ -666,16 +671,21 @@
             SET  ~PROFICIENCY_RATE_%MACRO_class%~=MACRO_rate
        END
     BUT_ONLY
-    COPY_EXISTING profsmax.2da "%workspace%"
+	ACTION_IF ENGINE_IS ~bgee bg2ee eet~ BEGIN
+       OUTER_SET 2da_first_row = 1
+	END ELSE BEGIN
+       OUTER_SET 2da_first_row = 0
+	END
+     COPY_EXISTING profsmax.2da "%workspace%"
           READ_2DA_ENTRIES_NOW MACRO_prof_max_data 3
-          FOR (i=0;i<MACRO_prof_max_data;i+=1) BEGIN
+          FOR (i=2da_first_row;i<MACRO_prof_max_data;i+=1) BEGIN
             READ_2DA_ENTRY_FORMER MACRO_prof_max_data i 0 MACRO_class
             READ_2DA_ENTRY_FORMER MACRO_prof_max_data i 1 MACRO_first_level
             READ_2DA_ENTRY_FORMER MACRO_prof_max_data i 2 MACRO_other_level
             SET "PROFICIENCY_FIRST_LEVEL_MAX_%MACRO_class%"=MACRO_first_level
             SET "PROFICIENCY_OTHER_LEVEL_MAX_%MACRO_class%"=MACRO_other_level
           END
-    BUT_ONLY
+     BUT_ONLY
    END
 END
 
Link to comment

Eh, the initialize component still won't install on the EE 2.0 beta. Debug:

 

...

Copied [temp_file] to [stratagems_external/workspace/temp_file2] (NO BACKUP MADE!)
Copying and patching 1 file ...
Copying and patching 1 file ...
Copied [temp_file] to [stratagems_external/workspace/temp_file2] (NO BACKUP MADE!)
Copying and patching 1 file ...

Reading in data: spellcodes
Copying and patching 1 file ...
[./override/spell.ids] loaded, 25681 bytes
ERROR: cannot convert level or %level% to an integer
ERROR: [spell.ids] -> [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.
Stopping installation because of error.
Stopping installation because of error.
Stopping installation because of error.
Stopping installation because of error.
Stopping installation because of error.

ERROR Installing [initialise mod (all other components require this)], rolling back to previous state
[stratagems_external/backup/stratagems/1000/UNSETSTR.1000] SET_STRING uninstall info not found
Will uninstall 4 files for [sTRATAGEMS/SETUP-STRATAGEMS.TP2] component 1000.
Restoring backed-up [stratagems_external/backup/stratagems/1000/CHITIN.KEY]
stratagems_external/backup/stratagems/1000/CHITIN.KEY copied to CHITIN.KEY, 516214 bytes
[./CHITIN.KEY] loaded, 516214 bytes
[./CHITIN.KEY] 79 BIFFs, 36709 resources
Uninstalled 4 files for [sTRATAGEMS/SETUP-STRATAGEMS.TP2] component 1000.
Unable to Unlink [stratagems_external/backup/stratagems/1000/READLN.1000]: Unix.Unix_error(20, "unlink", "stratagems_external/backup/stratagems/1000/READLN.1000")
Unable to Unlink [stratagems_external/backup/stratagems/1000/READLN.1000.TEXT]: Unix.Unix_error(20, "unlink", "stratagems_external/backup/stratagems/1000/READLN.1000.TEXT")
ERROR: Not_found

 

Someone said they had fixed this and gotten it to install (maybe ALIEN?) for BWS... but never mentioned *how* ...

Link to comment

EDIT: And if I ever disappear and someone else wishes to maintain updating this kind of thread, it would be cool if you made your own thread to continue giving the same kind of instructions with more up to date thread name. I myself hold no (copy) rights here, as this is just a thread to disclose stuff, and let DavidW know about it.

I try to give the credits when and to who they belong.

Link to comment

apparently it was "Not cool." enough to horde the info in the BWS Fixpack,

All those patches (before code from CamDawn.) was already present in fixpack so ??? And code from CamDawn was recently added to my fork of fixpack + BWS update to use it temporary. I hope that it's clear now.

Link to comment

My beef is, all the stuff the went into the FixPack was not reported here. So people not using the FixPack could not get the benefit of it. The end result is, the FixPack sets itself up as a toll bridge between players and the mods - "if you want to use these mods, you must use the FixPack."

 

Except, not everyone can use the FixPack right now, even if they want to. So... what, they are out of luck? That sucks. As I've said elsewhere, if someone can go to the trouble to patch a mod for the FixPack, they should be able to take 30 seconds to drop a note on the mod's forum so that everyone can see the problem and the solution.

 

Even if the mod is not being maintained, what's the harm in posting the information? You never know whether someone might take up the reins and update the mod once again... but if that person doesn't have access to issues and possible solutions, they are less likely to ever do that.

 

E.g. Jarno has been going to various mod forums discussing the problematic kit.ids code, and that was helpful to me in updating Refinements. If he hadn't done that, my update would still be shipping the old code that creates bugs.

Link to comment

 

apparently it was "Not cool." enough to horde the info in the BWS Fixpack,

All those patches (before code from CamDawn.) was already present in fixpack so ???

 

What are you ??? about ?

This particular thread is mostly inspired by a linux user that thinks he is a doctor and a subtle one at that... :p But the primary post is for DavidW, so he can see every patch the BWS makes to the SCS. The BWP has been asked to post all this info many times by DavidW in the past, and cause I have the fingers free at my disposal at this time, I have posted the info. And I'll try to continue ... SO YOU DON*T have to.

 

My beef is, all the stuff the went into the FixPack was not reported here.

Technically they all are* reported in a few places, if you read all the cheesy posts too, but the mission of this post is just a clarification of the whole thing.

DavidW just needs to the first post. To make this whole thing easier for him. He is a busy man... not blowing us all to atoms, or actually sucking us to a singularity. What eve....

 

Why can't everyone use it? It's the first thing to check before installing npc mods (and I don't even use bws).

They are talking about the BWP/S Fixpack, not the BG2Fixpack... fix fix .... ahh that feels so good. Morphine. :D

 

*Whiteagus's problem + fix: http://www.shsforums.net/topic/56670-big-world-setup-an-attempt-to-update-the-program/page-113?do=findComment&comment=584335

*CrevsDaak's fix: http://gibberlings3.net/forums/index.php?showtopic=27692&p=240119

*CamDawn's fix: http://gibberlings3.net/forums/index.php?showtopic=27918&do=findComment&comment=242986

 

And then there comes a time when all those links go offline and like I give cheese.

Link to comment

Why can't everyone use it? It's the first thing to check before installing npc mods (and I don't even use bws).

It's the BWPFixPack, it's not a Weidu mod, it's a Windows-only tool designed for use with the Windows-only BWS program. You begin to see my problem. (Some people have recently begun making cross-platform versions of the BWPFixPack but I don't know how far along they are, or if they are continuing to receive all fixes as they roll in.)

 

As far as reporting: if I were to suggest something, I would say the FixPack guys should just create a thread in each mod's forum. And every time something goes into the FixPack for that mod, just add s new post saying "we just made x change to the mod's code, to fix y issue."

 

Then people can do something about it, or not. But at least the information is there.

Link to comment

Did I miss a memo?

 

@CamDawn: Btw; are you the project manager as to this mod ?

So ... CamDawn will have to pull his hair and write new things on them to fix this.

Ahh, apparently the CamDawn's link is broken, it should lead to here.

CamDawn might not have been in here, but people do things still.

Say like CamDawn, if there's enough to warrant one for the hassle.

Worth it, definitely, if you look back a bit, "we" asked CamDawn to make:

But the name comes from the "CamDawn's_Tweaks".

Original code credit goes to CamDawn.

All those patches (before code from CamDawn.) was already present in fixpack so ??? And code from CamDawn was recently added to my fork of fixpack + BWS update to use it temporary. I hope that it's clear now.

Link to comment

the fixes are usually weidu patches or files, which is usable just fine anywhere. No need for the gui.

It's not the GUI (which apparently uses some software that's like a Windows version of AppleScript Automator). The BWPFixPack runs from the command line, but it uses a .bat script or some other kind of Windows-only script.

 

And anyway that doesn't matter. If Refinements has some code in an ALWAYS block that borks kit.ids, but Refinements isn't being maintained or updated, then it's great that the BWP guys have a patch to enable players to use it.

 

But, if someone steps up and decides to update Refinements (like, y'know, me), I don't want to produce an update that still has bugs and still requires the FixPack. I want to look in the forums, see what outstanding issues there are with the mod, and address them.

 

(I know I sound strident and annoying. But someone's got to advocate for best practices and information-sharing. ;) )

Link to comment

Did I miss a memo?

Well, yes, it was the one that says the Imp went insane and decided makes CamDawn a target for the lunatic idea: Make CamDawn update existing fixes to mods that are hosted by his site... as the other hosts, and a few temporary necessary members are completely gone.

Also about the last quote, I know it would be the better than the originally proposed code by K4thos, cause K4thos'es solution wouldn't have worked in the original game, and it was already in the BWS Fixpack as I know it came from your post, so...

 

The BWPFixPack runs

Well, if you go here and look at the fixes it applies from the internal library of reasons and so on readme file, you can see the links to all the fixes or reports and then the fixes later in the mods as they exist... so whatever the BWP Fixpack does, doesn't really matter ... as the library is open to be seen for everyone. At least to what Lollorian has done for the most parts.

Link to comment

Archived

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

×
×
  • Create New...