BACKUP ~TS/backup~ AUTHOR ~Vlad & Domi~ VERSION ~v7.04 BWP Fix~ BEGIN ~TORTURED SOULS v7.04~ //______________________________________// // // // Tortured Souls v7.04 // //______________________________________// // // REQUIRE_FILE ~Data/25Dialog.bif~ ~Please install "Throne Of Bhaal" and the official ToB patch before installation of this mod.~ REQUIRE_FILE ~Setup-BDToBv168.exe~ ~Please install Baldurdash-WeiDU v1.67 before installation of this mod.~ //Substitute the following string STRING_SET ~Play Shadows of Amn with the new area of Watcher’s Keep Dungeon~ ~Play Shadows of Amn with the new expansion set "Tortured Souls"~ COPY ~TS/rules~ ~override~ COPY ~TS/screens/SCRTXT09.2da~ ~override~ REPLACE ~scrtxt09~ ~NEW CHAPTER After Saemon Havarian had finished his incantations you stood for a few minutes in expectation. The ship, ready to sail was still in Athkatla’s docks... You were about to sigh and pronounce your thanks that at least it was not frog-turning, and request refund from the sly sailor. Suddenly the crew became agitated, everyone pointing to the east. You turned and saw a gray cloud speeding across the sky straight for the "Gallante". A few of the crewmen leaped overboard. Someone behind your back whispered: "that’s how the fate looks?" and spat heartily on the deck. Then the world became one great gray fog and all you could sense is the movement of tremendous speed... But you could not distinguish the direction or count the time... Slowly you had lost your consciousness... and regained it in what seemed a short instant. The ship is riding shallow waters in a sheltered bay by a stony beach. Captain Havarian approaches you hesitantly...~ COPY ~TS/screens/SCRTXT10.2da~ ~override~ REPLACE ~scrtxt10~ ~CHAPTER FOUR After few hours of uninterrupted sail you see a shiny circlet on the horizon. It is the portal! Saemon slows "Gallante" down. Your seasoned captain looks nervous as the ship enters the time gate. "Athkatla" says he steadily... and the familiar harbor appears in view... You do not stop in the port however, but lay your course straight for Brinnlaw. Bodhi was as good as her word. The journey is uneventful, and if there were other ships on the same course they must have kept a discreet distance. You make good time, and soon there is a sizable island on the horizon. It might have been considered a pleasant place, but a grim shadow extends the length of it. The asylum, Spellhold, looms from a cliff side.~ COPY ~TS/screens/SCRTXT11.2da~ ~override~ REPLACE ~scrtxt11~ ~CHAPTER FOUR After few hours of uninterrupted sail you see a shiny circlet on the horizon. It is the portal! Saemon slows "Gallante" down. Your seasoned captain looks nervous as the ship enters the time gate. "Athkatla" says he steadily... and the familiar harbor appears in view... You do not stop in the port however, but lay your course straight for Brinnlaw. Aran Linvail and Sime have proven trustworthy. The journey is uneventful, and if there were other ships on the same course they must have kept a discreet distance. You make good time, and soon there is a sizable island on the horizon. It might have been considered a pleasant place, but a grim shadow extends the length of it. The asylum, Spellhold, looms from a cliff side.~ //COPY ~TS/toda/DYNAD.2da~ ~override~ //REPLACE ~dynafin~ ~Dynaheir returned to Rasheman for a time and her knowledge and experience gained her a high position among her kin. But the adventurous witch soon embarked on another dajemma accompanied by her new guardian. The man had wits and was a valiant fighter. However, it was later said, Dynaheir had never been pleased with his service. She had relieved him of his duties and traveled alone thereafter. The mage was also known to keep hamsters. Later in her life she got married to an ambitious mage from Tethyr and they opened a school of magic together. It can be hoped that one day they will come to love each other.~ COPY ~TS/toda/SIMED.2da~ ~override~ REPLACE ~simefin~ ~Sime had witnessed death all around and after her adventuring with the notorious Bhaalspawn was over, she returned to Athkatla bent on never leaving the side of her father again. Her involvement with the Shadow Thieves, however, resulted in strange events, like distributing valuables of a robbed lord to the misfortunate or using Shadow Thief resources and manpower for noble causes. Because of that, Aran Linvail was eventually forced to retire. He went with Sime to a small village in Northern Amn where Sime was offered the position of ranger-protector, despite her background. Aran was so bored that he started to take interest in local politics and within a few years the community had become known as a tax haven. The bureaucrats in Athkatla had believed for years that it was just a nameless hamlet, while in fact it was a prominent trade post. Aran stayed as mayor of the community until his death. It is not known what happened to his half-elven daughter afterwards.~ COPY ~TS/toda/SIMEFND.2da~ ~override~ REPLACE ~simefin~ ~Sime had witnessed death all around and after her adventuring with the notorious Bhaalspawn was over, she returned to Athkatla bent on never leaving the side of her father again. Her involvement with the Shadow Thieves, however, resulted in strange events, like distributing valuables of a robbed lord to the misfortunate or using Shadow Thief resources and manpower for noble causes. Because of that, Aran Linvail was eventually forced to retire. He went with Sime to a small village in Northern Amn where Sime was offered the position of ranger-protector, despite her background. Aran was so bored that he started to take interest in local politics and within a few years the community had become known as a tax haven. The bureaucrats in Athkatla had believed for years that it was just a nameless hamlet, while in fact it was a prominent trade post. Aran stayed as mayor of the community until his death. It is not known what happened to his half-elven daughter afterwards.~ COPY ~TS/toda/SIMEND2.2da~ ~override~ REPLACE ~sime2fin~ ~After half-a-dozen visits by Shadow Thieves’ messengers it became evident to and Sime that it was time to visit Athkatla again. It was not much of a surprise to that their sojourn with Aran Linvail did not last for long. Sime took one look at her father’s plans for their wedding and that very night she convinced to elope. To lay the issue to rest they got married in the Druid’s Grove shortly after. However the marriage did not stop Sime from leading the nomadic lifestyle and together they traveled the land for many years. It is said that the couple has seen the birth of a son and a daughter, named Gorion and Imoen. Eventually the tales about and Sime became so unbelievable that one can only assume that they were no more. It is not known how and when they met their end.~ COPY ~TS/toda/VALYGFND.2da~ ~override~ REPLACE ~valfin~ ~After parting ways with , Valygar continued his adventures for several years, traveling in the wilds of northern Faerun and becoming a common sight in the area of Waterdeep. Later he was content to finally return to Athkatla and retire to the quiet, contemplative life at his family’s estate that he had always desired. Pressure from admirers within the local nobility saw him taking up the mantle of Chief Inspector, a responsibility he never desired but took on willingly to combat the growing corruption within the city. For many years, Valygar’s was the name spat by every criminal or slaver who dared to place a foot within the city. Valygar was dauntless, turning the city garrison into a force even the most self-confident thief had to respect. Valygar and the Shadow Thieves sparred many times, eventually reaching a point of mutual respect...though most considered the ranger the victor even then. Surprising even himself, Valygar eventually restored the good name of the Corthalas in Athkatla and even married. His only son, the pride of his life, took the lessons of his father to heart? Valygar would watch him go on to become the head of the Cowled Wizards and its greatest agent of reform, and for once in his life Valygar would know pride. Remembering the man that he had once been, fleeing his history into the deepest woods of Amn, the ranger would be thankful that had entered his life and forever wish his old friend well.~ COPY ~TS/toda/VALYGND.2da~ ~override~ REPLACE ~valfin~ ~After parting ways with , Valygar continued his adventures for several years, traveling in the wilds of northern Faerun and becoming a common sight in the area of Waterdeep. Later he was content to finally return to Athkatla and retire to the quiet, contemplative life at his family’s estate that he had always desired. Pressure from admirers within the local nobility saw him taking up the mantle of Chief Inspector, a responsibility he never desired but took on willingly to combat the growing corruption within the city. For many years, Valygar’s was the name spat by every criminal or slaver who dared to place a foot within the city. Valygar was dauntless, turning the city garrison into a force even the most self-confident thief had to respect. Valygar and the Shadow Thieves sparred many times, eventually reaching a point of mutual respect...though most considered the ranger the victor even then. Surprising even himself, Valygar eventually restored the good name of the Corthalas in Athkatla and even married. His only son, the pride of his life, took the lessons of his father to heart? Valygar would watch him go on to become the head of the Cowled Wizards and its greatest agent of reform, and for once in his life Valygar would know pride. Remembering the man that he had once been, fleeing his history into the deepest woods of Amn, the ranger would be thankful that had entered his life and forever wish his old friend well.~ COPY ~TS/toda/VALYGND2.2da~ ~override~ REPLACE ~val2fin~ ~Really, , it should be you writing this... For you know best what happened to your loyal friend Valygar after you rejected your place in pantheon as a Lady of Murder. Valygar traveled with , and one day their road led to a village in Zakhara. Much to Valygar’s surprise, he found that he had large family there, not a single member of which was Tainted with Corthala curse. Abyssina’s son and received a warm welcome and before they knew it the whole village turned into a carnival celebrating their marriage. Not to disappoint the gathering, Valygar and exchanged their vows in front of the village and any gods that might have been listening. They lived happily ever after and died in the same place.~ COPY ~TS/toda/YOSHIMOD.2da~ ~override~ REPLACE ~yoshifin~ ~Kachiko and Yoshimo traveled throughout Faerun for years after leaving company of . The couple were loved everywhere they went for their indomitable spirit and readiness to help anyone in need. They lived out of their backpacks and a few bags of holding for many years. Rumor has it that Yoshimo and Kachiko were agents in the service of the Harpers. Others say that they served nobody. The Hashimoto family first doubled then tripled and all of their children grew up during the endless family journey. The eldest child was called in memory of their old friend. Yoshimo and Kachiko never returned to Kozakura, the demise of their families weighed heavily on them. Eventually, they retired to Athkatla. Yoshimo now owns the "Adventurer’s Mart" and the Hashimoto’s small home in the Bridge district is full of grandchildren and all sorts of wanderers.~ //Adding NPCs to 2DA COPY_EXISTING ~PDIALOG.2da~ ~override/PDIALOG.2da~ REPLACE_TEXTUALLY ~yosh25~ ~yoshimo~ APPEND ~PDIALOG.2da~ ~PPBODHI3 PPBODHI3 PPBODHI3 *** PPBODHI3 PPBODHI3 *** ***~ UNLESS ~PPBODHI3~ APPEND ~PDIALOG.2da~ ~SIME SIMEP SIMEJ SIMED SIME25P SIMEJ *** sime~ UNLESS ~SIME~ APPEND ~PDIALOG.2da~ ~KACHIKO KACHIP KACHIJ KACHID KACHIP KACHI25J KACHI25D ***~ UNLESS ~KACHIKO~ APPEND ~INTERDIA.2da~ ~SIME BSIME BSIME~ UNLESS ~SIME~ APPEND ~INTERDIA.2da~ ~KACHIKO BKACHI BKACHI25~ UNLESS ~KACHIKO~ APPEND ~INTERDIA.2da~ ~SIME BSIME BSIME KACHIKO BKACHI BKACHI25~ UNLESS ~KACHIKO~ /*necessary to check for possible BGT presence ACTION_IF FILE_EXISTS ~data/BG1ARE.BIF~ //BGT-WeiDU compatibility THEN BEGIN COPY_EXISTING ~PDIALOG.2da~ ~override~ COUNT_2DA_ROWS 8 "rows_cnt" FOR( cnt=0; cnt<"%rows_cnt%"; cnt=cnt+1 ) BEGIN READ_2DA_ENTRY cnt 0 8 "row_name" PATCH_IF( ("%row_name%" STRING_COMPARE_CASE "DYNAHEIR")=0 ) BEGIN SET_2DA_ENTRY cnt 4 8 ~DYNAP~ SET_2DA_ENTRY cnt 5 8 ~DYNA25J~ END PATCH_IF( ("%row_name%" STRING_COMPARE_CASE "CORAN")=0 ) BEGIN SET_2DA_ENTRY cnt 4 8 ~CORAN25P~ SET_2DA_ENTRY cnt 5 8 ~CORAN25J~ END END BUT_ONLY_IF_IT_CHANGES END ELSE BEGIN //if TS is standalone APPEND ~PDIALOG.2da~ ~DYNAHEIR DYNAP DYNAJ *** DYNAP DYNA25J *** *** CORAN CORANP CORANJ *** CORAN25P CORAN25J *** ***~ UNLESS ~CORAN~ APPEND ~INTERDIA.2da~ ~CORAN BCORAN ***~ UNLESS ~CORAN~ END*/ /////////////////////////// //Art & Sound /////////////////////////// COPY ~TS/bam~ ~override~ COPY ~TS/pics~ ~override~ COPY ~TS/ogg~ ~override~ COPY ~TS/wav~ ~override~ COPY ~TS/eff~ ~override~ COPY ~TS/mos~ ~override~ ACTION_IF NOT FILE_EXISTS ~data/BG1ARE.BIF~ //BGT-WeiDU compatibility THEN BEGIN COPY ~TS/bgt/basil~ ~override~ END /////////////////////////// //Dialogues /////////////////////////// //Imoen ToB dialogue fix ACTION_IF FILE_EXISTS ~data/BG1ARE.BIF~ //BGT-WeiDU compatibility THEN BEGIN COMPILE ~TS/bgtdlg~ END ELSE BEGIN COMPILE ~TS/bgtnodlg~ END ACTION_IF FILE_EXISTS ~BIMOEN25.dlg~ THEN BEGIN COPY_EXISTING ~BIMOEN25.dlg~ ~override/BIMOEN25.dlg~ COMPILE ~TS/fix_p~ END ELSE BEGIN COMPILE ~TS/fix_f~ END /////////////////////////// //Scripts /////////////////////////// COMPILE ~TS/baf~ EXTEND_TOP ~AR0307.bcs~ ~TS/sExt/sAR0307.baf~ EXTEND_TOP ~AR0603.bcs~ ~TS/sExt/sAR0603.baf~ // EXTEND_TOP ~AR0800.bcs~ ~TS/sExt/sAR0800.baf~ EXTEND_TOP ~AR0809.bcs~ ~TS/sExt/sAR0809.baf~ EXTEND_TOP ~AR1101.bcs~ ~TS/sExt/sAR1101.baf~ EXTEND_TOP ~AR1516.bcs~ ~TS/sExt/sAR1516.baf~ // EXTEND_TOP ~AR2600.bcs~ ~TS/sExt/sAR2600.baf~ EXTEND_TOP ~AR6200.bcs~ ~TS/sExt/sAR6200.baf~ EXTEND_TOP ~Baldur.bcs~ ~TS/sExt/sBaldur.baf~ EXTEND_TOP ~Bodhi.bcs~ ~TS/sExt/sBodhi.baf~ EXTEND_TOP ~BODHIAMB.bcs~ ~TS/sExt/sBODHIAM.baf~ EXTEND_TOP ~CLEANSE.bcs~ ~TS/sExt/sCLEANSE.baf~ EXTEND_BOTTOM ~CUT218G.bcs~ ~TS/sExt/sCUT218G.baf~ //****************************** //EXTEND_TOP ~RIBALD.bcs~ ~TS/sExt/sRIBALD.baf~ EXTEND_TOP ~PPSAEM2.bcs~ ~TS/sExt/sPPSAEM2.baf~ //EXTEND_TOP ~VAMPAMB.bcs~ ~TS/sExt/sVAMPAMB.baf~ COPY_EXISTING ~VLUVINFO.BCS~ ~override~ //******************************* DECOMPILE_BCS_TO_BAF REPLACE_TEXTUALLY ~OR(4)~ ~OR(6) Global("ValygarVampire","GLOBAL",3) Global("VP_SimeVampire","GLOBAL",3)~ COMPILE_BAF_TO_BCS /*ACTION_IF FILE_EXISTS ~data/BG1ARE.BIF~ //BGT-WeiDU compatibility THEN BEGIN EXTEND_TOP ~AR2600.BCS~ ~TS/bgt/bgtbaf/xAR2600.BAF~ EXTEND_TOP ~DYNAHEIR.BCS~ ~TS/bgt/bgtbaf/DYNAHEIR.BAF~ EXTEND_TOP ~CORAN.BCS~ ~TS/bgt/bgtbaf/CORAN.BAF~ END ELSE BEGIN COMPILE ~TS/bgt/bgtnobaf/DYNAHEIR.BAF~ COMPILE ~TS/bgt/bgtnobaf/CORAN.BAF~ END*/ ///////////////////////////////////// //Stores ///////////////////////////////////// COPY ~TS/sto/WMART1.sto~ ~override/WMART1.sto~ // ADD_STORE_ITEM ~nitrite~ #0 #0 #0 ~IDENTIFIED~ #3 // ADD_STORE_ITEM ~axechar~ #0 #0 #0 ~IDENTIFIED~ #1 ADD_STORE_ITEM ~bag04ts~ #0 #0 #0 ~IDENTIFIED~ #1 COPY_EXISTING ~WMART2.sto~ ~override/WMART2.sto~ // ADD_STORE_ITEM ~namji~ #0 #0 #0 ~IDENTIFIED~ #1 // ADD_STORE_ITEM ~robearm~ #0 #0 #0 ~IDENTIFIED~ #1 COPY ~TS/sto/BAG04TS.sto~ ~override/BAG04TS.sto~ COPY ~TS/sto/BAG05TS.sto~ ~override/BAG05TS.sto~ COPY ~TS/sto/BAG06TS.sto~ ~override/BAG06TS.sto~ COPY ~TS/sto/Hasuno.sto~ ~override/Hasuno.sto~ SAY NAME2 ~Hasuno~ ////////////////////////////// //Areas ////////////////////////////// COPY ~TS/wed~ ~override~ COPY ~TS/are/AR1101.ARE~ ~override/AR1101.ARE~ //COPY ~TS/are/AR1401.ARE~ ~override/AR1401.ARE~ COPY ~TS/are/AR1512.ARE~ ~override/AR1512.ARE~ //COPY ~TS/are/AR2600.ARE~ ~override/AR2600.ARE~ //COPY ~TS/are/AR2602.ARE~ ~override/AR2602.ARE~ //COPY ~TS/are/AR2812.ARE~ ~override/AR2812.ARE~ COPY ~TS/are/TT0010.ARE~ ~override/TT0010.ARE~ COPY ~TS/are/TT0100.ARE~ ~override/TT0100.ARE~ SAY 0x3e10 ~Fighting Pit~ COPY ~TS/are/TT0101.ARE~ ~override/TT0101.ARE~ COPY ~TS/are/TT0102.ARE~ ~override/TT0102.ARE~ COPY ~TS/are/TT0201.ARE~ ~override/TT0201.ARE~ COPY ~TS/are/TT0202.ARE~ ~override/TT0202.ARE~ COPY ~TS/are/TT0203.ARE~ ~override/TT0203.ARE~ COPY ~TS/are/TT0204.ARE~ ~override/TT0204.ARE~ COPY ~TS/are/TT0301.ARE~ ~override/TT0301.ARE~ SAY 0x354 ~This statue is a representation of the Goddess Waukeen. It depicts a beautiful young woman with an outstretched palm.~ SAY 0x418 ~This statue is a representation of the Goddess Waukeen. It depicts a beautiful young woman with an outstretched palm.~ SAY 0x4dc ~These shelves are crammed with books dealing with trade and commerce in Kara-Tur.~ COPY ~TS/are/TT0302.ARE~ ~override/TT0302.ARE~ COPY ~TS/are/TT0303.ARE~ ~override/TT0303.ARE~ COPY ~TS/are/TT0304.ARE~ ~override/TT0304.ARE~ COPY ~TS/are/TT0305.ARE~ ~override/TT0305.ARE~ COPY ~TS/are/TT0306.ARE~ ~override/TT0306.ARE~ COPY ~TS/are/TT0307.ARE~ ~override/TT0307.ARE~ SAY 0x684 ~This staircase is blocked.~ SAY 0x5c0 ~This passage is magically sealed. You cannot enter the fighting arena without special permission.~ COPY ~TS/are/TT0308.ARE~ ~override/TT0308.ARE~ ////////////////////////////////////////////// // Spells ////////////////////////////////////////////// COPY ~TS/spl~ ~override~ COPY_EXISTING ~SPIN678.SPL~ ~override~ READ_LONG 0x64 "ability_offset" READ_SHORT 0x68 "abil_cnt" READ_LONG 0x6a "eff_offset" FOR( cnt=0; cnt<"%abil_cnt%"; cnt=cnt+1 ) BEGIN READ_BYTE ("%ability_offset%"+cnt*0x28) "type" PATCH_IF("%type%"=1) BEGIN //Melee READ_SHORT ("%ability_offset%"+0x28*cnt+0x1e) eff_number READ_SHORT ("%ability_offset%"+0x28*cnt+0x20) eff_idx FOR( cnt2=0; cnt2