Jump to content


Photo

including native EET compatibility ?


13 replies to this topic

#1 Ikki

Ikki
  • Members
  • 45 posts

Posted 06 July 2017 - 10:55 AM

hi AstroBryGuy
did you consider including native EET compatibility : it would be so comfortable to not have to install the mod under BGEE first



#2 AstroBryGuy

AstroBryGuy

    Mod Tinker

  • Gibberlings
  • 532 posts
  • Gender:Male
  • Location:Savoy, Illinois, USA

Posted 06 July 2017 - 11:58 AM

Not at this time. I've never installed EET (or BGT; I played Tutu before BGEE). The whole "one giant game" just doesn't appeal to me.

 

I have no objection to EET compatibility. It's just not my cup of tea. If someone wants to figure out the edits needed, they can submit them as a pull request on GitHub.


Edited by AstroBryGuy, 06 July 2017 - 02:33 PM.


#3 Ikki

Ikki
  • Members
  • 45 posts

Posted 08 July 2017 - 11:46 PM

hello AstroBryGuy,

if you want to give it a look, i have a little patch Attached File  bg1npc_BGT_TUTU_BGEE_EET.rar   127.26KB   13 downloads that allow the installation directly in EET

Spoiler

 

I have tested it with BGEE too and it install without problems ( for TUTU and BGT there maybe some tuning require )

the patch require some extented cpmvars (it use those from k4thos, and the missing association are put in bg1npc_[tutu bgee bgee eet].tpa

there is a text file with the change done in the .rar

take it as a template, i have certainly made some bugs

 

And Thank for your mod


Edited by Ikki, 10 July 2017 - 12:48 AM.


#4 AstroBryGuy

AstroBryGuy

    Mod Tinker

  • Gibberlings
  • 532 posts
  • Gender:Male
  • Location:Savoy, Illinois, USA

Posted 12 July 2017 - 08:25 PM

Why did you duplicate entries from the cpmvars in the bg1npc_[GAME].tpa files? That's asking to cause errors. If something gets changed in one location but not the other, the changed variable may get overwritten by the unchanged variable in the second location.

 

EDIT: Also, why are you applying the Update SPELDESC.2DA routine for EET? I thought it is using BG2EE as a "base", like BGT used BG2. By updating SPELDESC.2DA to use BGEE string indexes, you'll mess up the strings for healing services in temples.

 

EDIT 2: Many of the creatures added by BG1NPC utilize BG2 soundsets by default, since these resources are available on Tutu/BGT. On BGEE, these resources aren't always available, so I added routines to replace the BG2 soundsets with those available in BGEE. These routines are only applied in BGEE. Like Tutu & BGT, EET should have the BG2 soundsets available, but you have EET using the BGEE routines. Shouldn't EET use the BG2 resources like Tutu/BGT, since they are available? Or are there issues with the BG2 resources in EET?

 

EDIT 3: There will also be issues with EraseJournalEntry() commands, since the string references for the BG1 portion of EET do not match those in BGEE.


Edited by AstroBryGuy, 12 July 2017 - 09:28 PM.


#5 Ikki

Ikki
  • Members
  • 45 posts

Posted 12 July 2017 - 11:36 PM

 

Why did you duplicate entries from the cpmvars in the bg1npc_[GAME].tpa files

I tried to not duplicate them, if there are duplicate they must be removed

 

Just to explain what i have done with those .tpa

for EET convertion i needed the cpmvars from K4thos ( they are twice the size )

 

that's the association missing in K4thos eet_cpmvars, that where present in yours cpmvars : i put them in the bg1npc_eet.tpa files

/* Items and Variables that need special handling */
    OUTER_SPRINT "VoiceStrange" "False()"
    OUTER_SPRINT "RunAwayFrom" "RunAwayFromNoLeaveArea"
    ACTION_IF FILE_EXISTS_IN_GAME ~corwyvrn.cre~ THEN BEGIN
    	OUTER_SPRINT "CorWyvrn"	"CORWYVRN"
    END ELSE BEGIN
    	OUTER_SPRINT "CorWyvrn"	"X#CoranWyvern"
    END
	OUTER_SPRINT "port_s" "m"
	OUTER_SPRINT "port_l" "l"   
/* Tutu/BGT vs BGEE Dialog states */											   
    OUTER_SET housg3state5 = 0

for the other game, i needed K4thos cpmvars too because now there new %ID% that must find a game reference

so i have done the same, used K4thos.tpa for say BGT and put the missing reference (that existed only in bg1npc) in bg1npc_bgt.tpa

in the bg1npc_bgt.tpa i see 2  line duplicate in the g3_bgt_cpmvars.tpa, those duplicate should be removed (but if they are identical it won't do any harm)

 

 

These routines are only applied in BGEE

I didn't even know about this routines, sure don't apply them on EET game

 

And thank again for updating your mod for EET



#6 K4thos

K4thos
  • Modders
  • 1057 posts
  • Gender:Male

Posted 13 July 2017 - 02:17 AM

Didn't have time to look at the Iggi's code but will try to answer some questions regarding how EET works.

EDIT 3: There will also be issues with EraseJournalEntry() commands, since the string references for the BG1 portion of EET do not match those in BGEE.

indeed. I'm not aware how it's implemented in this mod but if there is some way to patch them on the fly (since BGT would have dynamic number there rather than static one like BG:EE) then when it comes to referencing exact BG:EE strrefs in EET, without relaying on SAY, all that has to be done is adding 200000 to the original strref (whole BG:EE TLK is appended to BG2:EE and starts from string 200000 onward, same goes for quest entries in bgee.lua - static BG:EE number + 200000. SAY weidu command is not used during conversion).

 

EDIT 2: Many of the creatures added by BG1NPC utilize BG2 soundsets by default, since these resources are available on Tutu/BGT. On BGEE, these resources aren't always available, so I added routines to replace the BG2 soundsets with those available in BGEE. These routines are only applied in BGEE. Like Tutu & BGT, EET should have the BG2 soundsets available, but you have EET using the BGEE routines. Shouldn't EET use the BG2 resources like Tutu/BGT, since they are available? Or are there issues with the BG2 resources in EET?

no changes at all when it comes to BG2:EE string numbers. So either use BG2:EE routines or like above add 200000 to the BG:EE strref to display BG:EE strings.
 

EDIT: Also, why are you applying the Update SPELDESC.2DA routine for EET? I thought it is using BG2EE as a "base", like BGT used BG2. By updating SPELDESC.2DA to use BGEE string indexes, you'll mess up the strings for healing services in temples.

correct, BG2:EE is used as a base.


Edited by K4thos, 13 July 2017 - 03:01 AM.


#7 AstroBryGuy

AstroBryGuy

    Mod Tinker

  • Gibberlings
  • 532 posts
  • Gender:Male
  • Location:Savoy, Illinois, USA

Posted 13 July 2017 - 08:36 AM

Thanks, k4thos.

 

Regarding the EraseJournalEntry() commands. BG1NPC is actually not very good about cleaning up vanilla journal entries when it adds new options to vanilla dialogs. I tried to fix that for BGEE by defining a variable before compiling the dialog that contains the actions from the vanilla dialog.

  ACTION_IF GAME_IS ~bgee~ THEN BEGIN
  	OUTER_SPRINT ~BGEEDynaheirEraseJournalEntries~ ~EraseJournalEntry(27171)  EraseJournalEntry(27274) EraseJournalEntry(27275) EraseJournalEntry(27031)  AddexperienceParty(800)~
  END ELSE BEGIN
  	OUTER_SPRINT ~BGEEDynaheirEraseJournalEntries~ ~~
  END

I did it like this since the game isn't ossified like the dialog.tlk for the original BG1 & BG2, i.e. Beamdog is still fixing typos, tweaking formatting, etc.. (all of which would throw off simply using string-matching). I could create an EET version that adds 200000 to the strrefs pretty easily.


Edited by AstroBryGuy, 13 July 2017 - 08:43 AM.


#8 K4thos

K4thos
  • Modders
  • 1057 posts
  • Gender:Male

Posted 13 July 2017 - 09:24 AM

I did it like this since the game isn't ossified like the dialog.tlk for the original BG1 & BG2, i.e. Beamdog is still fixing typos, tweaking formatting, etc.. (all of which would throw off simply using string-matching). I could create an EET version that adds 200000 to the strrefs pretty easily.

multiple versions of the same files are harder to maintain, so I would suggest approach used by Tweaks Anthology regarding BG2 chapter numbers differences. Instead of copies of the same files or additional variables just use code like this at the beginning of the mod installation:

ACTION_IF GAME_IS ~eet~ BEGIN
  ACTION_FOR_EACH file IN here_goes_list_with_path_to_each_d_and_baf_files_that_use_EraseJournalEntry BEGIN
    COPY ~%file%~ ~%file%~
      REPLACE_EVALUATE CASE_INSENSITIVE ~EraseJournalEntry(\([0-9]+\))~ BEGIN
        MATCH1 = MATCH1 + 200000
      END ~EraseJournalEntry(%MATCH1%)~
    BUT_ONLY
  END
END

Above code will update all EraseJournalEntry(x) to EraseJournalEntry(x + 200000) if GAME_IS ~eet~, so the same files that BG:EE version uses are ready for installation.


Edited by K4thos, 13 July 2017 - 09:37 AM.


#9 K4thos

K4thos
  • Modders
  • 1057 posts
  • Gender:Male

Posted 13 July 2017 - 09:46 AM

Sorry, I didn't understand your post correctly. If you're already using variable for adding those journals removal then it would be a matter of changing it like this (or adding this var into cpmvars):

ACTION_IF GAME_IS ~bgee~ THEN BEGIN
  OUTER_SPRINT ~BGEEDynaheirEraseJournalEntries~ ~EraseJournalEntry(27171)  EraseJournalEntry(27274) EraseJournalEntry(27275) EraseJournalEntry(27031)  AddexperienceParty(800)~
END ELSE ACTION_IF GAME_IS ~eet~ THEN BEGIN
  OUTER_SPRINT ~BGEEDynaheirEraseJournalEntries~ ~EraseJournalEntry(227171)  EraseJournalEntry(227274) EraseJournalEntry(227275) EraseJournalEntry(227031)  AddexperienceParty(800)~
END ELSE BEGIN
  OUTER_SPRINT ~BGEEDynaheirEraseJournalEntries~ ~~
END

Edited by K4thos, 13 July 2017 - 09:47 AM.


#10 AstroBryGuy

AstroBryGuy

    Mod Tinker

  • Gibberlings
  • 532 posts
  • Gender:Male
  • Location:Savoy, Illinois, USA

Posted 13 July 2017 - 11:26 AM

I'm using a variable so that the "EraseJournalEntry()" commands won't exist on a BGT or Tutu install.

 

I can make it work for EET, using your second example.



#11 AstroBryGuy

AstroBryGuy

    Mod Tinker

  • Gibberlings
  • 532 posts
  • Gender:Male
  • Location:Savoy, Illinois, USA

Posted 13 July 2017 - 07:32 PM

@ikki - a warning, most of the edits created by the automatic converter are wrong for BG1NPC. Most the GAME_IS ~bgee~ checks in BG1NPC aren't to deal with engine issues, but with missing BG2 resources, which EET has. If you play through with the version you sent me, you may encounter lots of creatures with random strings for character sounds. I also have serious doubts that the Romance Challenges component will work at all. Two of the areas added by that component will have ARE files based on BG1's AR6000, but trying use BG2 AR6000.WED (i.e., results will be random, you will be able to walk through trees but get stopped by invisible walls).

 

I'd recommend for now installing BG1NPC before EET conversion.


Edited by AstroBryGuy, 13 July 2017 - 07:34 PM.


#12 Ikki

Ikki
  • Members
  • 45 posts

Posted 14 July 2017 - 12:39 AM

 

you may encounter lots of creatures with random strings for character sounds

Yes, that's right, it was strange sometimes

 

 

I'd recommend for now installing BG1NPC before EET conversion

That's too late , but i didn't encounter so many problematic bugs, and a lot of content worked well



#13 AstroBryGuy

AstroBryGuy

    Mod Tinker

  • Gibberlings
  • 532 posts
  • Gender:Male
  • Location:Savoy, Illinois, USA

Posted 14 July 2017 - 04:23 PM

@ikki - Why did you comment out Shar-Teel's interjections on TAZOK states 12-35? The only change you note for the x#shint.d is replacing TAZOK with TAZOK%eet_var%, no editorial changes are noted.

 

Please don't include undocumented editorial changes as part of an EET conversion.



#14 Ikki

Ikki
  • Members
  • 45 posts

Posted 15 July 2017 - 12:03 AM

@ikki - Why did you comment out Shar-Teel's interjections on TAZOK states 12-35? The only change you note for the x#shint.d is replacing TAZOK with TAZOK%eet_var%, no editorial changes are noted.

 

Please don't include undocumented editorial changes as part of an EET conversion.

This was a mistake on my end.

before renaming TAZOK to TAZOK%eet_var% this dialog was throwing error and I comment this part trying to narrow the problem, then forgot to uncomment it





Reply to this topic



  


1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users