#exult@irc.freenode.net logs for 28 Dec 2002 (GMT)

Archive Today Yesterday Tomorrow
Exult homepage

[00:22:04] --> Kirben has joined #exult
[00:22:04] --- ChanServ gives channel operator status to Kirben
[00:24:49] <wjp> hi Kirben
[00:24:56] <Kirben> Hi
[00:26:49] <wjp> time to go; g'night
[00:26:53] <-- wjp has left IRC ("Zzzz...")
[01:37:57] --> matto has joined #exult
[02:16:28] <-- Fingolfin has left IRC ("42")
[02:26:45] --- DarkeZzz is now known as Darke
[02:30:58] <-- Dark-Star has left #exult ()
[03:31:46] <Coren_> Auuugh! Why is it people keep being SO fscking aggressive about MP3?!?
[03:35:39] <Darke> *blink* Eh?
[03:36:59] <Darke> Mp3 sux0rz from the agressive patent owners who wish to be the next UNISYS and the sound quality, use ogg, much better. *grin*
[03:37:08] <Coren_> I get an average of 4-5 emails/tracker items per week telling me what an horrible monster I am for using MP3 music. ;-)
[03:37:21] * Darke snickers.
[03:37:37] <Darke> You writing your game for linux?
[03:37:52] <Coren_> OGG is just as lossy (the artefacts are different, but just as numerous) has marginally better compression, but is MUCH more expensive in CPU time to decompress.
[03:38:21] <Coren_> I'm developing undre linux, writing for SDL.
[03:38:47] <Darke> Sure, but I can tell the difference between mp3@320 and a CD, whilst bot between the same bitrate ogg and ripped CD. *grin* I expect most people can't though.
[03:39:01] <matto> yes, but ogg is cool!
[03:39:14] <Darke> You might want to note that RedHat8 comes with _no_ mp3 support, all the libs were removed because of possible lawsuits from the patent owner.
[03:39:18] <Coren_> You might anso be particularly sensitive to the phase shift which is the most noticable artefact of layer 3 encoding.
[03:39:42] <matto> I don't know whether it is more expensive to decompress or not... but I have been using it with my daphne project and the audio decompression is a sliver compared to the video decompression hehe
[03:39:43] <Coren_> Yes. But RedHat is just doing politics under the pretense of law.
[03:40:17] <Coren_> Besides, my binary packages have libsmpeg statically linked in so that's not an issue.
[03:40:29] * Coren_ starts.
[03:40:53] <Coren_> Forgot to mention it in the README. *scrambles to fix that oversight*
[03:41:07] <Darke> Umm... no they aren't. There have already been legal threats to companies distributing mp3 playing software, that was the excuse microsoft was using to remove mp3 support from the last version of mediaplayer.
[03:41:28] <Coren_> The politics about mp3 are just that; politics. Free (as in speech) implementation of Layer-3 decoding are around, legally, and will remain so.
[03:41:48] <matto> what about mpeg2 decoding?
[03:42:28] <Coren_> Darke: That was just it-- an excuse. Anyone who knows anything about the patents know that they apply to the COMPRESSION scheme; that decompression is made public by the MPEG comitee agreement that Thompson signed.
[03:42:33] <Darke> Sure it's free 'as in speech', the problem are the patents on the decompression codecs which the company that owns is throwing around. Didn't you see the articles that appeared on all the news sites a couple of months ago.
[03:43:09] <Coren_> Yes, I did see the articles. Didn't your mummy tell you to not beleive anything just because some corporation 'says so'? :-)
[03:43:50] <Darke> Coren_: Doesn't matter if the company is in the right or the wrong in threatening people with something they may not control. It's the lawyers that are the problem, Thompson can quite happily funnel lots of cash into the laywers until it kills a company or they pay up.
[03:44:27] <Coren_> Darke: Ah, yes, the joys of the American quote-justice-unquote system. Lucky me, it doesn't apply here. :-)
[03:44:31] <Darke> Of course not. Like I said, I don't care if the patents are 'really' in the right or the wrong. It's the laywers and the brane damaged us legal system that I care about. *Grin*
[03:45:11] * matto raises his eyebrow
[03:45:25] <Darke> Coren_: Bingo. But it applies to bit .us companies like redhat. Which is what I was talking about. I franly don't care wheather you use mp3s or not based on their legality, I was noting that people with stock redhat systems won't be able to play them due to the .us legal system. *grin*
[03:47:58] <Darke> Also you may wish to be careful as to the 'doesn't apply to me' if you ever want to visit the .us. The .us justice system will quite happily detain and charge anyone who wanders onto their shores if they think they can get away with it. Just check the Adobe/DCMA case. *grin*
[03:48:21] <matto> we're gonna get those foolish laws changed
[03:48:24] * matto slams hand onto table
[03:49:04] * matto wonders why neither ogle nor xine can play his home-made DVD
[05:03:49] <Coren_> Darke: I wouldn't *want* to go the the States. Been there, done that, didn't like. The very few poeple worth interacting with down there are reachable through technological means that do not require being inflicted the rest of the country. :-)
[05:05:46] <Darke> Coren_: I'd like to visit a few of my friends who are there sometime. That and I've got a few very good friends in Canada too I'd like too meet up with too, which I'm pretty sure is a close enough jurisdiction for .us purposes. *grin*
[05:12:03] <matto> Coren_: how rude!
[05:38:49] <Coren_> Darke: Thankfully, the Canadian governement is notoriously good at responding to prosecution requests from the US for everything below very big violent crimes with the diplomatic equivalent of a raspberry. :-)
[05:39:30] <Coren_> matto: If you are in the US, then obviously my comment about being able to contact those few americans worth being contacted through technology apply to you. :-)
[05:39:52] <Coren_> You are worth being contacted, and I'm doing so through technological means. So there.
[05:39:56] * Coren_ smirks.
[09:36:52] --> kuran has joined #exult
[09:53:42] --> ShadwChsr has joined #Exult
[09:54:35] <ShadwChsr> hi
[09:56:01] <Darke> Hi.
[09:56:22] <ShadwChsr> heres one for you: Unresolved external symbol errors - except they're not external to my application :)
[09:57:11] <ShadwChsr> happens when i try to access a global variable like this: game->renderer->somefunction();
[09:57:34] <Darke> At link time or execution time?
[09:57:39] <ShadwChsr> linker croaks whining that it cant find somefunction();
[09:58:10] <Darke> Check to make sure you're linking with *all* the .o files. Are you doing this by hand? Or makefiles or automake or something?
[09:58:13] <ShadwChsr> they arent libraries either, all of those classes are source files in my project
[09:58:39] <ShadwChsr> its doing it for me - but if I have a direct pointer to renderer, it works fine
[09:58:48] <ShadwChsr> so its not that renderer.o isn't linked
[09:58:58] <ShadwChsr> its something to do with the global "game" variable
[10:00:19] <ShadwChsr> error LNK2019: unresolved external symbol "public: void * __thiscall Renderer::CreateTexture(char *)" (?CreateTexture@Renderer@@QAEPAXPAD@Z) referenced in function "public: void __thiscall Sprite::Load(class ResourceItem *)" (?Load@Sprite@@QAEXPAVResourceItem@@@Z)
[10:00:20] <Darke> That's weird. Have you done a make clean, then find to check for any random .o files left over then done a make again, just to be on the paranoid side? *grin*
[10:00:20] <ShadwChsr> :P
[10:01:21] <ShadwChsr> I just did a clean then a full rebuild, no good
[10:01:37] <ShadwChsr> it must be in the way im using the global variable, any tips?
[10:01:38] * Darke eardroops. And wonders what the problem is.
[10:01:56] <ShadwChsr> in game.h: extern Game *game; // Main game object
[10:02:10] <ShadwChsr> near top of game.cpp: Game *game = NULL; // Main game object
[10:02:16] <Darke> Have you got a definition of the Game *game?
[10:02:17] <Darke> Ahh.
[10:02:22] <ShadwChsr> inside Game:Game()... game = this;
[10:02:31] <Darke> And you're definately including the game.o in your link list?
[10:02:55] <ShadwChsr> I'm not sure
[10:02:59] * Darke afks for a bit. Garbage to take out.
[10:03:02] <ShadwChsr> if game wasn't being linked, nothing would work
[10:03:13] <Darke> Double check. It's unlikely that it's the problem though, just my paranoia. *grin*
[10:05:00] <ShadwChsr> in the build log, in the link section, i see ""Debug\game.obj"
[10:05:14] <ShadwChsr> without the "", should be ", my typo
[10:05:25] <ShadwChsr> irc thing ;)
[10:14:44] <Darke> Eh? *blinkie* Ahh.
[10:16:33] <ShadwChsr> could it be because "extern Game *game;" is not in "res_sprite.h", but in "game.h"? the headers have #ifndef GAME_H, so wouldnt that mean res_sprite.h wouldnt define the external?
[10:16:38] <ShadwChsr> *gets himself confused :)
[10:17:48] <Darke> Eh? Each #ifndef thing should be different for each header file, if that's what you're talking about. Else it doesn't work right. *grin*
[10:18:43] <ShadwChsr> yeah, it is.. nevermind I think i was just confused ;)
[10:19:32] <ShadwChsr> lets assume i have 4 files, game.h, game.cpp, sprite.h, sprite.cpp
[10:19:39] <ShadwChsr> sprite.h includes game.h
[10:20:01] <ShadwChsr> game.h has "extern Game *game;", game.cpp has "Game *game = NULL;"
[10:20:13] <ShadwChsr> shouldnt everything work at that point? I can use "game->" in sprite.cpp?
[10:20:22] <ShadwChsr> or am I doing something wrong with declaring the global variable?
[10:20:40] <ShadwChsr> I assume if I did something wrong the linker would whine about game->, not game->renderer->
[10:21:27] <Darke> No. Provided you've defined the class `Game` and/or done a `class Game;` before the reference to the `extern Game *game;`.
[10:22:36] <ShadwChsr> Which is true - otherwise it wouldnt compile game.o
[10:22:54] <ShadwChsr> Does exult have a master global variable for the "game root object"?
[10:23:27] <Darke> Not really. It's not really done OO at all. It does have quite a few globals though last time I checked.
[10:23:44] <ShadwChsr> ahhhhh drat
[10:28:26] <ShadwChsr> Theres almost *no* information on the web about programming object hierarchies :( its always class inheritance, not object trees
[10:28:44] <ShadwChsr> I dont want to fire a billion pointers to the objects around, I need access to the root of the tree :)
[10:29:55] <ShadwChsr> texture = game->renderer->CreateTexture(imagedata);
[10:48:20] * ShadwChsr curls up and cries
[10:48:28] <ShadwChsr> I am soooooooooo stupid
[10:48:29] <ShadwChsr> ;)
[10:48:48] * Darke comforts the shadow chaser. Why? *grin*
[10:49:17] <ShadwChsr> Well, I got mixed up because I could have sworn i had this problem before with the *game object, so I avoided the obvious
[10:49:43] <ShadwChsr> it couldnt link to Renderer::CreateTexture because Renderer::CreateTexture wasn't defined in the source file, CreateTexture was ;P
[10:49:51] <ShadwChsr> forgot the Renderer:: in front of the function :)
[10:50:11] * Darke ahhs and remembers you having the identical problem recently. *grin*
[10:50:11] <ShadwChsr> Argggg and for the past hour I kept thinking how I should check that but figured there was no way it could be that simple ;)
[10:50:34] <ShadwChsr> Yep... shesh
[10:50:41] <ShadwChsr> Always the simple things that kill me ;)
[10:51:05] <ShadwChsr> I'm loading binary data fine, but declare a function? nah ;)
[10:51:49] * Darke snickers.
[10:52:31] <ShadwChsr> Anyway, thanks for your help - or at least your someone to whine to this late at night ;)
[10:52:45] <ShadwChsr> Night!
[10:52:54] <-- ShadwChsr has left IRC (Read error: 104 (Connection reset by peer))
[10:52:56] <Darke> Night! *grin*
[12:00:57] --> wjp has joined #exult
[12:00:57] --- ChanServ gives channel operator status to wjp
[12:00:59] <wjp> hi
[12:01:44] <Darke> Hi!
[12:10:02] * Darke is waaaaay too hyperactive. He acquired a 5 cd set of 'best of 80's music' type stuff. Been playing them all day, especially half a dozen that *really* seem to bring out his squirrel characters, so he's *just* a touch hypo. *grin*
[12:10:14] <Darke> s/hypo/hyper/
[12:10:15] <wjp> uh oh :-)
[12:10:46] * Darke laughs and looks innocent. Bouncebouncebouncey, but innocent!
[12:11:03] * wjp hides any and all pieces of code from Darke
[12:11:09] <wjp> no coding for you today ;-)
[12:11:22] * Darke awwwwws.
[12:11:43] <wjp> would be interesting to see what bouncebouncebouncey code looks like, though :-)
[12:13:11] <Darke> Actually not too bad. about half of the original fold.cc I wrote in a bouncebouncebouncey state in 6 hour solid coding session one night. *grin* Generally a good mindset to churn out stock code that does nothing fancy.
[12:14:24] * wjp hmmms
[12:14:30] * wjp hands Darke the configuration code
[12:14:47] <wjp> ;-)
[12:16:30] <Darke> As you wish. I was actually considering hammering through most of the base of the compiler stuff. Currently I've got a lexer and a 'main' that does nothing but grab an input file and output file. *grin*
[12:17:00] <wjp> whichever you prefer :-)
[12:18:12] <Darke> I don't think you'll believe how silly the C++ lexer created by flex is. *grin* The 'main' FlexLexer.h is actually a file in /usr/include and you have to do #define dance before and after you include it if you've redefined the lexer prefix.
[12:18:34] <wjp> I looked at it once
[12:18:45] <wjp> and decided never to look at it again :-)
[12:19:07] <Darke> Somewhat unsurprisngly, I'm going to have to include said /usr/include/FlexLexer.h in pentagram, nicely renamed and with the class inside it renamed to The Right Thing.
[12:20:16] * Darke has been seriously considering writing a perl script to run over the flex output to massage it into C++ conformance. Changing `#define FOO 0x000` to `enum { FOO=0x000};` etc.
[12:23:13] * Darke wonders if it'd be easier to change the flex source and get it to output The Right Stuff in the first place, then submit a patch to the maintainers, if there are any.
[13:31:56] <-- Kirben has left IRC (Read error: 104 (Connection reset by peer))
[14:24:54] --> Dark-Star has joined #exult
[16:37:58] --- Darke is now known as DarkeZzz
[17:06:14] --> wjp_ has joined #exult
[17:06:14] <-- wjp has left IRC (Read error: 104 (Connection reset by peer))
[17:06:38] --- wjp_ is now known as wjp
[17:06:40] --- ChanServ gives channel operator status to wjp
[20:08:18] <matto> go Darke!
[20:57:31] --> Ravenous has joined #exult
[20:57:42] <Ravenous> Hi, I need some help getting Exult to run
[20:58:14] <Ravenous> I'm using the latest Win32 snapshot, and when I try to start Exult, I get a missing SDL_mixer.dll error
[20:58:28] <Ravenous> I couldn't find any reference to this file on the website
[20:58:32] <Ravenous> And I'm unsure how to fix it
[20:58:46] <Coren_> Ravenous...
[20:59:06] <Coren_> Go take a look at www.libsdl.org, all the SDL companion libraries can be gotten there
[20:59:26] <Coren_> I'm surprised this wouldn't be mentionned in a README or something.
[20:59:40] <Ravenous> I downloaded a runtime library for SDL 1.2 and it only contained one file named SDL.dll
[20:59:53] <Ravenous> Wasn't sure what to do with that .dll
[21:00:06] <Coren_> Yes. SDL_mixer is a companion library not part of SDL proper, but there are pointers to those on the same site.
[21:00:15] <Coren_> Look under downloads->libraries
[21:00:17] <Coren_> IIRC
[21:00:24] <Ravenous> Okay, where do I put that file?
[21:00:43] <Coren_> You normally want put put any DLL that a program wants in the same directory where the program itself is.
[21:01:06] <Coren_> There are alternatives, but this is by far the simplest solution.
[21:01:14] <Ravenous> Okay... I'll try this. Thanks for the help!
[21:01:18] <Coren_> np
[21:06:21] <wjp> there's an SDL_mixer dll on the exult download page
[21:06:40] <wjp> under "required file for snapshots"
[21:12:02] --> Fingolfin has joined #exult
[21:12:02] --- ChanServ gives channel operator status to Fingolfin
[21:12:10] <Fingolfin> hi
[21:12:20] <Coren_> Hey Fingolfin.
[21:13:48] <wjp> hi
[21:14:02] <matto> hi
[21:14:43] <matto> Fingolfin: back in Germany, eh?
[21:16:04] <Fingolfin> currently, yes
[21:16:08] <Fingolfin> i.e. over christmas
[21:24:53] <Coren_> wjp: commited: paperdoll wearing and weilding. No attempt is made to check that things are in the right 'slot' yet though.
[21:25:26] <Coren_> E.g.: you can wear a leater tunic on your feet if you are so inclined. :-)
[21:25:49] <wjp> hm, hitting people with an full breastplate sounds interesting :-)
[21:25:51] <wjp> s/an/a/
[21:27:00] <Coren_> Eeep.
[21:27:07] <wjp> oh, we were talking here :-)
[21:27:10] <Coren_> Objects no longer show in 'normal' slots.
[21:27:16] * wjp points at #uwadv :-)
[21:27:39] <Coren_> We noticed simultaneously. Probably just a silly braino.
[21:28:08] * wjp runs around the castle looking for a pair of pants
[21:28:22] <Coren_> wjp: map 17 has lots of nice armor
[21:28:30] <wjp> how did I switch map again?
[21:28:35] <Coren_> 'map 17'
[21:28:42] * Coren_ smiles.
[21:28:51] <wjp> :-)
[21:31:29] <Coren_> icon bug fixed and commited.
[21:31:32] <wjp> map cases are using the wrong container graphics, btw
[21:31:44] <Coren_> I don't *have* a container graphic for map cases.
[21:31:45] <wjp> and they also seem to appear outside of the screen
[21:31:49] <wjp> ah, that would explain :-)
[21:32:11] * wjp hmms
[21:32:21] <Coren_> That's an unrelated bug-- If you open many containers the gump start appearing outside the main screen. I just never bothered to fix it just yet. :-)
[21:32:25] <wjp> infinite loop
[21:33:45] <Coren_> Uhu? Where?
[21:34:27] <wjp> AFAICT, it's looping in entity.cc, in the for loop on line 214
[21:36:30] <Coren_> How did you get that to happen?
[21:37:01] <wjp> the last thing I did was dblclicking a box
[21:37:07] <Coren_> Unless I'm wrong, you managed to move a container recursively inside itself.
[21:37:14] <wjp> before that I opened a map case a couple of times
[21:37:28] <wjp> and couldn't close it again because it was outside the screen
[21:38:03] <Coren_> Entity::to_inside() is invoked when something is moved in something else.
[21:38:15] <Coren_> And I don't think I check for recursive containers. :-)
[21:39:11] <wjp> can I close gdb?
[21:39:19] <Coren_> Yes.
[21:39:33] <Coren_> I know what happened, but I'm at a loss to explain how to managed to do it.
[21:39:46] <Coren_> s/to managed/you managed/
[21:40:05] <wjp> it's easy to reproduce, but I don't see how I triggered it the last time
[21:40:18] <Coren_> How do you reproduce it?
[21:40:24] <wjp> just drag a container to inside itself
[21:40:57] <Coren_> How do you manage *that*? As soon as you start draggin it should disapear from wherever it is.
[21:41:46] <-- Coren_ has left IRC ("using sirc version 2.211+KSIRC/1.2.1")
[21:42:56] --> Coren_ has joined #exult
[21:43:02] * Coren_ grumbles.
[21:43:32] <Coren_> Ok, I forgot to forcibly cause the gump to close when draggin the container.
[21:43:46] * Coren_ fixes both gump-related bugs.
[21:57:26] <Coren_> fixes commited
[21:57:45] <Coren_> You shouldn't be able to put an object recusively inside itself anymore. :)
[21:58:02] <Coren_> And, as a bonus, gumps will now open on the screen all the time. :-)
[22:14:16] <-- Ravenous has left IRC ()
[22:22:24] <-- kuran has left IRC ()
[22:22:31] --> kuran has joined #exult
[22:23:07] <-- kuran has left IRC (Client Quit)
[23:43:12] * wjp has to go
[23:43:14] <wjp> night
[23:43:28] <-- wjp has left IRC ("Zzzz...")