The narrator's lost monologue after passing the map - "The Temple of Ianna"

Blade of Darkness general discussion and game help forum. Discuss anything related to Severance / BoD (except modding, use the forum below) Note: Possible spoilers!

Moderators: prospero, Ade

Post Reply
nemogp
Hatchling
Posts: 2
Joined: Sun Feb 19, 2023 10:12 pm

The narrator's lost monologue after passing the map - "The Temple of Ianna"

Post by nemogp »

Hello everyone! I have such a question about the game.
Does anyone know why, after passing the Temple of Ianna, the narrator's monologue is not reproduced, who after each mission usually summed up the completed map and briefly hinted - what awaits the hero ahead? This monologue does not work in any version of the game and in all localizations (since the release of the game in 2001).
You can check it by yourself. There is no voice and no subtitles after completing this level. You just go to the next map - "Dal Gurak Tower" without the usual monologue of the narrator.
Why am I asking?
Because this particular monologue is in the game files for each localization language. It exists as an audio file format (.wav) with the narrator's voice, and in a file with subtitles. In addition, this monologue is correctly spelled out in the "scenario" file - where it is indicated exactly what the narrator should say after passing a particular location. All other narrator's monologues specified in this "scenario" file work absolutely correctly - both voice and subtitles in any of the standard localizations.
Here is an example of a typical narrator's monologue, after the player passes the Tombs of Ephyra level:
"The enemy has outpaced you once again and taken this place, though the tombs of the King and Queen have not yet been desecrated. And they contain powerful weapons that will be of great assistance. Other fell creatures have joined the orcs and the trolls, undoubtedly the fruits of necromancy. Could it be that a wizard or sorcerer is behind all this destruction? The marking of the Tower and the Isle on the map is undoubtedly the strongest clue to the enemy's origin."

And here is the missing monologue after the Temple of Ianna, which I am talking about:
"At last you have moved ahead of your enemies, and you have taken hold of the sacred Sword. The Goddess has shown you the way to your enemy, and the place where the High Tower of Sorcery is hidden. Go forth and defeat him. Cleanse the Earth of his horror!"

The audio file of this monologue is located at: game folder\SOUNDS\EnglishUS\palacebalance.wav
The subtitles of the monologue are here: game folder\DATA\Text\EnglishUS\M15.py - (they are there under the number Textos['M15T8'])
A "scenario" file indicating where and when monologues and subtitles should be played is located here: game folder\maps\2DMap\lugares.py
In it, information about the reproduced monologues begins with the following line: TextYPos=5
Specifically, the missing monologue is listed there starting with the line: if Bladex.GetStringValue("LastVisitedMap") == "M_15"
I am attaching a save file here - right before the end of the Temple of Ianna level, after which (in theory) the "lost monologue of the narrator" described by me above should be played.

I couldn't figure out for myself why there is no monologue in the game. Knowledge is sorely lacking))
If someone understands and returns the undeservedly lost monologue in this unique and great game, I will be very glad!

Thank you all in advance! I sincerely hope that I didn't tire you too much with my question.
Attachments
Save.zip
(459.07 KiB) Downloaded 44 times

User avatar
cieply
Dragon
Posts: 403
Joined: Wed Jun 26, 2013 3:43 pm

Re: The narrator's lost monologue after passing the map - "The Temple of Ianna"

Post by cieply »

nemogp wrote: Sun Feb 19, 2023 11:09 pm Does anyone know why, after passing the Temple of Ianna, the narrator's monologue is not reproduced, who after each mission usually summed up the completed map and briefly hinted - what awaits the hero ahead?
Because everything has been said. When you take a sword of Ianna you hear: 'The enemy awaits you in the High Tower of Sorcery'. You know what to do now, don't you?


PS. IMHO Attaching saves to the posts is not a good practice. This is small forum and it's unnecessary thing really. I think it should be used for more practical, lasting means. You could use some online drive or sharing service, like files.fm, or gogle/yandex/whatever-drive for it.
l'aria fresca,
vino puro, ...

User avatar
LeadHead
Dragon
Posts: 95
Joined: Mon Nov 07, 2011 10:29 pm
Contact:

Re: The narrator's lost monologue after passing the map - "The Temple of Ianna"

Post by LeadHead »

Hi.

I noticed a long time ago that Palacebalance.wav is never actually heard as well, but never bothered to find out why. I guess now that you are asking about it, I went on a little adventure in the code and tried to understand it after all.

When a map is loaded, the very first thing that is loaded, is the map folder's cfg file. This file (usually) executes every other module for the relevant map.
In ../maps/2DMap/cfg.py you will see something like this:

Code: Select all

if not(GotoMapVars.VisitedMaps[14]):
	execfile("lugares.py")
	execfile("Behaviour.py")
	execfile("luces.py") # Where the weapons are # Have to load it conditionally
else:
	execfile("lugaresback.py")# Alternative file
	execfile("Behaviourback.py")# Alternative file
	execfile("lucesback.py")# Where the weapons are # Have to load it conditionally
You can see that as soon as the game sees variable VisitedMaps[14] is true, it never actually executes the file "lugares.py". What is map[14], you might ask? VisitedMaps is a list but the weir thing about Python is it starts counting from 0 instead of 1, which means "Barb_M1" (Kashgar, Barbarian starting map) is actually indexed as map 0. This makes "Palace_M15" (Temple of Ianna) map 14 in the VisitedMaps list.

Instead, the game in these conditions executes the module "lugaresback.py" which never tries to execute the function GameText.WriteText("M14T3",TextYPos) to display the relevant text or the relevant audio function sound2=Bladex.CreateSound[..].

HOW TO FIX?

Open ../maps/2DMap/lugaresback.py and change the line #144 to this block of code:

Code: Select all

if Bladex.GetStringValue("LastVisitedMap") == "M_7":
	GameText.WriteText("M15T8",TextYPos)
	LastMap = 6

	sound2=Bladex.CreateSound('../../Sounds/'+Language.Current+'/palacebalance.wav', 'SoundM15')
	sound2.Volume=0.5
	sound2.MinDistance=100000
	sound2.MaxDistance=200000
	Bladex.AddScheduledFunc(Bladex.GetTime(), sound2.PlayStereo, ())

There is one caveat here, namely the text and narration will play both, when first obtaining the sword, and also the second time if you return without having collected all the rune tablets on your first time there. This can be prevented by writing a couple additional checks if you wish, but whatever, as a very quick fix this works remarkably well.

You might think I just said that "Palace_M15" is indexed as map 14 in the list, so why are we using the string "LastVisitedMap" as M_7?
This is a bit of a mess that RAS has created, to be honest, in the way GotoMapVars defines the string "LastVisitedMap". It is actually completely impossible for an unmodified game to ever save the string "LastVisitedMap" as "M_15" in memory.
Basically, the "VisitedMaps" list and "LastVisitedMap" string is not even remotely connected. You probably already know that the "_back" versions of map (if you decide to return and try to obtain all the rune tablets) are actually completely separate maps from the originals. What the module GotoMapVars does, is once it detects that you have entered "Palace_M15", it completely disregards the regular level list and instead references only "BackLevelNames", which resets the map index values. The "LastVisitedMap" value becomes from M_1 (Mines of Kelbegen, back version) to M_7 (Temple of Ianna, back version).

It's hard to explain in a purely text format, but overall, if you look at the ../Scripts/GotoMapVars.py and inspect the function StoreCharInfo() you'll understand what I'm talking about.



- - -

As closing words, I'd like to thank you for reminding me of this issue. A fix will be included in the release of Titanium.
Image

nemogp
Hatchling
Posts: 2
Joined: Sun Feb 19, 2023 10:12 pm

Re: The narrator's lost monologue after passing the map - "The Temple of Ianna"

Post by nemogp »

LeadHead wrote: Fri Feb 24, 2023 7:31 am I guess now that you are asking about it, I went on a little adventure in the code and tried to understand it after all.
Hello, LeadHead!
Thank you so much for your precise advice and detailed explanation on how to solve this annoying glitch!
Thanks to you, I understood the reason for this error and was able to return this lost monologue in my version of the game.
I can't tell you how much I was glad when everything worked as it should))
I really love this game from the very start in 2001.
With great gratitude, I shake your hand and will be happy to play your "Titanium" mod!

Post Reply