[01:50:53] travis-ci: exult/exult#582 (snapshot-v1.7.0.20210302 - 5afcfcf : Marzo Sette Torres Junior): The build passed.
[01:50:53] travis-ci: Change view : https://github.com/exult/exult/compare/snapshot-v1.7.0.20210302
[01:50:53] travis-ci: Build details : https://travis-ci.com/exult/exult/builds/218646698
[18:12:06] Dominus: Marzo: we talked about voices in BG the other day and about voice #22/0x16 not being used. Apparently it is used in the original. Under some circumstances it gets played when a companion dies.
[18:31:56] Marzo: I can confirm that; seems to be hard-coded in the exe
[18:38:00] Dominus: I wonder what the conditions are, it doesn't always trigger
[18:42:02] Marzo: Seems to be random; maybe one in 4 odds, whenever a party member dies
[18:46:16] Marzo: This happens with usecode-triggered deaths as well
[18:53:47] Marzo: But it also seems not to trigger again if speech is already playing, no matter how many party members die
[19:57:21] Dominus: hmm... maybe we need to implement this, but perhaps a not hard coded way is possible?
[20:39:16] Marzo: I already coded it
[20:39:37] Dominus: :)
[20:39:45] Marzo: While doing it, I noticed that there were two intrinsics to play speech in BG/FoV which did the same thing in Exult
[20:40:11] Marzo: And I started investigating, and it seems like one of them is a blocking speech, while the other is non-blocking speech
[20:40:29] Marzo: The non-blocking one is what Exult implements, and what is shared between BG and SI
[20:40:48] Marzo: The other one is used only in the final room of BG with the Black Gate
[20:41:38] Marzo: And while analyzing all this, I noticed that we have hard-coded code to show speech faces in SI when speech is enabled and playing
[20:41:46] Dominus: odd, I could *swear* I heard the voice 0x16 in the final room the other day :)
[20:41:49] Marzo: And I am now seeing if this happens in the original or not
[20:41:59] Marzo: The line plays
[20:42:05] Marzo: But I compared to the original
[20:42:20] Marzo: In the original game, the voice plays, then the dialog with Batlin starts
[20:42:28] Marzo: In Exult, both happen togethwer
[20:42:32] Marzo: &together
[20:44:41] Dominus: I think *I* tinkered with the SI faces&speech some time ago
[20:46:29] Marzo: Do you happen to have any saves before speech is triggered?
[20:48:18] Dominus: I'm looking. There might be one in the bug tracker on sF in a closed report. maybe even a closed patch
[20:55:14] Dominus: hmm, can't find anything, and it seems I never added anything to the code there (simple search on git at least)
[21:00:04] Marzo: OK, Exult matches the original behavior
[21:00:10] Marzo: In SI, I mean
[21:01:02] Marzo: On the way, I found an usecode bug in SI/SS that only happens when speech is disabled
[21:01:05] Dominus: aw... I was just about to give you all the locations with voice eggs :)
[21:01:40] Dominus: c'mon... I was just informing on the voice track 22 and this is what happens :)
[22:14:15] Dominus: Marzo, something else that has been nagging me is the missing congratulations screen. I made it show only when you destroyed the black gate and not when you view the endgame from the menu. https://github.com/DominusExult/exult/commit/c40c5072862bc543af4e88d5f876a06c4936b3dc
[22:14:43] Marzo: Add an issue in the github tracker to remind me
[22:15:39] Dominus: will do. can't get an itn out of clock->get_day(); and don't know how to make the variables to show in text. Will write that in an issue
[22:23:20] Marzo: Not accounting for leap years, I see? :-p
[22:23:28] Dominus: nope :)
[22:23:41] Dominus: very lazy conversion :)
[22:23:57] Dominus: I'm sure there is an elaborate way to do this, though
[22:25:42] Marzo: If we can agree upon a standard initial date (maybe the date when U7 was released?), we can use std::chrono to do it easily
[22:26:14] Marzo: Or we can use std::chrono to get the date when the game was started, but we would need to add it to the save file
[22:26:34] Dominus: he he
[22:26:41] Marzo: It would be very simple to covert with that, but probably overkill
[22:26:57] Dominus: I think the whole thing relies only on game time :)
[22:27:13] Marzo: But it would be a nice easter egg for observant players :)
[22:27:19] Dominus: definitely
[22:27:38] Dominus: and we *do* add that to the save file, btw
[22:27:52] Dominus: aehm, I think
[22:28:12] Marzo: The starting data? Really?
[22:28:15] Marzo: *date
[22:28:50] Dominus: ah, no, we only record the date of the build
[22:29:18] Marzo: We record the date when the game was saved, but not when it was started
[22:29:26] Dominus: yes
[22:29:32] Marzo: As in, start new game
[22:30:00] Dominus: I remembered there being a date but what I remembered was the "Built at:"
[22:30:28] Dominus: damn, now I need to figure out how to disable workflows in my fork
[22:30:59] Marzo: Hm, need to rewrite the time handling code in Exult to move away from unsafe c APIs like localtime
[22:31:01] Dominus: just got three messages that *my* workflow failed for my fork commit :)
[22:32:02] Marzo: By the way, I am also going to replace the rng code in Exult for something better
[22:32:14] Dominus: what's the rng code?
[22:32:25] Marzo: All the rand() calls sprinkled around
[22:33:25] Dominus: right, more random!
[22:33:26] Marzo: The issue being that the rng used by those calls cannot be easily converted into an uniform distribution (like a fair dice roll), which is what it is used for most of the time in Exult
[22:34:23] Marzo: *And* the quality of the random numbers is overall bad because of the internal algorithms used
[22:34:50] Marzo: *And* both are worse on Windows because rand() only returns from 0 to 65535
[22:35:31] Marzo: *And* the way it is being used is really conducive to bugs due to operator precedence, and makes the code slightly harder to read
[22:36:29] Dominus: sound like good talking points
[22:41:24] Marzo: By the way, do you have any opinions on these: https://github.com/exult/exult-web/issues/1 https://github.com/exult/exult-web/pull/2
[22:42:27] Dominus: both are valid points
[22:42:50] Dominus: I forgot about the 7 vs VII issue when I went over the documentation
[22:48:55] Dominus: I will have to let Exult run under gdb (lldb). An iOS user reported crashes (around 7pm at LB's castle) and random crashes when opening books :(
[23:37:07] Marzo: The website update script has a couple issues which I just fixed; the update action itself is working perfectly