Jump to content

DFB - Huh?


CamDawg

Recommended Posts

This is a trio of threads in which I'm breaking down devSin's fixpack into three areas--stuff not included, stuff included, and stuff I can't figure out how/why it's doing.

 

I'll admit, some of this I'm just being lazy since it means I'd need to open a bunch of files and see exactly what's being changed. devSin, feel free to hop in and comment on any/all of this thread. Please. ;)

 

// adds new messages to game window for eff files
APPEND ~EFFTEXT.2DA~ ~129 AID                         17408~ UNLESS ~^129\b~
APPEND ~EFFTEXT.2DA~ ~130 BLESS                       17408~ UNLESS ~^130\b~
APPEND ~EFFTEXT.2DA~ ~74  BLINDNESS                   1474~ UNLESS ~^74\b~
APPEND ~EFFTEXT.2DA~ ~65  BLUR                        14062~ UNLESS ~^65\b~
APPEND ~EFFTEXT.2DA~ ~60  CASTING_FAILURE             12930~ UNLESS ~^60\b~
APPEND ~EFFTEXT.2DA~ ~57  CHANGE_ALIGNMENT            14055~ UNLESS ~^57\b~
APPEND ~EFFTEXT.2DA~ ~131 CHANT                       17408~ UNLESS ~^131\b~
APPEND ~EFFTEXT.2DA~ ~6   CHARISMA_MODIFICATION       14034~ UNLESS ~^6\b~
APPEND ~EFFTEXT.2DA~ ~5   CHARM_CREATURE              1476~ UNLESS ~^5\b~
APPEND ~EFFTEXT.2DA~ ~128 CONFUSION                   14782~ UNLESS ~^128\b~
APPEND ~EFFTEXT.2DA~ ~10  CONSTITUTION_MODIFICATION   14029~ UNLESS ~^10\b~
APPEND ~EFFTEXT.2DA~ ~75  CURE_BLINDNESS              2380~ UNLESS ~^75\b~
APPEND ~EFFTEXT.2DA~ ~81  CURE_DEAFNESS               2380~ UNLESS ~^81\b~
APPEND ~EFFTEXT.2DA~ ~79  CURE_DISEASE                2449~ UNLESS ~^79\b~
APPEND ~EFFTEXT.2DA~ ~80  DEAFNESS                    46432~ UNLESS ~^80\b~
APPEND ~EFFTEXT.2DA~ ~166 DETECT_INVISIBLE            14109~ UNLESS ~^166\b~
APPEND ~EFFTEXT.2DA~ ~15  DEXTERITY_MODIFICATION      14024~ UNLESS ~^15\b~
APPEND ~EFFTEXT.2DA~ ~78  DISEASE                     54337~ UNLESS ~^78\b~
APPEND ~EFFTEXT.2DA~ ~58  DISPEL_EFFECTS              14056~ UNLESS ~^58\b~
APPEND ~EFFTEXT.2DA~ ~154 ENTANGLE_OVERLAY            334~ UNLESS ~^154\b~
APPEND ~EFFTEXT.2DA~ ~76  FEEBLEMINDEDNESS            23744~ UNLESS ~^76\b~
APPEND ~EFFTEXT.2DA~ ~16  HASTE                       14023~ UNLESS ~^16\b~
APPEND ~EFFTEXT.2DA~ ~109 HOLD_CREATURE               340~ UNLESS ~^109\b~
APPEND ~EFFTEXT.2DA~ ~175 HOLD_CREATURE_TYPE          340~ UNLESS ~^175\b~
APPEND ~EFFTEXT.2DA~ ~211 IMPRISONMENT                34636~ UNLESS ~^211\b~
APPEND ~EFFTEXT.2DA~ ~63  INFRAVISION                 14060~ UNLESS ~^63\b~
APPEND ~EFFTEXT.2DA~ ~19  INTELLIGENCE_MODIFICATION   14021~ UNLESS ~^19\b~
APPEND ~EFFTEXT.2DA~ ~20  INVISIBILITY                396~ UNLESS ~^20\b~
APPEND ~EFFTEXT.2DA~ ~18  MAXIMUM_HP_BONUS            13999~ UNLESS ~^18\b~
APPEND ~EFFTEXT.2DA~ ~213 MAZE                        8298~ UNLESS ~^213\b~
APPEND ~EFFTEXT.2DA~ ~119 MIRROR_IMAGE                14774~ UNLESS ~^119\b~
APPEND ~EFFTEXT.2DA~ ~69  NON-DETECTION               14777~ UNLESS ~^69\b~
APPEND ~EFFTEXT.2DA~ ~24  PANIC                       38866~ UNLESS ~^24\b~
APPEND ~EFFTEXT.2DA~ ~236 PROJECT_IMAGE               60481~ UNLESS ~^236\b~
APPEND ~EFFTEXT.2DA~ ~98  REGENERATION                8313~ UNLESS ~^98\b~
APPEND ~EFFTEXT.2DA~ ~221 REMOVE_SPELL_PROTECTIONS    40690~ UNLESS ~^221\b~
APPEND ~EFFTEXT.2DA~ ~230 REMOVE_MAGIC_PROTECTIONS    40690~ UNLESS ~^230\b~
APPEND ~EFFTEXT.2DA~ ~71  SEX_CHANGE                  14068~ UNLESS ~^71\b~
APPEND ~EFFTEXT.2DA~ ~38  SILENCE                     14676~ UNLESS ~^38\b~
APPEND ~EFFTEXT.2DA~ ~40  SLOW                        335~ UNLESS ~^40\b~
APPEND ~EFFTEXT.2DA~ ~218 STONESKIN                   13005~ UNLESS ~^218\b~
APPEND ~EFFTEXT.2DA~ ~97  STRENGTH_EXTRA_MODIFICATION 14090~ UNLESS ~^97\b~
APPEND ~EFFTEXT.2DA~ ~44  STRENGTH_MODIFICATION       14042~ UNLESS ~^44\b~
APPEND ~EFFTEXT.2DA~ ~45  STUN                        1280~ UNLESS ~^45\b~
APPEND ~EFFTEXT.2DA~ ~278 THAC0_BONUS1                14052~ UNLESS ~^278\b~
APPEND ~EFFTEXT.2DA~ ~54  THAC0_BONUS2                14052~ UNLESS ~^54\b~
APPEND ~EFFTEXT.2DA~ ~178 THAC0_VS_TYPE_BONUS         14052~ UNLESS ~^178\b~
APPEND ~EFFTEXT.2DA~ ~284 THACO_BONUS                 14052~ UNLESS ~^284\b~
APPEND ~EFFTEXT.2DA~ ~48  VOCALIZE                    14776~ UNLESS ~^48\b~
APPEND ~EFFTEXT.2DA~ ~157 WEB_OVERLAY                 54331~ UNLESS ~^157\b~
APPEND ~EFFTEXT.2DA~ ~235 WING_BUFFET                 72205~ UNLESS ~^235\b~
APPEND ~EFFTEXT.2DA~ ~49  WISDOM_MODIFICATION         14047~ UNLESS ~^49\b~

COPY_EXISTING ~EFFTEXT.2DA~ ~OVERRIDE~
 SET_2DA_ENTRY 0 2 3 ~14662~
BUT_ONLY_IF_IT_CHANGES

 

This appears to be adding text to EFFs. Is this purely a cosmetic change?

 

COPY_EXISTING ~MXSPLDRU.2DA~ ~OVERRIDE~
~MXSPLPRS.2DA~ ~OVERRIDE~
 DELETE_BYTES 0x0448 0x23
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~SNDRESRF.2DA~ ~OVERRIDE~
 DELETE_BYTES 0x22 0x10
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~XPLIST.2DA~ ~OVERRIDE~
 SET_2DA_ENTRY 67 38 39 ~-1 -1 -1 -1~
BUT_ONLY_IF_IT_CHANGES

// fixes traps in tut area
COPY_EXISTING ~AR0016.ARE~ ~OVERRIDE~
 WRITE_BYTE 0x0780 0x00
 WRITE_BYTE 0x0784 0x00
 WRITE_BYTE 0x0840 0x00
 WRITE_BYTE 0x0844 0x00
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR0202.ARE~ ~OVERRIDE~
 WRITE_LONG 0x3f20 0x0442
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR0300.ARE~ ~OVERRIDE~
 WRITE_LONG 0x5570 0x0200
 WRITE_LONG 0x5630 0x0a00
 WRITE_LONG 0x5940 0x0a00
 WRITE_LONG 0x56f4 0x0a00
 WRITE_LONG 0x5ac8 0x0200
 WRITE_LONG 0x61ac 0x0a04
 WRITE_LONG 0x6270 0x0a04
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR0308.ARE~ ~OVERRIDE~
 WRITE_LONG 0x04ac 0x0204
 WRITE_LONG 0x0570 0x0204
 WRITE_LONG 0x0634 0x0204
 WRITE_LONG 0x06f8 0x0200
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR0327.ARE~ ~OVERRIDE~
 WRITE_BYTE 0x15d6 0x5a
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR0329.ARE~ ~OVERRIDE~
 WRITE_LONG 0x4f68 0x0462
 WRITE_LONG 0x5030 0x0442
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR0332.ARE~ ~OVERRIDE~
 WRITE_ASCII 0x03bc ~DOCSOL03~
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR0335.ARE~ ~OVERRIDE~
 WRITE_ASCII 0x05c0 ~SPALARM~
 WRITE_ASCII 0x0800 ~SPALARM~
 WRITE_ASCII 0x08c0 ~SPALARM~
 WRITE_ASCII 0x0980 ~SPALARM~
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR0406.ARE~ ~OVERRIDE~
 WRITE_ASCII 0x1c24 ~COPAMB~
 WRITE_SHORT 0x422a 0x00
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR0407.ARE~ ~OVERRIDE~
 WRITE_ASCII 0x03bc ~XGHAST1~
 WRITE_ASCII 0x04cc ~XGOLEM~
 WRITE_ASCII 0x05dc ~XGHAST2~
 WRITE_SHORT 0x04d2 0x00
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR0412.ARE~ ~OVERRIDE~
 WRITE_ASCII 0x94 ~AR0412~
 WRITE_ASCII 0x02ac ~OBSICE03~
 WRITE_ASCII 0x04cc ~OBSICE04~
 WRITE_ASCII 0x06ec ~OBSFIR05~
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR0414.ARE~ ~OVERRIDE~
 WRITE_SHORT 0x1fe6 0x0aea
 WRITE_SHORT 0x2032 0x0aea
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR0415.ARE~ ~OVERRIDE~
 WRITE_BYTE 0x028c 0x04
 WRITE_BYTE 0x04b0 0x00
 WRITE_BYTE 0x04b4 0x00
 WRITE_LONG 0x04cc 0x00
 WRITE_LONG 0x04d0 0x00
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR0500.ARE~ ~OVERRIDE~
 WRITE_LONG 0x0aec 0x00f12c1f
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR0510.ARE~ ~OVERRIDE~
 WRITE_BYTE 0x2628 0x47
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR0516.ARE~ ~OVERRIDE~
 WRITE_ASCII 0x3570 ~ELAIR01~
 WRITE_ASCII 0x3578 ~ELAIRL01~
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR0529.ARE~ ~OVERRIDE~
 WRITE_BYTE 0x0634 0x32
 WRITE_BYTE 0x0636 0x5a
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR0602.ARE~ ~OVERRIDE~
 WRITE_LONG 0x70a8 0x00
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR0603.ARE~ ~OVERRIDE~
 WRITE_ASCII 0x2b08 ~PEDGTMM~
 WRITE_ASCII 0x2bcc ~PEDGTFR~
 WRITE_ASCII 0x2c90 ~PEDGTFB~
 WRITE_ASCII 0x2d54 ~PEDGTMS~
 WRITE_ASCII 0x2e18 ~PEDGTLB~
 WRITE_ASCII 0x2edc ~PEDGTCK~
 WRITE_LONG 0x2aec 0x43
 WRITE_LONG 0x2bb0 0x43
 WRITE_LONG 0x2c74 0x43
 WRITE_LONG 0x2d38 0x01
 WRITE_LONG 0x2dfc 0x43
 WRITE_LONG 0x2ec0 0x43
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR0700.ARE~ ~OVERRIDE~
 WRITE_ASCII 0x16dc ~AMNG2~
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR0701.ARE~ ~OVERRIDE~
 WRITE_LONG 0x3488 0x04a2
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR0801.ARE~ ~OVERRIDE~
 WRITE_SHORT 0x1a62 0x00
 WRITE_SHORT 0x1b22 0x00
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR0803.ARE~ ~OVERRIDE~
 WRITE_SHORT 0x04c6 0x00
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR0808.ARE~ ~OVERRIDE~
 WRITE_SHORT 0x29c2 0x00
 WRITE_SHORT 0x2a82 0x00
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR0900.ARE~ ~OVERRIDE~
 WRITE_LONG 0x279c 0xfff8001f
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR0901.ARE~ ~OVERRIDE~
 WRITE_ASCII 0x0f48 ~POTN52~
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR0902.ARE~ ~OVERRIDE~
 WRITE_ASCII 0x15bc ~RING18~
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR1000.ARE~ ~OVERRIDE~
 WRITE_ASCII 0x16dc ~AMNG2~
 WRITE_ASCII 0x17ec ~AMNG2~
 WRITE_ASCII 0x16dc ~AMNG2~
 WRITE_ASCII 0x18fc ~AMNG2~
 WRITE_ASCII 0x1a0c ~AMNG2~
 WRITE_ASCII 0x1b1c ~AMNG2~
 WRITE_ASCII 0x1c2c ~AMNG2~
 WRITE_ASCII 0x1d3c ~AMNG2~
 WRITE_ASCII 0x1e4c ~AMNG2~
 WRITE_ASCII 0x1f5c ~AMNG2~
 WRITE_ASCII 0x206c ~AMNG2~
 WRITE_ASCII 0x217c ~AMNG2~
 WRITE_LONG 0x56a8 0x001fffc0
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR1002.ARE~ ~OVERRIDE~
 WRITE_ASCII 0x022c ~ketlbg01~
 WRITE_ASCII 0x033c ~ketlbg02~
 WRITE_BYTE 0x0254 0x09
 WRITE_BYTE 0x0364 0x09
 WRITE_LONG 0x0234 0x00
 WRITE_LONG 0x0238 0x00
 WRITE_LONG 0x0344 0x00
 WRITE_LONG 0x0348 0x00
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR1006.ARE~ ~OVERRIDE~
 WRITE_BYTE 0x0722 0x46
 WRITE_BYTE 0x072e 0x00
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR1202.ARE~ ~OVERRIDE~
 WRITE_LONG 0x5ee8 0x0402
 WRITE_LONG 0x5f4c 0x64
 WRITE_LONG 0x5b00 0x0402
 WRITE_LONG 0x5b64 0x64
BUT_ONLY_IF_IT_CHANGES



COPY_EXISTING ~AR1303.ARE~ ~OVERRIDE~
 WRITE_ASCII 0x25a0 ~AROW09~
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR1401.ARE~ ~OVERRIDE~
 WRITE_ASCII 0x2f90 ~DART01~
 WRITE_BYTE 0x2f9a 0x14
 WRITE_LONG 0x3410 0x0422
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR1603.ARE~ ~OVERRIDE~
 WRITE_LONG 0x0750 0x01ba0124
 WRITE_LONG 0x0754 0x019e011e
 WRITE_LONG 0x0758 0x01ca00f3
 WRITE_LONG 0x075c 0x01e900fc
 WRITE_SHORT 0x0510 0xf3
 WRITE_SHORT 0x0512 0x019e
 WRITE_SHORT 0x0514 0x0124
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR1608.ARE~ ~OVERRIDE~
 WRITE_LONG 0x0fa0 0x0402
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR1611.ARE~ ~OVERRIDE~
 WRITE_LONG 0x0654 0x04a2
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR1904.ARE~ ~OVERRIDE~
 WRITE_SHORT 0x08ac 0x04f9
 WRITE_SHORT 0x08ae 0x049c
 WRITE_SHORT 0x08b0 0x04f9
 WRITE_SHORT 0x08b2 0x049c
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR2000.ARE~ ~OVERRIDE~
 WRITE_BYTE 0x6e34 0x04
 WRITE_LONG 0x6a60 0x0200
 WRITE_LONG 0x78ec 0x0204
 WRITE_LONG 0x8804 0x001fffc0
 WRITE_LONG 0x9c54 0x0402
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR2002.ARE~ ~OVERRIDE~
 WRITE_BYTE 0x05a4 0x00
 WRITE_BYTE 0x05a8 0x00
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR2100.ARE~ ~OVERRIDE~
 WRITE_BYTE 0x5f38 0x1f
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR2200.ARE~ ~OVERRIDE~
 WRITE_LONG 0x5448 0x0204
 WRITE_LONG 0x550c 0x0204
 WRITE_LONG 0x55d0 0x0200
 WRITE_LONG 0x5694 0x0200
 WRITE_LONG 0x5758 0x0200
 WRITE_LONG 0x581c 0x0200
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR2207.ARE~ ~OVERRIDE~
 WRITE_BYTE 0x0388 0x01
 WRITE_BYTE 0x0504 0x32
 WRITE_BYTE 0x0506 0x5a
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR2300.ARE~ ~OVERRIDE~
 WRITE_LONG 0x708c 0x0422
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR2400.ARE~ ~OVERRIDE~
 WRITE_ASCII 0x8898 ~UMBHUL01~
 WRITE_ASCII 0x88a0 ~UMBHUL01~
 WRITE_ASCII 0x88c0 ~UMBHUL01~
 WRITE_ASCII 0x88c8 ~UMBHUL01~
 WRITE_ASCII 0x88d0 ~UMBHUL01~
 WRITE_ASCII 0x88d8 ~UDDWARF~
 WRITE_ASCII 0x88e0 ~UMBHUL01~
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR2603.ARE~ ~OVERRIDE~
 WRITE_BYTE 0x48 0x80
 WRITE_BYTE 0x09fc 0x00
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR2800.ARE~ ~OVERRIDE~
 WRITE_ASCII 0x2ae0 ~SURAKSHA~
 WRITE_ASCII 0x2ba4 ~SUGOLEM~
 WRITE_ASCII 0x2c68 ~SUDROW~
 WRITE_SHORT 0x2c6e 0x00
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR2902.ARE~ ~OVERRIDE~
 WRITE_LONG 0x028c 0x04
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR3000.ARE~ ~OVERRIDE~
 WRITE_BYTE 0x0928 0x96
 WRITE_BYTE 0x0c38 0x21
 WRITE_BYTE 0x0dbe 0xad
 WRITE_BYTE 0x0dc0 0x6b
 WRITE_BYTE 0x0dc2 0xe9
 WRITE_BYTE 0x1670 0xfc
 WRITE_BYTE 0x1a4c 0x10
 WRITE_BYTE 0x1a4e 0x96
 WRITE_BYTE 0x1a92 0xee
 WRITE_BYTE 0x1a9e 0x21
 WRITE_BYTE 0x1ab8 0xad
 WRITE_BYTE 0x1aba 0xd3
 WRITE_BYTE 0x1abc 0xc0
 WRITE_BYTE 0x1abe 0x6b
 WRITE_BYTE 0x1ac0 0xe9
 WRITE_BYTE 0x1ac2 0x8b
 WRITE_BYTE 0x1ac4 0xe3
 WRITE_BYTE 0x1b64 0xbd
 WRITE_BYTE 0x1b68 0xfc
 WRITE_BYTE 0x1b6c 0xef
 WRITE_SHORT 0x0dc4 0x07f7
 WRITE_SHORT 0x1ac6 0x07f7
 WRITE_SHORT 0x1b66 0x0768
 WRITE_SHORT 0x1b6e 0x0800
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR3001.ARE~ ~OVERRIDE~
 WRITE_BYTE 0x4704 0x0a
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR3004.ARE~ ~OVERRIDE~
 WRITE_ASCII 0x1589 ~GLAB01~
 WRITE_BYTE 0x158f 0x00
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR3010.ARE~ ~OVERRIDE~
 WRITE_ASCII 0x0f04 ~DERINY01~
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~AR5006.ARE~ ~OVERRIDE~
 WRITE_BYTE 0x0f24 0x32
BUT_ONLY_IF_IT_CHANGES

 

A whole mess of trap changes which I haven't tracked down yet. If nothing else, we should be using loops and whatnot instead of direct patching.

 

PRINT @204
COPY ~FIXPACK/RESOURCES/AREAS/AR5002.ARE~ ~OVERRIDE~
~FIXPACK/RESOURCES/AREAS/AR5203.ARE~ ~OVERRIDE~
~FIXPACK/RESOURCES/AREAS/AR5505.ARE~ ~OVERRIDE~
~FIXPACK/RESOURCES/AREAS/AR6005.ARE~ ~OVERRIDE~

COPY_EXISTING_REGEXP GLOB ~^ANI\(MATE\|SND\)\.IDS$~ ~OVERRIDE~
 REPLACE_TEXTUALLY ~_CARRIONCRAWLER~ ~_CARRION_CRAWLER~
 REPLACE_TEXTUALLY ~_GOBLINELITE_~ ~_GOBLIN_ELITE_~
 REPLACE_TEXTUALLY ~_HALFORC~ ~_HALF_ORC~
 REPLACE_TEXTUALLY ~_HUMANCLERIC_~ ~_HUMAN_CLERIC_~
 REPLACE_TEXTUALLY ~_KUOTAI~ ~_KUO-TOA~
 REPLACE_TEXTUALLY ~_LICHBLACK~ ~_LICH_BLACK~
 REPLACE_TEXTUALLY ~_LIZARDCASTER~ ~_LIZARD_CASTER~
 REPLACE_TEXTUALLY ~_MERILITH~ ~_MARILITH~
 REPLACE_TEXTUALLY ~_OGRE_HALF~ ~_HALF_OGRE~
 REPLACE_TEXTUALLY ~_YUANTI~ ~_YUAN-TI~
 REPLACE_TEXTUALLY ~AMISH_~ ~AMNISH_~
 REPLACE_TEXTUALLY ~ANTISOLAR~ ~ANTI-SOLAR~
 REPLACE_TEXTUALLY ~DEMIGORGON~ ~DEMOGORGON~
 REPLACE_TEXTUALLY ~DEMILICH~ ~DEMI-LICH~
 REPLACE_TEXTUALLY ~DONOT_~ ~DO_NOT_~
 REPLACE_TEXTUALLY ~GREATCAT_LEOPARD~ ~LEOPARD~
 REPLACE_TEXTUALLY ~GREATCAT_PANTHER~ ~PANTHER~
 REPLACE_TEXTUALLY ~IC_GLAB~ ~IC_GLABREZU~
 REPLACE_TEXTUALLY ~MINDFLAYER~ ~MIND_FLAYER~
 REPLACE_TEXTUALLY ~REVEANT~ ~REVENANT~
 REPLACE_TEXTUALLY ~SAHAUGIN~ ~SAHUAGIN~
 REPLACE_TEXTUALLY ~RAVER~ ~RAVAGER~
BUT_ONLY_IF_IT_CHANGES

APPEND ~ANIMATE.IDS~ ~0xE520 IC_LIZARD_CASTER3~ UNLESS ~^0xE520\b~
APPEND ~ANIMATE.IDS~ ~0xEF10 ELEMENTAL_WATER~ UNLESS ~^0xEF10\b~

Are these cosmetic?

 

APPEND ~AREAFLAG.IDS~ ~4 NOSPELLCASTING~ UNLESS ~^4\b~
APPEND ~AREAFLAG.IDS~ ~8 DREAM~ UNLESS ~^8\b~

COPY_EXISTING ~ANISND.IDS~ ~OVERRIDE~
 DELETE_BYTES 0x05 0x1b
BUT_ONLY_IF_IT_CHANGES

APPEND ~ANISND.IDS~ ~0xEF10 MWWE CGAMEANIMATIONTYPE_ELEMENTAL_WATER~ UNLESS ~^0xEF10\b~

COPY_EXISTING ~CLASS.IDS~ ~OVERRIDE~
 DELETE_BYTES 0x0786 0x0e
 WRITE_BYTE 0x0126 0x20
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~CLASS.IDS~ ~OVERRIDE~
~RACE.IDS~ ~OVERRIDE~
 REPLACE_TEXTUALLY ~_HALFOGRE~ ~_HALF_OGRE~
 REPLACE_TEXTUALLY ~_REVEANT~ ~_REVENANT~
 REPLACE_TEXTUALLY ~ANTISOLAR~ ~ANTI-SOLAR~
 REPLACE_TEXTUALLY ~CARRIONCRAWLER~ ~CARRION_CRAWLER~
 REPLACE_TEXTUALLY ~DARKPLANATAR~ ~DARK_PLANETAR~
 REPLACE_TEXTUALLY ~DEATHKNIGHT~ ~DEATH_KNIGHT~
 REPLACE_TEXTUALLY ~DEMILICH~ ~DEMI-LICH~
 REPLACE_TEXTUALLY ~HALFORC~ ~HALF_ORC~
 REPLACE_TEXTUALLY ~MORNINGSTAR~ ~MORNING_STAR~
 REPLACE_TEXTUALLY ~OCRE_~ ~OCHRE_~
 REPLACE_TEXTUALLY ~PLANATAR~ ~PLANETAR~
 REPLACE_TEXTUALLY ~TANARI~ ~TANARRI~
 REPLACE_TEXTUALLY ~UMBERHULK~ ~UMBER_HULK~
 REPLACE_TEXTUALLY ~XBOW~ ~CROSSBOW~
 REPLACE_TEXTUALLY ~YUANTI~ ~YUAN-TI~
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~DAMAGES.IDS~ ~OVERRIDE~
~HAPPY.IDS~ ~OVERRIDE~
~SLOTS.IDS~ ~OVERRIDE~
~SOUNDOFF.IDS~ ~OVERRIDE~
~STATE.IDS~ ~OVERRIDE~
 INSERT_BYTES 0x00 0x0a
 WRITE_ASCII 0x00 ~IDS V1.0~
 WRITE_SHORT 0x08 0x0a0d
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING ~GENDER.IDS~ ~OVERRIDE~
 REPLACE_TEXTUALLY ~NIETHER~ ~NEITHER~
BUT_ONLY_IF_IT_CHANGES

APPEND ~GTIMES.IDS~ ~5 ONE_MINUTE~ UNLESS ~^5\b~
APPEND ~GTIMES.IDS~ ~10 TWO_MINUTES~ UNLESS ~^10\b~
APPEND ~GTIMES.IDS~ ~15 THREE_MINUTES~ UNLESS ~^15\b~
APPEND ~GTIMES.IDS~ ~20 FOUR_MINUTES~ UNLESS ~^20\b~
APPEND ~GTIMES.IDS~ ~25 FIVE_MINUTES~ UNLESS ~^25\b~
APPEND ~GTIMES.IDS~ ~30 SIX_MINUTES~ UNLESS ~^30\b~
APPEND ~GTIMES.IDS~ ~35 SEVEN_MINUTES~ UNLESS ~^35\b~
APPEND ~GTIMES.IDS~ ~40 EIGHT_MINUTES~ UNLESS ~^40\b~
APPEND ~GTIMES.IDS~ ~45 NINE_MINUTES~ UNLESS ~^45\b~
APPEND ~GTIMES.IDS~ ~50 TEN_MINUTES~ UNLESS ~^50\b~
APPEND ~GTIMES.IDS~ ~55 ELEVEN_MINUTES~ UNLESS ~^55\b~
APPEND ~GTIMES.IDS~ ~60 TWELVE_MINUTES~ UNLESS ~^60\b~
APPEND ~GTIMES.IDS~ ~65 THIRTEEN_MINUTES~ UNLESS ~^65\b~
APPEND ~GTIMES.IDS~ ~70 FOURTEEN_MINUTES~ UNLESS ~^70\b~
APPEND ~GTIMES.IDS~ ~75 FIFTEEN_MINUTES~ UNLESS ~^75\b~
APPEND ~GTIMES.IDS~ ~80 SIXTEEN_MINUTES~ UNLESS ~^80\b~
APPEND ~GTIMES.IDS~ ~85 SEVENTEEN_MINUTES~ UNLESS ~^85\b~
APPEND ~GTIMES.IDS~ ~90 EIGHTEEN_MINUTES~ UNLESS ~^90\b~
APPEND ~GTIMES.IDS~ ~95 NINETEEN_MINUTES~ UNLESS ~^95\b~
APPEND ~GTIMES.IDS~ ~100 TWENTY_MINUTES~ UNLESS ~^100\b~
APPEND ~GTIMES.IDS~ ~150 THIRTY_MINUTES~ UNLESS ~^150\b~
APPEND ~GTIMES.IDS~ ~200 FORTY_MINUTES~ UNLESS ~^200\b~
APPEND ~GTIMES.IDS~ ~250 FIFTY_MINUTES~ UNLESS ~^250\b~
APPEND ~GTIMES.IDS~ ~300 ONE_HOUR~ UNLESS ~^300\b~
APPEND ~GTIMES.IDS~ ~600 TWO_HOURS~ UNLESS ~^600\b~
APPEND ~GTIMES.IDS~ ~900 THREE_HOURS~ UNLESS ~^900\b~
APPEND ~GTIMES.IDS~ ~1200 FOUR_HOURS~ UNLESS ~^1200\b~
APPEND ~GTIMES.IDS~ ~1500 FIVE_HOURS~ UNLESS ~^1500\b~
APPEND ~GTIMES.IDS~ ~1800 SIX_HOURS~ UNLESS ~^1800\b~
APPEND ~GTIMES.IDS~ ~2100 SEVEN_HOURS~ UNLESS ~^2100\b~
APPEND ~GTIMES.IDS~ ~2400 EIGHT_HOURS~ UNLESS ~^2400\b~
APPEND ~GTIMES.IDS~ ~2700 NINE_HOURS~ UNLESS ~^2700\b~
APPEND ~GTIMES.IDS~ ~3000 TEN_HOURS~ UNLESS ~^3000\b~
APPEND ~GTIMES.IDS~ ~3300 ELEVEN_HOURS~ UNLESS ~^3300\b~
APPEND ~GTIMES.IDS~ ~3600 TWELVE_HOURS~ UNLESS ~^3600\b~
APPEND ~GTIMES.IDS~ ~3900 THIRTEEN_HOURS~ UNLESS ~^3900\b~
APPEND ~GTIMES.IDS~ ~4200 FOURTEEN_HOURS~ UNLESS ~^4200\b~
APPEND ~GTIMES.IDS~ ~4500 FIFTEEN_HOURS~ UNLESS ~^4500\b~
APPEND ~GTIMES.IDS~ ~4800 SIXTEEN_HOURS~ UNLESS ~^4800\b~
APPEND ~GTIMES.IDS~ ~5100 SEVENTEEN_HOURS~ UNLESS ~^5100\b~
APPEND ~GTIMES.IDS~ ~5400 EIGHTEEN_HOURS~ UNLESS ~^5400\b~
APPEND ~GTIMES.IDS~ ~5700 NINETEEN_HOURS~ UNLESS ~^5700\b~
APPEND ~GTIMES.IDS~ ~6000 TWENTY_HOURS~ UNLESS ~^6000\b~
APPEND ~GTIMES.IDS~ ~6300 TWENTY_ONE_HOURS~ UNLESS ~^6300\b~
APPEND ~GTIMES.IDS~ ~6600 TWENTY_TWO_HOURS~ UNLESS ~^6600\b~
APPEND ~GTIMES.IDS~ ~6900 TWENTY_THREE_HOURS~ UNLESS ~^6900\b~

COPY_EXISTING ~STATE.IDS~ ~OVERRIDE~
 REPLACE_TEXTUALLY ~_CHANTBAD~ ~_CHANT_BAD~
 REPLACE_TEXTUALLY ~_DRAWUPONHOLYMIGHT~ ~_DRAW_UPON_HOLY_MIGHT~
 REPLACE_TEXTUALLY ~_IMPROVEDINVISIBILITY~ ~_IMPROVED_INVISIBILITY~
 REPLACE_TEXTUALLY ~_MIRRORIMAGE~ ~_MIRROR_IMAGE~
 REPLACE_TEXTUALLY ~_NONDETECTION~ ~_NON_DETECTION~
BUT_ONLY_IF_IT_CHANGES

PRINT @206
COPY ~FIXPACK/RESOURCES/IDS/ACTION.IDS~ ~OVERRIDE~
~FIXPACK/RESOURCES/IDS/ACTSLEEP.IDS~ ~OVERRIDE~
~FIXPACK/RESOURCES/IDS/CHASE.IDS~ ~OVERRIDE~
~FIXPACK/RESOURCES/IDS/INSTANT.IDS~ ~OVERRIDE~
~FIXPACK/RESOURCES/IDS/SPELL.IDS~ ~OVERRIDE~
~FIXPACK/RESOURCES/IDS/SVTRIOBJ.IDS~ ~OVERRIDE~
~FIXPACK/RESOURCES/IDS/TRIGGER.IDS~ ~OVERRIDE~

Most of these IDS fixes appear cosmetic. I'm especially wary of making too many changes to the IDS files--we'll run into compatibility issues, especially with changes like spellings.

 

//scripts to wait pending review
PRINT @207
COMPILE ~FIXPACK/RESOURCES/SCRIPTS/AREAS~

COPY_EXISTING ~AR0043.BCS~ ~OVERRIDE/AR0046.BCS~

COPY_EXISTING ~AR4500.BCS~ ~OVERRIDE~
 REPLACE ~99992~ @601
 REPLACE ~99993~ @602
 REPLACE ~99994~ @603
 REPLACE ~99995~ @604
 REPLACE ~99996~ @605
 REPLACE ~99997~ @606
 REPLACE ~99998~ @607
 REPLACE ~99999~ @608
BUT_ONLY_IF_IT_CHANGES

PRINT @208
COMPILE ~FIXPACK/RESOURCES/SCRIPTS/CONTROL~

PRINT @209
COMPILE ~FIXPACK/RESOURCES/SCRIPTS/CREATURES~

COPY_EXISTING ~GORSALM.BCS~ ~OVERRIDE/GPMAGE1M.BCS~
~GORSALM.BCS~ ~OVERRIDE/HLSIONM.BCS~
~GORSALM.BCS~ ~OVERRIDE/JONSIMMM.BCS~
~GORSALM.BCS~ ~OVERRIDE/MAGE12CM.BCS~
~GORSALM.BCS~ ~OVERRIDE/MAGE14DM.BCS~
~GORSALM.BCS~ ~OVERRIDE/MAGE14MM.BCS~
~GORSALM.BCS~ ~OVERRIDE/MAGE14TM.BCS~
~GORSALM.BCS~ ~OVERRIDE/MAGE16CM.BCS~
~GORSALM.BCS~ ~OVERRIDE/MAGE16MM.BCS~
~GORSALM.BCS~ ~OVERRIDE/MAGE18AM.BCS~
~GORSALM.BCS~ ~OVERRIDE/MAGE18CM.BCS~
~GORSALM.BCS~ ~OVERRIDE/MAGE18DM.BCS~
~GORSALM.BCS~ ~OVERRIDE/MAGE18EM.BCS~
~GORSALM.BCS~ ~OVERRIDE/MAGE18ZM.BCS~
~GORSALM.BCS~ ~OVERRIDE/MAGE20AM.BCS~
~GORSALM.BCS~ ~OVERRIDE/MAGE20CM.BCS~
~GORSALM.BCS~ ~OVERRIDE/PWARDENM.BCS~
~GORSALM.BCS~ ~OVERRIDE/SUJONM.BCS~
~GORSALM.BCS~ ~OVERRIDE/SURAKW1M.BCS~
~GORSALM.BCS~ ~OVERRIDE/SURAKW3M.BCS~
~GORSALM.BCS~ ~OVERRIDE/TELWRAIM.BCS~
~GORSALM.BCS~ ~OVERRIDE/TIEF3M.BCS~

PRINT @210
COMPILE ~FIXPACK/RESOURCES/SCRIPTS/NPCS~

PRINT @211
COMPILE ~FIXPACK/RESOURCES/SCRIPTS/TRIGGERS~

PRINT @212
COPY ~FIXPACK/RESOURCES/SCRIPTS/PLAYER/AGEN.BAF~ ~SCRIPTS/AGEN.BS~
~FIXPACK/RESOURCES/SCRIPTS/PLAYER/APASS.BAF~ ~SCRIPTS/APASS.BS~
~FIXPACK/RESOURCES/SCRIPTS/PLAYER/ARANG.BAF~ ~SCRIPTS/ARANG.BS~
~FIXPACK/RESOURCES/SCRIPTS/PLAYER/CAUTIOUS.BAF~ ~SCRIPTS/CAUTIOUS.BS~
~FIXPACK/RESOURCES/SCRIPTS/PLAYER/CLERIC1.BAF~ ~SCRIPTS/CLERIC1.BS~
~FIXPACK/RESOURCES/SCRIPTS/PLAYER/CLERIC2.BAF~ ~SCRIPTS/CLERIC2.BS~
~FIXPACK/RESOURCES/SCRIPTS/PLAYER/CLERIC3.BAF~ ~SCRIPTS/CLERIC3.BS~
~FIXPACK/RESOURCES/SCRIPTS/PLAYER/CLERIC4.BAF~ ~SCRIPTS/CLERIC4.BS~
~FIXPACK/RESOURCES/SCRIPTS/PLAYER/CONTROL.BAF~ ~SCRIPTS/CONTROL.BS~
~FIXPACK/RESOURCES/SCRIPTS/PLAYER/DEFAULT.BAF~ ~SCRIPTS/DEFAULT.BS~
~FIXPACK/RESOURCES/SCRIPTS/PLAYER/FIGHTER1.BAF~ ~SCRIPTS/FIGHTER1.BS~
~FIXPACK/RESOURCES/SCRIPTS/PLAYER/FIGHTER2.BAF~ ~SCRIPTS/FIGHTER2.BS~
~FIXPACK/RESOURCES/SCRIPTS/PLAYER/FIGHTER3.BAF~ ~SCRIPTS/FIGHTER3.BS~
~FIXPACK/RESOURCES/SCRIPTS/PLAYER/FIGHTER4.BAF~ ~SCRIPTS/FIGHTER4.BS~
~FIXPACK/RESOURCES/SCRIPTS/PLAYER/MAGE1.BAF~ ~SCRIPTS/MAGE1.BS~
~FIXPACK/RESOURCES/SCRIPTS/PLAYER/MAGE2.BAF~ ~SCRIPTS/MAGE2.BS~
~FIXPACK/RESOURCES/SCRIPTS/PLAYER/MAGE3.BAF~ ~SCRIPTS/MAGE3.BS~
~FIXPACK/RESOURCES/SCRIPTS/PLAYER/MAGE4.BAF~ ~SCRIPTS/MAGE4.BS~
~FIXPACK/RESOURCES/SCRIPTS/PLAYER/THIEF1.BAF~ ~SCRIPTS/THIEF1.BS~
~FIXPACK/RESOURCES/SCRIPTS/PLAYER/THIEF2.BAF~ ~SCRIPTS/THIEF2.BS~
~FIXPACK/RESOURCES/SCRIPTS/PLAYER/THIEF3.BAF~ ~SCRIPTS/THIEF3.BS~
~FIXPACK/RESOURCES/SCRIPTS/PLAYER/THIEF4.BAF~ ~SCRIPTS/THIEF4.BS~
 COMPILE_BAF_TO_BCS

 

I'll leave the scripts for Sim's review. :)

Link to comment

The EFFTEXT update is my "solution" to "effects provide no visual feedback." Don't include it, as it is not a perfect solution (actually, too perfect, as the game will display a message for the effect, no matter where/when it's included). People will definitely be confused if they load a saved game and see "Cernd - Regenerating" when Cernd isn't even in the party.

 

MXSPLPRS and MSXPLDRU have a duplicate row for level 30. Not really something that needs to be altered (the DRU duplicates are identical, but the priest is different).

 

SNDRESREF is the issue where there's an environment sound effect applied to AR0700. You can either replace AR0700 with one that's already in the file (duplicate entries should be OK?), or use READ_2DA_ENTRY to make sure you're patching AR0700 and set it to GENERIC.

 

XPLIST is the problem with the awarded experience for Gromnir when the PC is above level 37/38. The output isn't "pretty," but it should work for everyone (I don't think anybody is modifying XPLIST.2DA).

 

As you noticed, AR0016 simply disables the traps in the tutorial area (they can't be disarmed and do nothing). Not really worth fixing.

 

AR0202 is simply a flag change so that the door uses Gaal's key. Not worth fixing.

 

AR0300 simply matches up the transition flags (so that NPCs can't enter a building they can't get out of). The first patch offset is wrong (oops!). Not a bug fix.

 

AR0308 is more transistion flag stuff. Not a bug fix.

 

AR0327 changes a chest in the "hostile" Shadow Thief guild (it couldn't be unlocked but didn't have a key).

 

AR0329 changes a couple of door flags so they use their respective keys. Not a bug fix.

 

AR0332 is not a bug fix.

 

AR0335 is not a bug fix (it's a special trap script so the sleeping duds don't call the guards).

 

The first change in AR0406 assigns a script to the sleeping dwarf in the lotus room so he's destroyed when Lehtinan is killed. Not really a bug fix. The second changes Yarin's table so the trap isn't already detected (this screws auto-pause settings, but is probably not really a "bug").

 

AR0407 is not a bug fix.

 

AR0412 is not a bug fix.

 

AR0414 changes the coordinates of the "demon eyes" animation so that it actually matches the tiles. It's not really a fix and, no, I never did manage to get the animation to work reliably (the eyes actually do open).

 

AR0415 is an update to the paladin "safehouse" to remove the trap and fix the exit transition flags (it wasn't marked as party-required). Locally, I've changed it to the following to simply fix the trap:

COPY_EXISTING ~AR0415.ARE~ ~OVERRIDE~
 WRITE_ASCII 0x04cc ~CTALARM~ #8
 WRITE_BYTE 0x028c 0x04
BUT_ONLY_IF_IT_CHANGES

 

AR0500 was a change so that two copies of Stanet (who's listed in the area definition twice) wouldn't be in the area at the same time. Probably not a bug fix.

 

AR0510 changes the planar portal animation to match the tiles (a Baldurdash "bug" report).

 

AR0516 (the astral prison) had incorrect data for it's rest spawns (it has the number of creatures listed as 2, but didn't have any creatures actually listed). The title of the spawn was ELAIR, so I added some elementals. This probably isn't a bug fix.

 

AR0529 is a fix to the stupid slime trap in Neb's shanty (I set the detection difficulty to 50, from 0, and the disarm difficulty to 90, from 100).

 

AR0602 changes the flags of the Long Sword +1 so that it's found unidentified. Not a bug fix.

 

AR0603 I've since changed locally; it's not a bug fix.

 

AR0700 is probably not a bug fix (it changes the guard for the north exit so he isn't a "I saw you enter with those people..." guard).

 

AR0701 makes it so the mind flayer door uses Tazok's sewer key.

 

AR0801, AR0803, and AR0808 change some containers so that their traps aren't already detected (this screws up some auto-pause settings). Probably not worth fixing.

 

AR0900 changes the times when the Shadow Thief is on the map (so that it's only there at night).

 

AR0901 says goodbye to Festule's dumb potion. Not really a bug fix.

 

AR0902 is not a bug fix (part of change so you can't get the statuette unless you're actually supposed to be stealing it for Mae'Var).

 

AR1000 changes all the guards in the area to normal guards (more "I saw you enter with those people..." crap; they have good eyes, I guess). The last enables an included, but unscheduled, soundset.

 

AR1002 is part of the change to make sure Ketlaar and his bodyguards are destroyed if you kill the Ketlaar that's part of the mage quest.

 

AR1006 changes the unlockable chest in the Jysstev manor (it would give the standard "key" message, but has no matching key).

 

AR1202 changes some of the doors here so they use their respective keys (the Chapel Key and Samia's Key).

 

AR1303 changes a bad item reference in one of the chests in Nalia's Keep (upstairs).

 

AR1401 is part of a change to get rid of Tombie's journal. The last patch makes the dragon door use the key (the symbol). Probably not a bug fix.

 

AR2800 is not a bug fix.

 

AR3000 corrects the coordinates for all of the transistions in this area.

 

In most cases, straight copies should be David Gaider's Tougher Bhaalspawn stuff (definitely leave those out). There may be one or two that are in the patch list, the rest are all the COPY actions at the end of each section.

 

All of IDS changes are cosmetic and/or unnecessary. The scripts all use numerical IDs, so there should be any need to add anything to the IDS files. There are a couple of places where I used HasItemEquipped() or CalendarDay(), but these should be easy to spot.

Link to comment

AR1603 corrects the overlay for the weapon rack in this area. Updating overlays is tedious. Very tedious.

 

AR1608 makes the door use Galvena's key. Not really a fix.

 

AR1611 makes the secret door use the Guildhouse key. Not really a fix.

 

AR1904 changes the current and destination positions for one of the trolls so it isn't on an impassable area.

 

AR2000 changes transition flags (more NPC in/out stuff), re-enables an unused soundset, and marks the tomb to use the Trademeet Tomb Key. I've also marked the transition to Mazzy's house party-required.

 

AR2002 removes a trap from the container in Mazzy's house (it couldn't be detected/disarmed, and had no trap script). Not worth fixing.

 

AR2100 simply corrects the area music for the Underdark at night.

 

AR2200 is not a bug fix (more NPC in/out stuff).

 

AR2207 fixes an trap in Deirex's tower (detection to 50, from 0, and disarm to some suitably high number, from 100). I also re-enabled a trap (at 0x0388) - it had all the correct settings, but wasn't marked as trapped.

 

AR2300 I think just makes the door use Sekolah's tooth. Not really a fix.

 

AR2400 had a bunch of non-NUL junk in it's rest spawn list, so I changed it to stuff that looked right. It's not a fix (not to mention that it looks like I forgot to update the number of creatures value).

 

AR2603 changes the transition flag so that exiting Coran's house isn't party required. The 0x48 patch is just a place where I neglected to consolidate (with the rest of the flag sets).

 

AR2902 makes the transition party-required (all the trans in Hell are auto-saving, except for this one).

 

AR3001 corrects the number of sounds in the ambient list. Not really worth fixing (although, if somebody does, it looks like I didn't update the number of sounds used value).

 

AR3004 was a change so that the rest spawn creature was a normal demon, instead of a summoned one that gave 0 XP. Not really a fix.

 

AR3010 changes an invalid CRE reference in the rest spawn creatures list. It was DERINI01 (I don't know if changing it is wise, however, as I don't know if Erinyes is a name or a type of demon).

 

AR5006 changes the name of the trigger here (there were two SpiritAppear1 triggers) so that the ghost will face the right direction. May or may not be considered a fix.

 

For community buffs, note that changes to ANISND seem to have no effect at all in-game. Additionally, there are a number of animations that don't have default sounds, as they're lacking the proper 2DA (the default sounds are determined solely by the presence of a 2DA that has the same "prefix" as the animation). Locally, I'm doing something like:

COPY_EXISTING ~MAIR.2DA~ ~OVERRIDE/MWWE.2DA~
 SET_2DA_ENTRY 0 0 2 ~Mwwe/water~

COPY_EXISTING ~MDJI.2DA~ ~OVERRIDE/MDJL.2DA~
 SET_2DA_ENTRY 0 0 1 ~Mdjl/Djinni w legs~

COPY_EXISTING ~MGO1.2DA~ ~OVERRIDE/MGO3.2DA~
 SET_2DA_ENTRY 0 0 4 ~MGO3~

COPY_EXISTING ~MGO2.2DA~ ~OVERRIDE/MGO4.2DA~
 SET_2DA_ENTRY 0 0 4 ~MGO4~

COPY_EXISTING ~MLI2.2DA~ ~OVERRIDE/MLI3.2DA~
 SET_2DA_ENTRY 0 0 5 ~MLI3~

COPY_EXISTING ~MMYC.2DA~ ~OVERRIDE/MMY2.2DA~
 SET_2DA_ENTRY 0 0 2 ~MMY2~
 SET_2DA_ENTRY 0 1 2 ~/myconid,blue/~

COPY_EXISTING ~MMYC.2DA~ ~OVERRIDE/MSHR.2DA~
 SET_2DA_ENTRY 0 0 2 ~MSHR~
 SET_2DA_ENTRY 0 1 2 ~/spore colony/~

COPY_EXISTING ~MOR2.2DA~ ~OVERRIDE/MOR4.2DA~
 SET_2DA_ENTRY 0 0 4 ~MOR4~

COPY_EXISTING ~MSAL.2DA~ ~OVERRIDE/MSA2.2DA~
 SET_2DA_ENTRY 0 0 2 ~MSA2~

COPY_EXISTING ~MSKA.2DA~ ~OVERRIDE/MSKT.2DA~
 SET_2DA_ENTRY 0 0 2 ~MSKT~

Of all these, djinni with legs (and he knows how to use them) animation doesn't have the default djinni sounds, so may be considered a fix worthy of inclusion.

 

Why do I change all the IDS files? Because I'm super-anal and can't stand bad spelling. Plus, I naturally write the names correctly, so I decided to fix all the names locally to reduce compilation hassles. I probably should have included the IDS updates in the stuff I ripped out for the download package. Oh well.

 

The updates to DAMAGES, HAPPY, etc., simply add a header to the IDS files that start at line 0 (since WeiDU gladly ignores line 0, things like SLOT_AMULET wouldn't work). Not really an end-user fix, however. Locally, I do this now:

COPY_EXISTING ~DAMAGES.IDS~ ~OVERRIDE~
~HAPPY.IDS~ ~OVERRIDE~
~SLOTS.IDS~ ~OVERRIDE~
~SOUNDOFF.IDS~ ~OVERRIDE~
~STATE.IDS~ ~OVERRIDE~
 INSERT_FILE 0x00 ~AE7B50A8475765901B560BE1723152F7~
BUT_ONLY_IF_IT_CHANGES

Where the file to insert is an inlined file consisting of "IDS V1.0" followed by a DOS line break.

 

I wanted to get even more specific with GTIMES, but WeiDU sucks and won't let IDS entries start with numbers (so, I'd have to do something like TWELVE_SECONDS, TWENTY_FOUR_SECONDS, THIRTY_SIX_SECONDS, etc., instead of 12_SECONDS). I don't change GTIMES at all anymore, however, as WeiDU resolves trigger and action lists in dialogues it compiles (so, a SetGlobalTimer("","",1) would compile as SetGlobalTimer("","",TWELVE_SECONDS), which I don't like - the dialogue wouldn't work if you didn't have the updated IDS, and it doesn't look very kosher, besides).

 

Locally, I have a lot of changes to the music stuff to get it all to work (who the hell was in charge of this crap?), most of which isn't included in the version online. The following may be a good fix:

COPY_EXISTING ~MUSIC/HARP_V2.MUS~ ~MUSIC~
 SET_2DA_ENTRY 6 0 1 ~1C~ // the current entry, C (HARP_V2C.ACM), doesn't exist
BUT_ONLY_IF_IT_CHANGES

The piece isn't that stirring, but it's likely nobody's ever heard it before and it is supposed to be played (like MXKALAH, MXKHALI, MXTHIEF, TAV1, and TAV2).

Link to comment
I think it'd be rather better to fix the effect text properly once and for all using C_E_R than to do optional solutions that almost-but-not-quite-work.
Oh, it works, I promise. It just works too well. The message is handled by the engine, when the effect is applied, so it will display the right message as soon as the effect goes into action. If the effect never gets applied, then there aren't any messages (and no need to add a bunch of "Disable Display String" effects). The fat problem is that it will occur for all creatures that are loaded, as soon as there effects are applied. So there's no guessing about who's spawning in or what effects the CREs in the .GAM file have, as you'll get messages about each supported effect.

 

Anyway, I agree that the appropriate thing to do is to add Display String effects (and corresponding Disable Display String, and Add Portrait Icon, and Remove Portrait Icon) to the items and spells as needed, but I already had too much stuff to tweak and I simply couldn't find the motivation to do it myself. It actually wouldn't be that hard (you just need code to iterate through the effects and add new effects where necessary), but it's a job for somebody else.

Link to comment
AR0701 makes it so the mind flayer door uses Tazok's sewer key.

 

AR0900 changes the times when the Shadow Thief is on the map (so that it's only there at night).

 

AR1006 changes the unlockable chest in the Jysstev manor (it would give the standard "key" message, but has no matching key).

Are these bugfixes? As far as I know, the mind flayer door already uses Tazok's sewer key--and there's a big difference between, "This chest will only open for a specific key," and, "This chest will only open for a specific key, which you are guaranteed a chance to get."

Link to comment

When I say "uses" I mean the flag that destroys the key once the doors are unlocked. So it will only open for Tazok's key, but the key will be destroyed in the process. Kevin Dorner said he was going to do this for all the keys, if that makes you feel better (personally, I don't think it's the responsibility of a fix pack to cleanup quest items, but what do I know?).

 

The Ar0900 change is part of an update that modifies several of the VV encounters (the Shadow Thief/Vampire war). In Ar0700, there is a priest that nobody will ever see (he exists on the map, but EscapeArea()s as soon as the initial cutscene is over). In Ar0300, there is a "helpful man" who also exits as soon as the map is loaded. And in Ar0700, there is the Shadow Thief that will EscapeArea() at certain times. All this happens because these actors are scheduled to appear during the day, and they have the standard VV script (basically, it says that if it's daytime, EscapeArea()). So there are at least two creatures no one will ever meet, and you may miss the third (depending on what time it is when you enter the Temple District). I changed this by correcting the times when they're active (the helpful man only appears during the day, since his dialogue makes more sense then, and the Shadow Thief only at night), and removing the script reference that makes them leave (IMO, it's only really necessary for the random spawns who shouldn't hang around during the day). I wouldn't classify it as a bug per se, but it's not up to me.

 

The chest in the Jysstev's manor has no key (it doesn't even have a key item reference, and there's no existing resource they could have possibly intended to use here), it's just that the unlock difficulty is set to 100. It only contains 1 Potion of Extra Healing (and maybe a low-level random treasure or something). I think this skirts being a bug (it does detract from gameplay, but doesn't actually break anything).

Link to comment
MXSPLPRS and MSXPLDRU have a duplicate row for level 30. Not really something that needs to be altered (the DRU duplicates are identical, but the priest is different).

May as well fix. Different rows is probably potentially confusing.

 

XPLIST is the problem with the awarded experience for Gromnir when the PC is above level 37/38. The output isn't "pretty," but it should work for everyone (I don't think anybody is modifying XPLIST.2DA).

I do in XPMod, but so long as you're not messing around with the formatting majorly, it shouldn't be a problem.

 

As you noticed, AR0016 simply disables the traps in the tutorial area (they can't be disarmed and do nothing). Not really worth fixing.

If they show up with Detect Traps, I think it's worth a fix.

 

AR0202 is simply a flag change so that the door uses Gaal's key. Not worth fixing.

On the contrary, I think having doors use up their respective keys is something we should be doing throughout the game.

 

AR0300 simply matches up the transition flags (so that NPCs can't enter a building they can't get out of). The first patch offset is wrong (oops!). Not a bug fix.

Again, I think this IS a fix. The party-required transitions are meant to be matched up.

 

The first change in AR0406 assigns a script to the sleeping dwarf in the lotus room so he's destroyed when Lehtinan is killed. Not really a bug fix. The second changes Yarin's table so the trap isn't already detected (this screws auto-pause settings, but is probably not really a "bug").

If there's not a reason that the trap's already detected, then I think it should be fixed.

 

AR0414 changes the coordinates of the "demon eyes" animation so that it actually matches the tiles. It's not really a fix and, no, I never did manage to get the animation to work reliably (the eyes actually do open).

Why isn't it a fix?

 

AR0500 was a change so that two copies of Stanet (who's listed in the area definition twice) wouldn't be in the area at the same time. Probably not a bug fix.

Two copies of the same person in an area together counts as a bug in my book. However, while bmtown4.cre is Stanet, pirpir06.cre has a different Name and Apparent Name, one of which is "Stanet". Suggest that pirpir06.cre should use "Sailor" for both names.

 

AR0516 (the astral prison) had incorrect data for it's rest spawns (it has the number of creatures listed as 2, but didn't have any creatures actually listed). The title of the spawn was ELAIR, so I added some elementals. This probably isn't a bug fix.

If it doesn't go here, I'd like to see it in UB.

 

AR0602 changes the flags of the Long Sword +1 so that it's found unidentified. Not a bug fix.

I'd say it's a bug.

 

AR0700 is probably not a bug fix (it changes the guard for the north exit so he isn't a "I saw you enter with those people..." guard).

If his line doesn't make sense, it's an error.

 

AR0901 says goodbye to Festule's dumb potion. Not really a bug fix.

What was the potion there for before?

 

AR1401 is part of a change to get rid of Tombie's journal. The last patch makes the dragon door use the key (the symbol). Probably not a bug fix.

Wait, wait... why does the journal have to go?

Link to comment
AR2002 removes a trap from the container in Mazzy's house (it couldn't be detected/disarmed, and had no trap script). Not worth fixing.

As above. If it detects as a trap, it is. (I haven't been mentioning stuff I've already covered that applies elsewhere, incidentally.)

 

AR2400 had a bunch of non-NUL junk in it's rest spawn list, so I changed it to stuff that looked right. It's not a fix (not to mention that it looks like I forgot to update the number of creatures value).

It's meant to spawn Umber Hulks. I figure it's worth fixing.

 

AR3001 corrects the number of sounds in the ambient list. Not really worth fixing (although, if somebody does, it looks like I didn't update the number of sounds used value).

Does this make a difference to anything?

 

AR3004 was a change so that the rest spawn creature was a normal demon, instead of a summoned one that gave 0 XP. Not really a fix.

Only summoned creatures should be summoned. Keep this one in.

 

AR3010 changes an invalid CRE reference in the rest spawn creatures list. It was DERINI01 (I don't know if changing it is wise, however, as I don't know if Erinyes is a name or a type of demon).

I'm fairly sure Erinyes is a type of demon.

 

AR5006 changes the name of the trigger here (there were two SpiritAppear1 triggers) so that the ghost will face the right direction. May or may not be considered a fix.

Sounds like a cosmetic fix to me. Worth including.

 

Of all these, djinni with legs (and he knows how to use them) animation doesn't have the default djinni sounds, so may be considered a fix worthy of inclusion.

Yeh, fix that one.

Link to comment
COPY_EXISTING ~GORSALM.BCS~ ~OVERRIDE/GPMAGE1M.BCS~

~GORSALM.BCS~ ~OVERRIDE/HLSIONM.BCS~

~GORSALM.BCS~ ~OVERRIDE/JONSIMMM.BCS~

~GORSALM.BCS~ ~OVERRIDE/MAGE12CM.BCS~

~GORSALM.BCS~ ~OVERRIDE/MAGE14DM.BCS~

~GORSALM.BCS~ ~OVERRIDE/MAGE14MM.BCS~

~GORSALM.BCS~ ~OVERRIDE/MAGE14TM.BCS~

~GORSALM.BCS~ ~OVERRIDE/MAGE16CM.BCS~

~GORSALM.BCS~ ~OVERRIDE/MAGE16MM.BCS~

~GORSALM.BCS~ ~OVERRIDE/MAGE18AM.BCS~

~GORSALM.BCS~ ~OVERRIDE/MAGE18CM.BCS~

~GORSALM.BCS~ ~OVERRIDE/MAGE18DM.BCS~

~GORSALM.BCS~ ~OVERRIDE/MAGE18EM.BCS~

~GORSALM.BCS~ ~OVERRIDE/MAGE18ZM.BCS~

~GORSALM.BCS~ ~OVERRIDE/MAGE20AM.BCS~

~GORSALM.BCS~ ~OVERRIDE/MAGE20CM.BCS~

~GORSALM.BCS~ ~OVERRIDE/PWARDENM.BCS~

~GORSALM.BCS~ ~OVERRIDE/SUJONM.BCS~

~GORSALM.BCS~ ~OVERRIDE/SURAKW1M.BCS~

~GORSALM.BCS~ ~OVERRIDE/SURAKW3M.BCS~

~GORSALM.BCS~ ~OVERRIDE/TELWRAIM.BCS~

~GORSALM.BCS~ ~OVERRIDE/TIEF3M.BCS~

I suggest using my fix for illusion AI instead, since it'll definitely cover all enemy illusions in the game, as well as projected images and simulacrums.

 

COPY ~FIXPACK/RESOURCES/SCRIPTS/PLAYER/AGEN.BAF~ ~SCRIPTS/AGEN.BS~

~FIXPACK/RESOURCES/SCRIPTS/PLAYER/APASS.BAF~ ~SCRIPTS/APASS.BS~

~FIXPACK/RESOURCES/SCRIPTS/PLAYER/ARANG.BAF~ ~SCRIPTS/ARANG.BS~

~FIXPACK/RESOURCES/SCRIPTS/PLAYER/CAUTIOUS.BAF~ ~SCRIPTS/CAUTIOUS.BS~

~FIXPACK/RESOURCES/SCRIPTS/PLAYER/CLERIC1.BAF~ ~SCRIPTS/CLERIC1.BS~

~FIXPACK/RESOURCES/SCRIPTS/PLAYER/CLERIC2.BAF~ ~SCRIPTS/CLERIC2.BS~

~FIXPACK/RESOURCES/SCRIPTS/PLAYER/CLERIC3.BAF~ ~SCRIPTS/CLERIC3.BS~

~FIXPACK/RESOURCES/SCRIPTS/PLAYER/CLERIC4.BAF~ ~SCRIPTS/CLERIC4.BS~

~FIXPACK/RESOURCES/SCRIPTS/PLAYER/CONTROL.BAF~ ~SCRIPTS/CONTROL.BS~

~FIXPACK/RESOURCES/SCRIPTS/PLAYER/DEFAULT.BAF~ ~SCRIPTS/DEFAULT.BS~

~FIXPACK/RESOURCES/SCRIPTS/PLAYER/FIGHTER1.BAF~ ~SCRIPTS/FIGHTER1.BS~

~FIXPACK/RESOURCES/SCRIPTS/PLAYER/FIGHTER2.BAF~ ~SCRIPTS/FIGHTER2.BS~

~FIXPACK/RESOURCES/SCRIPTS/PLAYER/FIGHTER3.BAF~ ~SCRIPTS/FIGHTER3.BS~

~FIXPACK/RESOURCES/SCRIPTS/PLAYER/FIGHTER4.BAF~ ~SCRIPTS/FIGHTER4.BS~

~FIXPACK/RESOURCES/SCRIPTS/PLAYER/MAGE1.BAF~ ~SCRIPTS/MAGE1.BS~

~FIXPACK/RESOURCES/SCRIPTS/PLAYER/MAGE2.BAF~ ~SCRIPTS/MAGE2.BS~

~FIXPACK/RESOURCES/SCRIPTS/PLAYER/MAGE3.BAF~ ~SCRIPTS/MAGE3.BS~

~FIXPACK/RESOURCES/SCRIPTS/PLAYER/MAGE4.BAF~ ~SCRIPTS/MAGE4.BS~

~FIXPACK/RESOURCES/SCRIPTS/PLAYER/THIEF1.BAF~ ~SCRIPTS/THIEF1.BS~

~FIXPACK/RESOURCES/SCRIPTS/PLAYER/THIEF2.BAF~ ~SCRIPTS/THIEF2.BS~

~FIXPACK/RESOURCES/SCRIPTS/PLAYER/THIEF3.BAF~ ~SCRIPTS/THIEF3.BS~

~FIXPACK/RESOURCES/SCRIPTS/PLAYER/THIEF4.BAF~ ~SCRIPTS/THIEF4.BS~

  COMPILE_BAF_TO_BCS

What's going on here?

Link to comment

I was dubious about your illusion fix (which is why I did it this way). I couldn't find that the MISLEAD, PROJIMAG, and SIMULACR (or whatever they're called) were ever used. Is this handled specially by the engine, somehow (like when enemies cast it, they automagically use the RES spells)? But yeah, if yours works it's better (there are some places where you can't do "M" scripts, since the original script is already 8 chars).

 

The player scripts need to be omitted. The Mac OS X version of ToB doesn't support the CTRL+I cheat key (to force banters), so I had to append all the player scripts with some code to do this on HotKey(B).

Link to comment

Those SPLs are automatically applied to illusions. Now that I think of it, might be worth putting some IDS targetting in, since while I added checks in the script, it's probably better not to assign the scripts to friendly simulacrums. Oh, and also change it so that the script gets assigned in the general slot rather than override (whatever NI says, it's going in the override), since that way, other people's custom *****M scripts will work. In fact, there's not much I've done right really, is there? :)

Link to comment
AR0700 is probably not a bug fix (it changes the guard for the north exit so he isn't a "I saw you enter with those people..." guard).

If his line doesn't make sense, it's an error.

I think it would be way too easy to start "fixing" design decisions we disagree with--in a bugfix pack--and we shouldn't. By the time the PC can talk to a guard, there has been, by definition, enough time since the blowup with Irenicus that someone could walk from the blowup to where the guard is...so how do we know the guard isn't meant to have seen it?

 

Incidentally, an erinyes is a type of baatezu.

Link to comment

Archived

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

×
×
  • Create New...