Jump to content

New component suggestion


aVENGER_(RR)

Recommended Posts

At the moment, all BG1 NPCs are missing feedback sounds for actions that were first voiced in the expanded BG2 version of the soundsets (i.e. weapon ineffective, spell disrupted, hidden in shadows, critical hit... etc). IMO, these sounds can be useful at times (especially the "weapon ineffective" message) so I've written a small piece of code which assigns the corresponding BG2 soundset parts to characters who are joinable NPCs in both games (Imoen, Jaheira, Viconia, Minsc and Edwin) and thus have the appropriate voicing for those lines. Here's the relevant code (platform independent):

 

// Slightly expanded soundsets for BG1 NPCs

ACTION_FOR_EACH imoen IN imoen imoen1 imoen2 imoen4 imoen61 _imoen _imoen1 _imoen2 _imoen4 _imoen6 BEGIN
 ACTION_IF FILE_EXISTS_IN_GAME "%imoen%.cre" BEGIN
COPY_EXISTING "%imoen%.cre" ~override~
  PATCH_IF (SOURCE_SIZE > 0x2d3) THEN BEGIN // protects against invalid files
	SAY CRITICAL_HIT #30746	// Got ya good!
	SAY CRITICAL_MISS #30747   // Next time.
	SAY TARGET_IMMUNE #30748   // Gotta try something else.
	SAY INVENTORY_FULL #30749  // Sorry, but I couldn't hold that last item. It's on the ground.
	SAY PICKED_POCKET #30750   // Easy as pie.
	SAY EXISTANCE1 #30751	  // Now you see me, now you don't.
	SAY EXISTANCE2 #30752	  // The magic fizzled.
	SAY EXISTANCE3 #30753	  // Shh, it's set and ready to go.
  END
BUT_ONLY_IF_IT_CHANGES
 END
END


ACTION_FOR_EACH jaheira IN jaheir jaheir2 jaheir4 jaheir6 _jaheir _jaheir2 _jaheir4 _jaheir6 BEGIN
 ACTION_IF FILE_EXISTS_IN_GAME "%jaheira%.cre" BEGIN
COPY_EXISTING "%jaheira%.cre" ~override~ // Jaheira
  PATCH_IF (SOURCE_SIZE > 0x2d3) THEN BEGIN // protects against invalid files
	SAY CRITICAL_HIT #30772	// With vengeance!
	SAY CRITICAL_MISS #30775   // Ugh!
	SAY TARGET_IMMUNE #30776   // My weapon has no effect!
	SAY INVENTORY_FULL #30777  // I have too much in my pack as it is. You'll have to pick that up off the ground.
	SAY EXISTANCE2 #30780	  // My concentration is undone. My spell has failed.
  END
BUT_ONLY_IF_IT_CHANGES
 END
END


ACTION_FOR_EACH viconia IN viconi viconi4 viconi61 _viconi _viconi4 _viconi6 BEGIN
 ACTION_IF FILE_EXISTS_IN_GAME "%viconia%.cre" BEGIN
COPY_EXISTING "%viconia%.cre" ~override~ // Viconia
  PATCH_IF (SOURCE_SIZE > 0x2d3) THEN BEGIN // protects against invalid files
	SAY CRITICAL_HIT #30528	// Vith'os!
	SAY CRITICAL_MISS #30529   // Vith'ir!
	SAY TARGET_IMMUNE #30534   // My weapon is faulty!
	SAY INVENTORY_FULL #30535  // I will carry no more. You may scrounge what I have dropped upon the ground.
	SAY EXISTANCE2 #30538	  // My thoughts are disrupted. My magic is lost.
  END
BUT_ONLY_IF_IT_CHANGES
 END
END


ACTION_FOR_EACH minsc IN minsc minsc2 minsc4 minsc6 _minsc _minsc2 _minsc4 _minsc6 BEGIN
 ACTION_IF FILE_EXISTS_IN_GAME "%minsc%.cre" BEGIN
COPY_EXISTING "%minsc%.cre" ~override~ // Minsc
  PATCH_IF (SOURCE_SIZE > 0x2d3) THEN BEGIN // protects against invalid files
	SAY CRITICAL_HIT #30937	// Ah hay!!
	SAY CRITICAL_MISS #31850   // That's not right.
	SAY TARGET_IMMUNE #31901   // No effect? I need a bigger sword!
	SAY INVENTORY_FULL #33805  // I have had to drop what you gave me. I have only two arms and no more space.
	SAY EXISTANCE1 #34380	  // None shall see me, though my battlecry may give me away.
	SAY EXISTANCE2 #34381	  // I turned to shield Boo and have lost my spell. I am not sorry.
  END
BUT_ONLY_IF_IT_CHANGES
 END
END


ACTION_FOR_EACH edwin IN edwin edwin2 edwin4 edwin6 _edwin _edwin2 _edwin4 _edwin6 BEGIN
 ACTION_IF FILE_EXISTS_IN_GAME "%edwin%.cre" BEGIN
COPY_EXISTING "%edwin%.cre" ~override~ // Edwin
  PATCH_IF (SOURCE_SIZE > 0x2d3) THEN BEGIN // protects against invalid files
	SAY CRITICAL_HIT #30718	// Fear me!
	SAY CRITICAL_MISS #30719   // Bah, useless weapon!
	SAY TARGET_IMMUNE #30720   // This weapon is worthless.
	SAY INVENTORY_FULL #30721  // I will carry no more. Find your trinket upon the ground.
	SAY PICKED_POCKET #30722   // The fool saw nothing. Such simple larceny.
	SAY EXISTANCE1 #30723	  // I am concealed, though I see no need.
	SAY EXISTANCE2 #30724	  // My spell disrupted? Argh!!
	SAY EXISTANCE3 #30725	  // I prefer to attack more directly, but a trap will do for now.
  END
BUT_ONLY_IF_IT_CHANGES
 END
END

 

Feel free to add this to some future release if you find it useful. ???

Link to comment

I would rather not run out a separate component for something that fixes missing resources, especially as it cannot be done without asking for translation strings to be added to the setup.tra and we already know that doing this by string reference # means no need for translators to worry - it will add them from the relevant .tlk. We fix a bunch of stuff like this for Tiax, the gnomes in the game, and do stuff like

LAUNCH_PATCH_MACRO ~enforce_cre_order~

LAUNCH_PATCH_MACRO ~use_v2_eff~

in order to make the related .cres actually conform to BG2 game engine usage. To me, putting this in the silent core fixes seems to be the best place for this. But I will toss it into the workroom for a vote of existing project folks, and we can go from there.

Link to comment

But this matters for every player - every one who plays BG1 NPC will sense immediately that some characters become voice-less compared to others. Besides, voices _changed_ slightly from BG1 to BG2 - more than a year passed, and you can hear that Imoen's or Jaheira's pitch(their actresses) changed - even without having a musical ear. She would say her SELECT line in one tonality, and CRITICAL_MISS with another.

 

So it's not just jastey or me or Domi you should ask. Then again, a user shouldn't _come to the forum and vote_ each time something happens he or she doesn't like. Besides, if at least twenty percent BG1 NPC users disagree, it means that hundreds of people would feel uncomfortable.

 

Bottom line is, this change as a non-optional sense makes no sense - it's as if we changed Imoen's, Jaheira's and Minsc's portraits to BG2 ones by default. Quinn trashed PS:T - do you folks really want to see the same happening to BG1 NPC? Lots of nonoptional changes that make the game different?

 

It'd work great as an optional change, though - just like I said.

Link to comment

To summarise what I posted before the crash hosed the forum, there is already a component like this in DSotSC (#2 in the readme). It is compatible with BGT and Tutu and does not require DSotSC. In addition, it goes a bit beyond this as it enables sound clips for all NPCs that worked in BG1 but not in BGT or Tutu due to differences of the BG2 engine. Bearwere wrote it originally (see here). The version in DSotSC (lib/wb_ext_sounds.tpa) is ~1150 lines of code.

Link to comment

Archived

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

×
×
  • Create New...