#exult@irc.freenode.net logs for 7 Dec 2016 (GMT)

Archive Today Yesterday Tomorrow
Exult homepage

[00:23:09] <Dominus> Marzo, I've uploaded my "Castleton" work to github for now https://github.com/DominusExult/Castleton/
[00:24:01] <Dominus> Eventually will add it to our content but I want a semi-complete map first :)
[02:52:56] <-- Dominus has left IRC (Ping timeout: 260 seconds)
[02:53:07] --> Dominus has joined #exult
[02:53:07] <-- Dominus has left IRC (Changing host)
[02:53:07] --> Dominus has joined #exult
[02:53:07] --- ChanServ gives channel operator status to Dominus
[04:05:40] --> azeem has joined #exult
[04:10:00] <-- azeem_ has left IRC (Ping timeout: 256 seconds)
[05:15:17] <-- Lightkey has left IRC (Ping timeout: 260 seconds)
[05:15:44] <-- crb has left IRC (Ping timeout: 260 seconds)
[05:20:25] --> crb has joined #exult
[05:28:19] --- ParuCodex is now known as ParuNexus
[05:31:58] --> Lightkey has joined #exult
[08:31:02] <-- Lightkey has left IRC (Ping timeout: 258 seconds)
[08:46:30] --> Lightkey has joined #exult
[09:57:58] <Marzo> Hm
[09:58:05] <Marzo> Gumps are a bit broken
[09:58:17] <Dominus> hi, how so?
[09:58:29] <Marzo> The spellbook, in particular
[09:58:43] <Marzo> I am trying to cast some vibrate spells, and it keeps popping back up
[10:01:02] <Dominus> hmm, odd, works here for me, at least in archwizard mode
[10:08:28] <Marzo> Hm
[10:08:38] <Marzo> Seems like starting the game in map-edit mode may be the issue
[10:10:10] <Marzo> (starting a *new* game and cheating in a spellbook)
[10:10:16] <Marzo> Hm
[10:10:27] <Marzo> Need to fix the ES hanging when you close Exult before ES
[10:14:30] <Dominus> he he, yeah, got that too
[10:15:16] <Dominus> (and ES hanging when scrolling the chunks too fast or dragging the slider slightly off the gtk window...)
[10:22:00] <Marzo> Those two are due to OSX; they work fine in Linux
[10:22:25] <Dominus> bummer
[10:23:56] <Marzo> I even tried moving the mouse up and down like crazy, and no hang
[10:25:03] <Dominus> I can't reliably reproduce it. it's more as if while scrolling down the conncetion between Exult and ES hichups and ES stalls until it works again.
[10:25:16] <Dominus> and then it works flawlessly for a while again
[10:26:45] <Dominus> Exult in general is already slow with SDL 1.2x on modern OS X but coupled with x11 it can be terrible :(
[10:45:50] <Dominus> Marzo, why does ES save changes to the main map not in u7ifix files but only applies it to initgame.dat? I just wanted to add a little teleporter in Trinsic to the other map
[10:46:42] <Marzo> ifix are for base terrain only; ireg (contained in initgame) is for everything else
[10:50:22] <Marzo> Basically, ifix is for the contents of all identical chunks, while ireg are for the contents of any given chunk on the map
[10:51:40] <Dominus> hmm, odd
[10:52:28] <Dominus> because parts of my castleton map are saved in the ifix that shouldn't be then
[10:52:41] <Dominus> for example roofs
[10:53:25] <Marzo> Was 'edit terrain' ticked when you placed them?
[10:53:44] <Dominus> no and they don't show up in the chunks viewer
[10:54:34] <Dominus> It seems as if the building category of shapes get saved in ifix files
[10:56:08] <Dominus> yes that's it
[10:56:14] <Marzo> Yes, just checked
[10:56:26] <Marzo> Anything unusable or building is ifix
[10:56:52] <Marzo> It has been longer than I care to admit since I been through those parts of the code...
[10:57:57] <Marzo> The basic idea is that ifix need only two things: shape and frame
[10:58:06] <Marzo> (position is given by where they are on the ifix file)
[10:58:19] <Marzo> ireg generally need more information
[10:58:39] <Marzo> Eggs, in particular, have a lot of additional stuff
[10:59:08] <Dominus> I see. Doing world editing makes me keep notes in my "ES docs" -to do list :)
[10:59:56] <Dominus> So, Marzo, decoupling the iregs from the initgame.dat file is part of that trello card, right?
[10:59:59] <Marzo> Moreover, contrary to what I said above, the ifix objects are only part of the chunk data if you paint them directly on the terrain
[11:01:02] <Dominus> yup, got it
[11:01:11] <Marzo> It is not exactly decoupling; I want to *build* initgame.dat from its contents instead of storing it in full on git
[11:01:36] <Marzo> Similar to how we build VGA files from shp files for the mods
[11:02:14] <Dominus> being able to place an ireg file in the patch folder to override the standard initgame.dat would be nice and keep it cleaner, from what I learnt now
[11:03:23] <Marzo> That is a fair point
[11:03:44] <Marzo> But it would require a lot of code
[11:07:14] <Marzo> For Exult/ES to save only those files that are different, we would need to do something like: (1) save the game to gamedat (we already do this); (2) extract initgame.dat to a temp folder; (3) load and save this temp game to the temp folder, to convert them to Exult format; (4) compare each file from gamedat and temp folders to find out which are different; (5) save only the different folders to patch
[11:08:51] <Marzo> As is, ES-generated initgame.dat is basically a normal Exult save game
[11:09:12] <Marzo> (just as the original initgame.dat was a U7/SI save game)
[11:15:42] <Dominus> I see. A lot of work for little gain
[11:15:57] <Dominus> Must make note of this though
[11:16:49] <Dominus> That I remember to be able to manually edit the initgame.dat in emergencies
[11:16:56] <Marzo> The card's idea is to unzip initgame.dat in git to somewhere in the content/<mod>/src folder
[11:17:58] <Dominus> Right, got it
[11:18:02] <Marzo> This also has the advantage that if you are building in a system without zlib (so Exult does not have zip support), we will be able to build a flex initgame.dat
[11:18:09] <Marzo> And use the mods
[11:18:26] <Marzo> (not that I think there is any such systems in use nowadays, but...)
[11:18:35] <Dominus> He
[11:21:52] <Dominus> The hex editing of u7 chunks saved me now already a couple of times ;)
[11:25:41] <Marzo> :-)
[11:27:09] <Dominus> and ordering my extra chunks to the end of u7chunk is also helping a lot. Easy to compare now with an unaltered but ES generated u7chunk file.
[11:28:36] <Dominus> or rather to get rid of all my accidents I just copy/pasted my chunks to an unaltered u7chunk file (after I reordered in game)
[11:29:05] <Dominus> a bit of different workflow now :)
[11:29:42] <Dominus> When I want to clone a chunk I'll append its hex to the end of the u7chunk file instead of doing it in ES.
[11:32:01] <Marzo> I am thinking of changing ES to have these options: copy chunk; paste before; paste after; paste over
[11:32:12] <Marzo> Instead of just duplicate
[11:32:34] <Dominus> this would help a lot, IMO
[11:32:50] <Marzo> Sure, the plain duplicate will take twice as many clicks, but you could control exactly what it did
[11:33:08] <Marzo> (and yes, removing duplicate)
[11:33:45] <Marzo> I am also thinking of having chunks editable directly through ES
[11:34:15] <Dominus> what does revert do, or is supposed to do? didn't seem to help when I last slipped into another chunk when terrain editing
[11:34:45] <Marzo> Revert is supposed to re-read all files from disk and discard all changes
[11:34:56] <Marzo> I think it only effects files in ES
[11:35:33] <Marzo> But yeah, one thing lacking in ES/Exult editing is undo/redo
[11:35:42] <Marzo> And it will be a nightmare to add
[11:36:06] <Dominus> yes, no idea if that is doable without going insane...
[11:36:43] <Dominus> direct edit would be great *but* it would need some in-ES scaling - it's getting way too small on current displays, not to mention that the flat shapes are just tooooo tiny
[11:37:06] <Marzo> The issue is more the amount of code
[11:37:35] <Marzo> As a matter of fact, I was thinking about adding scaling to ES
[11:38:43] <Marzo> Another, more complicated thing I was thinking about, is to somehow allow pre-scaled shapes
[11:39:25] <Marzo> Not only that would help for that HD U7 I posted about years ago, but it would allow having fonts with better definition
[11:40:45] <Marzo> But I think that one would require a lot of work also
[11:41:47] <Marzo> There are times when I think the best course of action would be to do bugfixes only for current Exult and start a Exult-v2 repository, which reimplements everything from scratch using hindsight as a guide
[11:42:51] <Dominus> yes, everything we do regarding modding or HD scaling feels like duct taping
[11:43:20] <Dominus> in hindsight Exult+Studio should be one program
[11:43:45] <Dominus> (with a sleak version without editing)
[11:44:06] <Marzo> Something akin to U7Wizard, you mean?
[11:44:46] <Dominus> without all that server stuff etc...
[11:51:02] <Dominus> BUT who has time to do all this? :(
[11:57:06] <Marzo> Considering I have been thinking about this? :-)
[11:57:24] <Dominus> :)
[11:57:48] <Marzo> To make it work right, I would start by making separate components that need to be done
[11:58:38] <Marzo> The base system: a filesystem abstraction layer, a usecode machine, text handling including conversions to/from other codepages, graphics, and so on
[11:59:30] <Marzo> Shapes would probably use a pre-scale cache and be rendered in isolation to the end buffer, instead of being rendered at 1x and then the whole screen be scaled
[12:00:24] <Marzo> This would hopefully take care of some HQnx/xBRZ artifacts
[12:00:33] <Marzo> And would allow pre-scaled shapes
[12:01:05] <Dominus> Perfecting what wjp and the others did when they created Pentagram - using the knowledge gained by Exult
[12:01:18] <Marzo> Exactly
[12:01:55] <Marzo> But in this case, to recreate Exult
[12:02:33] <Dominus> a worthwhile goal. I wish I could be more help than bug tester :)
[12:26:38] <Dominus> yeah, only 2 merge conflicts when grabbing your last 46 commits for the ios port :)
[15:44:32] <-- Rottingbeef has left IRC (Ping timeout: 248 seconds)
[15:49:34] --> Rottingbeef has joined #exult
[16:47:59] <-- Rottingbeef has left IRC ()
[16:52:09] --> Rottingbeef has joined #exult
[18:11:35] --> Rottingbeef_ has joined #exult
[18:15:58] <-- Rottingbeef has left IRC (Ping timeout: 250 seconds)
[20:05:30] <Dominus> I'm voting for adding SDL2 drag'n'drop :)
[20:13:09] <crb> Hey, Dominus do you happen to have a copy of the Exult rotate patch ("exult-1.5-rotate-v0.3.patch"), the dropbox link seems to be dead now.
[20:13:44] <Dominus> heya, I should have it somewhere... let me look...
[20:13:52] <crb> Thanks!
[20:14:52] <Dominus> yup, one moment...
[20:17:00] <Dominus> https://www.dropbox.com/s/oarl3mcinii3sjp/exult-1.5-rotate-v0.3%281%29.patch?dl=1
[20:17:11] <crb> Thank you!
[20:17:11] <Dominus> and https://www.dropbox.com/s/q3mgwtybmsm5z7r/exult-1.5-rotate-v0.3.patch?dl=1
[20:17:28] <Dominus> I think the first one is a tiny tad newer, some differences
[20:17:36] <crb> Awesome, thanks
[20:18:04] <Dominus> crb: if you are able to apply this to our source, an updated patch against current source would be nice to have somewhere
[20:18:14] <crb> Will pass it along if I can get it working
[20:18:38] <Dominus> since that patch we fixed a lot of code style and that alone will likely break easy applying it
[22:36:03] <-- Marzo has left IRC (Ping timeout: 268 seconds)