#nuvie@irc.freenode.net logs for 21 Jan 2004 (GMT)

Archive Today Yesterday Tomorrow
Nuvie homepage


[02:28:53] <-- Kirben has left IRC (Read error: 104 (Connection reset by peer))
[02:28:57] --> Kirben2 has joined #nuvie
[03:26:22] --- Kirben2 is now known as Kirben
[07:02:52] --> servus has joined #nuvie
[07:03:27] <servus> ?log
[07:03:27] <exultbot> Logs are available at http://www.math.leidenuniv.nl/~wpalenst/nuvielog.php
[09:01:55] --> aboeing has joined #nuvie
[09:02:02] <aboeing> hey
[09:02:09] <servus> Hi
[09:02:33] <aboeing> servus: what part of the nuvie project do you work on?
[09:04:29] <wjp> *yawns* hi
[09:04:57] <aboeing> hey wjp. morning or night?
[09:05:03] <wjp> morning
[09:05:11] <aboeing> ah.
[09:05:39] <aboeing> im trying to figure out a script file format for the songs in u6...
[09:05:55] <aboeing> because certain songs play in certain areas...
[09:06:16] <wjp> u7 and u8 use music eggs for that
[09:06:25] <aboeing> what do you think about "lordbritishessong";"u6-lb.mid";/........
[09:06:25] <aboeing> oh
[09:06:29] <aboeing> that might be a good idea
[09:06:41] <wjp> are they hardcoded in u6?
[09:06:44] <aboeing> plus it means i dont need to do any work =P
[09:06:51] <aboeing> *shrugs*
[09:07:17] <aboeing> were they part of the u7&8 map file format?
[09:07:31] <wjp> yes
[09:07:38] <wjp> a special type of object
[09:07:39] <aboeing> ah..
[09:09:58] <aboeing> there doesnt appear to be anything like that in the existing nuvie code base..
[09:10:10] <aboeing> perhaps it is in the original files, but isn't being parsed...
[09:10:45] <wjp> did you ask sb-x and yuv422 about it?
[09:11:27] <aboeing> no i havent talked to them since .. 16 hours ago.. :P
[09:11:39] <aboeing> i was hoping yuv422 would be online now..
[09:12:12] <aboeing> u7&8 already had sound effects in them didn't they?
[09:14:31] <wjp> 'already' ?
[09:14:35] <wjp> but, yes, they had sound
[09:15:43] <aboeing> well as in sound blaster sound effects (wav files) as opposed to pc speaker noises
[09:15:53] <wjp> oh, yes
[09:15:57] --> Yuv422 has joined #nuvie
[09:16:03] <Yuv422> hi
[09:16:05] <wjp> hi :-)
[09:16:47] <Yuv422> my ears were burning. ;)
[09:17:55] <Yuv422> aboeing: are you sure songs play in specific areas in u6?
[09:18:22] <Yuv422> if so it might be object related
[09:18:38] <Yuv422> a song plays if there is a wall tile on or near the mapwindow?
[09:18:47] <Yuv422> there is the dungeon song
[09:18:50] <Yuv422> and the ship song
[09:18:59] <Yuv422> and the combat song?
[09:19:18] <aboeing> yeah
[09:19:32] <aboeing> dungeon song, gargoyl world song, combat song, lord british castle song
[09:19:47] <aboeing> so there is some kind of triggering between songs..
[09:20:08] <aboeing> yuv422: thats very good hearing btw, considering how quiet my typeing is..
[09:20:41] <Yuv422> ;) well I was planing to join the channel anyway.
[09:20:53] <aboeing> i think the rest of the songs are just played at random times otherwise..
[09:21:14] <Yuv422> I'm not sure how to detect LB's castle
[09:21:19] <aboeing> yuv422: you can only join the channel if you have some cheese. Did you bring me some cheese?
[09:21:23] <Yuv422> maybe play the song when LB is near?
[09:21:31] <aboeing> yuv422: i was just thinking of hardcoding the world coordinates in
[09:21:45] <Yuv422> you've got cheese.. can I have some
[09:21:45] <aboeing> if you are within the world coordinates representing the castle, play the lb song..
[09:22:02] <Yuv422> hacky but it would do
[09:22:09] <aboeing> well thats the thing
[09:22:19] <aboeing> i dont think its too bad to hack it if that song is the only one like that..
[09:22:22] <Yuv422> we'll need a music and sfx class
[09:22:25] <Yuv422> +s
[09:22:27] <aboeing> but if other songs are like that, then there wouldnt be such a great idea..
[09:22:31] <aboeing> here are my classes atm:
[09:22:43] <aboeing> class Sound {
[09:22:44] <aboeing> public:
[09:22:44] <aboeing> virtual ~Sound() {};
[09:22:44] <aboeing> virtual bool Play(bool looping = false) = 0;
[09:22:44] <aboeing> virtual bool Stop() = 0;
[09:22:44] <aboeing> virtual bool FadeOut(float seconds) = 0;
[09:22:46] <aboeing> string GetName() {return m_Filename;}
[09:22:48] <aboeing> protected:
[09:22:50] <aboeing> string m_Filename;
[09:22:52] <aboeing> };
[09:22:54] <aboeing> class SoundManager {
[09:22:56] <aboeing> public:
[09:22:58] <aboeing> ~SoundManager();
[09:23:00] <aboeing> bool Init();
[09:23:02] <aboeing> bool LoadSongs(char *filename);
[09:23:04] <aboeing> bool LoadSamples();
[09:23:06] <aboeing> void Update(); //updates the active sounds
[09:23:08] <aboeing> map<string,Sound *> m_MusicMap;
[09:23:10] <aboeing> list<Sound *> m_Songs;
[09:23:12] <aboeing> list<Sound *> m_Samples;
[09:23:14] <aboeing> };
[09:23:16] <aboeing> class Song : public Sound {
[09:23:18] <aboeing> public:
[09:23:20] <aboeing> Song();
[09:23:22] <aboeing> ~Song();
[09:23:24] <aboeing> bool Init(const char *filename);
[09:23:26] <aboeing> bool Play(bool looping = false);
[09:23:28] <aboeing> bool Stop();
[09:23:30] <aboeing> bool FadeOut(float seconds);
[09:23:32] <aboeing> private:
[09:23:34] <aboeing> Mix_Music *m_pMusic;
[09:23:36] <aboeing> };
[09:23:38] <aboeing> class Sample: public Sound {
[09:23:40] <aboeing> public:
[09:23:42] <aboeing> ~Sample();
[09:23:44] <aboeing> bool Init(const char *filename);
[09:23:46] <aboeing> bool Play(bool looping = false);
[09:23:48] <aboeing> bool Stop();
[09:23:50] <aboeing> bool FadeOut(float seconds);
[09:23:52] <aboeing> bool SetVolume(float volume); //range 0..1
[09:23:54] <aboeing> private:
[09:23:56] <aboeing> Mix_Chunk *m_pSample;
[09:23:58] <aboeing> int m_Channel;
[09:24:00] <aboeing> };
[09:24:02] <aboeing> unfourtnaly sdl_mixer is still a bit limited, i may alter the code in that later on if i can be bothered
[09:24:41] <aboeing> (i want to be able to use "songs" and "samples" interchangably, hence the sound base class, so that if you have a really long sound (ie: running water for a river or whatever) you could encode it into a mp3 "song" .. atm sdl_mixer wont support this
[09:26:16] <wjp> mp3 sfx? won't that introduce decompression-related latency to sfx playback?
[09:26:46] <aboeing> wjp: bah! in these days of 1hb ram computers ill just decompress all the samples at runtime. :)
[09:27:13] <wjp> but then you can play them as raw samples through SDL_mixer
[09:27:17] <aboeing> nuvie: ultima 6 updated to 2000: minimum requirements 2 gig ram, and 3ghz processor
[09:27:17] <aboeing> ;)
[09:27:32] <aboeing> wjp: true but then i have to duplicate the ogg/mp3 playback elsewhere
[09:27:46] <aboeing> wjp:in which case its easier just to modify the sdl_mixer source... (i hope)
[09:28:21] <wjp> I'd recommend against that; needing customized libraries would be annoying
[09:28:29] <aboeing> all that needs to be changed for sdl_mixer to be usefull in this way is to allow assinging a channel number to the 'song', so that many songs can be played at once.
[09:28:45] <wjp> (unless you can get the changes accepted into sdl_mixer itself)
[09:28:54] <aboeing> yeah, perhaps i can get that done..
[09:29:14] <aboeing> or perhaps i should keep looking for a different library...
[09:29:26] <aboeing> sdl_mixer just seems like the most obvious coz were already using sdl..
[09:30:02] <aboeing> anyway, i think thats something to worry about in the future anyway...
[09:30:33] <aboeing> yuv422: did any of the other games (MD etc) have music specific to a level?
[09:32:53] <Yuv422> not sure
[09:33:05] <Yuv422> I'm running the games in dosbox
[09:33:17] <Yuv422> and it doesn't seem to handle the music very well
[09:33:36] <aboeing> i cant even get u6 to work with dosbox... :(
[09:33:42] <aboeing> but nuvie works fine :)
[09:34:03] <Yuv422> I've got it turned off at the moment so the game runs at a half decent speed
[09:34:31] <Yuv422> MD has digital sfx I think
[09:34:38] <aboeing> ooooh fancy
[09:34:50] <Yuv422> the FM Towns U6 has sfx too
[09:34:55] <aboeing> that was the thing i was worrying about, where to get u6 sfx
[09:35:05] <aboeing> are we allowed to redistribute those sounds?
[09:35:05] <Yuv422> they have samples for the mantras and the spell chants
[09:35:14] <Yuv422> don't think so
[09:35:20] <aboeing> yeah didnt think so either :/
[09:35:38] <Yuv422> maybe we could ask the community to make us some free sfx
[09:35:39] <aboeing> i was just going to crawl through public domain sfx libraries to see if i could get any good samples
[09:35:48] <aboeing> yeah that would be a good idea
[09:35:48] <Yuv422> yeah
[09:36:10] <aboeing> btw, is there something that tracks all the objects currently visible?
[09:36:28] <Yuv422> how do you mean?
[09:36:38] <aboeing> basically i want to know if there is a fire place on the screen, how far away it is from the character, so i know whether to play that sample, and how loud to play it
[09:36:54] <Yuv422> hmm
[09:37:18] <Yuv422> the engine isn't really setup for that sort of thing. :(
[09:37:28] <Yuv422> maybe we could add sound usecode
[09:37:30] <Yuv422> events
[09:37:46] <aboeing> how does the screen get drawn?
[09:37:51] <servus> eeeek spam
[09:38:02] <servus> aboeing: I make... light.
[09:38:08] <aboeing> is there some point where all the visible items are drawn into a buffer that we could query
[09:38:11] <Kirben> wjp: Could you add other tools to makefiles ?
[09:38:21] <aboeing> servus: light... ?
[09:38:25] <servus> Light.
[09:38:35] <Yuv422> have a look in MapWindow drawObjs
[09:38:47] <Yuv422> servus did the darkness code
[09:38:48] <aboeing> servis: light. as in the alpha blending code?>
[09:38:52] <servus> http://nuvie.sourceforge.net/temp/Nuvie05.jpg and http://nuvie.sourceforge.net/temp/night3.png
[09:38:53] <aboeing> rite.
[09:39:13] <aboeing> servus: add some bumpmapping :)
[09:39:20] * servus pukes
[09:39:40] <aboeing> heh :D
[09:40:13] <aboeing> how about some realtime radiosity?
[09:40:15] <aboeing> =P
[09:40:16] <wjp> Kirben: other tools?
[09:40:34] <servus> Err...
[09:40:46] <servus> It has Gaussian diffuse attenuation, be happy
[09:41:07] <Kirben> wjp: unpack_conv and unpack.
[09:41:09] <aboeing> servus: what no specular highlighting? ;)
[09:41:19] <aboeing> servus: hey im just jokeing, it looks awesome :)
[09:41:19] <servus> That's impossible, aboeing
[09:41:37] <aboeing> oh but realtime radiosity isnt?
[09:41:40] <servus> The camera needs to have a depth field to have specularity. An orthographic projection does not provide this!
[09:42:24] <aboeing> sure you could, you just need the normals for all the objects in the scene.
[09:42:46] <servus> No.
[09:42:50] <wjp> Kirben: I'll take a look tonight
[09:43:09] <aboeing> servus: your right. im wrong.
[09:43:13] <servus> You'd need to fake a depth arc and that'd look incredibly wrong.
[09:43:19] <Kirben> wjp: thanks
[09:43:22] <servus> It's an orthographic isoprojection! *grin*
[09:43:23] <aboeing> yep.
[09:44:42] <aboeing> hey will the alpha blending engine light up the surroundings if you cast a spell.. like a fireball?
[09:45:09] <servus> It could.
[09:45:18] <aboeing> wikid.
[09:45:28] <wjp> that could look pretty cool :-)
[09:45:36] <aboeing> that would look very kool.
[09:45:59] <servus> It's already set up for that, you just need to make the call...
[09:46:21] <aboeing> yuv422: it would be fairly easy to add some kind of 'object buffer' to store all the objects currently visible on the screen.
[09:46:46] <servus> Just do it when you draw the objects...
[09:47:13] <aboeing> yuv422: likewise for the actors.. then you could pass the 'objectbuffer' to the sound engine and it would render the correct sounds.
[09:48:36] <Yuv422> yeah that would be a good idea
[09:48:48] <aboeing> kool.. ill do that when i get round to that bit.
[09:49:04] <Yuv422> argh!
[09:49:17] <Yuv422> inventoryview isn't displaying correctly
[09:49:34] <Yuv422> it is displaying the circle behind the inventory objects
[09:49:39] <aboeing> so for the songs ill just load all the songs and then the song-playing-logic will have to be hardcoded for each game
[09:49:40] <aboeing> ??
[09:49:42] <aboeing> since when
[09:50:02] <Yuv422> I just got SB-X's changes
[09:50:12] <aboeing> ah . he said they were incomplete
[09:50:18] <aboeing> he's still working on it i think
[09:51:08] <Yuv422> ah k
[09:51:11] <Yuv422> :(
[09:52:17] <aboeing> so is it okay if the song-playing-logic is hardcoded for each game?
[09:53:15] <Yuv422> hehe loads of things were hardcoded in the original
[09:53:18] <Yuv422> so yes that's ok
[09:53:33] <aboeing> kewl :)
[09:55:17] <Yuv422> aboeing: you might like to look at adplug
[09:55:28] <Yuv422> it has a plugin for reading u6 .m files
[09:55:42] <aboeing> sob.
[09:55:55] <Yuv422> ?
[09:56:17] <aboeing> damn. yeah. maybe that would make sense.
[09:57:03] <aboeing> hmmm thats tricky
[09:57:13] <aboeing> because the c64 version used .mod files...
[09:57:25] <Yuv422> ah k
[09:57:28] <aboeing> i wonder if it can inter-operate with sdl_mixer nicely
[09:59:07] <aboeing> i wonder if adplay can just output to a wav or something.. then the songs can be converted at installtime
[09:59:39] <Yuv422> I think it might be able to do that IIRC
[10:00:01] <Yuv422> any feature requests I'm going to give MsgScroll an overhaul
[10:00:36] <aboeing> oh, yeah i just wondered what you wanted for msgscroll, i started having a look at that last nite
[10:00:36] <servus> I cannot seem to find phorum help for how to post an image...
[10:01:03] <Yuv422> is it [img][/img]
[10:01:09] <Yuv422> I can't remember
[10:01:15] <servus> Yeah
[10:01:19] <servus> Just quoted your post to find out
[10:01:26] <Yuv422> hehe
[10:02:39] <servus> There, posted a shot of tiled darkness
[10:03:08] <Yuv422> thanks servus. :)
[10:03:18] * servus shrugs
[10:03:33] <servus> Anything else to do that I can finish in a week? *grin*
[10:04:05] <Yuv422> how about throwing objects from the egg?
[10:04:17] <Yuv422> instead of placing them in a line
[10:10:20] <servus> Where should I add use original lighting to the cfg? in <video>?
[10:11:23] --- aboeing is now known as ab_eating
[10:18:02] <Yuv422> hmm
[10:18:45] <Yuv422> we really need a general gameplay section
[10:19:33] <Yuv422> how about <general><darkness>original</darkness></general>
[10:20:09] <Yuv422> then we can have numerous darkness types. ;)
[10:20:47] <wjp> how about "none" ? :-)
[10:23:10] <servus> ok
[10:23:16] <Yuv422> nice
[10:23:33] <servus> http://c.adorablebunnies.com/bush_precious.jpg oh dear
[10:26:27] --- ab_eating is now known as aboeing
[10:26:34] <aboeing> servus: heh kewl.
[10:26:50] <aboeing> is there a unique identifier for each object&actor?
[10:27:32] <Yuv422> there is for actors
[10:27:35] <Yuv422> the id_c
[10:27:37] <Yuv422> id_n
[10:28:00] <Yuv422> objects have an objblk_n but this is only used when starting
[10:28:15] <Yuv422> and can't be relied upon after that
[10:28:33] <aboeing> :/
[10:28:55] <Yuv422> the Obj* pointer can be an id right?
[10:29:37] <aboeing> i need some way to associate sounds with objects... ie: "fire_crackle" with "FirePlace"
[10:29:49] <Yuv422> ah k
[10:29:49] <aboeing> obj* will change for each time the program is run
[10:29:59] <aboeing> i guess i can just use the object names
[10:29:59] <Yuv422> I see what you mean now
[10:30:04] <aboeing> there unique arnt they?
[10:30:04] <Yuv422> obj_n
[10:30:13] <Yuv422> will tell you if you are looking at a fireplace
[10:30:18] <aboeing> ah kewl
[10:30:40] <Yuv422> have a look at U6objects.h
[10:31:38] <Yuv422> or object_numbers.txt in the docs repositry
[10:32:57] <Yuv422> you should probably read this doc too. http://3e8.org/pub/ultima6/u6notes.txt
[10:33:07] <Yuv422> although some parts might be outof date now
[10:33:23] <aboeing> my brain is starting to hurt from my sound class..
[10:33:42] <Yuv422> shouldn't that be you ears that are hurting?
[10:33:52] <Yuv422> you/your
[10:34:26] <Yuv422> here's some more important reading http://www.geocities.com/nodling/ultima/text/ultima6/u6tech.txt
[10:37:22] <aboeing> heh, i built an object_numbers.txt file when i was kid for cheating purposes :)
[10:37:35] <aboeing> back then, we used paper to store information
[10:39:53] <Yuv422> hehe
[10:40:05] <Yuv422> those were the days, aye!
[10:44:29] <aboeing> hey, is run time type information being used in this project?
[10:45:11] <Yuv422> run time type?
[10:45:25] <Yuv422> dynamic typing?
[10:45:31] <aboeing> ill take that as a no. it tells you the type of class your working with at run time
[10:45:59] <Yuv422> type of subclass?
[10:46:07] <aboeing> ie: dynamic_cast operator, and type_info
[10:46:14] <wjp> rtti is a basic feature of C++
[10:46:25] <aboeing> wjp: yeah, but its not always enabled.
[10:46:37] <wjp> unless it's explicitly disabled it should be enabled
[10:46:48] <Yuv422> why would you want to know the subclass if it has a common accessapi?
[10:46:51] <Yuv422> access api
[10:46:54] <aboeing> its disabled in the build of nuvie i have . (i just checked)
[10:47:07] <aboeing> what compilers is nuvie using?
[10:47:20] <Yuv422> gcc msvc, mingw
[10:47:27] <wjp> Yuv422: one possible reason is debugging output
[10:47:34] <Yuv422> right
[10:47:50] <aboeing> yuv422: i am returing a Sound and i want to know if its a Song or a Sample..
[10:48:03] <Yuv422> ah k
[10:48:10] <Yuv422> have a sound type
[10:48:21] <aboeing> gcc supports rtti. so it shouldnt be a problem if its used..
[10:48:31] <aboeing> yuv422: yeah i know :)
[10:48:46] <Yuv422> better to stick with the basics
[10:48:55] <Yuv422> it is more portable that way
[10:49:16] <aboeing> kool.
[10:49:18] <wjp> it's arguable that your class model isn't optimal if you need to know if a Sound is a Song or a Sample
[10:49:56] <Yuv422> should the sound play itself?
[10:51:16] <Yuv422> do you think it would matter in the long run if I dynamically allocate strings for the new MsgScroll
[10:51:29] <aboeing> wjp: true, if it were up to me i wouldnt make the distinction, but i need to for playing it thru sdl_mixer
[10:51:30] <Yuv422> rather than using a fixed width buffer like we do now.
[10:51:46] <aboeing> yuv422: nope. just use the std::string class, it will make your life easier
[10:52:25] <Yuv422> yeah
[10:52:26] <aboeing> thats what i was gona do, have a std::list<std::string> buffer that way you can enable scrolling back and forth
[10:53:02] <Yuv422> a single line can have multiple fonts now so it might be a list too
[10:53:11] <Yuv422> or a vector
[10:53:46] <aboeing> kewl.
[10:54:03] <aboeing> btw, if you dont know how to make something like printf, i can write that bit, or just show you - whichever
[10:54:20] <Yuv422> varargs?
[10:54:27] <aboeing> thats the one.
[10:54:28] <aboeing> =P
[10:54:35] <aboeing> va_args
[10:54:51] <Yuv422> so it's the same as va_args in C?
[10:55:06] <aboeing> yep. you might want this thou:
[10:55:07] <aboeing> windows:
[10:55:14] <aboeing> #define OS_vsnprintf _vsnprintf
[10:55:15] <aboeing> #define OS_snprintf _snprintf
[10:55:23] <aboeing> linux:
[10:55:25] <aboeing> #include <stdio.h>
[10:55:26] <aboeing> #define OS_vsnprintf vsnprintf
[10:55:26] <aboeing> #define OS_snprintf snprintf
[10:55:43] <wjp> aboeing: that's already handled
[10:55:44] <Yuv422> damn non standard vsnprintf
[10:55:58] <wjp> (or at least snprintf is already used)
[10:56:19] <Yuv422> is snprintf c99 complient in linux now?
[10:56:29] <aboeing> c99. ha.
[10:56:56] <wjp> according to the manpage snprintf/vsnprintf conform to C99
[10:58:11] <aboeing> afaik there is only one c99 compliant compiler anyway...
[10:58:18] <Yuv422> when I installed panther it removed all my development man pages :(
[11:13:02] <Yuv422> std::list<std::list *> msg_buf
[11:13:07] <Yuv422> this looks evil
[11:14:02] <Yuv422> maybe I should have a line container struct
[11:14:08] <servus> Don't you mean std::list<void*>::iterator or whatnot?
[11:14:28] <Yuv422> I want a list of lists
[11:14:38] <Yuv422> at least that's what I think I want
[11:14:45] <servus> :P
[11:15:31] <servus> I've made several text-hud classes. I ended up making a struct to contain post information, and making a list of that... The struct contained both post text and post flags (colour in certain areas, font, etc)
[11:15:40] <servus> std::list<TPost>.
[11:16:07] <Yuv422> yeah
[11:16:10] <Yuv422> that sounds better
[11:24:13] <aboeing> okay i think im suffering from sever brain damage
[11:24:34] <Yuv422> :(
[11:24:58] <aboeing> how do you delete items from a list of pointers?
[11:25:08] <aboeing> list<something *> mylist;
[11:25:29] <aboeing> i want to delete everything in the list
[11:25:45] <aboeing> without using for_each
[11:25:54] <servus> ::clear
[11:26:01] <servus> mylist.clear();
[11:26:10] <aboeing> that wont delete the memory allocated to the pointers.. will it?
[11:26:43] <wjp> while (!mylist.empty()) { delete *(mylist.begin()); mylist.erase(mylist.begin()); }
[11:26:45] <servus> for (list<something*>::iterator i = mylist.begin(); i != mylist.end(); i++ ) i->dealloc(); mylist.clear();
[11:26:49] <aboeing> what i want to do is something like : while(it!=mylist.end() ) { delete *it; it++}
[11:27:09] <Yuv422> http://www.dinkumware.com/manuals/reader.aspx?b=p/&h=list.html#list::clear
[11:28:29] <aboeing> okay i think something is screwy with my stl implementaiton
[11:28:39] <aboeing> wjp: that code doesnt work. i get an access violation
[11:28:57] <servus> Try mine.
[11:31:27] <wjp> access violation? are you sure the list contains valid pointers?
[11:32:05] <wjp> what's wrong with the code snippet you posted yourself, btw?
[11:32:25] <aboeing> C:\dev\sdlmusic\wtfc\wtf2.cpp(182) : error C2839: invalid return type 'class Sound ** ' for overloaded 'operator ->'
[11:32:27] <aboeing> C:\dev\sdlmusic\wtfc\wtf2.cpp(182) : error C2227: left of '->dealloc' must point to class/struct/union
[11:32:39] <aboeing> servus: thats the issue with yours..
[11:32:43] <aboeing> wjp: i dont know!!
[11:32:57] <wjp> should work...
[11:32:59] <aboeing> wjp: its just not working , ive tried heeps of different ways of deleteing the list it just doesnt work
[11:33:18] <servus> delete *((Sound*)it);
[11:33:21] <servus> or
[11:33:22] <wjp> are you sure it's not just the destructor of whatever you're deleting that's causing the segfault?
[11:33:30] <servus> ((Sound*)it)->~Sound();
[11:33:31] <wjp> servus: that's evil
[11:33:37] <wjp> you can't cast an iterator to a Sound*
[11:33:56] <servus> Sure ya can :P
[11:34:05] * servus makes sample code
[11:34:09] <wjp> maybe in your implementation
[11:34:25] <Yuv422> wjp: can you safely delete the object that an itterator points to with delete *itterator?
[11:34:39] <aboeing> ha!
[11:34:41] <aboeing> im a moron
[11:34:46] <aboeing> sorry guys
[11:34:53] <aboeing> i added the same class the the list twice
[11:34:57] <wjp> Yuv422: if the list consists of pointers, then sure
[11:35:05] <Yuv422> ah k
[11:35:08] <Yuv422> thought so
[11:35:09] <aboeing> well that was a nice waste of an hour of my life
[11:36:26] <wjp> bbl, lunch
[11:39:21] <servus> http://sourcepost.sytes.net/sourceview.aspx?source_id=9995 groovie example.
[11:40:07] <servus> Remember that new and delete are, like malloc and free, *not* suitable for calling multiple times at runtime! They are *slow*
[11:44:55] <aboeing> servus: if you get worried about that you can easily build a small object manager, nothing you need to worry about in this day and age
[11:45:32] <servus> Most sound cards don't support more than 32 channels of sound at once anyway, right? Why not just do a static allocation for the sound list?
[11:46:15] <aboeing> servus: because im thinking there are gona be more like 100 different sounds..
[11:46:44] <aboeing> hmmm.
[11:47:14] <aboeing> what kind of sounds do you have? there are passive sounds, like water, or fire, and 'active' sounds like weapons hitting someone, and someone getting hurt..
[11:47:29] <servus> Oh, you were figuring on loading the sounds /from disk/ and then /into memory/ on each call? *gulp*
[11:47:33] <aboeing> can any object/actor ever have more than one sound associated with it?
[11:47:58] <aboeing> servus: nah, worse than that, load them all at startup :)
[11:48:01] <servus> I don't know, but you really need to preload and preallocate this stuff :-)
[11:48:22] <aboeing> servus: thats what im doing, but its going to use lots of ram methinks..
[11:48:28] <servus> Nah
[11:49:12] <aboeing> well, 100 samples, with say, 50kb wav files each, comes to only 5 megs. okay. fine it wont matter :)
[11:49:32] <aboeing> good, now i feel justified in what im doing :)
[11:50:21] <aboeing> are the objectnumbers unique for the bits on the map aswell?
[11:50:32] <aboeing> ie: walls, trees, grass etc..
[11:51:45] <servus> I'm not the one to ask, I've done minimal U6 hacking
[11:53:19] <servus> Did you see my version of destroying a pointer list?
[11:53:23] <Yuv422> the base map isn't mad up of objects
[11:53:24] <servus> Also, with all that being said, goodnight.
[11:53:31] <Yuv422> nigh
[11:53:34] <Yuv422> +t
[11:53:35] <aboeing> nite servus
[11:53:50] <aboeing> yuv422: what is the base map made up of?
[11:53:59] <Yuv422> tiles
[11:54:07] <aboeing> [i notice there are a few 'floor' entries in the object list]
[11:54:12] <Yuv422> yes
[11:54:23] <Yuv422> they are hacked floor objects
[11:54:23] <aboeing> but they are different?
[11:54:26] <aboeing> k
[11:54:35] <Yuv422> used to punch holes in map walls
[11:54:56] <aboeing> .... ohkay :P
[11:55:14] <aboeing> where can i get a list of the tiles?
[11:55:26] <Yuv422> I have a list if you want
[11:55:37] * servus . o O ( Me too, in graphical form )
[11:55:38] <aboeing> yeah cheers
[11:56:01] <servus> Bloody u6tou7.exe didn't work that well... It was recognizable as U6 though!
[11:56:04] <aboeing> servus: as in a list of tile numbers and the corresponding pictures?
[11:56:05] <servus> OK ok, sleepy time
[11:56:28] <servus> Something like that, I never figured out animated pics, Yuv422 is the one to ask for all that :-)
[11:56:52] <aboeing> kool. well i guess ill get it from him then
[11:56:55] <aboeing> cya round
[11:57:07] * servus waves and promises to really sleep this time *snooooooze*
[11:58:26] <Yuv422> aboeing: I just sent it to you via email
[11:58:54] <aboeing> kool thanks
[12:00:09] <aboeing> wholy f%&k theres a lot of em
[12:00:19] <Yuv422> yes
[12:01:25] <Yuv422> you'll find this usefull too. http://red5.graf.torun.pl/~rackne/images/u6tiles.GIF
[12:02:22] <aboeing> is there a way to make objects in nuvie?
[12:02:27] <aboeing> by object number?
[12:02:30] <Yuv422> yes
[12:02:40] <aboeing> spamspamhumbug?
[12:02:55] <Yuv422> yes
[12:03:03] <Yuv422> 3x spam
[12:03:04] <aboeing> kool
[12:03:05] <Yuv422> humbug
[12:03:08] <aboeing> rite
[12:05:38] <aboeing> wtf is quality?
[12:05:44] <aboeing> never figured that out
[12:05:51] <Yuv422> quality is many things
[12:06:06] <Yuv422> it is a general purpose variable
[12:06:50] <Yuv422> the name doesn't really make much sense but it what the original developers called it
[12:07:43] <aboeing> yeah i guess
[12:09:29] <-- wjp has left IRC (Read error: 113 (No route to host))
[12:14:54] <aboeing> ha. i think this mostly works now.
[12:15:15] <aboeing> now to integrate with nuvie so that the havok can begin
[12:25:17] --> SB-X has joined #nuvie
[12:26:00] <aboeing> hey SB-X
[12:27:00] <SB-X> hi
[12:28:08] <Yuv422> hey SB-X
[12:28:26] <Yuv422> I should have a new clean MsgScroll soon
[12:28:34] <Yuv422> well in a couple of days
[12:30:00] <SB-X> hi
[12:30:06] <SB-X> 1 class?
[12:30:33] <SB-X> instead of 2
[12:31:04] <Yuv422> huh?
[12:31:25] --> wjp has joined #nuvie
[12:32:03] <SB-X> you are keeping msgscroll 1 class and not dividing it into 2
[12:32:16] <Yuv422> yes one class
[12:32:21] <SB-X> k
[12:32:29] <SB-X> look forward to it
[12:32:42] <Yuv422> it should be easier to use
[12:33:19] <Yuv422> I was thinking we could generalize the timercallback
[12:33:29] <Yuv422> and have a generic event callback
[12:34:00] <Yuv422> then the Msgscroll could callback to an object when its input data was ready. :)
[12:34:28] <Yuv422> Hi U6UseCode. This is MsgScroll here. I have your mantra text for you.
[12:35:11] <Yuv422> what do you think?
[12:35:31] <SB-X> sounds good
[12:35:50] <SB-X> the other way to get input is to keep polling in a usecode::update
[12:35:59] <SB-X> brb food
[12:36:10] <Yuv422> k I'm going to bed soon
[12:36:20] <SB-X> heh
[12:36:20] <SB-X> ok
[12:36:24] <SB-X> is empty_tile the circle?
[12:36:27] <SB-X> in inventorywidget
[12:36:41] <Yuv422> hehe yeah
[12:37:10] <Yuv422> instead of doing it that way why not call viewmanager->update()
[12:37:11] <SB-X> there is one right next to it that is blank
[12:37:21] <Yuv422> after adding to inventory
[12:37:34] <SB-X> don't know
[12:37:43] <Yuv422> you could just fill the area
[12:37:50] <Yuv422> you don't need to blit a blank tile
[12:37:54] <Yuv422> that is overkill
[12:38:49] <SB-X> did everything compile?
[12:38:54] <SB-X> i was half asleep
[12:39:12] <SB-X> when I last comitted to cvs
[12:39:12] <Yuv422> yes
[12:39:19] <SB-X> whew
[12:39:26] <Yuv422> but there are heaps of warnings
[12:39:40] <Yuv422> could you remove some of your unused variables
[12:39:42] <SB-X> the mouseup/down/double stuff in mapwindow im going to move to gui
[12:39:50] <Yuv422> cool
[12:39:53] <SB-X> what unused variables do i have
[12:39:57] <Yuv422> tons
[12:40:13] <SB-X> i don't get those warnings
[12:40:19] <Yuv422> 37 warnings when I built
[12:40:22] <Yuv422> :(
[12:40:51] <Yuv422> moonspark added a bug about it. ;)
[12:41:10] <Yuv422> I can do it if you like
[12:41:13] <SB-X> does it say where they are?
[12:41:20] <Yuv422> I think so
[12:42:13] <Yuv422> doesn't your compiler tell you about unused variables?
[12:42:52] <SB-X> no there is a switch that must be enabled
[12:43:04] <SB-X> i thought the makefile would have that set
[12:43:13] <Yuv422> -Wall
[12:43:16] <Yuv422> ;)
[12:43:36] <Yuv422> env CFLAGS=-Wall ./configure
[12:45:00] <Yuv422> I guess it's just cosmetic at the moment
[12:45:22] <SB-X> have you always gotten these warnings?
[12:45:27] <SB-X> these are old variables
[12:46:11] <SB-X> actors/U6Actor.cpp: In member function `void
[12:46:12] <SB-X> U6Actor::set_direction_of_surrounding_dragon_objs(unsigned char)':
[12:46:12] <SB-X> actors/U6Actor.cpp:907: warning: unused variable `uint16 pitch'
[12:49:20] <SB-X> i've got the list stored safely away so i can look at it later
[12:49:25] <SB-X> bbl
[12:49:47] <aboeing> how do you use the nuvie file io stuff?
[12:50:01] <aboeing> i want to read the entire contents of a file into a char *
[12:51:35] <aboeing> is it nuvie fileio reader with .readAll(); ?
[12:52:50] <Yuv422> yeah
[12:53:17] <Yuv422> I'm going to bed now
[12:53:19] <Yuv422> cya
[12:53:22] <aboeing> nite
[12:53:22] <wjp> night
[12:53:33] <-- Yuv422 has left IRC ("[BX] Abort Retry Fail")
[13:22:35] <aboeing> hey
[13:22:39] <aboeing> you cant use the moonstone
[13:23:23] <aboeing> is there some other way to transport yourself?
[13:23:29] <aboeing> i want to get to the gargoyle world
[13:25:28] <wjp> hm, I'm fairly sure there's a teleport cheat code, but I don't know it
[13:28:24] <aboeing> buger
[13:29:08] <wjp> apparently it's alt-214
[13:31:23] <aboeing> kewl
[13:31:32] <aboeing> whats the captial city called again.. britan?
[13:31:36] <wjp> Britain
[13:31:39] <aboeing> london =P nodnol
[13:34:07] <SB-X> ok im back, sorta
[13:34:13] <SB-X> the orb of the moons worked last time i tested it
[13:34:32] <SB-X> but in u6 rule britannia is only one of the random songs, it doesnt play near the castle
[13:37:28] <aboeing> oh
[13:37:32] <aboeing> damn
[13:37:37] <aboeing> i must have been thinking of u7 thwen
[13:37:43] <aboeing> ohwell.. now its a kool 'feature'
[13:38:11] <SB-X> hehe
[13:38:13] <SB-X> koolness
[13:38:18] <aboeing> how do you use the alt-214 cheat?
[13:38:29] <SB-X> hold alt and press 2 1 3
[13:38:31] <SB-X> 4*
[13:38:40] <SB-X> then enter xcoord ycoord zcoord <enter>
[13:38:41] <SB-X> in hex
[13:39:01] <aboeing> can you give me an exapmle coord?
[13:39:35] <SB-X> dcc sending a list
[13:39:50] <aboeing> thanks
[13:40:02] <SB-X> np
[13:40:38] <SB-X> if you do sounds effects for tiles that will also be a cool feature
[13:40:47] <SB-X> u6 only did it for some objects, and combat, and events
[13:41:17] <aboeing> it doenst seem to work
[13:41:27] <aboeing> i type in a coord and i dont move
[13:42:31] <SB-X> it might be blocked
[13:42:36] <SB-X> it doesnt work for blocked locations yet
[13:42:43] <aboeing> blocked?
[13:42:47] <SB-X> by an actor
[13:42:51] <SB-X> add/subtract 1 or 2 from the x or y
[13:43:41] <aboeing> ive been trying that
[13:43:43] <aboeing> no joy
[13:44:01] <aboeing> ohwell from that list im guessing the gargoyl world is on level 5 anyway
[13:46:32] <aboeing> okay
[13:46:38] <aboeing> playing songs in the map now works
[13:46:55] <aboeing> should i submit a patch or just email you again SB-X?
[13:52:49] --> sbx has joined #nuvie
[13:52:50] <-- SB-X has left IRC (Read error: 104 (Connection reset by peer))
[13:53:00] <sbx> submit a patch if you can
[13:53:03] <sbx> how does the music play? i have a slow system
[13:56:03] <aboeing> *shrugs* i throw it at sdl_mixer and it plays it during idle time apparently. i imagine it is not a speedy thing. but i would be suprised if it didnt work on a 300mhz or so system
[13:58:40] --> EsBee-Eks has joined #nuvie
[13:58:41] <-- sbx has left IRC (Read error: 104 (Connection reset by peer))
[13:58:44] --- EsBee-Eks is now known as sb-x
[13:58:51] <sb-x> !@#$
[13:58:59] <sb-x> aboeing: as long as it works :)
[13:59:10] <sb-x> what alt214 coords did you try? it is supposed to work
[14:09:15] --> error64 has joined #nuvie
[14:09:22] <error64> hey
[14:09:52] <error64> how do you get chanserv to kill a nick
[14:10:13] <error64> bah
[14:10:41] <error64> uhm sb-x: do you think your going to get a chance to try that sound patch anytime soon? id like to know if it works for u..
[14:14:27] <sb-x> /msg nickserv ghost nick password
[14:14:47] <sb-x> i cant try it for a few hours
[14:14:53] <sb-x> did you get my last msg?
[14:15:11] <error64> no
[14:15:26] <error64> 'not a registered nickname' , thanks anyway
[14:15:30] <sb-x> what alt214 coords did you try? it is supposed to work
[14:15:34] <-- Kirben has left IRC ("System Meltdown")
[14:15:53] <error64> i tried various ones from that file, gargoyl world, lb, random numbers from my ass...
[14:16:10] <error64> tried moving numbers up and down a bit too...
[14:16:55] <sb-x> LB's Castle (for a quick heal)....................133,15f,0
[14:17:47] <sb-x> chuckles might be in the way
[14:18:37] * sb-x is away: no reason
[14:18:42] <error64> yeah i dont think it works..
[14:19:10] <error64> alright catch you guys later, got work to do tomorow.
[14:19:12] <-- error64 has left IRC ()
[14:19:30] <-- aboeing has left IRC (Read error: 60 (Operation timed out))
[15:30:54] <-- sb-x has left IRC (Read error: 60 (Operation timed out))
[17:46:07] --> SB-X has joined #nuvie
[18:14:50] --> sbx has joined #nuvie
[18:14:55] <-- SB-X has left IRC (Read error: 54 (Connection reset by peer))
[23:44:58] --> Kirben has joined #nuvie
[23:51:46] <sbx> hi Kirben
[23:51:53] <Kirben> Hi