--- Log opened Tue Aug 31 00:00:37 2010 |
00:01 | | Derakon [Derakon@Nightstar-1ffd02e6.ucsf.edu] has quit [[NS] Quit: Leaving] |
00:06 | | gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has quit [[NS] Quit: Z?] |
00:24 | | Vornicus-Latens is now known as Vornicus |
00:26 | | Tarinaky [Tarinaky@Nightstar-f349ca6d.plus.com] has quit [Connection closed] |
00:35 | | You're now known as TheWatcher[T-2] |
00:38 | | You're now known as TheWatcher[zZzZ] |
00:40 | < celticminstrel> | I believe McMartin is correct about the general method. |
00:40 | < celticminstrel> | ...wait, Derakon is gone. |
00:41 | < celticminstrel> | Never mind! |
00:41 | < McMartin> | Oh right, you've been doing wx work~ |
00:41 | < McMartin> | Derakon will be back later tonight |
00:47 | | cpux is now known as shade_of_cpux |
00:59 | | Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has quit [Connection closed] |
01:01 | | shade_of_cpux [chatzilla@Nightstar-20a84089.dyn.optonline.net] has quit [Connection closed] |
01:09 | | Derakon[AFK] is now known as Derakon |
02:00 | | shade_of_cpux [chatzilla@Nightstar-20a84089.dyn.optonline.net] has joined #code |
02:00 | | shade_of_cpux is now known as cpux |
02:01 | | Ortiha [orthianz@Nightstar-bf91336b.xnet.co.nz] has joined #code |
02:01 | | Orthia [orthianz@Nightstar-490095b4.xnet.co.nz] has quit [Ping timeout: 121 seconds] |
02:12 | | Orthia [orthianz@Nightstar-249c6b91.xnet.co.nz] has joined #code |
02:13 | | Reiver [reaverta@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds] |
02:13 | | Ortiha [orthianz@Nightstar-bf91336b.xnet.co.nz] has quit [Ping timeout: 121 seconds] |
02:30 | | Derakon is now known as Derakon[CIV] |
02:42 | | Orthia [orthianz@Nightstar-249c6b91.xnet.co.nz] has quit [Ping timeout: 121 seconds] |
03:07 | | cpux [chatzilla@Nightstar-20a84089.dyn.optonline.net] has quit [Ping timeout: 121 seconds] |
03:07 | | cpux [chatzilla@Nightstar-20a84089.dyn.optonline.net] has joined #code |
03:12 | | Orthia [orthianz@Nightstar-a67ca815.xnet.co.nz] has joined #code |
03:13 | | Derakon[CIV] is now known as Derakon |
03:14 | | Orthia [orthianz@Nightstar-a67ca815.xnet.co.nz] has quit [Client closed the connection] |
03:23 | | Orthia [orthianz@Nightstar-ddc0fc71.xnet.co.nz] has joined #code |
03:38 | | * Derakon eyes his Delaunay code. |
03:38 | < Derakon> | When I last left off, I was trying to deal with a particular edge case in which there was only one edge occluded from a particular vertex. |
03:39 | < Derakon> | IIRC this required calculating the cross product of each edge and finding the one that pointed in the same direction as the (new vertex -> node in edge) vector? |
03:40 | < Vornicus> | The cross product of each edge against the ray. The ones of a particular sign are facing away. |
03:40 | < Derakon> | So the set of three vertices for performing the cross product are (new vertex, edge node 1, edge node 2), then. |
03:40 | < Vornicus> | Note: you do /not/ have to do anything else if you do this: this information also neatly contains /every/ point that you can see. |
03:41 | < Derakon> | ...good point. |
03:41 | < Vornicus> | (which is to say that "is on an edge facing towards the new point" is necessary and sufficient for finding all visible points on the convex hull) |
03:41 | < Derakon> | Right. |
03:42 | < Vornicus> | So this calculation is no longer your edge case: it's your entire visibility algorithm, and it's O(number of points on the hull) guaranteed. |
03:42 | < Derakon> | Which should be a significant improvement. |
03:43 | < Vornicus> | Yes. |
03:44 | < Vornicus> | So then you draw lines to your visible ones, then discard ones that appear twice in the "visible edges" list. |
03:44 | < Vornicus> | And what you have left is your new hull. |
03:44 | < Derakon> | Only problem there being that I need to keep the hull sorted. |
03:45 | < Vornicus> | Yes. YOu... replace the slice that's your "appears twice" list with your new point, essentially. |
03:47 | < Vornicus> | (trying to slice a ring doesn't make much sense, I know. What you actually do is you put it between your two points that are one-edge-visible.) |
03:48 | < Derakon> | I'm afraid I'm not really listening right now, as I appear to be broken on a more fundamental level ATM... |
03:48 | < Vornicus> | ok |
03:59 | | Orthia [orthianz@Nightstar-ddc0fc71.xnet.co.nz] has quit [Ping timeout: 121 seconds] |
04:02 | < Derakon> | Hm. What about the case where no nodes are rendered interior by the new node? How do you tell where to insert it then? |
04:02 | < Derakon> | Oh, wait, in that case there should only be one edge contained by the new node, so you insert it between the nodes in that edge. |
04:05 | | Orthia [orthianz@Nightstar-4c6ecc53.xnet.co.nz] has joined #code |
04:07 | | Ortiha [orthianz@Nightstar-5c9f89ea.xnet.co.nz] has joined #code |
04:08 | | cpux_ [chatzilla@Nightstar-20a84089.dyn.optonline.net] has joined #code |
04:09 | | cpux [chatzilla@Nightstar-20a84089.dyn.optonline.net] has quit [Ping timeout: 121 seconds] |
04:09 | | Orthia [orthianz@Nightstar-4c6ecc53.xnet.co.nz] has quit [Ping timeout: 121 seconds] |
04:10 | | cpux [chatzilla@Nightstar-20a84089.dyn.optonline.net] has joined #code |
04:12 | < Derakon> | I find it annoying how I can define a __str__ method for my Vector2D class, and print will happily call that method when printing plain Vector2Ds, but it won't call it when I try to print a list (or any other container) of them. |
04:12 | < Vornicus> | __repr__ |
04:12 | < Derakon> | ...right. |
04:12 | < Derakon> | Why do we even have both? |
04:12 | | cpux_ [chatzilla@Nightstar-20a84089.dyn.optonline.net] has quit [Ping timeout: 121 seconds] |
04:13 | < Vornicus> | Because __str__ is 'pretty' and __repr__ is supposed to round-trip. |
04:13 | < Derakon> | So I see. Ehh. |
04:13 | < Vornicus> | (among other things, __repr__ is really designed for strings: it gives quotes and escapes.) |
04:15 | < Derakon> | Okay, tell me how this could be construed as returning a bool instead of a string: |
04:15 | < Derakon> | return "<Vector2D (" + str(self.x) < ", " + str(self.y) + ")>" |
04:15 | < Derakon> | ...oh, wait, I see it. |
04:15 | < Derakon> | Bahhh. |
04:17 | < Vornicus> | "<Vector2D (%s, %s)>" % (self.x, self.y) |
04:17 | < Derakon> | Yeah, yeah. This is semi-old code. |
04:18 | < Derakon> | (As in, written a bit over a year ago~) |
04:23 | < Derakon> | Hmm...this cross-product-based approach has run into a snag. |
04:23 | < Derakon> | http://derakon.dyndns.org/~chriswei/temp2/crossproduct.png |
04:24 | < Derakon> | Take a look at 244,577 and the edge from 573,399 to 756,72. |
04:27 | < Vornicus> | That shouldn't be a problem - this is one of the reasons we /use/ cross product. |
04:28 | < Derakon> | Oh wait, yeah, why is that failing...? |
04:28 | < Derakon> | http://paste.ubuntu.com/486133/ |
04:29 | < Derakon> | With output: http://paste.ubuntu.com/486136/ |
04:29 | < Derakon> | (Holy cheeseballs that site gets new pastes fast) |
04:29 | | Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has joined #code |
04:30 | < Vornicus> | ...because for some reason that edge is being checked backwards. |
04:31 | < Vornicus> | As is the 450-573 edge. |
04:31 | < Vornicus> | I suspect that the reason for /that/ is that you're storing the edges as a whole in your hull? Don't do that -- store vertices alone. |
04:31 | < Derakon> | No, I'm just storing vertices. |
04:31 | < Vornicus> | Weird. |
04:31 | < Derakon> | A moment, let me paste the entire thing... |
04:32 | < Derakon> | http://paste.ubuntu.com/486137/ |
04:32 | < Derakon> | ...there's some newline fail in that, but I think you can manage. |
04:35 | < Derakon> | ...okay, the hull is all kinds of messed-up. |
04:36 | < Vornicus> | gnerp gnerp gnerp, okay what's going on here. |
04:38 | < Derakon> | Yeah, what happened is I inserted one node in the wrong order in the new hull. |
04:38 | < Derakon> | So the newNodeIndex calculation must be off. |
04:38 | < Vornicus> | Possible failure modes I see: in the degenerate hull-has-two-vertices case, you have to place the new vertex in the right place... |
04:38 | < Derakon> | Output for that particular iteration: http://paste.ubuntu.com/486138/ |
04:39 | < Derakon> | Ahhh. |
04:39 | < Derakon> | I calculate newNodeIndex based on the old hull, not the new one. |
04:40 | < Derakon> | Durrr. |
04:40 | | Ortiha [orthianz@Nightstar-5c9f89ea.xnet.co.nz] has quit [Client closed the connection] |
04:41 | < Derakon> | Yeah, that seems to be doing better. |
04:43 | | * Derakon calculates a 540-node triangulation in 3.657s. |
04:45 | < Vornicus> | Much better, yes. What's the next sticking point in the profile? |
04:46 | < Derakon> | Um, 2.955s spent in the makeDelaunay function, with no further explanation. |
04:47 | < Vornicus> | makeDelaunay, does that calculate a single edge? Actually, more specifically, does it calculate which counter vertices to use? |
04:47 | < Derakon> | It does the entire "flip edges until entire graph is Delaunay" process. |
04:47 | < Derakon> | I.e. it needs to be refactored. |
04:48 | < Derakon> | (It's a 103-line function...) |
04:48 | < Vornicus> | Ah. Well, yes, that does. |
04:50 | < Derakon> | (Same size graph took 30.998s with the previous version, by the way) |
04:51 | < Vornicus> | I heard about that. By the way how are you storing your edges? |
04:51 | < Derakon> | A dict that maps nodes to sets of nodes. |
04:52 | < Vornicus> | Okay good. |
04:54 | < Vornicus> | (this is the way I was going to suggest you store it.) |
04:55 | | Reiver [reaverta@ServerAdministrator.Nightstar.Net] has joined #code |
04:55 | | mode/#code [+qo Reiver Reiver] by ChanServ |
05:07 | | Orthia [orthianz@Nightstar-69a94a48.xnet.co.nz] has joined #code |
05:15 | | Orthia [orthianz@Nightstar-69a94a48.xnet.co.nz] has quit [Ping timeout: 121 seconds] |
05:16 | < Derakon> | I suppose an arbitrary four-sided polygon would be a quadragon. |
05:19 | | * Derakon removes everything from makeDelaunay except the queue handling and the edge flipping, is still spending 2.653s in there. |
05:21 | | Orthia [orthianz@Nightstar-634ef7e7.xnet.co.nz] has joined #code |
05:21 | | Orthia [orthianz@Nightstar-634ef7e7.xnet.co.nz] has quit [Client closed the connection] |
05:22 | < Vornicus> | "quadrangle" actually |
05:23 | < Derakon> | Bah. |
05:23 | < Vornicus> | or "quadrilateral" |
05:23 | < Derakon> | Because consistency in mathematical language is too much to ask for. |
05:23 | < Vornicus> | :P |
05:30 | | Orthia [orthianz@Nightstar-ae98d6fa.xnet.co.nz] has joined #code |
05:32 | | * Derakon cuts runtime down to 2.629s by adding a cache of precalculated triangle angles. |
05:34 | < Derakon> | ...hang on, that's not a Delaunay triangulation! |
05:47 | < Derakon> | Well, I've dropped the runtime for the triangulator down by a factor of 10; that's pretty good for tonight. |
05:48 | < Derakon> | I suspect the remaining runtime largely boils down to "I have a really big number of edges, and most of them have to be checked several times before the graph is Delaunay." |
05:50 | < Vornicus> | Are you still getting phantom edges in your render? |
05:51 | < Derakon> | Yes. |
05:51 | < Derakon> | So yeah, that could be another source of slowdown. |
05:52 | | * Vornicus still wonders how that even works. |
05:53 | < Derakon> | Well, here's the shortened makeDelaunay function. http://paste.ubuntu.com/486159/ |
05:57 | < Vornicus> | What's your nearestneighbors function look like? set intersection, a split, and a min on each of them? |
05:58 | < Derakon> | Finds shared neighbors, gets distance from each neighbor to the edge, flips distance to negative if neighbor is on one side of the edge, gets least positive distance and least negative distance. |
06:04 | < Vornicus> | Faster way of doing that: get the perpendicular vector to the edge, dot that with your neighbor points. |
06:06 | < Derakon> | Mm, point. |
06:06 | < Vornicus> | Then split on </> perp dot (edge point), and max/min those. |
06:07 | < Derakon> | </>? |
06:07 | < Vornicus> | less than / greater than |
06:08 | < Vornicus> | Doesn't even have to be a normalized vector. |
06:08 | < Derakon> | So long as it's consistent. :) |
06:09 | < Vornicus> | It has to be the same vector each time (for a given edge), but other than that! |
06:11 | < Derakon> | Okay, I must have screwed this up somehow. http://paste.ubuntu.com/486163/ |
06:12 | < Derakon> | (NB I seem to hit that case where one or the other list is empty (even with the working version), which should never happen as I don't consider exterior-facing nodes for swapping). |
06:14 | < Derakon> | Looks like my problem is that dot isn't returning both negative and positive distances... |
06:14 | < Derakon> | For <13.0, 192.0> <213.0, 197.0> generated neighbors [] [(<Vector2D (6.0, 321.0)>, 64170.0), (<Vector2D (71.0, 70.0)>, 13645.0)] |
06:15 | < Derakon> | I.e. for the edge (13, 192) to (213, 197), it thinks that both vertices (6, 321) and (71, 70) are on the same side. |
06:15 | < Vornicus> | Dot won't return negative and positive till you subtract v.a |
06:16 | < Derakon> | I'm sorry, I need a symbol table... |
06:16 | < Vornicus> | v being the perpendiclar vector, and a being one of the edge points. |
06:17 | < Vornicus> | and . being dot product cuz I don't have a nice button for that. |
06:17 | < Derakon> | Got it. |
06:17 | < Derakon> | I should take the time to understand why that works... |
06:18 | < Derakon> | 3.261s this time (the previous sub-2s version was bogus) |
06:19 | < Vornicus> | On a Mac, right? Apps - Utils - Grapher, get a 3d "cartesian", put in z = 4x - 3y - 12. |
06:19 | < Derakon> | Okay. |
06:20 | < Vornicus> | Notice that you get a plane; on one side of a particular line, you have negative values, and on the other side you have positive values. That line is 4x - 3y = 12. |
06:21 | < Derakon> | Okay... |
06:21 | < Vornicus> | which has a slope of 3/4. one vector perpendicular to that line is <4, -3>, and so any point on that line, dotted with that perpendicular vector, gives you 12. |
06:22 | < Derakon> | Err... |
06:23 | < Derakon> | I think my brain is failing me. |
06:23 | < Derakon> | (It's getting pretty dang close to bedtime) |
06:24 | < Vornicus> | The dot product, when given one fixed vector, will give the same result for every point on a given line perpendicular to that vector. |
06:24 | | gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has joined #code |
06:26 | < Vornicus> | And its result will change linearly with distance from any such perpendicular line. |
06:28 | < Vornicus> | Therefore: all the things on one side of the edge will have a dot product against that edge's perpendicular /above/ the edge-perpendicular dot edge-point result. |
06:28 | < Vornicus> | And all the things on the other side will have it below. |
06:29 | | Stalker [Z@3A600C.A966FF.5BF32D.8E7ABA] has joined #code |
06:33 | | celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
06:33 | | * Derakon runs a 1036-node graph in 10.43s, can't go lower than that because he starts getting divide-by-zero errors in his circumcircle-finding code. |
06:33 | < Derakon> | So that's a bug to fix later. |
06:33 | < Vornicus> | Heh. Yeah if they're colinear then you'll see it in the 0s. |
06:34 | < Derakon> | In practice I doubt that'll be an issue as the actual game map will be on a much larger scale. But enh. |
06:36 | | Orthia [orthianz@Nightstar-ae98d6fa.xnet.co.nz] has quit [[NS] Quit: Going dooooown...] |
06:36 | < Vornicus> | You'll still want to deal with it. |
06:36 | < Derakon> | Right. |
06:36 | < Derakon> | Anyway, g'night. |
06:36 | | Derakon is now known as Derakon[AFK] |
07:31 | | Tarinaky [Tarinaky@Nightstar-f349ca6d.plus.com] has joined #code |
07:45 | | Reiv [orthianz@Nightstar-ae98d6fa.xnet.co.nz] has joined #code |
07:46 | | Reiv [orthianz@Nightstar-ae98d6fa.xnet.co.nz] has quit [Client closed the connection] |
07:50 | | Anno[Laptop] [annodomini@Nightstar-7d67b83e.adsl.tpnet.pl] has joined #code |
07:54 | | Reiv [orthianz@Nightstar-ae98d6fa.xnet.co.nz] has joined #code |
08:21 | | Stalker [Z@3A600C.A966FF.5BF32D.8E7ABA] has quit [Client closed the connection] |
08:21 | | Stalker [Z@3A600C.A966FF.5BF32D.8E7ABA] has joined #code |
08:28 | | Vornicus is now known as Vornicus-Latens |
08:58 | | Tarinaky [Tarinaky@Nightstar-f349ca6d.plus.com] has quit [Connection closed] |
09:11 | | You're now known as TheWatcher |
09:50 | | Abu[Laptop] [annodomini@Nightstar-7d67b83e.adsl.tpnet.pl] has joined #code |
09:50 | | Anno[Laptop] [annodomini@Nightstar-7d67b83e.adsl.tpnet.pl] has quit [[NS] Quit: Reconnecting] |
10:55 | | gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has quit [Ping timeout: 121 seconds] |
10:57 | | gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has joined #code |
11:01 | | gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has quit [Ping timeout: 121 seconds] |
11:04 | | gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has joined #code |
11:28 | | Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has quit [Connection closed] |
12:23 | | cpux is now known as shade_of_cpux |
12:50 | | Rhamphoryncus [rhamph@Nightstar-bbc709c4.abhsia.telus.net] has quit [Client exited] |
14:12 | | Reiv [orthianz@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds] |
14:46 | | Reiv [orthianz@Nightstar-88e432db.xnet.co.nz] has joined #code |
15:13 | | Ortiha [orthianz@Nightstar-7589fa2b.xnet.co.nz] has joined #code |
15:17 | | Reiv [orthianz@Nightstar-88e432db.xnet.co.nz] has quit [Ping timeout: 121 seconds] |
15:29 | | celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has joined #code |
16:49 | | Derakon[AFK] [Derakon@Nightstar-cfae48c3.ca.comcast.net] has quit [Ping timeout: 121 seconds] |
16:50 | | Reiver [reaverta@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds] |
16:52 | | Ortiha [orthianz@Nightstar-7589fa2b.xnet.co.nz] has quit [Ping timeout: 121 seconds] |
17:08 | | Reiver [reaverta@ServerAdministrator.Nightstar.Net] has joined #code |
17:08 | | mode/#code [+qo Reiver Reiver] by ChanServ |
17:21 | | Abu[Laptop] is now known as ST |
17:48 | | Reiv [orthianz@Nightstar-31d6a228.xnet.co.nz] has joined #code |
18:15 | | Tarinaky [Tarinaky@Nightstar-f349ca6d.plus.com] has joined #code |
18:19 | | Derakon [Derakon@Nightstar-1ffd02e6.ucsf.edu] has joined #code |
18:19 | | mode/#code [+o Derakon] by Reiver |
18:19 | | * Derakon arghs at scrollable windows in WX. |
18:20 | <@Derakon> | There doesn't seem to be a clean way to programmatically insert one without completely fucking over your parent-child heirarchy. |
18:23 | <@Derakon> | And AFAICT you aren't allowed to subclass ScrolledWindow; instead you have to just insert a "blank" one whose sole purpose is to contain your actual content. |
18:31 | | Reiv [orthianz@Nightstar-31d6a228.xnet.co.nz] has quit [Client closed the connection] |
18:35 | <@Derakon> | I also love how I seem to be unable to say "No, look, you're supposed to contain a large block of content, but that doesn't mean you should expand to do so!" |
18:39 | | Reiv [orthianz@Nightstar-31d6a228.xnet.co.nz] has joined #code |
18:39 | | Reiv [orthianz@Nightstar-31d6a228.xnet.co.nz] has quit [Client closed the connection] |
18:47 | | Reiv [orthianz@Nightstar-31d6a228.xnet.co.nz] has joined #code |
18:48 | | Vornicus-Latens is now known as Vornicus |
19:06 | <@Derakon> | Great. You can set min size of the panel, and you can set suggested size of the panel, but you can't set max size of the panel (and suggested size is ignored if the panel's contents are bigger than that). |
19:06 | < Tarinaky> | This GTK or QT or...? |
19:06 | <@Derakon> | Goddammit, the entire point of having scrollbars is so you can constrain a large amount of content into a small space! SO WHY DOESN"T THIS WORK |
19:06 | <@Derakon> | WX. |
19:06 | <@Derakon> | Pardon me, I'm a bit frustrated with it. |
19:06 | < Tarinaky> | Ah. WX is -horrible-. |
19:07 | <@Derakon> | If I had a choice, believe me I'd be using something else. |
19:07 | < Tarinaky> | I can believe that. |
19:19 | | Abu[Laptop] [annodomini@Nightstar-43c3b20c.adsl.tpnet.pl] has joined #code |
19:22 | | ST [annodomini@Nightstar-7d67b83e.adsl.tpnet.pl] has quit [Ping timeout: 121 seconds] |
19:22 | | Abu[Laptop] is now known as ST |
19:32 | <@Derakon> | Oh great, and it looks like Comcast has dropped my home compy's net connection now, so I can't even show you this completely fucked-up screenshot. |
19:34 | < Vornicus> | Comcast seems to be giving people shit today. |
19:35 | <@Derakon> | My service has been pathetic for the past few weeks. |
19:35 | <@Derakon> | I'd estimate I've been getting one 9 of uptime. |
19:39 | < Vornicus> | yeesh. |
19:42 | <@TheWatcher> | dera: if you can email the shot to me, I'll stick it up online for you |
19:45 | | cpux [chatzilla@Nightstar-20a84089.dyn.optonline.net] has joined #code |
19:47 | | shade_of_cpux [chatzilla@Nightstar-20a84089.dyn.optonline.net] has quit [Ping timeout: 121 seconds] |
19:47 | | cpux is now known as shade_of_cpux |
19:48 | <@Derakon> | What's your email, TW? |
19:49 | <@TheWatcher> | chris@starforge.co.uk |
19:49 | <@Derakon> | Thanks, sent. |
19:50 | <@TheWatcher> | http://fleet.starforge.co.uk/Picture1.png |
19:51 | <@Derakon> | The main thing here being how the image extends over the title bar (and the base bar). |
19:51 | < Vornicus> | ...fail |
19:51 | <@Derakon> | Thanks, TW. |
19:59 | < celticminstrel> | Oh, Vornicus... |
19:59 | <@TheWatcher> | No problem. And yeah, that's full of O.o |
20:04 | | RichardBarrell [mycatverbs@Nightstar-3b2c2db2.bethere.co.uk] has joined #code |
20:07 | < Vornicus> | celmin: I looked at the BoE stuff, it's... an unbelievable mess. |
20:12 | < celticminstrel> | ...I'm not terribly surprise... :( |
20:12 | < celticminstrel> | ^ +d |
20:14 | < Vornicus> | I'll have another crack at it later, I think, though. |
20:14 | < celticminstrel> | Okay. |
20:14 | < celticminstrel> | What part of it makes it such an unbelievable mess? |
20:15 | < Vornicus> | The size, the number of structs. The semi-stringy stuff in it. The fact taht I really don't know what it's supposed to look like. |
20:16 | < celticminstrel> | As in you're not sure what the data is supposed to be? |
20:17 | < Vornicus> | Yeah. When I hacked open King's Bounty (1990) I could see pretty clearly that there were maps in there, for instance. |
20:17 | < celticminstrel> | Ah. |
20:18 | < celticminstrel> | Well, there are maps in this one, both the same size I believe, but one of them is almost completely blank. |
20:18 | < Vornicus> | And then the rest came naturally, if slowly: I knew that certain locations were Dwellings, so I looked to see if I could find coordinates for those dwellings in the file, and kept at that and eventually I had everything marked up. |
20:19 | < Vornicus> | It... didn't hurt that I had 160 of these things. |
20:19 | < celticminstrel> | Would it help to send a different file with more maps? |
20:19 | < Vornicus> | Not yet. |
20:19 | < celticminstrel> | Okay. |
20:21 | < RichardBarrell> | BoE? |
20:21 | < celticminstrel> | Blades of Exile. |
20:22 | < Vornicus> | Blades of Exile. |
20:22 | <@Derakon> | ...why do you need to hack Blades of Exile? *blink* |
20:22 | < celticminstrel> | Uh, it's open-sourced. |
20:22 | <@Derakon> | It is? Cool. |
20:24 | <@Derakon> | So what is Vorn trying to decipher then? |
20:24 | < McMartin> | The data file formats. |
20:25 | < McMartin> | The structure definitions are there, but not whatever crazy-ass compiler CodeWarrior used back then. |
20:25 | <@Derakon> | Surely if the engine is open-source, then you should have access to the decoders...ah. |
20:25 | < McMartin> | Never was it claimed the "open sources" actually worked~ |
20:25 | < Vornicus> | Yeah. The original was compiled in CodeWarrior for 16-bit macs; and I don't have the padding strides, type sizes, or that sort of stuff. |
20:26 | <@Derakon> | Heh. |
20:26 | | RichardBarrell [mycatverbs@Nightstar-3b2c2db2.bethere.co.uk] has quit [Connection closed] |
20:26 | < Vornicus> | At least I know the endianness! |
20:26 | <@Derakon> | I hadn't considered that the data might be compacted in a form that wasn't explained directly by the source code. |
20:27 | < McMartin> | You haven't looked at much commercial software, especially prior to the actual standardization of the languages used~ |
20:27 | < McMartin> | Direct binary struct dumps ahoy~ |
20:28 | <@Derakon> | Random: some day, we will be able to fire up emacs and type M-x port-program, and it will prompt us for a destination language and port everything to that~ |
20:28 | < Vornicus> | Good god. |
20:28 | < McMartin> | UQM's original source code included such gems as arrays indexed deliberately with negative indices so as to look at members in the struct that contained the array |
20:28 | <@Derakon> | (It might not be a good port~) |
20:28 | <@Derakon> | McM: ;_; |
20:30 | < Vornicus> | time to go. |
20:32 | < celticminstrel> | You know the endianness? |
20:32 | <@Derakon> | Macs of that era were big-endian, IIRC. |
20:33 | < celticminstrel> | Yes they were, but Windows was little-endian, so it could be either. That said, it should be easy to figure out since he had some magic numbers in the header to handle that... |
20:33 | < celticminstrel> | I'd rate big-endian more likely though, on account of the file being called "Blades of Exile Base" rather than "bladbase.exs". |
20:54 | | * Derakon examines his Motivation Tank, discovers it is empty. |
20:59 | | * Stalker adds salt. |
21:01 | | * gnolam fills it with bacta. |
21:17 | | gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has quit [[NS] Quit: Z?] |
21:44 | | ST is now known as Anno[Laptop] |
22:09 | <@jerith> | http://chrisfenton.com/homebrew-cray-1a/ |
22:11 | | Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has joined #code |
22:11 | <@Derakon> | He got the website back up? Hunh. |
22:13 | <@TheWatcher> | pft, that's neat |
22:18 | | shade_of_cpux_ [chatzilla@Nightstar-20a84089.dyn.optonline.net] has joined #code |
22:21 | | shade_of_cpux [chatzilla@Nightstar-20a84089.dyn.optonline.net] has quit [Ping timeout: 121 seconds] |
22:21 | | shade_of_cpux_ is now known as shade_of_cpux |
22:35 | | Tarinaky [Tarinaky@Nightstar-f349ca6d.plus.com] has quit [Connection closed] |
23:13 | | Reiv [orthianz@Nightstar-31d6a228.xnet.co.nz] has quit [Operation timed out] |
23:39 | | Rhamphoryncus [rhamph@Nightstar-bbc709c4.abhsia.telus.net] has joined #code |
23:53 | <@Derakon> | Ahh, geeks. "I'm having trouble trying to do X." "Well, why are you trying to do X then?" |
23:54 | <@Derakon> | "You shouldn't do X. You should do Y instead." "I'm simplifying for the purposes of describing things; X is in fact sufficiently complicated that Y is not possible." "You shouldn't be doing X." |
23:55 | <@Derakon> | Reminds me of http://www.xkcdb.com/?5088 |
23:57 | < Anno[Laptop]> | That's epic. |
--- Log closed Wed Sep 01 00:00:43 2010 |