#exult@irc.freenode.net logs for 20 Sep 2001 (GMT)

Archive Today Yesterday Tomorrow
Exult homepage

[00:16:10] <-- Waz has left IRC ()
[01:49:17] <-- gwm has left IRC (Cliente IRC saindo)
[06:48:48] <matto> ?bye
[06:48:48] <exultbot> Goodbye, Avatar.
[06:48:52] <matto> bahahaha
[07:03:16] --> wjp has joined #exult
[07:11:22] <matto> wjp!
[07:17:07] <wjp> matt! :-)
[07:19:25] <matto> wjp: sounds like serpent isle is coming along nicely
[07:22:50] <wjp> yeah; haven't tried it in a while, though
[07:29:16] <matto> you been wookin' on black gate instead?
[07:34:27] <wjp> no :/
[07:34:35] <matto> hohoho
[07:34:41] <wjp> I haven't been wookin' on exult much the last couple of weeks :-)
[07:34:43] <matto> not working on exult at all
[07:35:14] <matto> I am still getting mailing list stuff .. someone must still be wookin' on it
[07:35:25] <wjp> yeah, Jeff is doing a lot of SI work atm
[07:35:30] <matto> how ironic
[07:35:35] * wjp gets new cvs-logs mail
[07:35:35] <matto> the guy who was the most hesitant :)
[07:35:45] <wjp> hmm, literally 'at the moment' :-)
[07:35:51] <matto> lol
[07:35:55] * matto looks at clock
[10:26:31] <-- matto has left IRC (Client Exiting)
[11:11:27] <-- wjp has left IRC ([x]chat)
[11:16:12] --> fingolfin has joined #exult
[12:29:45] --> TonyHoyt has joined #Exult
[12:29:59] <TonyHoyt> ?url
[12:29:59] <exultbot> The official Exult homepage is at: http://exult.sourceforge.net/
[12:30:03] <TonyHoyt> ?log
[12:30:03] <exultbot> Logs are available at http://www.math.leidenuniv.nl/~wpalenst/exultlog.php3
[13:09:53] <-- TonyHoyt has left #Exult
[13:36:16] --> Colourless has joined #Exult
[13:38:12] <Colourless> hi
[13:38:31] <fingolfin> hi
[13:42:51] <fingolfin> I wonder if there is a good reason why we don't use AC_EXEEXT in configure.in
[13:43:10] <fingolfin> Colourless: hm, I would op you, but are you really realy? :)
[13:44:00] --> Dominus has joined #exult
[13:44:04] <Colourless> oh, it's me :)
[13:44:06] <fingolfin> Dominus: hi
[13:44:10] <Dominus> hi
[13:44:18] <Colourless> hi
[13:44:22] <fingolfin> Dominus: this is not Colourless but an imposter I think! :)
[13:44:52] * Dominus whispers to Fingolfin: letīs pretend he is and lure him into false security
[13:45:09] <Colourless> see!
[13:45:57] <Colourless> i'm not on my normal computer at the moment and don't have all my scripts set up
[13:47:37] <Dominus> hehe
[13:47:52] <Dominus> Someone broke some barges in Exult
[13:48:00] <Colourless> cool
[13:48:04] <Dominus> the horse carriage is reported not working
[13:48:54] <Dominus> the turtle didnīt work yesterday, wouldnīt move and with the latest snap the earth serpent tells me Iīve forgotten sth when I call it (the same savegame)
[13:49:19] <Dominus> and I think that little barge that takes you to Rotuīs loveplace is broken as well
[13:49:31] <fingolfin> bah who needs barges anyway
[13:49:45] <Dominus> :-)
[13:49:48] <Colourless> i'm sure you read about my little barge adventure that I had on IRC yesterday? :-)
[13:51:28] <Dominus> yeah
[13:51:44] <Dominus> and just checking I found the little barge working.
[13:51:46] <Dominus> Oops
[13:53:53] <Dominus> and horse carriage is working too
[13:54:10] <Dominus> okay, but the turtle is definetly not working
[13:54:43] <Dominus> and I canīt check with an older version of Exult as some newly saved flags prevent those new savegame sto be loaded
[13:56:04] <Colourless> yeah jeff's scheduled usecode saving breaks backwards compatibility
[13:56:40] <Dominus> look at http://exult.sourceforge.net/forum/read.php?f=1&i=1783&t=1783
[13:56:50] <Dominus> what does he want to know/say
[13:56:52] <Dominus> ?
[13:59:32] <Colourless> can't check right now, ie isn't being cooperative
[13:59:55] <Dominus> he he
[14:09:38] <Colourless> brb, restarting
[14:09:40] <-- Colourless has left IRC (Leaving)
[14:25:34] --> Colourless has joined #Exult
[14:25:43] <Dominus> wb
[14:25:51] <Colourless> thx
[14:29:58] <Colourless> i don't get what that guy want's either
[14:30:09] <Dominus> hehe
[14:30:24] <Dominus> I think my answer covers it somehow
[14:30:49] <Dominus> I didnīt know that bugs are pending because of compatibility issues
[14:30:52] <Dominus> :-)
[14:31:49] <Colourless> me neither ;-)
[14:32:08] <Dominus> he he
[14:40:14] <fingolfin> I now have this memory debugger compiled into exult... just a quick run revealed nothing... anything specific I should check out?
[14:41:50] <Colourless> that bug submitted by dom
[14:43:21] <Dominus> hm, which one? :-)
[14:44:00] <Colourless> corrupted savegame one of course
[14:44:54] <fingolfin> will do in a moment
[14:44:57] <Dominus> hm, somehow jeffs commit to the cvs with the saving of usecode events fixed that one
[14:45:05] <Dominus> doesnīt happen anymore
[14:45:29] <Colourless> damn
[14:45:45] <Dominus> thatīs what I thought
[14:45:46] <Colourless> it might have been something else causing the problem
[14:46:55] <Dominus> you might check it out with older versions of Exult
[14:47:01] <Dominus> :-)
[14:47:12] <fingolfin> uh if I had known, I just hadn't done a cvs update... :)
[14:47:24] <Dominus> I know hard to do
[14:47:28] <fingolfin> I will try it with the version I just build
[14:47:46] <fingolfin> Dominus: not with cvs... I could update to the state of say two days ago if I wanted to, I think
[14:48:17] <Dominus> maybe with the alpha5
[14:48:29] <fingolfin> no why so long back?
[14:48:41] <fingolfin> as I said, i can update to a given date, too, getting a consistent CVS state
[14:48:53] <fingolfin> but I will try it with latest CVS first now, there still might be an issue, only hidden
[14:49:29] <Dominus> ok, have to go or my girlfriend takes my head off
[14:49:30] <fingolfin> #458473 ?
[14:49:30] <Dominus> :-)
[14:49:34] <fingolfin> ok cya :)
[14:49:41] <fingolfin> greetings to her :)
[14:49:53] <Dominus> 446054 actually
[14:50:04] <Dominus> see you
[14:50:07] <Colourless> cya
[14:50:18] <-- Dominus has left IRC (got to play Exult now)
[14:50:42] <fingolfin> oh no 446054
[14:50:47] <fingolfin> oh dom was faster than me :)
[14:50:55] <Colourless> :-)
[15:36:14] <fingolfin> tststs
[15:36:27] <Colourless> yes
[15:36:32] <fingolfin> tgere are a loads of free's for memory that is already freed
[15:36:36] <fingolfin> I need to rerun this through gdb
[15:36:52] <Colourless> that's pretty bad
[15:40:15] <Colourless> i just had a bit of a hellish 60 minutes then. I decided to install WindowsXP. Of course after it finished installing, it crashed. rebooted and it crashed again.
[15:41:43] <Colourless> After 60 minutes at the recovery console I finally figured out the problem was the modified windows 2000 login screen that i did. It was attempting to use the win2k login dll in winxp... bad idea... and it was all caused by me ;)
[15:42:08] <Colourless> hell the installer even warned me about the custom login saying it might not work :)
[15:47:32] <fingolfin> hehehe
[15:48:46] <fingolfin> ok, running that thing again, this time with a breakpoint at a special symbol so that it breaks whenever it does something bad
[15:50:33] --> Cless has joined #Exult
[15:50:47] <Cless> ok, everthing is working
[15:50:56] <-- Colourless has left IRC (i can leave now)
[15:50:57] --- Cless is now known as Colourless
[15:53:44] <fingolfin> the first problem is in U7ListFiles (for unix)
[15:53:44] <fingolfin> hm
[15:54:17] <fingolfin> it calls free there but it seems it shouldn't... it calls it in two places
[15:54:23] <fingolfin> wonder what is wrong there
[15:54:59] * fingolfin does a man 3 gloib
[15:55:04] <fingolfin> glob even
[15:55:46] <fingolfin> ho hm
[15:55:53] <fingolfin> seems there is a function globfree() that should be used!
[15:56:00] <fingolfin> now I wonder if that is available on Unix or not :)
[16:03:33] <Colourless> globfree was used from memory
[16:03:59] <Colourless> errr, let me rephrase, globfree was used if I recall correctly
[16:07:09] <fingolfin> then why is it not used anymore?
[16:07:21] <fingolfin> using free crashes here, probably because the data was not alloced via malloc
[16:07:27] <fingolfin> and globfree exists on unix
[16:07:31] <fingolfin> hm
[16:07:41] <fingolfin> I meant linux of ocurse
[16:08:02] <fingolfin> and it should be there on any other unix with glob (read: all)
[16:08:13] <fingolfin> and changing to globfree fixes the problem for me
[16:08:58] <Colourless> well, check the cvs file revisions
[16:09:27] <fingolfin> ok
[16:22:02] <fingolfin> Colourless: can't find any note on globfree
[16:22:08] <Colourless> hnnn
[16:22:09] <fingolfin> Colourless: and I just looked at rev 1.1.
[16:22:09] <Colourless> hmmmm
[16:22:15] <fingolfin> the simple reason:
[16:22:26] <Colourless> it was always free i'm guessing
[16:22:27] <fingolfin> the code used to just copy those pointers, and then later *had* to free() them
[16:22:40] <Colourless> ah
[16:22:41] <fingolfin> whilke I rewrote the code to use std::string, making this obsolete, but the free() sticke
[16:22:48] <fingolfin> sticked
[16:22:51] <fingolfin> oh well
[16:22:58] <fingolfin> I just change it to globfree(), should be fine
[16:31:50] <fingolfin> ok, I followed dom's guid, hit save and - entered the debugger
[16:32:04] <fingolfin> hmm
[16:32:06] <fingolfin> weird
[16:32:17] <Colourless> yes?
[16:32:42] <fingolfin> this does not look like our code...
[16:32:47] <fingolfin> (gdb) bt
[16:32:47] <fingolfin> #0 0x000a85d4 in malloc_printf ()
[16:32:47] <fingolfin> #1 0x000ad16c in HandleException ()
[16:32:47] <fingolfin> #2 0x000fa63c in mallocdebug_catch_exception_raise ()
[16:32:47] <fingolfin> #3 0x00136004 in _Xexception_raise ()
[16:32:48] <fingolfin> #4 0x00136288 in exc_server ()
[16:32:50] <fingolfin> #5 0x000fa8d8 in exceptionThread ()
[16:32:52] <fingolfin> #6 0x70020efc in _pthread_body ()
[16:33:28] <fingolfin> stepping a bit further hit in
[16:33:39] <fingolfin> #0 0x00057c24 in Game_window::write_gwin ()
[16:33:40] <fingolfin> #1 0x000579c8 in Game_window::write ()
[16:33:40] <fingolfin> #2 0x000ef06c in Newfile_gump::save ()
[16:33:40] <fingolfin> #3 0x000eea78 in Newfile_button::activate ()
[16:33:40] <fingolfin> #4 0x000f1ac8 in Newfile_gump::key_down ()
[16:33:42] <fingolfin> [...]
[16:34:03] <fingolfin> grr, i need a line number
[16:35:37] <Colourless> funny, I changed that file 2 days ago
[16:35:40] <Colourless> i mean function
[16:36:19] <fingolfin> hm
[16:36:42] <fingolfin> Single stepping until exit from function write_gwin__11Game_window,
[16:36:43] <fingolfin> which has no line number information.
[16:36:54] <fingolfin> I wonder why this is the case (no line number informatioN)
[16:37:39] <Colourless> all the Write funcs are inline
[16:38:00] <fingolfin> oh ok
[16:38:01] <fingolfin> sad
[16:38:06] <fingolfin> hm
[16:38:24] <fingolfin> I will try this now with a "nromal" game, to see if it always triggers or really only in that save game
[16:39:32] <Colourless> I really couldn't tell you why there would be a problem in the function.
[16:40:55] <Colourless> heh, WindowsXP has native support for browsing zip files
[16:41:15] <fingolfin> :)
[16:41:26] <fingolfin> ok, it goes to the debugger when I do a save
[16:42:32] <fingolfin> even from a new started game in SI
[16:42:45] <fingolfin> invalid memory access
[16:43:01] <fingolfin> maybe I should disable inlining (-fno-inline or something is the switch) and rebuild? :)
[16:43:59] <fingolfin> I will set a breakpoint on write_gwin now
[16:46:53] <fingolfin> nothing :/
[16:47:02] <fingolfin> i just can't step through it
[16:47:21] <fingolfin> wonder why
[16:48:44] <fingolfin> the only thing that looks slightly suspicious is the new miid stuff
[16:48:59] <Colourless> that 'should' be ok
[16:49:05] <fingolfin> yeah, I think so, too
[16:49:16] <Colourless> all the pointers should exist
[16:49:17] <fingolfin> but I will try to comment it out, I can't think of anything else
[16:49:27] <Colourless> that should be fine
[16:49:46] <Colourless> savegames can be loaded if that stuff isn't saved
[16:50:05] <fingolfin> aye, I saw :)
[16:53:51] <fingolfin> guess what...
[16:53:53] <fingolfin> now it worked...
[16:54:05] <fingolfin> could it be related to the fact that I turned of music & sfx
[16:54:08] <fingolfin> ?
[16:54:35] <Colourless> it's possible
[16:54:47] <fingolfin> <sigh>
[16:55:58] <Colourless> you are probably going to need to make it like: if (audio = Audio::get_ptr() { if (player = audio->get_midi()) ...
[16:56:12] <Colourless> opps, missed a bracket :)
[16:57:05] <fingolfin> OMG then I won't understand it :)
[16:57:58] <Colourless> heh
[17:01:28] <fingolfin> aha
[17:01:33] <fingolfin> now it crashs again
[17:01:35] <fingolfin> ...
[17:01:35] <fingolfin> hm
[17:01:42] <fingolfin> maybe a bug in my mac midi driver then?
[17:01:49] * fingolfin looks at what that code actually does
[17:01:51] <Colourless> no
[17:01:54] <Colourless> no way
[17:02:04] <fingolfin> MyMidiPlayer *player;
[17:02:07] <fingolfin> and it crashes
[17:02:14] <Colourless> no kidding :)
[17:02:35] <fingolfin> erhm, that was supposed to go to multiple lines :)
[17:02:45] <fingolfin> MyMidiPlayer *player;
[17:02:48] <fingolfin> argh
[17:02:51] * fingolfin gives up
[17:03:09] <fingolfin> anyway, we can be sure that get_ptr and player are non-zero
[17:03:21] <fingolfin> so why should it crash?
[17:03:21] <fingolfin> weird
[17:04:09] <fingolfin> inline int get_current_track() { return midi_device->is_playing()?current_track:-1; }
[17:04:12] <fingolfin> aha
[17:04:27] <Colourless> don't look at me :)
[17:04:31] <fingolfin> and you tell me: no way :)
[17:04:53] <fingolfin> next time put a ":)" next to it! :)
[17:05:05] <fingolfin> ok I see the problem
[17:05:06] <Colourless> :)
[17:05:47] <fingolfin> fixed, will try again now
[17:05:54] <Colourless> what did you do?
[17:07:19] --> wjp has joined #exult
[17:07:23] <wjp> hi
[17:07:33] <fingolfin> hi willem
[17:07:42] <fingolfin> Colourless: hm, actually, now that I think, this can't be the source
[17:07:46] <wjp> you know... friday next week is the last friday of september... any plans for alpha6 then? :-)
[17:07:52] <Colourless> hi
[17:08:09] <fingolfin> Colourless: I thought that my "mTunePlayer" fields was not inited, but there is now way it cannot be, it gets inited in the constructor
[17:08:17] <fingolfin> wjp: if I can fix this crash, sure :)
[17:08:26] * wjp reads logs
[17:08:49] <fingolfin> I'll try anyway, and I'll also try turning on music/SFX
[17:17:42] <fingolfin> Colourless: can you tell if there is some idiomatic expression for a "slap" as in "I slapped him hard"
[17:18:09] <Colourless> nope
[17:18:34] <fingolfin> in German we have "Ohrfeige" which could be translated (word-by-word) with "Earfig" or also "Backpfeife" which is "backpipe" =)
[17:19:05] <Colourless> hmm
[17:20:20] <wjp> I think we also have something similar to the first in dutch, but nobody under 70 years old ever uses that here :-)
[17:21:21] <fingolfin> wjp: "jemanden eine Ohrfeige" geben (to slap somebody in the face) is a common expression
[17:21:48] <wjp> s/" geben/ geben"/ :-)
[17:22:01] <fingolfin> "Ich könnte mich Ohrfeigen" ("I could slap myself", in the sense of "I am soo stupid")
[17:22:11] <fingolfin> wjp: aye :)
[17:22:36] <fingolfin> my mom is pestering me for three days now, asking for a translation of "Ohrfeige" to english, not believing me that there is none
[17:22:39] <wjp> 'oorveeg' or 'oorvijg' in dutch
[17:22:43] <fingolfin> (except maybe some weird slang)
[17:22:45] <fingolfin> ah :)
[17:23:02] <wjp> 'vijg' == 'fig'
[17:23:22] <fingolfin> I fig-ured that
[17:23:31] <wjp> but 'veeg' isn't
[17:23:48] <fingolfin> what is "veeg" ?
[17:23:50] <fingolfin> weg? :)
[17:24:00] <wjp> "vegen" is "to sweep"
[17:24:08] <fingolfin> oh :)
[17:24:23] <fingolfin> ok, it crashes when I turn on music/SFX, too
[17:24:29] <fingolfin> (when I save I mean)
[17:24:35] <fingolfin> I'll now try BG, just for fun
[17:25:38] <fingolfin> ka-boom
[17:26:10] <fingolfin> now, I figure saving works fine for you guys, so it really has to be in my midi code, but I do not see how - esp. since saving worked one week ago
[17:26:51] <Colourless> i had saving 'fail' a cupple times the other day when using Ctrl-S
[17:27:08] <Colourless> but worked fine when I when into the save gump
[17:27:33] <Colourless> the second when is supposed to be went
[17:30:06] <Colourless> when I say fail, exult brought up a message specifically saying "Save Game Failed" or similar
[17:30:46] <fingolfin> I am in the save gump, btw
[17:30:59] <fingolfin> and I think it would continue to run if I was not in gdb
[17:30:59] <Colourless> ok
[17:37:13] * fingolfin reverts to the ultimate debugging tool
[17:37:16] <fingolfin> printf
[17:37:26] <Colourless> heh
[17:38:01] <Colourless> printf ("%s:%d\n", __FILE__, __LINE__) is pretty good :)
[17:38:43] <Colourless> as are countless other situation dependant variations :)
[17:39:38] <fingolfin> :)
[17:50:31] <Colourless> you know, doms bug still causes deadeye to appear for me
[18:07:33] <fingolfin> 1) midi is on (I heard music play when I launched the game), as are SFX
[18:07:36] <fingolfin> 2) I create a new game in SI
[18:07:47] <fingolfin> 3) after I can move, I save
[18:07:47] <fingolfin> 4) I pop into gdb
[18:07:59] <fingolfin> 5) player->get_current_track() was being called
[18:08:11] <fingolfin> 6) but is_playing() of my midi driver was *not* called
[18:08:53] <fingolfin> or was it? damn, looking at the build logs, I am not sure if it rebuilt the midi driver properly
[18:08:55] <fingolfin> grmbl
[18:13:20] <fingolfin> ok, recompiled (of course make didn't choose to remake my changed midi_driver)
[18:13:28] <fingolfin> but it still is not firing my printf in there
[18:13:45] <fingolfin> Target application attempted to access memory at 0x000000d3
[18:19:24] <-- Colourless has left IRC (Read error to Colourless[ppp285.adelaide.on.net.au]: Connection reset by peer)
[18:27:11] --> Colourless has joined #Exult
[18:28:50] <fingolfin> ok I made a mistake, it now works when I have sound on
[18:28:58] <fingolfin> and it works when i start with sound on then turn it off
[18:29:05] <fingolfin> it crashes when I start with sound off
[18:29:10] <fingolfin> (sound = midi+sfx)
[18:29:17] <fingolfin> could somebody try that, too?
[18:29:25] <Colourless> I will
[18:29:26] <wjp> sure
[18:29:28] <fingolfin> sound off, restart exult, try to save
[18:29:45] <wjp> sound off or midi+sfx off?
[18:30:16] <fingolfin> I have both of
[18:30:22] <fingolfin> I think it is only midi tht is bad, though
[18:31:15] <wjp> crash
[18:31:25] <Colourless> ok, that's what causing it to say "Saving Game Failed"
[18:31:26] <Colourless> :)
[18:31:36] <fingolfin> cool :)
[18:31:37] <fingolfin> erhm
[18:31:39] <fingolfin> sort of
[18:31:51] <fingolfin> my guess: it has not created a midi device
[18:31:52] <Colourless> MSVC also detected an Access Violation exception, but exult caught it... BAD EXULT!
[18:31:53] <fingolfin> but tries to call it
[18:32:11] <wjp> we catch Access Violations?!?
[18:32:25] <Colourless> someone probably did catch(...)
[18:32:25] <fingolfin> MallocDebug: Target application attempted to access memory at 0x00000000 with insufficient permissions.
[18:32:30] <fingolfin> seems like I am right
[18:32:50] <wjp> Program received signal SIGSEGV, Segmentation fault.
[18:32:51] <wjp> [Switching to Thread 1024 (LWP 9782)]
[18:32:51] <wjp> 0x08113d50 in MyMidiPlayer::get_current_track (this=0x0)
[18:33:49] * fingolfin is happy that for once it is not his fault that things go awry =)
[18:33:52] <wjp> #ifndef COLOURLESS_REALLY_HATES_THE_BG_SFX <-- LOL
[18:34:21] <wjp> umm...
[18:34:25] <wjp> MyMidiPlayer *player = Audio::get_ptr()->get_midi();
[18:34:25] <Colourless> you like?
[18:34:25] <wjp> Write4(gout, player->get_current_track());
[18:34:25] <wjp> Write4(gout, player->is_repeating());
[18:34:29] <wjp> that's very bad...
[18:34:43] <wjp> player can easily be 0
[18:35:11] <fingolfin> hahah
[18:35:20] <fingolfin> never saw that #ifndef before :)
[18:35:27] <fingolfin> wjp: but it isn't
[18:35:35] <wjp> it is for me
[18:35:42] <fingolfin> cool! :)
[18:35:46] <Colourless> well, i don't know because exult is being bad :)
[18:35:59] <wjp> as you can see in the last line I pasted in from gdb
[18:36:24] <fingolfin> wjp: weird thing for me is, gdb refuses to step into there
[18:36:34] <fingolfin> so I can't really tell, either
[18:36:51] <wjp> it just crashes there for me
[18:37:04] <Colourless> catch(...) is very a bad practice. ActionQuickSave and ActionQuickRestore both have that. For windows users it will catch everything
[18:37:22] <Colourless> err, swap "very" and "a"
[18:37:56] <wjp> what should I write to gamewin.dat if midi is disabled? -1 and ?
[18:38:19] <wjp> 0 will probably be ok?
[18:38:20] <Colourless> 1 or 0 it doesn't matter
[18:39:15] <wjp> hmm, Write4 expects an unsigned int
[18:39:31] <fingolfin> hmm
[18:39:49] <fingolfin> maybe we want a version that does signed, too?
[18:39:53] <wjp> ok, saving works now :-)
[18:40:44] <Colourless> yeah, that would be a good idea
[18:40:56] <wjp> Write4s?
[18:41:12] * Colourless is currently going through exult getting rid of catch(...)
[18:41:29] <fingolfin> or UWrite and SWrite? :)
[18:41:42] <fingolfin> but that would be more work
[18:41:55] <fingolfin> Colourless: good idea
[18:42:12] <wjp> what are you replacing them with?
[18:42:27] <Colourless> catch(exult_exception &e)
[18:42:39] <fingolfin> ok
[18:42:39] <wjp> ooh, we have an exult_exception?
[18:42:43] <wjp> nifty :-)
[18:42:46] <fingolfin> wjp: yes we have :)
[18:43:17] <Colourless> all cases were involved with file handling
[18:43:36] <wjp> inline void Write4s(std::ostream& out, sint32 val) { Write4(out, (uint32)val); } ?
[18:43:50] <Colourless> yeah
[18:43:56] <Colourless> that should do i guess
[18:44:45] <wjp> uh oh... utils.h
[18:45:50] <Colourless> what about it?
[18:46:15] <wjp> that file is included a lot :-)
[18:46:34] <wjp> meaning a nearly full recompile to fix a warning :-)
[18:46:36] <Colourless> yeah
[18:48:24] * wjp should finish his Elliptic Curves homework for 7 May tonight
[18:50:28] <wjp> ok, committed fix
[18:51:40] <wjp> let me know if it works...
[19:16:57] <Colourless> hey, it didn't work :)
[19:19:25] <wjp> it didn't?
[19:19:32] <Colourless> nope :)
[19:19:40] <wjp> silly windows :-)
[19:19:58] <Colourless> more like silly wjp for only fixing 1 problem ;-)
[19:20:10] <wjp> more like silly Colourless for introducing them in the first place ;-)
[19:20:11] <Colourless> there was another problem as well :-)
[19:20:50] <wjp> hmm, there was? which one?
[19:21:09] * fingolfin jumps up and down and sings "I am innocent this time, lalalal"
[19:21:11] <Colourless> the player might exist, but the midi_driver might not
[19:21:16] <fingolfin> as I said! hahaha!
[19:21:20] <fingolfin> ;)
[19:21:30] * fingolfin stops being silly as he notices all people looking irritated at him
[19:22:16] <Colourless> i would haven't have introduced the bug had the catch(...) not been catching the crash
[19:22:38] <wjp> ok... it indeed crashes now when you have sound enabled but midi disabled
[19:22:59] <wjp> you didn't think the "save game failed" messages were strange? ;-)
[19:23:02] <Colourless> :-)
[19:23:13] <Colourless> i had no idea what was causing it
[19:23:15] * wjp fixes next error
[19:23:21] <wjp> or did one of you already do that?
[19:23:41] <Colourless> done
[19:28:46] <Colourless> committed
[19:31:40] --- fingolfin is now known as Fingolfin|dinner
[19:32:24] <wjp> our two changelog entries look funny together :-)
[19:32:39] <wjp> fixed crash when saving with sound/midi disabled :-)
[19:33:07] <Colourless> you'd think we both fixed the same bug
[19:33:22] <wjp> yeah :-)
[19:47:46] <Colourless> hmmm, intereting
[19:47:52] <Colourless> interesting even :)
[19:50:53] <Colourless> ummm.... Setting Shape to -858993460
[19:51:34] <wjp> that sounds wrong somehow :-)
[19:51:45] <Colourless> yeah
[19:51:57] <wjp> what code generates that message?
[19:52:21] <Colourless> i beleive it's set polymorph
[19:52:23] <wjp> ../../exult/conf/Configuration.cc: In method `bool
[19:52:23] <wjp> Configuration::read_config_file (const char *)':
[19:52:23] <wjp> ../../exult/conf/Configuration.cc:155: parse error before `&'
[19:52:51] <wjp> oh, missed an include
[19:53:01] <Colourless> #include "exceptions.h"
[19:55:20] <wjp> ../libtool: test: =: unary operator expected
[19:55:22] <wjp> ?
[19:55:23] <Colourless> this deadeye bug of dom's it would appear is triggered by something to do with the schedule of someone in moonshade.
[19:55:34] <wjp> right before compiling egg.cc
[19:57:15] <wjp> deadeye bug?
[19:57:21] * wjp checks bug tracker
[19:57:37] <Colourless> it's in one of the corrupted save game topics
[19:57:50] <Colourless> topics/bugs same thing :)
[19:59:25] <Colourless> under a specific, yet unknown circumstance, you can save a game, restore it right away and create automaton on the left automaton in Torrissio's lab become deadeye the pirate
[20:00:34] <Colourless> the savegame that is saved becomes corrupted somehow
[20:00:35] <wjp> how nice
[20:00:47] <Colourless> the restoring doesn't actually do anything
[20:00:49] --- Fingolfin|dinner is now known as Fingolfin
[20:00:55] <wjp> this is where that Setting shape to -a_lot is?
[20:01:15] <wjp> is that shapenum deadeye's shape mod 1024?
[20:01:17] <Colourless> no, that is unrelated
[20:01:20] <wjp> oh, nm then
[20:06:46] <wjp> hmm, the automaton that is created is NPC# 231?? (one of the 'BG' npcs)
[20:07:25] <Colourless> yeah
[20:07:44] <Colourless> umm, no
[20:08:03] <wjp> no?
[20:08:25] <Colourless> bg npcs are >=233 i think...
[20:09:49] <wjp> no, 231, according to reanpcs.cc
[20:09:53] <wjp> readnpcs
[20:11:27] <Colourless> it's supposed to be 233
[20:11:36] <Colourless> i just checked in the original
[20:13:00] <wjp> that would be a problem
[20:13:14] <wjp> although I don't immediately see how it's related to this
[20:13:39] <wjp> it would probably just mean that your created automaton would be deleted when you load a game
[20:13:52] <Colourless> i'll see what happens if it is changed
[20:14:30] <wjp> what's really annoying is that the created automaton immediately runs off to somewhere
[20:15:56] <wjp> hmm, I get a lot of errors related to invalid framenums/shapes when browsing the spellbook
[20:16:07] <Colourless> no change
[20:17:04] <Colourless> yeah. me too
[20:17:21] * wjp checks where exactly the usecode traces start to differ
[20:18:56] <wjp> [0x65]: get_body_npc([ 085832a0, 0913, 07c4, 0002 ]) = ff80
[20:18:59] <wjp> [0x65]: get_body_npc([ 08900220, 0913, 07c4, 0002 ]) = ff19
[20:19:12] <wjp> ff80 = -128 = deadeye
[20:19:14] <Colourless> yeah, but why
[20:19:25] <wjp> well... how do we store those body_npc things?
[20:19:51] <wjp> how exactly did you check the s/231/233/ thing?
[20:20:11] --> chimera|wookin has joined #exult
[20:21:02] <Colourless> the npc editor in the original si doesn't allow you to edit npc's 233-255
[20:21:09] * wjp nods
[20:21:25] <wjp> and Exult behaved exactly the same when you replaced the 231 with 233?
[20:21:42] <Colourless> yeah it did
[20:22:00] <wjp> hmm... but the data for NPC#231 would already be corrupted
[20:22:18] <Colourless> no it wouldn't
[20:22:26] <wjp> it isn't loaded, so garbage, right?
[20:23:27] <Colourless> no, the npc is loaded, it isn't deleted, but removed from the game world
[20:23:45] <wjp> ah, I see
[20:24:00] <wjp> and I guess it would then be saved too
[20:24:31] <wjp> oh, wait, the get_body_npc only uses data associated with the dead body, it seems
[20:25:05] <Colourless> yeah
[20:25:46] <wjp> hmm... -80 is what you would get if the field used for the npc_num is 0
[20:25:53] <wjp> int npc_num = (entry[8] - 0x80) & 0xFF;
[20:25:59] <wjp> -128, sorry
[20:26:06] <wjp> (ie. deadeye)
[20:26:20] <Colourless> int quant = (npc >= 0 && npc <= 127) ? (npc + 0x80) : 0;
[20:26:38] <wjp> where?
[20:26:42] <wjp> saving?
[20:26:49] <Colourless> Container_game_object::write_ireg
[20:26:59] <Colourless> it saves the bodies
[20:27:05] <wjp> well that looks broken...
[20:27:30] <Colourless> yeah
[20:27:36] <wjp> so the dead body of any npc >= 128 would become deadeye? funny
[20:28:35] <wjp> stupid that Jeff and I didn't think of the saving part when we fixed something related to loading a dead body
[20:28:38] <Colourless> yeah i'm guessing it would
[20:28:50] <Colourless> heh
[20:28:58] <wjp> this is a BG-ism, btw
[20:29:15] <wjp> the related 'if' in the loading code:
[20:29:17] <Colourless> how so?
[20:29:28] <wjp> if (quality == 1 && (entry[8] >= 0x80 || Game::get_game_type() == SERPENT_ISLE))
[20:31:07] <wjp> (followed by the int npc_num = ... I pasted earlier)
[20:32:09] <Fingolfin> brb, debugging PPPoE
[20:32:15] <-- Fingolfin has left IRC (brb)
[20:32:15] <wjp> again?
[20:32:49] <wjp> anyway, I guess we should make that check BG-only
[20:33:05] <Colourless> yeah
[20:33:58] <Colourless> not saving the same data as we load is interesting :)
[20:34:59] <wjp> yeah :-)
[20:36:04] <wjp> this also means that the entire "Visit Rotoluncia" part of the 'how-to corrupt the savegame" was unnecessary
[20:36:15] <wjp> you just needed to save after having been near the automaton
[20:36:39] <Colourless> yeah I figured that out
[20:38:28] * wjp rebuilds and tries again
[20:40:10] <wjp> surprisingly, it works
[20:40:47] <Colourless> ummmm ;-)
[20:40:52] <wjp> I'll commit the s/231/233/ thing too
[20:41:07] <wjp> (unless you want to ;-) )
[20:41:09] <Colourless> ok
[20:41:41] <Colourless> no, you can :)
[20:41:47] <wjp> done :-)
[20:42:43] <Colourless> why doesn't bg let you save bodies for npc's > 128?
[20:42:51] <wjp> good question
[20:44:20] <Colourless> readnpcs.cc already contains the differences between 1.84 and 1.85
[20:44:29] <wjp> :-)
[20:44:45] <wjp> strange that we made exactly the same changes ;-)
[20:45:39] <Colourless> whoa, deja-vu :)
[20:55:26] --> fingolfin has joined #exult
[20:57:31] <Colourless> wb
[21:01:41] <fingolfin> thx
[22:17:52] <Colourless> i think i'll be going
[22:17:58] <wjp> k, night
[22:18:10] <Colourless> cya
[22:18:16] <-- Colourless has left IRC (time to go)
[22:26:32] <wjp> I should go too
[22:26:33] <wjp> bye
[22:26:35] <fingolfin> cya
[22:26:38] <-- fingolfin has left #exult (Client Exiting)
[22:26:38] <-- wjp has left IRC ([x]chat)
[22:50:04] --> Waz has joined #exult
[22:50:20] <-- Waz has left IRC ()