[02:15:09] --> Kirben has joined #nuvie
[08:00:05] --> sbx has joined #nuvie
[08:09:53] --- sbx is now known as sbx|afk
[09:14:37] --- sbx|afk is now known as sbx
[09:42:15] --> Yuv422 has joined #nuvie
[09:42:38] <wjp> hi
[09:42:46] <Yuv422> hi wjp
[09:45:20] <sbx> heya
[10:11:25] <sbx> will be back in a few hours
[10:11:28] --- sbx is now known as sbx|afk
[10:30:32] <-- Yuv422 has left IRC (Read error: 110 (Connection timed out))
[10:30:43] --> Yuv422 has joined #nuvie
[10:30:51] <Yuv422> hey sbx
[12:05:38] <Yuv422> I've got to think of an easy way to migrate the existing code over to a new singular save file format.
[12:07:38] <Yuv422> classes that read from savegame files at the moment are
[12:08:45] <Yuv422> ActorManager, GameClock, party, Player, Portrait and of course ObjManager
[12:18:13] --- sbx|afk is now known as sbx
[12:18:23] <Yuv422> hi sbx
[12:20:34] <sbx> hi
[12:20:53] <sbx> is it possible the "conversion" tool for savegames can be nuvie itself?
[12:21:03] <sbx> meaning allow nuvie to continue loading original save types
[12:21:04] <Yuv422> yes
[12:21:26] <Yuv422> it would probably pack them then load them
[12:21:48] <sbx> oh ok, so changes are needed either way
[12:21:55] <Yuv422> yes
[12:22:24] <Yuv422> we'll also need to load from the lzw compressed u6 save data
[12:22:30] <Yuv422> for new games
[12:23:34] <sbx> what do you think of putting new file reading classes under files/ then?
[12:23:53] <sbx> if the current system is being changed then it is as good a time as any to do that
[12:24:21] <Yuv422> what sort of changes did you have in mind
[12:24:22] <Yuv422> ?
[12:24:48] <sbx> well nothing i'm really commited to... maybe we can have a class for every specific file type? and the various game classes ask it for data
[12:25:03] <sbx> like an ObjList
[12:25:17] <sbx> and ObjBlk
[12:25:38] <sbx> but I probably don't know enough about what we read to know if that will work or is even useful
[12:25:45] <Yuv422> subclassed for the different game types?
[12:26:15] <sbx> guess so, I don't know how different they are
[12:26:27] <sbx> and some gametypes have files that others dont have at all
[12:26:33] <Yuv422> objlist will change
[12:26:41] <Yuv422> the objblk files shouldn't
[12:27:06] <sbx> yeah some classes would be i/o others just input
[12:27:38] <sbx> or did you mean objlist is different for different gametypes?
[12:27:53] <sbx> I havnt thought about how to handle that
[12:28:04] <Yuv422> it is slightly different
[12:28:23] <Yuv422> mainly at the end I think
[12:28:42] <sbx> do you know of a file for MD or SE that U6 doesn't have at all?
[12:29:01] <Yuv422> in the savegame dir?
[12:29:06] <sbx> yeah
[12:29:15] <Yuv422> they have the same files
[12:29:20] <Yuv422> as far as I can tell
[12:29:45] <sbx> for savegame or not, files/ can have all major file i/o classes
[12:30:11] <sbx> in the case of unique file/filetypes you don't have to worry about subclassing for different gametypes
[12:30:48] <Yuv422> if we keep all the savegame files compressed in a single savegame we might need to keep the savegame data uncompressed in memory while loading the game
[12:31:15] <Yuv422> for the objlist at least
[12:31:28] <Yuv422> the objblks are only needed by the ObjManager
[12:31:39] <Yuv422> so that shouldn't be too much hassle
[12:32:52] <Yuv422> sbx: did you get a chance to look at the new save dialog?
[12:33:31] <sbx> afraid not sorry
[12:33:41] <Yuv422> np
[12:33:48] <sbx> I'm sure I will soon
[12:33:55] <Yuv422> :-)
[12:33:58] <sbx> I read the changelog
[12:34:25] <sbx> netzero is changing their free mail account policy, I'm going to need a new provider
[12:34:39] <Yuv422> gmail? ;-)
[12:34:55] * Yuv422 wonders when that will go public
[12:34:57] <sbx> hey is that the google thing?
[12:34:59] <sbx> me too
[12:35:07] <Yuv422> yes
[12:35:31] <Yuv422> I'm working on the SaveSlot widget at the moment
[12:36:31] <sbx> what does it do?
[12:36:41] <sbx> I remember there are two lines of text?
[12:36:50] <Yuv422> it displays the save game info
[12:37:00] <Yuv422> and handles the savegame name entry
[12:37:56] <sbx> what is the info?
[12:38:07] <Yuv422> not too sure yet. ;-)
[12:38:13] <Yuv422> any ideas?
[12:38:26] <Yuv422> total time playing
[12:38:30] <Yuv422> game time/ real time
[12:38:37] <Yuv422> number of saves
[12:38:55] <Yuv422> maybe who's in your party
[12:39:00] <sbx> custom name with no less than 255 characters allowed
[12:39:20] <sbx> the limit in the names for fallout savegames was annoying
[12:39:31] <sbx> because I like descriptive humorous names
[12:39:33] <Yuv422> righto
[12:39:38] <sbx> and player name at least
[12:39:40] <Yuv422> me too
[12:39:47] <sbx> heh
[12:41:19] <sbx> for example here are my last 10 Fallout save names
[12:41:25] <sbx> PLEASE let me have PArmor! :)
[12:41:26] <sbx> "Some assembly required"
[12:41:26] <sbx> Jerry, don't touch my stuff.
[12:41:26] <sbx> Upgraded... scouted a base
[12:41:26] <sbx> Kick ass and chew bubblegum.
[12:41:26] <sbx> Field-control computer
[12:41:28] <sbx> Unnecessary, but thanks Handy
[12:41:30] <sbx> Military Base destroyed
[12:41:32] <sbx> Find that mutant bastard
[12:41:34] <sbx> The enemy will be destroyed!
[12:41:50] <Yuv422> nice
[12:42:05] <sbx> now you see, I'd have preferred to write out PowerArmor but it doesn't fit :-)
[12:42:49] <sbx> I finished it so those saves are at the end of the game
[12:43:39] <sbx> ok looking at Player::loadObjlistData() a few months ago, here is what I was thinking...
[12:44:21] <sbx> instead of "NuvieIOFileRead objlist;" it can be "U6ObjList objlist"
[12:44:31] <sbx> and instead of doing the seeks and reads from there
[12:44:49] <sbx> you just do objlist.readName(name), questf = objlist.read_questf() and so on
[12:45:30] <Yuv422> and the base class could handle the common areas of the file
[12:45:33] <sbx> because the ObjList type class already knows what to do, and I guess it inherits NuvieIOFile itself
[12:45:55] <sbx> yeah, I was just thinking of U6 in that example
[12:46:10] <Yuv422> but in the new savegame the file will gzip compressed
[12:46:32] <sbx> hey that's nice
[12:46:34] <Yuv422> so I guess we will need to add read from gzip support into NuvieIOFile
[12:46:39] <sbx> did you estimate the file size?
[12:46:56] * Yuv422 tests by gzip a savegame
[12:47:06] <sbx> hehe that works I guess
[12:48:40] <sbx> they are already small uncompressed
[12:48:40] <Yuv422> 356K uncompressed
[12:49:57] <sbx> why is my savegame bigger?
[12:50:10] <sbx> 448k
[12:50:25] <Yuv422> you might be further along
[12:50:31] <Yuv422> more objects on the map
[12:51:47] <sbx> my last Fallout save was 12MB
[12:53:30] <Yuv422> the gzip'd savegame is 67K
[12:55:15] <Yuv422> This is going to add another dependancy to the build
[12:55:17] <Yuv422> readline
[12:55:17] <sbx> that is sweet
[12:55:29] <Yuv422> I guess everyone would have that though
[12:55:29] <sbx> hrmm
[12:55:52] <Yuv422> hmm
[12:55:55] <sbx> what about windows users?
[12:55:56] <Yuv422> what am I saying
[12:55:58] <Yuv422> zlib
[12:56:04] <Yuv422> silly me
[12:56:20] <Yuv422> just had a little brain explosion. ;)
[12:56:27] <sbx> well I just assumed you preferred gzip :)
[12:56:33] <sbx> exult uses zlib right?
[12:56:40] <Yuv422> I think so
[12:56:44] <sbx> or is it libz
[12:57:07] <Yuv422> http://www.gzip.org/zlib/
[12:58:54] <sbx> can we include it and not make it a dependancy?
[12:59:11] <Yuv422> yes
[12:59:18] <Yuv422> not too sure how big it is though
[13:03:35] <wjp> every unix-like system should have zlib already and for windows you can statically link it
[13:03:41] <wjp> it should be fairly small
[13:03:59] <Yuv422> do you guys use the gzstream functions
[13:04:11] <Yuv422> or the lower level functions with a custom stream handler?
[13:04:29] <wjp> in exult we use an ever higher level library (minizip or something)
[13:04:47] <Yuv422> ah k
[13:04:52] <sbx> didn't know
[13:09:42] <Yuv422> http://www.winimage.com/zLibDll/unzip.html
[13:37:20] <Yuv422> time for bed
[13:37:21] <Yuv422> cya
[13:37:23] <-- Yuv422 has left IRC ("[BX] Time wasted: 3h 55m 20s")
[14:17:56] <-- Kirben has left IRC ("System Meltdown")
[16:36:15] --- sbx is now known as sbx|afk
[20:02:24] --- sbx|afk is now known as sbx
[20:48:14] <-- sbx has left IRC ()