#pentagram@irc.freenode.net logs for 2 May 2004 (GMT)

Archive Today Yesterday Tomorrow
Pentagram homepage


[00:22:03] --> watt has joined #pentagram
[00:22:08] <watt> Hi/
[00:22:41] <watt> Reading though the new config system diffs.. I REALLY like how it turned out
[00:23:54] <watt> especially the armour, monsters and weapons ini's
[00:42:15] <Kazin> that little girl outside tenebrae is the devil
[00:42:19] <Kazin> aka, bugged
[00:42:20] <Kazin> :P
[00:48:21] --> Kazin|AFK has joined #pentagram
[00:48:21] <-- Kazin has left IRC (Read error: 54 (Connection reset by peer))
[00:49:37] --- Kazin|AFK is now known as Kazin
[00:52:29] <-- Kazin has left IRC (Client Quit)
[02:13:14] --> Kirben has joined #pentagram
[02:13:15] --- ChanServ gives channel operator status to Kirben
[04:31:10] <watt> wjp: In GUIApp, something like this might work well for loading the bindings:
[04:31:14] <watt> // system-wide config
[04:31:14] <watt> string bindingsFile = "@data/" + game + "-bindings.ini";
[04:31:14] <watt> if (configfileman->readConfigFile(bindingsFile, "bindings", true))
[04:31:14] <watt> con.Printf(MM_INFO, "%s... Ok\n", bindingsFile.c_str());
[04:31:15] <watt> else
[04:31:15] <watt> con.Printf(MM_MINOR_WARN, "%s... Failed\n", bindingsFile.c_str());
[04:31:16] <watt> // user config
[04:31:18] <watt> bindingsFile = "@home/" + game + "-bindings.ini";
[04:31:20] <watt> if (configfileman->readConfigFile(bindingsFile, "bindings"))
[04:31:22] <watt> con.Printf(MM_INFO, "%s... Ok\n", bindingsFile.c_str());
[04:31:24] <watt> else
[04:31:26] <watt> con.Printf(MM_MINOR_WARN, "%s... Failed\n", bindingsFile.c_str());
[04:32:31] <watt> not sure if the game + "-bindings.ini" is what you wanted.... but this does seem to work well.
[04:33:16] <watt> I had changed my game name from "u8" to "Ultima8" and noticed the bindings didn't load... whoops.
[08:14:05] --> Kazin has joined #pentagram
[09:13:15] * Darke hrms... looks like he needs to add stat(2) support to FileSystem. Everything we port to is POSIX compliant, right? (Says he, hoping he can get away with only 'minorly' breaking compiling on every other platform. *grin*)
[09:20:12] <watt> hehehhe
[09:21:54] <wjp> watt: not sure about keybindings yet
[09:24:44] <watt> Thinking the bindings may be in the pentagram.ini? Or just not sure on the filesystem structure (game-bindings.ini vs. game/bindings.ini)?
[09:25:28] <wjp> both
[09:25:57] <watt> hmm....... Oye. I think I need sleep... took something to help me out about 30 minutes ago and it's starting to kick in....
[09:26:29] <wjp> g'night :-)
[09:26:30] <watt> good night.. well, here....
[09:26:36] * Darke suggest watt leave before he acquires a bad case of QWERTY-itiz.
[09:26:43] <Darke> Bye!
[09:33:05] * Darke ahhs. stat/types/unistd is already tested for/included. So things should 'just' work.
[09:40:43] <wjp> not on winCE according to IsDir
[09:43:12] * Darke looks. Good grief that's a mess. Any idea where I can get the wince-docs? I just need to know how much of a fuss it is to get the last modified time of a file.
[09:46:45] * Darke figures the VS.NET docs would have it, since it looks standardish-'doze. He doesn't have the patience for a 3 hour tool chain install.
[11:39:16] --> Colourless has joined #Pentagram
[11:39:16] --- ChanServ gives channel operator status to Colourless
[11:39:34] <wjp> hi Ryan
[11:39:39] <Colourless> hi
[11:40:00] <wjp> (silly me actually tried to tab complete Ryan... *sigh* :-) )
[11:41:08] <Colourless> :-)
[11:45:26] <Colourless> darke, it's simple to get last modified time for a file
[11:51:09] <Colourless> the WIN32_FIND_DATA structure contains that info
[12:08:34] <Darke> Cool. So how's it stored? Seconds/miliseconds since epoc, and a 'more positive' value means the file's newer? Or something different?
[12:09:52] <Colourless> 64bit int that is 100-nanoseconds since Jan 1st 1601 (UTC)
[12:12:47] <Colourless> that is 100-nanosecond intervals, or 1/10 microsecond intervals
[12:13:44] <Colourless> so yes, a 'more positive' means newer :-)
[12:15:54] <Darke> Hrm... do we have a uint64? Doesn't look like we have one. Is there a... err... 'nice' type like time_t that's available under wince? I'll just have to surripticusly toss in a #define to redefine time_t to it. *grin*
[12:16:29] <Colourless> sure there's a time_t but it's 32 bit :-)
[12:16:41] <Colourless> (i think)
[12:16:53] <Colourless> yes, time_t exists :-)
[12:17:15] <Colourless> but like none of the functions that go with it exist:-)
[12:17:40] <Darke> 1601? So do they correctly handle the 'missing' 14 days after someone-or-other discovered the calender was a 'little' bit off? Or did they cheat? (I think that event was around 1500s, BICBW. *grin*)
[12:17:47] <Colourless> for exult (not committed yet) i have written my own localtime and time fumctions
[12:17:48] <Darke> Heh.
[12:20:08] <Darke> For my purposes I'm just tossing the 'useful' values from the stat call into a class, simply so I can compare if one file is newer then the other (for obvious source/object file reasons), I'm just trying to make it a little more generic. As far as things are concerned, if one number is bigger then the other, that's all I need to know, precision is optional. *Grin*
[12:21:54] <Colourless> what 'value' does stat return?
[12:22:18] <Colourless> would be nice if the function i write for wince as a substitute returns the same value
[12:23:49] <wjp> hm, I think seconds since 1 jan 1980
[12:24:38] <wjp> no, 1970
[12:24:45] <Darke> 1970 sounds about right.
[12:24:57] <Colourless> yes, 1970 would seem right :-)
[12:25:03] <Colourless> same as the time function
[12:29:33] * Darke guesses he should cvs/update to get the latest config stuff and use that now. *grin*
[12:31:25] <wjp> Colourless: did you try to compile the new conf/ yet?
[12:31:51] <Colourless> wjp: not yet :-)
[12:38:25] <Colourless> hmm... i can't update!
[12:38:38] <Colourless> Cannot access /cvsroot/pentagram/CVSROOT
[12:38:41] <Colourless> No such file or directory
[12:39:42] <wjp> works fine here
[12:40:00] <Colourless> exult is doing the same
[12:40:11] <wjp> are you using cvs.sf.net or cvs.pentagram.sf.net?
[12:40:26] <Colourless> cvs.pentagram.sf.net
[12:40:42] <wjp> try the other
[12:40:50] * Darke just updated and it worked fine for him too.
[12:41:13] <wjp> ah, see SF site status
[12:41:21] <wjp> "As of 2004-04-28 the CVS services will no longer function with the hostname of cvs.PROJECTNAME.sourceforge.net."
[12:43:47] * Darke hrms... he just got a floating point exception running pentagram.
[12:44:29] <Colourless> a div by 0
[12:44:29] <Colourless> (probably)
[12:45:02] <Colourless> update works now :-)
[12:48:19] <Darke> Looks like it. I can't reproduce it.
[12:50:49] <Colourless> well, that was painless :-)
[12:51:58] <Darke> wjp: *psst* Looks like your evil plan didn't work. You'll have to try something more painful next time. *noddle*
[12:52:42] <Colourless> of course now i need to make a pentagram.ini file :-)
[12:54:16] <Colourless> and pentagram works :-)
[12:55:10] <Darke> That's just *wrong*. It's not right to write such robust code!
[12:56:00] <wjp> just wait ;-)
[12:56:22] <wjp> do you really think I would make it fail in such an obvious way?
[12:56:34] <Darke> Ahh!
[12:56:39] * Darke sits back and waits then.
[12:56:48] <wjp> my bugs, uh, I mean traps, are much more subtle than that!
[12:57:37] <Colourless> :-)
[12:58:45] <wjp> it doesn't really use the new system properly currently with respect to video/sound settings
[12:59:03] <wjp> it should switch to the game settings as soon as a game is selected
[12:59:44] <Colourless> well, those subsystems need 'updating'
[13:06:15] * wjp wonders what to do next
[13:07:41] <Darke> wjp: I think Colourless was already hinting something, before you even wondered that. *grin*
[13:07:57] <wjp> he was?
[13:08:03] * Colourless was not
[13:08:14] * Colourless is supposed to be working on those
[13:08:22] <wjp> I'm sure Colourless wouldn't want to messing with the audio/video subsystems and mess up his masterplans :-)
[13:08:27] <wjp> s/to/me/
[13:08:32] * Darke knows. He was joking. *grin*
[13:09:15] <Darke> wjp: You could always add a subliminal mindcontrol subsystem.
[13:09:41] <Colourless> it would probably just be used to get us to work more you know :-)
[13:09:48] <wjp> Darke: right, like we don't already have that.
[13:10:05] <Darke> Or is that part of Colourless' audio/video systems? *grin*
[13:10:17] <Darke> Ahh!
[13:10:40] * Darke *knew* there was a reason he commented that bit of pentagram out. Just couldn't remember why. *noddle*
[13:17:10] <wjp> Colourless: about u8skf.txt; are you sure the audio data is signed 8 bit?
[13:17:24] <Colourless> yes.
[13:17:31] <Colourless> and you have asked that same question before
[13:17:36] <wjp> sox is complaining that it doesn't support signed 8 bit and that it's using unsigned 8 bit instead
[13:17:40] <wjp> me? unlikely
[13:17:49] <Colourless> well, someone has
[13:17:58] <wjp> (and then it sounds just fine)
[13:18:20] <wjp> um, or maybe that's just the output format
[13:18:58] <wjp> right, I was just confused about sox' command line parameters... never mind :-)
[13:19:53] <Colourless> i've no idea why it's signed, but it is
[13:20:12] <Colourless> most unusual
[13:20:26] <wjp> "You have been a thorn in my side", next file, "for far too long, Avatar."
[13:21:04] <Colourless> aye
[13:22:41] <wjp> 0.u8o is a two byte header followed by blocks of 6 bytes, I guess
[13:23:07] <Colourless> that would sound about right
[13:23:56] <Colourless> as if you didn't guess, FF FF FF FF FF FF is the terminator :-)
[13:24:19] <wjp> yes, I suspected that "son Ely STATION=".... wasn't real data anymore :-)
[13:24:40] <Colourless> :-)
[13:24:49] <wjp> I wonder what that data is, though; looks a bit like an icon
[13:25:07] <Colourless> could be an icon
[13:26:12] <Colourless> 16 bit would be likely type, but there's not enough byte
[13:26:20] <Colourless> bottom would be missing
[13:27:46] --> oRTa has joined #pentagram
[13:32:23] <wjp> hi
[13:37:12] <oRTa> greetings! Just trying to get pentagram running... doesn't work no pentagram.ini found :-(
[13:38:21] <wjp> Kirben: around?
[13:40:06] <wjp> oRTa: pentagram.ini would look roughly like http://www.math.leidenuniv.nl/~wpalenst/pentagram.ini
[13:41:12] <oRTa> thanx, i'll try it
[13:41:35] <wjp> (obviously you'll have to set the correct paths in there :-) )
[13:42:40] <wjp> looking at 0.u8o a bit more...
[13:42:58] <wjp> it seems that that terminator isn't aligned in 6 byte block properly
[13:43:06] <wjp> unless there isn't a two byte header after all
[13:43:14] <Kirben> yes
[13:43:27] <wjp> Kirben: I changed the config file format of pentagram last night
[13:43:39] <wjp> it no longer uses any of the .cfg files in data
[13:43:52] <wjp> they've been replaced by .ini files, and I've already updated Makefile.mingw to install them
[13:44:10] <wjp> it also means that pentagram.cfg is replaced by pentagram.ini
[13:44:33] <oRTa> great, works perfectly!! The Pentagramwin32.exe on sourceforge has the old config inside, got me confused
[13:44:38] <wjp> http://www.math.leidenuniv.nl/~wpalenst/pentagram.ini is a very basic example of how pentagram.ini should look
[13:44:51] <wjp> oRTa: yes, we just changed the format last night; not everything is updated yet
[13:45:12] <oRTa> no problem, thx for the help
[13:45:12] <Colourless> wjp i'm thinking no header bytes
[13:45:38] <wjp> yes, I agree
[13:45:42] <wjp> (now, anyway :-) )
[13:45:58] <wjp> format would seem to be [shape, action, parameter]
[13:46:12] <Kirben> ok
[13:47:11] <wjp> an equivalent to pentagram.cfg.example: http://www.math.leidenuniv.nl/~wpalenst/pentagram.ini.example
[13:49:22] <wjp> shape == 0 would probably mean no shape, while shape == 0xFFFF seems to be the terminator
[13:50:45] <wjp> playing a sound (action 0x0E) should automatically get a subtitle from the previous index
[13:51:32] <wjp> (the subtitle entries aren't referenced explicitly anywhere)
[13:51:41] <Colourless> yeah i was guessing as much
[13:52:04] <wjp> heh, I'm guessing too, but it's good that we're both guessing the same :-)
[13:59:08] <wjp> I'm thinking action 0x12 may be 'clear subtitles'
[14:09:08] <wjp> hmm
[14:09:35] <wjp> or probably the first int16 is not "shape to display" but actually "what to do when we reach this shape"
[14:09:59] <Colourless> interesting
[14:10:10] <Colourless> that would explain why the script seems 'too small'
[14:12:15] <Colourless> you playing though all the shapes at the given speed, until there is a match in the script
[14:12:28] <wjp> not sure what you would do with non-shape entries
[14:13:21] <Colourless> play until there are no shapes left i woudl guess
[14:13:49] <wjp> I meant entries in the middle of the sequence
[14:13:53] <Colourless> we'd soon find out about palette problems
[14:13:57] <Colourless> yeah
[14:14:36] <Colourless> maybe they are supposed to be ignored, maybe they are supposed to be applied. i think it would soon be obvious
[14:14:49] <Colourless> and we only have 2 sequence we need to play anyway :-)
[14:14:59] <wjp> timing would be harder to spot :-)
[14:15:13] <wjp> (what to do with non-shape entries wrt timing, that is)
[14:16:10] <Colourless> i would think they would be 'ignored' as far as timing goes regardless of anything else
[14:17:26] <wjp> I think action 0x09 is simply fade in (without a parameter)
[14:18:24] <Colourless> you should not that any line that says wrt 'data' could mean anything :-)
[14:18:38] <Colourless> s/wrt//
[14:19:38] <Colourless> for the palettes, since there doesn't seem to be a set palette 'action' i would guess they should be applied as they are hit
[14:20:03] <Colourless> 0x09 may be used to 'modify' how they are applied
[14:21:21] <wjp> the first two things in the intro would be the origin and LB logos
[14:21:30] <wjp> both faded in and out
[14:21:47] <Colourless> yes
[14:29:45] <wjp> Kirben: thanks for updating the snapshot
[14:31:40] <-- Kirben has left IRC (Read error: 104 (Connection reset by peer))
[14:35:06] <-- oRTa has left #pentagram ()
[15:41:29] --- khalek is now known as kh_zZz
[15:59:32] --> Dominus has joined #pentagram
[15:59:34] --- ChanServ gives channel operator status to Dominus
[15:59:58] <wjp> hi
[16:00:00] <Dominus> hi
[16:00:04] * Dominus will try to bring the readme up to date
[16:00:15] <wjp> oh, right, we actually had one of those :-)
[16:00:20] <Dominus> yeah
[16:00:47] <Dominus> and I refused to update anything in it until we changed config system
[16:02:12] <wjp> you did? hm, well, good thing I changed it, then :-)
[16:02:47] <Dominus> yeah some time ago, when someone complained about the readme not being up to date...
[16:03:00] <Dominus> some time after we decided that the old config system had to go
[16:04:30] <Dominus> about pentagram.ini, will Pentagram at some point make a default one if it can't find any?
[16:04:46] <wjp> yes
[16:06:24] <Dominus> can you send me your pentagram.ini? I'm not sure waht is supported and what is not yet in (my pentagram.cfg is a bit messed up by old pentagram)
[16:08:29] <wjp> hm, yes, well; see the readme? ;-P
[16:08:48] <Dominus> aargh
[16:08:57] * wjp watches dominus go into an infinite loop
[16:10:32] <wjp> let's see
[16:10:57] <wjp> there's a global [pentagram] section and game-specific sections
[16:11:09] <wjp> global-only settings: data
[16:11:16] <wjp> game-only settings: path, work, save
[16:11:34] <wjp> global and game settings: midi_driver, fullscreen, width, height, bpp, console_font, timiditycfg
[16:11:37] <Dominus> ah save
[16:12:06] <wjp> game-only settings: type, version, language
[16:12:37] <wjp> global-only setting: defaultgame
[16:14:42] <Dominus> ok
[16:16:05] <wjp> I wouldn't mention console_font and work at this point yet
[16:16:42] <Dominus> I think type, version, language also fall in this category
[16:16:56] <wjp> probably
[16:18:12] <Dominus> midi_driver, fullscreen, width, height, bpp, console_font, timiditycfg in game override global, right?
[16:19:45] <wjp> well, eventually
[16:20:02] <wjp> right now some do, some don't
[16:20:15] <Dominus> :-)
[16:20:51] <wjp> hm, no, actually, they all do
[16:21:11] <Colourless> eventually most of that stuff we wont mention in the 'readme' file at all
[16:21:27] <wjp> I switch from 'global' to 'game' mode fairly soon in the init process
[16:21:57] <Dominus> Colourless: we don't?
[16:22:07] <Colourless> the reason being if it can be set in game, shouldn't be a need to mention it in the 'readme' file
[16:22:14] <Colourless> makes things confusing
[16:22:24] <Dominus> ok, good to know I was just about to write it :-)
[16:22:35] <Colourless> of course, that is what *I* would do
[16:22:38] <wjp> I still wouldn't mind an 'advanced' section documenting all options
[16:23:24] <Dominus> ok, then advanced it will be. Right now we don't have the big and quickly confused end-user mass
[16:23:52] <wjp> the good thing about the current config file is that the 'sample' config file has 4 lines :-)
[16:24:12] <Dominus> yeah, I like that
[16:24:16] <wjp> could be cut back to two lines in windows if running pentagram from the directory that contains the data dir
[16:24:32] <Colourless> you could even screw one of them up and it would still work :-)
[16:24:37] <Colourless> (the [u8] line)
[16:25:05] <Colourless> since the name of the section doesn't matter
[16:25:52] <Colourless> when we work out relative paths, should it be made so it's relative to the pentagram.ini file?
[16:26:24] <Colourless> rather than the current directory at time of execution
[16:27:20] <Colourless> or perhaps relative to the executable
[16:27:33] <wjp> the data path?
[16:28:41] <Colourless> well, if you put a path in the ini file as . or .. (or something using those) then what exactly should those be relative too
[16:29:08] <Colourless> puting ./data for the data path may not always work if the directory at startup changes
[16:29:11] <wjp> I vote for 'undefined' :-)
[16:29:24] <wjp> seriously, I don't know
[16:29:34] <wjp> I would never do it
[16:29:52] <Colourless> in general it should matter i don't think
[16:30:11] <wjp> hm?
[16:31:05] <wjp> in windows I think relative to the executable might be sensible
[16:31:11] <Colourless> i don't think it really matters
[16:34:13] <wjp> something else that was waiting for the config system rewrite: l10n
[16:35:05] <wjp> I think the plan was something similar to gnu gettext?
[16:35:48] <wjp> which would mean hardcoding the english strings and providing english->french/german/spanish translation tables
[16:36:51] <Colourless> yes
[16:37:21] <wjp> u8 or utf-8 encoded? :-)
[16:49:11] <wjp> bbl, dinner
[17:14:59] --> GigDR has joined #pentagram
[17:16:41] <-- Dominus has left IRC (Nick collision from services.)
[17:16:51] --- GigDR is now known as Dominus
[17:16:52] --- ChanServ gives channel operator status to Dominus
[17:21:40] <wjp> back
[17:22:34] <Dominus> I updated the readme. also mentioned the fonts hack for u8
[17:22:43] <wjp> I see you left the work dir in?
[17:23:00] <Dominus> oops, oversight
[17:23:29] <Dominus> after talking about it I forgot to delete it as ist was mentioned in the old readme
[17:27:15] <Dominus> fixed
[17:35:44] <wjp> hm, nice, I see there already is a ConvertShapeFormat structure for the .skf shapes
[17:56:29] <Dominus> oh, wjp, it is really nice of you to send me a screensaver :-) (from your SF address)
[17:57:20] <wjp> yeah, my blanking screensaver is a lot prettier than all those other blanking screensavers out there, so I thought you might like it ;-)
[17:57:37] <Dominus> he he
[18:15:40] <wjp> Colourless: I was thinking of moving kernel/Game* to games/
[18:16:03] <wjp> at least GameInfo, GameDetector
[18:40:39] <Colourless> fine with me
[21:03:57] <wjp> ugh, ShapeFlex actually crashes when trying to cache a non-existent shape
[21:06:43] * wjp fixes that
[21:17:43] <Colourless> such superb software engineering that :-)
[21:59:02] <wjp> time to go; g'night
[21:59:34] <Colourless> i should go too
[21:59:37] <-- Colourless has left IRC ("casts invisibility")
[22:30:33] --- kh_zZz is now known as kh_out
[22:34:18] <-- Dominus has left IRC ("a pooka invited me for a drink")