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

Archive Today Yesterday Tomorrow
Exult homepage


[01:09:15] <Malignant_Manor> Marzo, I fixed the problem with reloading a saved game that was in combat. http://pastebin.com/V3jamZDG
[01:10:16] <Malignant_Manor> It's a bit of a hack so I don't know if you would want me to commit it.
[01:15:59] <-- Malignant_Manor has left IRC (Quit: ChatZilla 0.9.89 [Firefox 17.0.1/20121128204232])
[04:02:40] --> Matt_O has joined #exult
[05:15:35] --> DominusExult has joined #exult
[05:15:35] --- ChanServ gives channel operator status to DominusExult
[05:19:06] <-- Dominus has left IRC (Ping timeout: 276 seconds)
[05:19:07] --- DominusExult is now known as Dominus
[05:35:00] <-- Matt_O has left IRC (Quit: Leaving)
[09:24:01] <-- Dominus has left IRC (Read error: Operation timed out)
[09:25:03] --> Dominus has joined #exult
[09:25:04] --- ChanServ gives channel operator status to Dominus
[11:53:34] --> Marzo has joined #exult
[12:06:35] <Marzo> Dominus: I have been taking a look, and doing a proper C to C++ conversion will take a lot of work; so I will do it at a later date
[12:07:07] <Dominus> thanks for the heads up :)
[12:07:39] <Dominus> Marzo: did you see the last two bed problems reported by Malignant and me?
[12:07:48] <Marzo> No
[12:08:16] <Dominus> http://sourceforge.net/tracker/?func=detail&atid=102335&aid=3599714&group_id=2335
[12:08:38] <Dominus> I found mine quite funny: When the Avatar occupies the bed of an NPC -> Avatar wakes up -> NPC goes
[12:08:38] <Dominus> to sleep -> Avatar makes the bed -> bed is made and hides the NPC
[12:09:04] <Dominus> I'm not even sure if I had seen it if I haden't tested going to bed with OpenGL scaler
[12:23:18] <Marzo> Dominus: any good test cases for combat getting toggled whn coming out of bed?
[12:23:47] <Dominus> no, not really, Malignant reported it. I have no idea how to get such a case
[12:24:36] <Dominus> actually you could just attack an NPC perhaps
[12:28:55] <Marzo> Hm. NPCs are nowhere as nice as the avatar when it comes to sleeping in occupied beds
[12:29:32] <Dominus> why? will they just hop in?
[12:30:16] <Marzo> Yes
[12:31:15] <Dominus> hmm, didnT see that with smed, probably just hit the right time, when he got off his shift
[12:31:18] <Marzo> I was testing the making beds stuff and an NPC hopped in bed with the avatar
[12:31:40] <Marzo> I went to Andral's and waited until he was coming to sleep
[12:32:02] <Marzo> He already knew the bed he was going to use, and he would be damned if he let the avatar sleep alone in it :-)
[12:32:23] <Dominus> btw, other than those two problems, the sleeping in beds/bed roll, looks nicely done
[12:32:33] <Dominus> great animations now
[12:33:59] <Marzo> Did you notice that children (e.g., Spark) are no longer completely covered by the bedsheets?
[12:34:20] <Dominus> no, but I didn't even notice that they were before :)
[12:34:51] <Marzo> I happened to catch it while testing sleeping on Spark's tower
[12:35:26] <Dominus> no one probably noticed it because they were just gone :)
[12:35:38] <Marzo> Aye
[12:35:52] <Dominus> (which might explain the time, when I just couldn't find that damn Spark)
[12:38:04] <Dominus> marzo, if you are then looking for another challenge, the blacksmithing schedule needs some more love. Nothing urgent, mostly visual and logic things
[12:38:05] <Dominus> https://sourceforge.net/tracker/?func=detail&aid=619446&group_id=2335&atid=102335
[12:38:26] <Marzo> I was thinking of tacking that, yeah
[12:38:48] <Dominus> watching it in the original is really great. how he walks out to fetch the water etc.
[12:38:54] <Marzo> Especially since I noticed the Monitor smith hitting a sword blank with his two-handed sword
[12:39:00] <Dominus> he he
[12:39:38] <Marzo> But first I will fix the remaining bed bugs
[12:40:00] <Marzo> (can't let them bite :-p)
[12:40:11] <-- Kirben has left IRC (Ping timeout: 260 seconds)
[12:45:02] <Dominus> I once had hotel bed bug bites... nasty things
[12:50:45] <Marzo> OK, when someone takes a bed, the NPCs will now try to find a different bed
[12:52:02] <Marzo> Also, changing to combat will disable bedmaking
[12:54:04] <Dominus> what about the Avatar making a taken bed?
[12:55:50] <Marzo> It will be exceedingly hard for that to happen now, if not impossible
[12:56:04] <Dominus> great
[12:56:12] <Marzo> When the NPC is going for a bed, he will check if it is occupied; if it is, he will simply switch to anotherbed
[12:56:25] <Marzo> If there are no nearby free beds, they will lie on the floor
[12:57:44] <Dominus> will this be problematic if there is a bed on the next room/appartment (Monitor or Britain)
[12:57:46] <Dominus> ?
[12:58:22] <Dominus> meaning that the NPCs will be in whole different appartments when the Avatar takes another ones bed?
[12:58:36] <Dominus> otoh it is now getting more theoretical than it probably needs to be
[12:59:29] <Marzo> It is likely to happen, yes
[12:59:56] <Marzo> The NPC will take the closest free bed (within 24 tiles)
[13:02:14] <Dominus> hmm, so maybe the search for closest bed needs to be narrowed down a bit. I'm not sure what is better, sleep on floor or occupy another NPCs bed...
[13:03:02] <Marzo> I used 24 because it was what was being used in the bed search
[13:03:25] <Marzo> Hrm
[13:03:27] <Dominus> and that's probably there for a reason
[13:03:54] --> TheCycoONE has joined #exult
[13:04:06] <Marzo> I am thinking of modifying Game_object::find_nearby to search based on the object's footpad, but I am afraid it may cause unwanted consequences
[13:05:18] <Dominus> that sounds a lot like breaking things :)
[13:05:40] <Marzo> Because otherwise children will not be found by the function checking for bed occupation due to the offset they gain
[13:06:28] <wjp> don't these huge commits with multiple deep functional changes make searching for regressions very tricky?
[13:06:39] <Marzo> They do, yes
[13:06:51] <Marzo> Which is why I am thinking of trying a workaround
[13:32:34] <Marzo> Heh: due to the new children positioning in bed, the avatar was not too concerned about sleeping with them
[13:41:42] <Marzo> Fix committed
[13:59:45] <-- Marzo has left IRC (Ping timeout: 276 seconds)
[14:10:32] --> Marzo has joined #exult
[14:23:48] <Marzo> Dominus: been looking at the blacksmith schedule
[14:24:03] <Marzo> Here is a fun thing to do: let the smith heat up the sword blank
[14:24:15] <Marzo> When he goes out to pick up the tongs, steal the blank
[14:24:26] <Marzo> He will put a blacksword blank into the anvil
[14:29:37] <Marzo> Anyway, here is a summary of my observations: http://pastebin.com/LPqAhbK6
[14:54:21] <-- Marzo has left IRC (Ping timeout: 276 seconds)
[15:48:52] --> DominusExult has joined #exult
[15:48:52] --- ChanServ gives channel operator status to DominusExult
[15:52:51] <-- Dominus has left IRC (Ping timeout: 276 seconds)
[15:52:52] --- DominusExult is now known as Dominus
[15:57:49] --> DominusExult has joined #exult
[15:57:50] --- ChanServ gives channel operator status to DominusExult
[16:01:36] <-- Dominus has left IRC (Ping timeout: 276 seconds)
[16:01:36] --- DominusExult is now known as Dominus
[16:02:07] <Dominus> marzo looks good
[16:02:22] <Dominus> and fun fact about the black sword
[16:15:32] --> Malignant_Manor has joined #exult
[16:16:01] <Malignant_Manor> Now the bed isn't being made at all.
[16:16:35] <Dominus> oops
[16:17:31] <Malignant_Manor> Bedrolls work
[16:22:58] <Malignant_Manor> Another is_grabble issue.
[16:24:26] <Malignant_Manor> The upper left desks in the bank are blocked unless you stand right next to them.
[16:26:23] <Dominus> where do you find these things? :)
[16:27:53] <Malignant_Manor> Npcs sleep on the floor if you steal their bed. Even if you are sleeping with their wife. Finally, people treat the Avatar well.
[16:28:10] <Dominus> yes that at least is intended :)
[16:29:47] <Dominus> a nice feature request for version 3.6 would be to have NPCs kick the Avatar out of their bed :)
[16:31:45] --> Marzo has joined #exult
[16:31:49] <Malignant_Manor> With optional sex scenes too, I guess. People will want it.
[16:32:04] <Malignant_Manor> Marzo, I fixed the problem with reloading a saved game that was in combat. http://pastebin.com/V3jamZDG
[16:32:11] <Dominus> the Avatar is a pervert anyway
[16:32:25] <Malignant_Manor> Marzo. the previous comment was from the log.
[16:32:48] <Malignant_Manor> Also, there's some more regressions in the log.
[16:33:19] <Malignant_Manor> Marzo, the fix is a bit of a hack so I don't know if you would want me to commit it.
[17:11:22] --> DominusExult has joined #exult
[17:11:23] --- ChanServ gives channel operator status to DominusExult
[17:14:14] <-- Dominus has left IRC (Ping timeout: 240 seconds)
[17:14:14] --- DominusExult is now known as Dominus
[17:19:27] <Marzo> Malignant_Manor: try grabbing with this patch: http://pastebin.com/TuyqheSk
[17:21:22] <Malignant_Manor> Alright
[17:25:34] <Malignant_Manor> Ship masts are blocked
[17:26:48] <Malignant_Manor> Other test cases besides the new SI crate one worked.
[17:33:06] <Marzo> In the line "if (zpath.get_num_steps() == 0 || zpath.get_num_steps() > MAX_GRAB_DIST)", remove the second condition and the ship masts will work
[17:33:56] <Marzo> I guess it is acceptable, since there will usually be other stuff blocking the way in most cases
[17:34:34] <Marzo> So now to adapt the other is_grabbable to work the same
[17:34:50] <Marzo> I guess I will just refactor the code
[17:37:25] <Malignant_Manor> That seems to work without any breaks in the other test cases.
[18:05:19] <-- Dominus has left IRC (Read error: Connection reset by peer)
[18:05:37] --> Dominus has joined #exult
[18:05:38] --- ChanServ gives channel operator status to Dominus
[18:07:52] <Marzo> Malignant_Manor: try now with this: http://pastebin.com/thNxxSCt
[18:08:07] <Marzo> It should also fix the crate in top floor in SI
[18:16:44] <Malignant_Manor> I can take things from the crate if I put it on the party. But dragging it, shows a red x.
[18:18:04] <Malignant_Manor> Moving up higher, I can move the crate and move it to where it says, "can't get there".
[18:20:36] <Malignant_Manor> The other tests seem to work.
[18:21:45] <Marzo> I increased the maximum estimated cost to allow some cases to work as they were working (some books at Nicodemus'); am investigating the crate moving
[18:21:58] <Marzo> I can take items from it and drop it on some places
[18:22:07] <Marzo> As long as the maximum drop is 5 or less
[18:22:14] <Malignant_Manor> I found something I need to test in SI.
[18:23:54] <Malignant_Manor> Do you still have the move objects through walls SI saved game?
[18:24:23] --> DominusExult has joined #exult
[18:24:23] <Malignant_Manor> walls = door
[18:24:24] --- ChanServ gives channel operator status to DominusExult
[18:25:20] <Malignant_Manor> The chest says, "can't get there", but this was not a problem with the original.
[18:27:22] <-- Dominus has left IRC (Ping timeout: 246 seconds)
[18:27:23] --- DominusExult is now known as Dominus
[18:27:51] <Malignant_Manor> This is the Mountains of Freedom entrance area.
[18:28:01] <Marzo> Which chest?
[18:28:44] <Marzo> Ah, I see
[18:31:48] <-- TheCycoONE has left IRC (Quit: And then there were n-1)
[18:32:52] <-- Dominus has left IRC (Read error: Connection reset by peer)
[18:33:23] --> Dominus has joined #exult
[18:33:23] --- ChanServ gives channel operator status to Dominus
[18:36:37] <Marzo> Malignant_Manor: the chest being moved is due to limitations placed on drops on drag.cc
[18:39:01] <Malignant_Manor> Marzo. do you mean crate?
[18:39:11] <Marzo> Yes, crate, sorry
[18:39:23] <Marzo> The chest I fixed; will give you something to test in a bit
[18:39:45] <Malignant_Manor> I'm not familiar with the drop code either.
[18:42:21] <Malignant_Manor> I had to do a lot of work on dragging and pathfinding in Nuvie, but it was much more simple.
[18:43:11] <Dominus> nuvie hasn't grown in 14 years :)
[18:44:04] <Malignant_Manor> Z height is basically negligible for dragging and pathfinding in Nuvie. That helps a lot.
[18:45:05] <Malignant_Manor> Z height is basically whether you can go over trees, buildings, and mountains.
[18:47:46] <Malignant_Manor> Oh yeah, being tile based is also a huge plus.
[18:49:20] <Malignant_Manor> I'll be back in a bit.
[18:49:23] <-- Malignant_Manor has left IRC (Quit: ChatZilla 0.9.89 [Firefox 17.0.1/20121128204232])
[19:50:24] --> Malignant_Manor has joined #exult
[19:50:51] <Malignant_Manor> Marzo: any luck?
[19:52:33] <Marzo> I found a bug that caused the same floor check to fail always; fixing it has caused either sails not working or the crate at top right in that SI save to be accessible
[19:54:24] <Marzo> It was what actually prevented the crate on the top left from being accessible
[19:59:00] <Malignant_Manor> Marzo, can you take a break from that and check out the never making beds issue or this patch? http://pastebin.com/V3jamZDG
[20:00:45] <Marzo> What never making beds issue?
[20:01:29] <Malignant_Manor> When the Avatar sleeps/cancels, he doesn't make the bed. The bedroll works though.
[20:04:06] <Malignant_Manor> Npcs don't make the bed when they finsih sleep schedule and change to their normal next schedule either.
[20:07:06] <Marzo> Fixed
[20:07:43] <Marzo> Anc committed
[20:10:14] <Malignant_Manor> Spilled water is showing blood as its name. The original doesn't display a name.
[20:15:11] <Marzo> Hm. It shouldn't be displaying anything at all except for the first 4 frames
[20:16:06] <Malignant_Manor> The carriage north of Trinsic.
[20:16:42] <Malignant_Manor> I get it with the spilled water that is already there and from manually spilling the bucket.
[20:17:43] <Marzo> It doesn't display anything for me
[20:18:23] <Marzo> This is decided based on exult_bg.flx and exult_si.flx
[20:19:14] <Malignant_Manor> I don't see how mine could be different.
[20:19:55] <Marzo> I can only think of one possibility, but it is unlikely (unless you tend to run with --nocrc)
[20:20:30] <Marzo> Or you could have an override in patch dir that is messing it up
[20:20:41] <Marzo> So that is two possibilities
[20:20:44] <Malignant_Manor> the checksum matches and I make cleaned with the copyright change.
[20:21:05] <Marzo> You usually run right from the compilation dir?
[20:21:22] <Malignant_Manor> No, it installs
[20:21:39] <Marzo> Hrm
[20:21:46] <Marzo> So that leaves patch dir
[20:22:32] <Marzo> If I am not mistaken, it is the shape_info.txt file
[20:22:54] <Malignant_Manor> It is empty except combos.flx
[20:23:17] <Marzo> brb
[21:02:02] <Marzo> Back
[21:03:37] <Malignant_Manor> Marzo, the -1 isn't working.
[21:03:44] <Marzo> What -1
[21:03:49] <Malignant_Manor> :912/-1/-1/-1
[21:04:27] <Malignant_Manor> If type is -255, use default shape name instead. If type is -1, display no name at all. If type is 0, display msgid and that is it.
[21:04:45] <Marzo> It is working on my end
[21:05:09] <Marzo> Hm. Are you compiling with -O3?
[21:05:26] <Malignant_Manor> -o0
[21:05:44] <Marzo> Same here
[21:05:46] <Malignant_Manor> :912/-1/-1/0/-1 works because it points to an invalid message
[21:06:18] <Malignant_Manor> Is that parameter signed?
[21:06:56] <Marzo> I think so; checking
[21:07:19] <Malignant_Manor> I have an older build from 2011 that works fine so maybe some data got changed since then.
[21:07:41] <Marzo> It is read signed
[21:07:52] <Marzo> And stored signed
[21:11:46] <Malignant_Manor> Kirben's build has the same issue.
[21:19:24] <Marzo> Malignant_Manor: try this (will need a clean build most likely):
[21:19:44] <Marzo> in shapes/data_utils.h, function add_vector_info
[21:20:01] <Marzo> Change this:
[21:20:01] <Marzo> if (it == vec.end() || *it != inf) // Not found.
[21:20:01] <Marzo> to this:
[21:20:31] <Marzo> if (it == vec.end()) // Not found.
[21:20:31] <Marzo> vec.push_back(inf); // Append new.
[21:20:31] <Marzo> else if (*it != inf) // Not found.
[21:21:30] <Marzo> I have a feeling it won't make a difference, but...
[21:23:46] <Malignant_Manor> I'm trying it now but it will be awhile before it builds.
[21:24:09] <Marzo> In any case, I have to go again and will be back later
[21:42:08] <Malignant_Manor> Marzo: It didn't work.
[21:44:28] --> Kirben has joined #exult
[21:44:29] --- ChanServ gives channel operator status to Kirben
[21:51:36] <Dominus> Malignant_Manor: what's the problem? water named blood?
[21:52:44] <Malignant_Manor> You can notice a puddle of water at the carriage north of Trinsic. Kirben's and my build will show blood instead of not showing a message.
[21:52:57] <Malignant_Manor> Marzo doesn't have the issue though.
[21:53:22] <Dominus> me neither
[21:53:32] <Dominus> can not reproduce
[21:53:57] <Dominus> did you try a new game?
[21:54:11] <Malignant_Manor> Yeah, that's not the issue.
[21:54:25] <Dominus> (I'll start my Windows VM)
[21:55:46] <Malignant_Manor> The issue is how shape_info.txt reads the framenames section's 4th parameter.
[21:56:40] <Malignant_Manor> Having -1 should show no name but it shows the shape name.
[21:58:49] <Dominus> yes, reproduceable with Windows snapshot
[21:59:27] <Dominus> didn't need a VM, Wine was good
[21:59:50] <Dominus> so, we have a compiler problem perhaps?
[22:00:21] <Malignant_Manor> Maybe
[22:00:34] <Malignant_Manor> Or there is some other underlying issue.
[22:01:20] <Malignant_Manor> This should only affect a few frames in one shape but there might be bugs in something else too.
[22:02:02] <Malignant_Manor> Too would be if it is a common read mistake but probably not.
[22:02:54] <-- Rottingbeef has left IRC ()
[22:03:12] <Dominus> did you search the changelog or bug tracker? We *did* have water named blood before and it might have been fixed but now reintroduced
[22:03:53] <Dominus> also check stdout and compare gcc version to the old snapshot that worked
[22:04:05] <Malignant_Manor> I know I have a shapshot from the beginning of 2011 that doesn't have this issue but I used a different compiler version back then.
[22:04:41] <Dominus> ah (I hoped it was a snapshot by Kirben)
[22:05:18] <Malignant_Manor> I think it was one I built.
[22:05:50] <Dominus> let me see what I have around here (I may have a windows snapshot by kirben that is closer to the problem)
[22:06:37] <Malignant_Manor> It could just be revealed by the different compiler version.
[22:06:48] <Malignant_Manor> It could be GCC or Exult at fault.
[22:09:29] <wjp> it's exult
[22:09:44] <Dominus> wjp to the rescue
[22:09:53] <Malignant_Manor> So you found the issue?
[22:10:53] <Dominus> back in 2002 he already battled blood names :)
[22:10:59] <Dominus> (according to changelog)
[22:11:43] <Malignant_Manor> I got a build error from trying to build 1/1/2011
[22:13:20] <wjp> problem is objnames.cc line 162
[22:13:32] <wjp> it checks the msgid even when type is -1
[22:14:18] <Malignant_Manor> Can you commit the fix?
[22:14:21] <wjp> fix?
[22:15:01] <Malignant_Manor> I though you would have a fix.
[22:15:14] <wjp> sorry to disappoint :-)
[22:15:39] <wjp> this shape info format is a lot to digest
[22:16:58] <Malignant_Manor> if (type < 0) should be first
[22:17:18] <Malignant_Manor> or actually not that
[22:17:24] <wjp> == -1 maybe
[22:17:27] <Malignant_Manor> if (type == -1)
[22:17:31] <Malignant_Manor> yeah
[22:18:20] <Dominus> interestingly there was no change to objnames.cc in years :)
[22:18:55] <Dominus> and why is it working ok for non-Windows?
[22:19:00] <Malignant_Manor> if (type == -255 || (type != -1 && msgid = nminf->get_msgid()) >= num_misc_names)
[22:19:09] <Malignant_Manor> That could work too.
[22:19:28] <Malignant_Manor> I'm not sure how Marzo wants it handled.
[22:19:41] <wjp> Dominus: it reads uninitialized memory, so it depends on what happens to be in the relevant memory location
[22:20:48] <wjp> and that depends on many factors, including specific compiler version and platform and random chance
[22:21:25] <wjp> that last one is too confusing
[22:21:37] <wjp> better do the -1 first since that's easy
[22:21:59] <Malignant_Manor> get_msgid could also be changed but I don't know what it does yet.
[22:22:42] <Dominus> thanks wjp, that explains it for me. I'm pretty sure that Kirben still used a different compiler back when the snapshots worked fine
[22:24:35] <wjp> Malignant_Manor: presumably just the fifth field in shape_info.txt
[22:24:42] <Malignant_Manor> msgid might not be initialized if type >= 0
[22:25:02] <Malignant_Manor> That's from frnameinf.cc.
[22:25:57] <Malignant_Manor> msgid could probably be set to a negative and be safe if type < 0
[22:26:53] <wjp> what's wrong with your first suggestion?
[22:27:14] <Malignant_Manor> Nothing really
[22:27:50] <Malignant_Manor> I'll just leave it to Marzo since he does most of the dehardcoding.
[23:22:27] <-- Kirben has left IRC ()
[23:28:11] --> Kirben has joined #exult
[23:28:12] --- ChanServ gives channel operator status to Kirben
[23:41:57] <Marzo> wjp: thanks fr the diagnosis, I was looking in the wrong place
[23:50:42] <wjp> np