#exult@irc.freenode.net logs for 2 May 2013 (GMT)

Archive Today Yesterday Tomorrow
Exult homepage


[04:11:53] <-- RadoS has left IRC (Remote host closed the connection)
[08:52:28] --> RadoS has joined #exult
[12:03:25] <Dominus> wjp, no change :(
[12:14:38] --> TheCycoONE has joined #exult
[12:27:07] <-- TheCycoONE has left IRC (Quit: And then there were n-1)
[12:27:21] --> TheCycoONE has joined #exult
[12:51:50] <-- Rottingbeef has left IRC ()
[13:05:02] <-- Colourless has left IRC (Quit: leaving)
[13:06:20] <wjp> Dominus: that's a bit surprising
[13:10:06] --> Colourless has joined #exult
[13:10:06] --- ChanServ gives channel operator status to Colourless
[13:17:06] <Dominus> wjp: I made sure to make clean, so nothing is leftover from my previous attempts to hack there...
[13:20:32] <wjp> did you change it in both places?
[13:29:06] <Dominus> wjp, unless I don't understand you, there is only one Frame_flags::force_usecode in our code
[13:29:35] <Dominus> the test in objs/objs.cc does not check for this
[13:58:13] <wjp> ok, maybe I shouldn't try this from memory. Let's see
[14:00:07] <wjp> right, only the one
[14:00:14] <wjp> but does that test start passing?
[14:18:49] <Dominus> no, still jumps to the next else if
[14:19:01] <wjp> hrm
[14:20:49] <wjp> will look further later
[14:21:03] <Dominus> thanks ;)
[14:21:12] <wjp> would have been nice if this was it :-)
[14:21:31] <wjp> (since that fp_force_usecode/force_usecode _is_ definitely broken as it is)
[14:22:48] <Dominus> it is? can you explain? maybe I can understand it ;) (but I'm half absent myself, so if it is more convenient later, I can wait ;))
[14:23:08] <wjp> well, it's just a typo, and not really relevant how/why
[14:23:19] <wjp> but basically force_usecode is defined as 1 << fp_force_usecode
[14:23:40] <Dominus> yes
[14:23:44] <wjp> but has_object_flag does the 1 << argument itself
[14:24:09] <wjp> so it should get fp_force_usecode, and not 1 << fp_force_usecode
[14:24:18] <Dominus> ah, yes, saw that, didn't connect that
[14:24:56] <wjp> when I looked last night it did seem to correctly load the flags
[14:25:37] <wjp> hadn't looked at the look-up part beyond this bug
[14:45:57] <Dominus> when you get the explosion it is also way to severe, I think, but that is another issue :)
[14:48:40] <wjp> I thought you didn't get the explosion at all?
[14:49:35] <Dominus> I get it when I make the else if statement == 0 :)
[14:50:02] <Dominus> (except then all containers don't open and try running usecode :)
[14:50:14] <wjp> ok, so that bit works; good :-)
[14:50:36] <wjp> so it's just that one line inf.has_object_flag(...., force_usecode) ?
[15:00:13] <Dominus> wjp, yes
[15:01:12] <Dominus> I think the inf.has_quality () ? get_quality () : -1 is faulty
[15:01:56] <Dominus> because the if (ueinf) in objs.cc seems also not functioning
[15:03:47] <Dominus> I *think* this if (useinf) should also be true but when I set the else if in contain.cc to == 0 it skips that part in objs.cc and runs directly return ucmachine->get_shape_fun(get_shapenum());
[15:04:15] <Dominus> not sure if I understand these things correctly, though
[15:11:02] <wjp> I'm not sure what you mean by == 0
[15:12:09] <Dominus> else if (inf.has_object_flag(get_framenum(), inf.has_quality() ? get_quality() : -1, Frame_flags::fp_force_usecode) == 0)
[15:12:40] <Dominus> in contain.cc
[15:14:26] <wjp> ok
[15:14:39] <wjp> that effectively inverts the check
[15:15:44] <Dominus> yes, I mostly did that to see the explosion and what happens then
[15:16:18] <Dominus> this also makes all containers unopenable since they try to run usecode instead
[15:16:54] <Dominus> I *thought* that if that part was running it would also run the if (useinf) in objs.cc
[15:22:00] <wjp> it doesn't?
[15:22:12] <wjp> oh, no, not necessarily
[15:22:30] <wjp> only if usecode function varies per frame/quality
[15:23:20] <wjp> that's the frame_usecode section in the data file
[15:25:18] <Dominus> ah, ok, so the objs.cc part is of no relevance here. thanks for explaining
[18:05:09] <-- Dominus has left IRC (Read error: Operation timed out)
[18:12:12] --> Dominus has joined #exult
[18:12:12] --- ChanServ gives channel operator status to Dominus
[18:46:06] <wjp> wow, this shapeinf code is just a bit convoluted
[19:14:05] <wjp> hm, rewriting it might actually be easier than understanding it
[19:22:01] <wjp> oh dear
[19:22:50] <wjp> hurray
[19:32:53] <wjp> right, that was a bit painful
[19:32:59] <wjp> Dominus: should be fixed now
[20:07:38] <TheCycoONE> with comments? ;)
[21:17:27] <-- TheCycoONE has left IRC (Quit: And then there were n-1)
[21:26:38] --> DominusExult has joined #exult
[21:26:38] --- ChanServ gives channel operator status to DominusExult
[21:28:07] <-- Dominus has left IRC (Ping timeout: 264 seconds)
[21:28:07] --- DominusExult is now known as Dominus
[21:41:13] <Dominus> wjp thanks for going through that code
[21:49:55] --> Rottingbeef has joined #exult
[21:50:28] <-- Rottingbeef has left IRC (Client Quit)
[21:51:40] --> Rottingbeef has joined #exult
[22:06:30] <sh4rm4> Dominus, any other bugs pending ?
[22:06:40] <Dominus> always :)
[22:06:48] <sh4rm4> :(
[22:06:50] <sh4rm4> which ones ?
[22:07:46] <Dominus> that one is interesting because it probably never worked http://sourceforge.net/tracker/?func=detail&aid=3611405&group_id=2335&atid=102335
[22:29:14] <Dominus> sh4rm4: do you want to go on a bug fixing spree?
[22:30:06] <sh4rm4> lol no
[22:30:12] <sh4rm4> exult is way too complicated
[22:31:20] <Dominus> naaaa :)
[22:31:52] <sh4rm4> you need to know about eggs, usecode, schedules, etc
[22:32:17] <Dominus> that's the easy part, you don't even have to understand code for this :)
[22:33:17] <sh4rm4> are there docs that explain all these things ?
[22:34:47] <Dominus> a bit is scattered int he docs folder of the source