Jump to content

Gender fixes


Recommended Posts

More fixes from devSin, backed out from regexps again. However, why are so many creatures being changed to gender neutral?

 

// gender fixes
COPY_EXISTING ~BAZLIZ01.CRE~ ~override~
             ~BAZLIZ02.CRE~ ~override~
             ~BDOCK1.CRE~   ~override~
             ~C6GOFUS.CRE~  ~override~
             ~C6KACH.CRE~   ~override~
             ~COWENF1.CRE~  ~override~
             ~DADROW2.CRE~  ~override~
             ~DADROW8.CRE~  ~override~
             ~DADROW9.CRE~  ~override~
             ~DADROW15.CRE~ ~override~
             ~DERRICK.CRE~  ~override~
             ~DORKUS.CRE~   ~override~
             ~DPMON01.CRE~  ~override~
             ~DROFOD02.CRE~ ~override~
             ~DROFOD03.CRE~ ~override~
             ~ESCORT3.CRE~  ~override~
             ~GITH05.CRE~   ~override~
             ~GITH06.CRE~   ~override~
             ~GORAPR.CRE~   ~override~
             ~GORGUA04.CRE~ ~override~
             ~GORGUA05.CRE~ ~override~
             ~HLMAGE.CRE~   ~override~
             ~JONDAL.CRE~   ~override~
             ~KAYSMG01.CRE~ ~override~
             ~KCHILD1.CRE~  ~override~
             ~KCHILD2.CRE~  ~override~
             ~KPROEN03.CRE~ ~override~
             ~KPSOLD10.CRE~ ~override~
             ~KRUIN.CRE~    ~override~
             ~KUOARC20.CRE~ ~override~
             ~LAVOK02.CRE~  ~override~
             ~OGRE01.CRE~   ~override~
             ~OGRHAL01.CRE~ ~override~
             ~OGRILL01.CRE~ ~override~
             ~PALERN.CRE~   ~override~
             ~PALKNI02.CRE~ ~override~
             ~PALKNI03.CRE~ ~override~
             ~PALKNI04.CRE~ ~override~
             ~PALKNI05.CRE~ ~override~
             ~PCAPT02.CRE~  ~override~
             ~PETTIN.CRE~   ~override~
             ~PLYOGRE.CRE~  ~override~
             ~PLYSALA.CRE~  ~override~
             ~RETHUG02.CRE~ ~override~
             ~RIFTG03.CRE~  ~override~
             ~SAHBEH03.CRE~ ~override~
             ~SAHOTY01.CRE~ ~override~
             ~SARBHA01.CRE~ ~override~
             ~SEWERM.CRE~   ~override~
             ~SHTH03.CRE~   ~override~
             ~SLVIC02.CRE~  ~override~
             ~TOBBAN01.CRE~ ~override~
             ~TOBPAR04.CRE~ ~override~
             ~TOLGER.CRE~   ~override~
             ~TOLGER2.CRE~  ~override~
             ~TOWNC01.CRE~  ~override~
             ~TRCUT06.CRE~  ~override~
             ~TRFUED02.CRE~ ~override~
             ~TRFUED05.CRE~ ~override~
             ~WINNKEEP.CRE~ ~override~
             ~YARMY03.CRE~  ~override~
 WRITE_BYTE 0x0275 1 // male
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AMMONK08.CRE~ ~override~
             ~AR18ARCH.CRE~ ~override~
             ~C6CATTI.CRE~  ~override~
             ~C6CATTI2.CRE~ ~override~
             ~C6CLER3.CRE~  ~override~
             ~C6DEL.CRE~    ~override~
             ~C6GUEN2.CRE~  ~override~
             ~CEFALD02.CRE~ ~override~
             ~CHICKDEF.CRE~ ~override~
             ~CHICKE.CRE~   ~override~
             ~CHICKER.CRE~  ~override~
             ~COPLION.CRE~  ~override~
             ~COW.CRE~      ~override~
             ~CSHECK1.CRE~  ~override~
             ~CSHECK3.CRE~  ~override~
             ~CSSUPP2.CRE~  ~override~
             ~DADROW10.CRE~ ~override~
             ~DADROW23.CRE~ ~override~
             ~DAGHAUN1.CRE~ ~override~
             ~DAGHAUN2.CRE~ ~override~
             ~DEADCOW1.CRE~ ~override~
             ~DEADCOW2.CRE~ ~override~
             ~DEER01.CRE~   ~override~
             ~DEVAGOOD.CRE~ ~override~
             ~DEVAEVIL.CRE~ ~override~
             ~DEVAST01.CRE~ ~override~
             ~DEVMON01.CRE~ ~override~
             ~DPFEMALE.CRE~ ~override~
             ~DPSTAT05.CRE~ ~override~
             ~DROFOD04.CRE~ ~override~
             ~DROW04.CRE~   ~override~
             ~DSBODY01.CRE~ ~override~
             ~FANGEL01.CRE~ ~override~
             ~FINSOL01.CRE~ ~override~
             ~GEMCH01.CRE~  ~override~
             ~GEMCH02.CRE~  ~override~
             ~GORSTA05.CRE~ ~override~
             ~HLSHYR.CRE~   ~override~
             ~HSPECTR1.CRE~ ~override~
             ~JADE1.CRE~    ~override~
             ~JAHEI1.CRE~   ~override~
             ~JAREV1.CRE~   ~override~
             ~JAMERONI.CRE~ ~override~
             ~MGKHOL01.CRE~ ~override~
             ~NCHICK.CRE~   ~override~
             ~NCOW.CRE~     ~override~
             ~PIRFSH02.CRE~ ~override~
             ~PIRSAL02.CRE~ ~override~
             ~PLANET01.CRE~ ~override~
             ~PLANGOOD.CRE~ ~override~
             ~PLANEVIL.CRE~ ~override~
             ~PLANWISH.CRE~ ~override~
             ~PPBODHI3.CRE~ ~override~
             ~PPMAG01.CRE~  ~override~
             ~PPVALEN.CRE~  ~override~
             ~REMAGE01.CRE~ ~override~
             ~SENDAI7.CRE~  ~override~
             ~SUENDEL2.CRE~ ~override~
             ~SUENDEL4.CRE~ ~override~
             ~SUENDEL6.CRE~ ~override~
             ~SUENDEL8.CRE~ ~override~
             ~TOBPAR02.CRE~ ~override~
             ~TRFTOW04.CRE~ ~override~
             ~TRSKIN01.CRE~ ~override~
             ~UDDOOR06.CRE~ ~override~
             ~UDDROW35.CRE~ ~override~
             ~VAMANC01.CRE~ ~override~
             ~VAMEMI01.CRE~ ~override~
             ~VAMMAT01.CRE~ ~override~
             ~VAMPAT01.CRE~ ~override~
             ~VAMVER01.CRE~ ~override~
             ~VAMPAER.CRE~  ~override~
             ~VAMPIRE1.CRE~ ~override~
             ~VAMPJAH.CRE~  ~override~
             ~VAMPVIC.CRE~  ~override~
             ~VVBODHI.CRE~  ~override~
             ~VVDEL.CRE~    ~override~
             ~VVPARIS.CRE~  ~override~
             ~VVSALIA.CRE~  ~override~
             ~VVTANOV.CRE~  ~override~
             ~WPWENCH1.CRE~ ~override~
             ~YARMY01.CRE~  ~override~
             ~YSMAGE02.CRE~ ~override~
 WRITE_BYTE 0x0275 2 // female
BUT_ONLY_IF_IT_CHANGES

PRINT @3
COPY_EXISTING ~ABISRED1.CRE~ ~override~
             ~ABYDEM01.CRE~ ~override~
             ~AR18SKEL.CRE~ ~override~
             ~BEHHIV01.CRE~ ~override~
             ~BHGHOUL2.CRE~ ~override~
             ~BHGHOUL4.CRE~ ~override~
             ~DACEMIST.CRE~ ~override~
             ~DDGUARD1.CRE~ ~override~
             ~DDGUARD2.CRE~ ~override~
             ~DDGUARD4.CRE~ ~override~
             ~DDGUARD5.CRE~ ~override~
             ~DDGUARD6.CRE~ ~override~
             ~DEADDEM1.CRE~ ~override~
             ~DEATHKNI.CRE~ ~override~
             ~DECK615.CRE~  ~override~
             ~DELMIST.CRE~  ~override~
             ~DEMABI01.CRE~ ~override~
             ~DEMCOR01.CRE~ ~override~
             ~DEMGLA01.CRE~ ~override~
             ~DEMPIT01.CRE~ ~override~
             ~DEMILICH.CRE~ ~override~
             ~DEMOSUM1.CRE~ ~override~
             ~DEMOSUM2.CRE~ ~override~
             ~DEMOSUM3.CRE~ ~override~
             ~DGLAB01.CRE~  ~override~
             ~DPDEM01.CRE~  ~override~
             ~DPMON02.CRE~  ~override~
             ~ELEARB01.CRE~ ~override~
             ~ELEARB02.CRE~ ~override~
             ~ELEARB03.CRE~ ~override~
             ~ELEARB04.CRE~ ~override~
             ~ELEARB05.CRE~ ~override~
             ~ELEARB06.CRE~ ~override~
             ~ELEARB07.CRE~ ~override~
             ~ELEARB08.CRE~ ~override~
             ~ELEARB09.CRE~ ~override~
             ~ELEARB10.CRE~ ~override~
             ~ELEARB11.CRE~ ~override~
             ~ELEPUZ01.CRE~ ~override~
             ~ELEPUZ02.CRE~ ~override~
             ~ELEPUZ03.CRE~ ~override~
             ~ELEPUZ04.CRE~ ~override~
             ~FIRLCH01.CRE~ ~override~
             ~FIRWRA01.CRE~ ~override~
             ~FSSKEL.CRE~   ~override~
             ~GHOGR01.CRE~  ~override~
             ~GLBEAR.CRE~   ~override~
             ~GORBAT1.CRE~  ~override~
             ~GORBAT3.CRE~  ~override~
             ~GORCAMB.CRE~  ~override~
             ~GORCHR.CRE~   ~override~
             ~GORTAN1.CRE~  ~override~
             ~GORTAN4.CRE~  ~override~
             ~GORWOM05.CRE~ ~override~
             ~GRSKEL1.CRE~  ~override~
             ~GRSKEL2.CRE~  ~override~
             ~HELLFEAR.CRE~ ~override~
             ~HELLGREE.CRE~ ~override~
             ~HELLPRID.CRE~ ~override~
             ~HELLSELF.CRE~ ~override~
             ~HGMIS02.CRE~  ~override~
             ~HGSKL01.CRE~  ~override~
             ~HGSKL02.CRE~  ~override~
             ~HGSKL03.CRE~  ~override~
             ~HGWRA01.CRE~  ~override~
             ~HLDEMI.CRE~   ~override~
             ~HLSKULL.CRE~  ~override~
             ~ICFUNG02.CRE~ ~override~
             ~ICMYC01.CRE~  ~override~
             ~ICMYC02.CRE~  ~override~
             ~IGOLFLE3.CRE~ ~override~
             ~IGOLFLE4.CRE~ ~override~
             ~KELZOMB.CRE~  ~override~
             ~KSHADOW.CRE~  ~override~
             ~LESTER.CRE~   ~override~
             ~MAGE6A.CRE~   ~override~
             ~MAGE6B.CRE~   ~override~
             ~MAGE6C.CRE~   ~override~
             ~MAGE8A.CRE~   ~override~
             ~MAGE8B.CRE~   ~override~
             ~MAGE8C.CRE~   ~override~
             ~MAGE8E.CRE~   ~override~
             ~MAGE10A.CRE~  ~override~
             ~MAGE10B.CRE~  ~override~
             ~MAGE10C.CRE~  ~override~
             ~MAGE10D.CRE~  ~override~
             ~MAGE11A.CRE~  ~override~
             ~MAGE11B.CRE~  ~override~
             ~MAGE11C.CRE~  ~override~
             ~MAGE11M.CRE~  ~override~
             ~MAGE14A.CRE~  ~override~
             ~MAGE14B.CRE~  ~override~
             ~MAGE14C.CRE~  ~override~
             ~MAGE14M.CRE~  ~override~
             ~MAGE16A.CRE~  ~override~
             ~MAGE16B.CRE~  ~override~
             ~MAGE16C.CRE~  ~override~
             ~MAGE16M.CRE~  ~override~
             ~MAGE18A.CRE~  ~override~
             ~MAGE18B.CRE~  ~override~
             ~MAGE18C.CRE~  ~override~
             ~MAGE18D.CRE~  ~override~
             ~MAGE18E.CRE~  ~override~
             ~MAGE18Y.CRE~  ~override~
             ~MAGE18Z.CRE~  ~override~
             ~MAGE20.CRE~   ~override~
             ~MAGE20B.CRE~  ~override~
             ~MAGE20C.CRE~  ~override~
             ~MISTHO01.CRE~ ~override~
             ~MISTWA01.CRE~ ~override~
             ~NEVM2.CRE~    ~override~
             ~OBSDEM01.CRE~ ~override~
             ~PMASTER.CRE~  ~override~
             ~PPDEMON.CRE~  ~override~
             ~PWARDEN.CRE~  ~override~
             ~PPNAB01.CRE~  ~override~
             ~PPNAB02.CRE~  ~override~
             ~PPNAB03.CRE~  ~override~
             ~RNGSHA.CRE~   ~override~
             ~RNGSHA01.CRE~ ~override~
             ~RNGSHA02.CRE~ ~override~
             ~RNGSHA03.CRE~ ~override~
             ~RNGSHA04.CRE~ ~override~
             ~RNGSHA2D.CRE~ ~override~
             ~RSKEL01.CRE~  ~override~
             ~RSKEL03.CRE~  ~override~
             ~RUMAR02.CRE~  ~override~
             ~SDSHADFI.CRE~ ~override~
             ~SDSHADOW.CRE~ ~override~
             ~SENDARK.CRE~  ~override~
             ~SEWSHA01.CRE~ ~override~
             ~SEWSHA02.CRE~ ~override~
             ~SEWSHA03.CRE~ ~override~
             ~SHADEL.CRE~   ~override~
             ~SHADELD.CRE~  ~override~
             ~SHADFI01.CRE~ ~override~
             ~SHADFI02.CRE~ ~override~
             ~SHADOW01.CRE~ ~override~
             ~SHAPE.CRE~    ~override~
             ~SHAWOL01.CRE~ ~override~
             ~SHAWOL02.CRE~ ~override~
             ~SKELAR01.CRE~ ~override~
             ~SKELAR02.CRE~ ~override~
             ~SKELE2.CRE~   ~override~
             ~SKELET01.CRE~ ~override~
             ~SKELHP1.CRE~  ~override~
             ~SLIFIS01.CRE~ ~override~
             ~SLIFIS02.CRE~ ~override~
             ~SWORD03.CRE~  ~override~
             ~TANARI01.CRE~ ~override~
             ~TANOMIST.CRE~ ~override~
             ~TELBAL1.CRE~  ~override~
             ~TELCOR1.CRE~  ~override~
             ~TELPIT1.CRE~  ~override~
             ~TELPIT2.CRE~  ~override~
             ~TELSLAV.CRE~  ~override~
             ~TELTAN1.CRE~  ~override~
             ~TELTAN2.CRE~  ~override~
             ~TELWRAI.CRE~  ~override~
             ~UDDEATH.CRE~  ~override~
             ~UDDEATH2.CRE~ ~override~
             ~UDNABA.CRE~   ~override~
             ~UHCREAT.CRE~  ~override~
             ~VALEMIST.CRE~ ~override~
             ~WOLFZO01.CRE~ ~override~
             ~WRAITH01.CRE~ ~override~
             ~WRASHI01.CRE~ ~override~
 WRITE_BYTE 0x0275 4 // neither
BUT_ONLY_IF_IT_CHANGES

// fixes summoned creature gender
COPY_EXISTING ~bearblsu.cre~ ~override~
             ~beargrsu.cre~ ~override~
             ~ettercsu.cre~ ~override~
             ~sumdjinn.cre~ ~override~
             ~sword02.cre~  ~override~
             ~worgsu.cre~   ~override~
             ~xvartsu.cre~  ~override~
 WRITE_BYTE 0x275 6
 BUT_ONLY_IF_IT_CHANGES

Link to comment

A) Kill the MAGE* updates. The files are templates and rarely, if ever, used. Locally, I don't change them at all anymore.

 

B) They're either undead or freaky spellcasters. There's nothing I hate more than listening to the all-powerful lich vocho-butthole-blah... to cast their spells.

 

C) I changed the devas and planetars to female (I used to change them to gender: both, but this gives them male casting voices), which may or may not be accurate (with how they're used in-game, they look more like girls than boys to me).

 

Kish can go through the rest and tell you how misguided I am, I'm sure.

Link to comment
B) They're either undead or freaky spellcasters. There's nothing I hate more than listening to the all-powerful lich vocho-butthole-blah... to cast their spells.

 

Does this leave them with any casting voice?

Link to comment

Nope. There are three possibilities in-game: gender set to FEMALE (2) for female casting voices, gender set to NEITHER (4) for no casting voices, and any other value for male casting voices. This is really the only effect the gender value has in-game.

 

Looking through the list, they're all either undead (who thinks a skeleton should have a humanoid casting voice?) or other creatures where the assignments are inconsistent with all other creatures using that animation.

 

Unless someone wants to go through the list and check each one, you can either toss it or drop it in and change it as specific issues come up.

Link to comment

Note that it doesn't interfere with the casting sound, just the voice.

 

Does this include Projected Images? They always sound male.
If an object has a gender that isn't FEMALE (2) or NEITHER (4), then the casting sounds will always be male.

 

This means creatures with genders SUMMONED, ILLUSIONARY, NONE, EXTRAn, MALE, etc., will *all* have male casting voices. The only one I'm not sure about is SUMMONED_DEMON (9), but I'm guessing it defaults to male, too.

Link to comment

Cam, while you're at it, you might want to add the STATE_SLEEPING flag to all sleeping characters. :)

 

I've recently done this for RR v3.9 in my "Revised Thievery" component. My code may be a bit crude, but it does the job well enough, and it shouldn't re-flag characters in case they have already been flagged as sleeping by some other mod:

 

COPY_EXISTING ~SLEEPDW.CRE~ ~override~   // Sleeping Dwarf
		  ~SLEEPFH.CRE~ ~override~   // Sleeping Woman
		  ~SLEEPMH.CRE~ ~override~   // Sleeping Man
 READ_LONG  0x20 "states"
 WRITE_LONG 0x20 ("%states%" BOR 0b00000001) // add the STATE_SLEEPING flag
BUT_ONLY_IF_IT_CHANGES

Link to comment

No. STATE_SLEEPING prevents them from being clicked on.

 

For a real bug, we need to find the few CREs with STATE_INVISIBLE and fix 'em -- with just the STATE bit checked and no actual invisibility item or effect (a la MAGE01), they behave like invisibles but for the fact that they're visible! (Although you can see them, you can't actually attack them -- clicking on them does nothing -- until they "break" their "invisibility" by attacking somebody.) Unless we already have and I've forgotten yet again...

Link to comment
No. STATE_SLEEPING prevents them from being clicked on.

 

Are you sure? :)

 

I just tested this by starting a new game and CLUA-ing my PC to the Copper Coronet (AR0406). He was able to talk to the Sleeping Dwarf in the room right across Llynis's chamber without any problems. The Sleeping Dwarf had the usual blue circle and he properly said his line (Zzzzz (snort!)....). I then saved the game and loaded it in NI to confirm that the Sleeping Dwarf indeed had the STATE_SLEEPING flag that RR assigns and - he did. :)

 

For a real bug, we need to find the few CREs with STATE_INVISIBLE and fix 'em -- with just the STATE bit checked and no actual invisibility item or effect (a la MAGE01), they behave like invisibles but for the fact that they're visible! (Although you can see them, you can't actually attack them -- clicking on them does nothing -- until they "break" their "invisibility" by attacking somebody.) Unless we already have and I've forgotten yet again...

 

Yup, I encountered a couple of those while working on Shadow Thief Improvements. For example, ARNWAR03.CRE is flagged as STATE_INVISIBLE in the unmodded game. I used to fix those guys in the older versions of RR, but since STI uses custom areas and custom creatures as of late that fix no longer applies.

Link to comment
For a real bug, we need to find the few CREs with STATE_INVISIBLE and fix 'em -- with just the STATE bit checked and no actual invisibility item or effect (a la MAGE01), they behave like invisibles but for the fact that they're visible! (Although you can see them, you can't actually attack them -- clicking on them does nothing -- until they "break" their "invisibility" by attacking somebody.) Unless we already have and I've forgotten yet again...

Found only six--rngsta01 is unused; obsgol02, udpent.cre, uhostile.cre, and wildzone.cre are invisible by effect/mage01.itm; only arnman11 and arnwar03 are flagged improperly.

 

And yeah, aVENGER's right--the sleeping flag doesn't prevent clickityness, as sleepdw speaks fine. The other two not so much, but I suspect it may be because they don't have a dialogue file assigned. :)

 

// add sleeping flag to sleeping creatures
COPY_EXISTING ~sleepdw.cre~ ~override~   // sleeping dwarf
		  ~sleepfh.cre~ ~override~   // sleeping woman
		  ~sleepmh.cre~ ~override~   // sleeping man
 READ_BYTE  0x20 "state"
 WRITE_BYTE 0x20 ("%state%" BOR 0b00000001) // add the STATE_SLEEPING flag
 BUT_ONLY_IF_IT_CHANGES

// add sleeping flag to sleeping creatures
COPY_EXISTING ~arnman11.cre~ ~override~
		  ~arnwar03.cre~ ~override~
 READ_BYTE  0x20 "state"
 WRITE_BYTE 0x20 ("%state%" BAND 0b11101111) // remove the STATE_INVISIBILITY flag
 BUT_ONLY_IF_IT_CHANGES

Link to comment

Archived

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

×
×
  • Create New...