#exult@irc.freenode.net logs for 18 Jan 2013 (GMT)

Archive Today Yesterday Tomorrow
Exult homepage

[00:18:31] <Marzo> Dominus: when you read the logs: wait to play both games until I finish the changes I am making
[02:44:58] --> Kirben has joined #exult
[02:44:58] --- ChanServ gives channel operator status to Kirben
[12:41:26] <-- Kirben has left IRC ()
[13:06:24] --> TheCycoONE has joined #exult
[13:11:15] <Marzo> So: other than automatons, goblins and gwani, which other beings should be immune to cold? I am thinking of ice creatures (ice drake, frost serpent, and so on) and undead beings
[13:12:12] <Marzo> But then again, since they never go in the party, it doesn't much matter
[13:17:44] <Marzo> FYI, the SI monks that have vows of silence or are deaf really don't speak in SI -- ever
[13:31:21] <Dominus> kind of understandable :)
[13:31:49] <Dominus> other tahn automatons, no one can join you anyway through "legal" means :)
[14:58:54] <-- exultbot has left IRC (signing off...)
[15:00:10] --> exultbot has joined #exult
[15:00:10] --- Topic for #exult is: Exult: http://exult.sourceforge.net/ - The open source engine for Ultima 7
[15:00:10] --- Topic for #exult set by Colourless at Fri Sep 12 00:40:42 2008
[17:27:37] --> Malignant_Manor has joined #exult
[17:28:32] <Malignant_Manor> Sourceforge trackers just went down.
[17:28:58] <Malignant_Manor> Marzo: Don't we already have cold immunes?
[17:29:53] <Marzo> Malignant_Manor: I am just thinking of adding it to several more NPC shapes
[17:31:28] <Malignant_Manor> Maybe add resistance flags for half damage.
[17:31:49] <Marzo> The cold immunity refers to freezing from cold in this context
[17:32:04] <Malignant_Manor> Oh, yeah.
[17:32:04] <Marzo> Anyway, be back later
[17:33:05] <Malignant_Manor> I don't even see cold immunity as a damage type either.
[17:33:54] <Malignant_Manor> Did Goblins even go past the caves? I don't remember any in the snow area offhand.
[17:35:12] <Malignant_Manor> The others I agree on.
[17:36:48] <-- Marzo has left IRC (Ping timeout: 264 seconds)
[19:01:41] --> Marzo has joined #exult
[19:02:45] <Marzo> [17:33:54] <Malignant_Manor> Did Goblins even go past the caves? I don't remember any in the snow area offhand.
[19:02:57] <Marzo> Frigidazzi's goblin servant in her cold lab
[19:03:23] <Malignant_Manor> I guess when wandering.
[19:03:25] <Marzo> She mentions they are immune to the freezing weather, if memory serves
[19:04:24] <Malignant_Manor> Background sfx sound like garbage notes on fmopl
[19:04:48] <Malignant_Manor> I think this might just be the crickets.
[19:08:44] <Malignant_Manor> It sounds nothing like crickets with GM.
[19:10:33] <Malignant_Manor> I'll have to see if it is a track or sfx playing.
[19:19:56] <Marzo> It is a track
[19:20:30] <Marzo> I guess I should add a way to tell if it is an MT-32 device, and have other midi devices do it the old way
[19:21:40] <Malignant_Manor> Maybe add an option to not play the bg sfx at all and not COLOURLESS_REALLY_HATES_THE_BG_SFX
[20:06:29] <Dominus> introduced in rev #7271? didn't anyone else cast a spell in over a weak? what a sorry bunch of snapshot testers we are... :)
[20:06:50] <Marzo> Not playing the BG SFX with a non-MT32 midi device might be a good idea
[20:07:10] <Marzo> Unless a soundfont can be used to make it sound good anyway...
[20:08:56] <Marzo> It was far more than just staying stuck after a spell; you could get stuck after an attack too, if you pressed 'c' to leave combat mode at the right time
[20:10:19] <Malignant_Manor> line 1342? gwin->get_main_actor()->resting(resttime);
[20:12:15] <Malignant_Manor> Dominus, that is all the more reason for you to play through every possible configuration of the games.
[20:12:48] <Dominus> I'm thankfull for agentorangeguy and jaesun, they are good bug finders and reporters. Especially jaesun with finding sfx bugs :)
[20:13:03] <Dominus> Malignant_Manor: aaaaaaahhhhhhh
[20:13:07] <Dominus> forget it!!!!
[20:13:39] <Malignant_Manor> I can search old log messages with you promising to play through both games.
[20:14:03] <Dominus> yes, but not all possible configurations :)
[20:14:55] <Malignant_Manor> The Keyring Mod really has not had much reported for all the issues it has had.
[20:15:29] <Malignant_Manor> Jaeson should be able to find game breakers though.
[20:15:51] <Dominus> yes, but when I play through the goal is to make the original game less buggy.
[20:16:21] <Dominus> even though I'd rather play through BG Keyring and SI Fixes than the original ones :)
[20:16:36] <Dominus> and I refuse to play the German version!
[20:16:48] <Malignant_Manor> Is it a bad translation?
[20:17:18] <Dominus> I don't want to know! and it's without the add-ons
[20:17:48] <Dominus> I have read and seen too many bad translations :)
[20:18:35] * Dominus is reading the first Harry Potter to his girl atm and its translation stinks (or its original script perhaps)
[20:19:55] <Malignant_Manor> It would be much easier if only one language and accent were used.
[20:49:18] <-- Malignant_Manor has left IRC (Quit: ChatZilla 0.9.89 [Firefox 18.0/20130104151925])
[21:10:57] <Marzo> Dominus: it is definitely the translation
[21:12:19] <Dominus> :) I read the whole series in English and in the end I really disliked it but needed to read it through nethertheless
[21:40:52] --> Malignant_Manor has joined #exult
[21:41:17] <Malignant_Manor> Marzo: I don't hear the weather background sfx in game.
[21:41:40] <Marzo> It is not loud
[21:41:57] <Marzo> It is best heard using MT32/MT32Emu/digital music
[21:43:10] <Malignant_Manor> Ah, it is much quieter than the music track played directly.
[21:43:36] <Marzo> Hrm. It shouldn't be
[21:48:26] <Malignant_Manor> I guess not.
[21:49:14] <Malignant_Manor> Maybe I was comparing it to fmopl.
[21:51:08] <Marzo> Maybe
[21:51:51] <Marzo> I can't see anything that would cause volume to be lower on sound test versus playing in-game
[21:56:56] <Malignant_Manor> I can hear crickets instead of rain.
[21:58:56] <Malignant_Manor> This is after the rain soundtrack runs out.
[21:59:15] <Malignant_Manor> It was still raining though.
[22:00:25] <-- TheCycoONE has left IRC (Quit: And then there were n-1)
[22:06:56] <Marzo> Weird, the soundtrack should keep looping
[22:07:26] <Marzo> It does have some low parts
[22:07:26] <Dominus> unless you set it to not looping?
[22:07:52] <Marzo> Even then; it would only take a bit longer
[22:08:19] <Marzo> Mostly due to those crickets
[22:08:42] <Marzo> But it should restart in at most 8 seconds
[22:08:47] <Marzo> (even then)
[22:09:20] <Malignant_Manor> The rain didn't last for a whole lot longer.
[22:10:30] <Marzo> Malignant_Manor: a question: how aggressive are NPCs in Windows if you remove that infamous !rand()%3 condition?
[22:11:03] <Marzo> (and I don't mean changing it to !(rand()%3), but to change it to 'true' instead)
[22:11:37] <Dominus> good test case for me used to be the fawn/goblin tower
[22:11:56] <Marzo> I am asking because it is striking me as odd
[22:12:12] <Dominus> what?
[22:12:29] <Marzo> By all means the condition as-is should almost always be false, meaning the seek_foes should almost never trigger
[22:12:52] <Marzo> But changing it to the 'correct' !(rand()%3) causes NPCs to be less aggressive
[22:13:32] <Malignant_Manor> what file is this change in?
[22:13:40] <Marzo> actors.cc
[22:13:51] <Marzo> Line 5300 or so
[22:14:08] <Marzo> (don't know for sure because my local copy has lots of changes)
[22:14:21] <Dominus> I think Malignant_Manor was the first to report this then it got fixed then you changed it again and I noticed it (so it should be the same on Windows)
[22:15:05] <Marzo> For me, removing the check altogether doesn't seem to have affected the aggressiveness, and may have increased it slightly
[22:15:29] <Malignant_Manor> !rand might always be true
[22:16:04] <Malignant_Manor> rand()%3 == 0 is what it seems like it is written as
[22:17:21] <Marzo> Operator precedence says it is to be read as (!(rand()))%3
[22:17:56] <Marzo> Function call has higher precedence than ! which has higher precedence than %
[22:18:21] <Marzo> !rand() is true only if rand() == 0
[22:19:07] <Malignant_Manor> You could try printing out the results of !rand()%3 in a loop.
[22:19:34] <Marzo> I did: zero most of the time
[22:22:56] <Marzo> I tried this program: http://pastebin.com/X32xGmaq
[22:23:42] <Marzo> It goes on trying to get 4 trues out of !rand()%3, printing what number of tries was needed to reach it
[22:23:50] <Marzo> The program is still running
[22:24:55] <Malignant_Manor> The goblins seemed about the same.
[22:26:30] <Marzo> There is also that !rand()%4 below it I forgot about
[22:26:50] <Marzo> 13158843430 tries to get 4 trues out of !rand()%3
[22:31:05] --> Kirben has joined #exult
[22:31:06] --- ChanServ gives channel operator status to Kirben
[22:32:43] <Malignant_Manor> Both of those being false doesn't seem to change anything.
[22:33:09] <Malignant_Manor> If that goblin tower is any indicator.
[22:34:14] <Marzo> It changes things in the goblin village
[22:34:28] <Marzo> There is a goblin that goes baking stuff with it being set to false
[22:35:06] <Malignant_Manor> There's in combat schedule in the save so that is ignored anyway.
[22:43:14] <Malignant_Manor> party members need to seek foes when in follow Avatar schedule and in combat mode.
[22:47:01] <Malignant_Manor> Yeah, the baker is definitely affected by it.
[22:47:40] <Marzo> Setting it to true makes her fight, setting it to false lets her go baking
[22:47:57] <Marzo> I will set it to true (both instances) and be done with it
[22:48:11] <Malignant_Manor> Yeah, I'm trying rand()%3 == 0
[22:48:49] <Marzo> Basically, always check for foes
[22:48:49] <Malignant_Manor> I'm not sure how often it is checked or how the original does things.
[22:49:29] <Marzo> In Exult, it depends on the action being done -- could be as often as once per tick
[22:49:37] <Malignant_Manor> !rand() was always coming up false.
[22:49:44] <Marzo> Or once every several seconds
[22:51:39] <Malignant_Manor> rand()%3 == 0 seems to work to make her aggressive.
[22:53:16] <Marzo> rand()%3 == 0 is equivalent to !(rand()%3), which was causing reports of lost agression
[22:54:19] <Marzo> So much so that wjp added the big comments about it
[22:54:20] <Malignant_Manor> We don't really have any nice test setups for this.
[22:57:40] <Malignant_Manor> Sometimes it does take awhile.
[22:58:54] <Malignant_Manor> Putting it to true shouldn't hurt though.
[22:59:13] <Malignant_Manor> I would consolidate the check.
[22:59:36] <Malignant_Manor> I'm not sure why seek foes is set twice.
[22:59:58] <Marzo> Good point
[23:00:17] <Malignant_Manor> Does seek_foes() set action to true?
[23:00:20] <Marzo> Now I am having some thoughts on where to put the 'goblins on goblinville attack the party'-hack
[23:00:46] <Marzo> If it finds a foe, it changes schedule to combat, which prevents the second check
[23:00:56] <Marzo> Otherwise, it can check twice for foes
[23:01:14] <Marzo> Currently, I am changing the effective alignment of goblins when in goblinville
[23:01:40] <Marzo> It works, but it is ugly
[23:01:42] <Malignant_Manor> I have no idea why alignment wouldn't work.
[23:01:56] <Malignant_Manor> Without them having to add a hack.
[23:02:37] <Marzo> The problem is that some of the goblins in goblinville are neutral
[23:03:20] <wjp> the strange thing with this rand()/seek_foes thing is that changing it to !(rand()%3) will make it call seek_foes _more_ often, but it seemed to reduce aggression
[23:03:44] <wjp> (but I don't know anything about the schedule code anymore)
[23:03:54] <Malignant_Manor> I wonder why they didn't just set them to evil instead of it.
[23:03:56] <Marzo> If the goblin is out of goblinville and they see you, they don't attack; otherwise, they attack
[23:04:27] <Marzo> I have a guess -- it seems that only neutral NPCs call guards in the original
[23:04:58] <Marzo> wjp: As far as I can tell, that analysis is correct
[23:05:16] <Malignant_Manor> I remember that goblins would call guards in Exult before.
[23:05:35] <Marzo> In goblinville, it seems that calling guards simply makes nearby goblins come fight you
[23:05:39] <Marzo> (in the original)
[23:06:01] <Dominus> of course now I put both rand in ( ) and I see no difference again
[23:06:27] <Malignant_Manor> I remember there were some issues with people giving up tring to find targets.
[23:06:37] <Malignant_Manor> Maybe that was fixed.
[23:07:03] <Marzo> That happens only on combat schedule and there are no foes in sight
[23:08:06] <Marzo> In fact, if you cast mass invisibility in the original and teleport to goblinville near NPC 117 (a neutral goblin), you can see him (and any nearby) closing in on the invisible party and alternating two cries
[23:08:43] <Marzo> Effectively, the 'call guards' cry, as they also use this if you hackmove them out of goblinville and steal in front of them
[23:10:36] <Dominus> impressive what you are trying to do int he original
[23:11:06] <Marzo> Hey, I did figure out the set_orrery intrinsic with nothing but hack-move :-)
[23:12:56] <Marzo> (way back, before I even joined the team)
[23:21:52] <Marzo> Malignant_Manor: Consolidating the two checks as you suggested makes no difference in aggressiveness that I can perceive, so from now one there will only be the first one
[23:22:18] <Malignant_Manor> I mean for code efficiency.
[23:22:35] <Malignant_Manor> But I guess the schedule could change to combat.
[23:23:53] <Marzo> seek_foes does that
[23:24:26] <Marzo> The issue would the case when it doesn't -- it would try finding foes twice in this case
[23:24:50] <Marzo> And since the game logic is single threaded, nothing has changed from the first check to the second check
[23:25:06] <Malignant_Manor> So it is redundant
[23:26:25] <Marzo> Yes
[23:27:50] <Marzo> It wasn't as redundant before because it operated under the assumption that neither one of the checks was always performed
[23:28:08] <Marzo> So it increased the odds of finding a foe
[23:28:27] <Marzo> But since it always will happen now, the second one becomes redundant