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

Archive Today Yesterday Tomorrow
Exult homepage


[00:10:36] <Malignant_Manor> Marzo: For these should the example%2 be surrounded by parenthesis
[00:10:41] <Malignant_Manor> updnx = cursor.x - x - (curpage%2 ? rpagex : lpagex);
[00:10:59] <Malignant_Manor> return tnum%2? dungeon_levels[tnum/2] >> 4: dungeon_levels[tnum/2] & 0xF;
[00:12:04] <Marzo> For the purposes of correctness, no, since % has higher precedence than ?:
[00:12:16] <Marzo> Stylistically, it may be better
[00:16:18] <Malignant_Manor> Most of my changes are style except for some negligable signed/unsigned changes in sprintf.
[00:17:02] <Malignant_Manor> I left a whole lot out.
[00:29:22] <Malignant_Manor> Marzo: I just uploaded the changes. (It took 9 minutes and 10 seconds for some reason.)
[00:29:50] <Marzo> Downloading it took a second :-)
[00:30:58] <Malignant_Manor> My internet has issues and Sourceforge has lots of issues with taking too long even when I have plenty of bandwidth.
[00:35:25] <Malignant_Manor> Pathfinding to barges is still really bad for carriages.
[00:40:04] <Marzo> Ah, I see that you fell for cppcheck's complaints about size() vs empty()
[00:40:18] <Malignant_Manor> I did it for style
[00:40:32] <Marzo> It is only ever valid for std::list, and even then, only before C++11
[00:40:33] <Malignant_Manor> !.size vs .empty
[00:41:05] <Malignant_Manor> or .size == 0 vs .empty
[00:41:07] <Marzo> Well, the style angle is a better reason
[00:41:45] <Malignant_Manor> I didn't change all the .size ones to !empty. There still a lot of those messages.
[00:42:08] <Malignant_Manor> That would probably look worse for no gain.
[00:42:37] <Marzo> Now that I remember -- I need to check all places where pointers are converted to long or back and swap for intptr_t
[00:42:39] <Malignant_Manor> I did a few scope changes then said the heck with it.
[00:42:50] <Marzo> Otherwise, compiling for Win64 will fail
[00:44:00] <Malignant_Manor> There were some portability issues that I can probably change. I cleared the data before I changed them.
[00:44:26] <Malignant_Manor> It takes quite awhile for my computer to go through the files.
[00:45:59] <Malignant_Manor> I'd like to know why Exult Studio crashes on start when I build it.
[00:46:30] <Marzo> No error messages?
[00:46:48] <Marzo> And: you tried running it in GDB?
[00:47:02] <Marzo> (and yes -- there is GDB for MinGW/Msys)
[00:47:14] <Malignant_Manor> It is 3rd party stuff without much to go on.
[00:48:49] <Malignant_Manor> http://pastebin.com/La2EKVBa
[00:51:13] <Malignant_Manor> Casting float* to integer* portability warnings in C:\svn\exulttest\audio\midi_drivers\mt32emu\freeverb.h
[00:51:29] <Malignant_Manor> lines 70, 73, and 108
[00:54:17] <Malignant_Manor> C:\svn\exulttest\imagewin\ibuf16.h lines 96, 100, 105.
[00:54:26] <Malignant_Manor> The extra qualification 'Image_buffer16::' is unnecessary and is considered an error by many compilers.
[00:55:08] <Malignant_Manor> C:\svn\exulttest\mapedit\chunklst.h line 76.
[00:55:14] <Malignant_Manor> The extra qualification 'Chunk_chooser::' is unnecessary and is considered an error by many compilers.
[00:55:34] <Malignant_Manor> C:\svn\exulttest\mapedit\combo.h line 158 The extra qualification 'Combo_chooser::' is unnecessary and is considered an error by many compilers.
[00:55:50] <Marzo> In your log: are you running from the same directory where data/exult_studio.glade is located?
[00:57:35] <Malignant_Manor> The logs don't say anything.
[00:58:17] <Marzo> Are you running from a shortcut or from a terminal?
[00:58:33] <Malignant_Manor> Directly
[00:58:50] <Marzo> Double-clicking the exe?
[00:58:57] <Malignant_Manor> Yeah
[00:59:14] <Marzo> If so, is there a data folder with the glade file on the same dir as the exe?
[00:59:30] <Malignant_Manor> Yes
[00:59:38] <Marzo> One theory shot down
[01:00:33] <Marzo> What version of libxml do you have?
[01:00:46] <Malignant_Manor> I'm not sure.
[01:03:22] <Malignant_Manor> It looks like 2.6.6
[01:03:31] <Malignant_Manor> but I didn't check the binary
[01:04:20] <Malignant_Manor> 5/2004
[01:04:53] <Malignant_Manor> I should probably look for something more up to date.
[01:06:11] <Marzo> Try using the one from here: http://lrn.no-ip.info/other/mingw/mingw32/libxml2/2.8.0-2/
[01:06:44] <Marzo> (I would guess that the bin, dev and dll)
[01:07:17] <Malignant_Manor> Okay, I going to get the compatibility messages into a single file for you.
[01:10:26] <Malignant_Manor> http://pastebin.com/Tbcem2y8
[01:19:36] <Marzo> Yeah, he gave the easy ones and did not check the real portability issues
[01:20:00] <Marzo> (such as the one I mentioned about long vs intptr_t)
[01:20:06] <Malignant_Manor> It is supposed to ignore whatever the compiler should tell you.
[01:20:33] <Malignant_Manor> I'm not sure if that has any bearing.
[01:20:45] <Marzo> The one I mention will only be shown if someone compiles a 64-bit Exult on Windows
[01:20:51] <Marzo> (more with ES support)
[01:21:13] <Marzo> So it is the kind of thing it should be looking for
[01:21:43] <Malignant_Manor> Can you get all the messages with a cross compiler?
[01:22:00] <Marzo> If I can get it to work
[01:22:19] <Marzo> I think I will first tackle all the old-style casts
[01:22:31] <Marzo> This will make it easier to locate these things
[01:22:37] <Malignant_Manor> Well, it gives a million of those messages.
[01:22:46] <Marzo> For good reason :-)
[01:22:56] <Malignant_Manor> It is under style.
[01:23:02] <Marzo> The main issue with old-style casts is that they are hard to search for
[01:23:15] <Marzo> Other than cppcheck and compiler warnings
[01:25:09] <Marzo> Well, I will go over the casts
[01:26:37] <Malignant_Manor> Errors: 38, Warnings: 1251, Style warnings: 456, Portability warnings: 50, Performance warnings: 84, Information messages: 14
[01:27:44] <Malignant_Manor> I don't get 50 portability warnings when I select portability though.
[01:31:36] <Marzo> Send me the performance warnings and errors
[01:32:11] <Malignant_Manor> It's a pain. Let me see what I can do.
[01:34:51] <Malignant_Manor> This is all errors except what I put in the other paste. http://pastebin.com/rq3ctvmM
[01:35:12] <Malignant_Manor> It's in an xml format that seems only readable by it's frontend.
[01:35:29] <Malignant_Manor> Well, readable in a nice way.
[01:35:43] <Malignant_Manor> You might be better off using the program yourself.
[01:37:12] <Marzo> Yeah
[01:37:16] <Marzo> Anyway, I am off to bed
[01:37:20] <Marzo> So farewell
[01:38:05] <Malignant_Manor> Goodnight. I'm in DLL hell after using that other library.
[01:39:50] <Malignant_Manor> Thanks Marzo, Exult Studio doesn't crash anymore.
[01:52:59] <-- Malignant_Manor has left IRC (Quit: ChatZilla 0.9.89 [Firefox 17.0.1/20121128204232])
[01:55:45] --> nutron has joined #exult
[05:44:55] <-- Kirben has left IRC ()
[05:50:23] --> Kirben has joined #exult
[05:50:23] --- ChanServ gives channel operator status to Kirben
[07:59:34] --> Rottingbeef has joined #exult
[08:22:07] --> shazza has joined #exult
[08:31:22] <-- shazza has left IRC (Ping timeout: 246 seconds)
[09:39:07] <-- Rottingbeef has left IRC ()
[10:23:34] --> Rottingbeef has joined #exult
[12:29:33] <-- Kirben has left IRC ()
[12:54:15] <-- Rottingbeef has left IRC ()
[12:55:20] --> TheCycoONE has joined #exult
[15:22:00] <-- Marzo has left IRC (Ping timeout: 256 seconds)
[16:03:08] <-- Matt_O has left IRC (Quit: Leaving)
[18:01:59] <-- SugarCube has left IRC (*.net *.split)
[18:02:33] --> SugarCube has joined #exult
[20:44:23] --> Rottingbeef has joined #exult
[21:29:34] <-- Rottingbeef has left IRC (Ping timeout: 265 seconds)
[21:58:15] <-- TheCycoONE has left IRC (Quit: And then there were n-1)
[22:02:34] --> Marzo has joined #exult
[22:15:46] --> Malignant_Manor has joined #exult
[22:17:06] <Malignant_Manor> Marzo, have you had time to look at https://sourceforge.net/support/tracker.php?aid=3600300 ?
[22:19:47] <Marzo> Will do when I get home
[22:20:00] <Marzo> Be back later
[22:24:29] <-- Marzo has left IRC (Ping timeout: 255 seconds)
[22:57:31] <-- SugarCube has left IRC (Ping timeout: 260 seconds)
[23:10:12] --> SugarCube has joined #exult
[23:21:07] --> Marzo has joined #exult
[23:25:43] <Marzo> Malignant_Manor: see what I said about C casts? Main_actor is not even derived from Npc_actor, which is something that should be detectable with a cast
[23:27:45] <Malignant_Manor> I'm just wondering how widespread the problems are.
[23:28:30] <Malignant_Manor> (real issues not just style)
[23:32:19] <Marzo> For the time being, I will simply replace these specific calls with just using Actor class, as it works without a hitch
[23:32:49] <-- Malignant_Manor has left #exult
[23:33:02] --> Malignant_Manor has joined #exult
[23:34:23] <Malignant_Manor> Are you going to hold off on cast changes until after release?
[23:35:31] <Malignant_Manor> We could always have another release whenever we feel like it.
[23:36:56] <Marzo> Nope
[23:37:01] <Marzo> More reason to go through
[23:37:34] <Marzo> (making sure crap like this isn't happening elsewhere)
[23:37:41] <Marzo> Committed
[23:38:14] --> Kirben has joined #exult
[23:38:14] --- ChanServ gives channel operator status to Kirben
[23:38:22] <Marzo> I think I will try clang's static analyzer
[23:38:33] <Malignant_Manor> Hopefully no casting changes break anything.
[23:38:50] <Malignant_Manor> Well, that won't matter as long as it is detected soon.
[23:40:23] <Malignant_Manor> None of the other as_actor() calls need changes?
[23:40:37] <Marzo> You mean the other as_npc calls?
[23:40:52] <Malignant_Manor> oops. yes
[23:41:06] <Marzo> There are two other such calls
[23:41:11] <Marzo> One seems harmless
[23:41:23] <Malignant_Manor> I know one was for schedules
[23:42:23] <Marzo> Grep shows only two remaining: one in cheat.cc, one in intrinsics.cc
[23:43:18] <Marzo> The one in intrinsics.cc is never called for the avatar
[23:44:03] <Marzo> The one in cheat.cc is one where a case could be made either way as whether or not the avatar should be included in
[23:45:38] <Marzo> (FYI, I removed the calls in gamewin.cc as they were completely pointless -- they were probably old remnants)
[23:49:51] <Malignant_Manor> I didn't even noticed it used Npc_actor instead of Actor.
[23:51:13] <Marzo> Me neither
[23:52:16] <Marzo> That is how old: the cast was there in Game_window::schedule_npcs since revision 30
[23:54:19] <Malignant_Manor> I think I've always used Actor class for npcs related pointers.
[23:58:58] <Marzo> And so you should