#pentagram@irc.freenode.net logs for 26 Oct 2011 (GMT)

Archive Today Yesterday Tomorrow
Pentagram homepage

[04:03:04] --> Kirben_ has joined #pentagram
[04:03:05] --- ChanServ gives channel operator status to Kirben_
[04:03:59] <-- Kirben has left IRC (Ping timeout: 248 seconds)
[04:31:00] --> Kirben has joined #pentagram
[04:31:00] --- ChanServ gives channel operator status to Kirben
[04:31:24] <-- Kirben_ has left IRC (*.net *.split)
[06:08:11] <-- Dominus has left IRC (Read error: Connection reset by peer)
[06:12:16] --> Dominus has joined #pentagram
[06:12:16] --- ChanServ gives channel operator status to Dominus
[08:59:31] <Dominus> wjp, I didn't know about WIN32_USE_MY_DOCUMENTS
[09:00:16] <Dominus> I need to setup a mingwenvironment to build my own pentagram it seems or beg kirben to make me onewith this define
[09:00:42] <Dominus> got to look up what that define does
[09:01:10] <Dominus> eventually I think it should do the same as we do for exult and the installer should be changed too
[09:03:47] <wjp> kernel/CoreApp.cpp is the file that handles this
[09:03:54] <Dominus> thanks
[09:06:01] <Dominus> ah, I see, it really uses my documents not something else
[09:09:27] <SugarCube> Isn't APPDATA compatible from at least XP onward (and before that, I believe)? Seems like the most straightforward and expected solution on Windows. http://msdn.microsoft.com/en-us/library/ms995853.aspx
[09:09:46] <Dominus> yes
[09:09:58] <Dominus> it's what we use wth Exult
[09:10:07] <SugarCube> So... no need to muck with My Documents or handle things differently for different Windows flavors.
[09:10:27] <Dominus> from the logs it seems that Colourless wasn't sure at the time of doing this where to put the data
[09:10:53] <Dominus> we still support older Windows though, too
[09:12:27] <SugarCube> Yeah, it looks like Win98 might not support that. Luckily, I don't have to support pre-XP. Sounds fun. :)
[09:13:27] <wjp> I don't think I'd care about dropping support for things pre-XP
[09:13:55] <wjp> (but the situation was of course different back when that was written)
[09:14:00] <Dominus> we did this somewhat for Exult where it ends up with a different path but somewhat working. So Win95+98+98SE still use the old way of using the install folder and Windows ME some folder in the Windows folders.
[09:14:22] <Dominus> I never care much about preXP :)
[09:14:31] <SugarCube> I managed to go this many years without remembering Windows ME. Thanks!
[09:14:49] <Dominus> you're welcome :)
[09:17:49] <Dominus> Kirben is a strong advocate of keeping Windows 9x support and up to now he succeeded in making us keep it through strong arguments (mostly that there is not much that needs to be done to keep W9x support - so why drop it...)
[09:19:27] <SugarCube> I'm not sure how many users know that they can run programs that write preferences to Program Files in Windows 7 if they just run the app as with elevated/admin privileges. Kind of a pain, though.
[09:20:08] <Dominus> and something that should be avoided for "simple" programs like Pentagram
[09:21:23] <Dominus> pentagram *does" work without admin rights because of the redirecting of Vista/W7 to the virtualstore folder of program folder writes
[10:07:23] <Dominus> ok, looked at exult/files/utils.cc and this stuff is way over may head. As usual :)
[10:10:17] <wjp> hm, exult's code does seem a bit convoluted
[10:11:49] <Dominus> yes, perhaps
[10:14:32] <SugarCube> Slightly. :)
[10:15:33] <wjp> the relevant bit is the shell32_wrapper class
[10:16:40] <wjp> which calls SHGetFolderPathA(..., CSIDL_LOCAL_APPDATA, ...) if it's available in shell32.dll, and returns "" otherwise
[11:24:46] <Kirben> Is this really much of any issue? I could see the use for saved games for different users, but users specific config files seems more trouble (i.e. setting paths for every user).
[11:27:04] <Kirben> The virtual file store of UAC was really one of the Microsoft's worst changes, with UAC itself been rather useless.
[11:29:07] <wjp> in my world NON-user-specific config files would be a far larger problem, but then I'm not a windows person...
[11:32:07] <Kirben> Yes, unfortunately Windows users are too used to everything been offered via GUI, and often have trouble editing config files manually.
[11:34:05] <Kirben> The Windows installer currently asks where Ultima 8 is installed at least, but doesn't verify it is actually in that location. Along with setting the default value in the config file.
[11:38:30] <Kirben> Maybe just have the Windows installer create save folder in a safer location, and set the location in the config file for now?
[11:41:36] <Kirben> Easily done with Inno Setup's many constants ( http://www.jrsoftware.org/ishelp/index.php?topic=consts ), and the standard INI format of the Pentagram config file.
[12:09:02] <Dominus> Kirben, the only problem with the current way (ini in program folder but changed settings saved to virtual store) is that people *need* to find the virtual store folder *AND* all changes need to go in the virtual store ini
[12:09:48] <Dominus> since the program folder ini is only used when run as admin when a virtual store ini is present that poses a problem
[12:10:34] <Dominus> For example when I tested a bit yesterday, I had no u8 path set up when I installed. Changed something else so there was a virtual store ini
[12:10:56] <Dominus> then I reinstalled to let the installer pick and write the path to u8
[12:11:24] <Dominus> of course since the installer needed admin rights it wrote to the ini in the program folder.
[12:11:48] <Dominus> when I strated pentagram it still couldn't find u8 since it read from the virtual store
[12:12:03] <Dominus> UAC sucks :)
[12:12:51] <Dominus> either way I need to write something for thedocs
[12:13:53] <Kirben> Maybe set Pentagram to run as admin by default in Windows installer?
[12:20:54] <wjp> would something like reading from system location, writing to user location work?
[12:23:57] <Kirben> Wouldn't that cause completely different file contents?
[12:25:32] <wjp> it depends a bit on the details
[12:25:52] <wjp> if it just copies it once, or merges the files, or something else entirely
[12:31:14] <Kirben> Not sure, sounds more confusing though.
[12:36:07] <wjp> the most basic variant would be to have the installer put the game path in a system-wide ini, and then let users set the rest of the settings in user-specific config files
[12:42:40] <Kirben> Yes, although is INI file for only game path(s) worth it ?
[12:43:19] <Kirben> Could use registry for game path under Windows, and config file in user location for all other settings. Although that makes it even more difficult to alter.
[12:44:00] <wjp> "worth it?" What do you mean? What is the cost?
[12:44:58] <Kirben> I just meant it would be a rather small config file.
[13:22:07] <Kirben> Anyway if you want completely user specific config files and saved games on Windows, then http://members.optusnet.com.au/kirbenau/win32.diff should do it safely enough.
[13:22:19] <Kirben> A quick port of the code used by ScummVM.
[13:24:26] <Kirben> Windows NT4 uses profile area, Windows 2000 onwards uses Applcation Data area, and Windows 95/98/ME should be uneffected.
[13:28:25] <Dominus> (my attention span is about two minutes it seems - got my mother in law in the house...)
[13:28:44] <Dominus> got to look at the diff but it sounds like the way to go
[13:29:16] <Dominus> rereading our discussion today it seems to me that complete user specific config files is the cleanest way
[13:30:22] <Dominus> kirben can you do a special snapshot for that diff? I'df like to test with my W95-W7 virtual machines
[13:30:34] <Dominus> and I don't have a good built environment set up
[13:50:40] <Kirben> http://members.optusnet.com.au/kirbenau/Pentagramwin32.exe
[14:03:46] <-- Kirben has left IRC ()
[16:30:44] <Dominus> Kirben if you read this, the patch puts the pentagram stuff in appdata/roaming/pentagram. exult puts it in appdata/local/exult. I know there is some controversy about local vs. roaming but I think we should at least streamline this for these two projects
[16:31:13] <Dominus> otherwise it works fine on W7. Gonna try the other Windows later
[16:31:58] <Dominus> while you are at looking this up, could you do this for nuvie as well? :)
[16:32:49] <Dominus> and about local vs. roaming, I don't care which we use, I tend to local but only because I wrote the docs for Exult already and would need to change that :)
[20:41:56] <-- Dominus has left IRC (Quit: Leaving.)
[22:19:28] <Colourless> roaming for saves, local for settings... or not. :-)
[22:24:08] --> Kirben has joined #pentagram
[22:24:09] --- ChanServ gives channel operator status to Kirben