Time Nick Message 01:38 johnnyjoy Are there any plans to make the screen size of the client visible in lua on that server? 01:39 est31 johnnyjoy, what would be the usecase? 01:40 est31 Tesseract, its ok for me if hmmmm agrees. 01:40 johnnyjoy Same user case as a browser. The UI would be able to adjust to the screen better. 01:40 est31 pixel number doesnt help 01:40 est31 pixels can be different size 01:40 est31 look at retina screens 01:41 johnnyjoy That makes sense. 01:41 johnnyjoy Is there any short cut for full screening something like inventory? 01:41 est31 no, formspecs aren't fullscreen 01:41 johnnyjoy I did not think so. 01:41 johnnyjoy Thanks. 01:42 est31 they take as much as they need, if screen isn't enough, there is a problem 01:43 est31 johnnyjoy, the pr is still not ok with git 01:44 johnnyjoy Wouldn't it be easier for me to delete my repo, and start with a new fork? 01:44 est31 johnnyjoy, it seems you have two "same" commits differing in a detail, and then you made a merge commit 01:44 johnnyjoy I really am not comfortable with using up your time. 01:44 est31 no problem, now i have time 01:45 johnnyjoy What can I do about the 2 commits? 01:45 est31 so first lets find out what the commits differ 01:45 est31 there is the `git diff` tool 01:46 est31 run git diff 05e51c5 f8def41 01:46 johnnyjoy It returned nothing. 01:46 est31 thats good 01:46 johnnyjoy However with that argument, it did. 01:47 johnnyjoy Small change to 2 files. 01:48 johnnyjoy Changes to builtin/game/chatcommands.lua & CMakeLists.txt 01:57 est31 johnnyjoy, back 01:58 johnnyjoy Glad to see you that you are. 01:58 est31 seems everything in your rebase worked fine except the final step 01:59 est31 putting the "branch pointer" onto it 01:59 est31 one of the two commits is "good" the other one "bad" 01:59 est31 the "bad" one has changes we dont want to include 02:00 johnnyjoy Okay. 02:00 est31 seems the good one is 05e51c5507 02:00 est31 just checkout the branch of your PR, then git reset --hard the commit name 02:01 est31 then push -f 02:01 johnnyjoy Just to be straight, git reset --hard 05e51c5507 02:01 est31 yes 02:03 johnnyjoy It's done. 02:04 est31 nice 02:04 est31 now one thing, the commit's author is "root" 02:04 johnnyjoy That is a positive word. I like where this is going. 02:05 est31 you should perhaps change the author to you again. 02:05 johnnyjoy Will do. 02:06 johnnyjoy git commit --amend --author="Author Name " Would something like that work? 02:07 est31 yes :) 02:07 johnnyjoy It's done. 02:41 hmmmm [05:05 PM] hi hmmmm another one for your consideration sometime #2935 02:41 ShadowBot https://github.com/minetest/minetest/issues/2935 -- Mgv7: Use density noise + density gradient for mountain terrain by paramat 02:41 hmmmm isn't that sort of like making an entirely new mapgen at this point? 02:41 hmmmm i mean i realize it's as simple as adding a line and changing a multiplication to division, but it completely changes the shape of everything 02:42 hmmmm there are a surprising number of users who like mapgen v7 as it exists right now... i wouldn't do anything too radical with it if i were you 02:42 hmmmm [09:40 PM] Tesseract, its ok for me if hmmmm agrees. <--- the threading cleanup? looking now 02:42 hmmmm [05:34 PM] i get crashes where gdb reports in Mapgen::propagateSunlight(irr::core::vector3d, irr::core::vector3d) () when calling vm:calc_lighting(tmin, tmax) sometimes. am i using it wrong? 02:43 hmmmm sounds like paramat should take a look at this one since he's the last one to modify LuaVoxelManip::l_calc_light ;-) 02:44 hmmmm it's likely that sokomine is providing invalid input, but no lua api should ever crash with invalid input 02:50 hmmmm hmmm, https://github.com/minetest/minetest/pull/2613/files#diff-8f01816ac62a60ae302d07174b96e5e8R28 why move the standard lib headers to the bottom? is there a reason in particular? we never really decided on a formal header include ordering, but I put global includes at the top and then local includes 02:50 est31 hmmmm, all 3 of the cleanups 02:50 est31 network, threads, logging 02:50 hmmmm oh wow I forgot about the network cleanup 02:51 est31 the mod profiler cleanup is very small, but depends on logging 02:53 hmmmm what's up with these 02:53 hmmmm #define ATOMIC_ADD_EQ(T, v, x) return __sync_add_and_fetch(&(v), x); 02:53 hmmmm why the return statement?? 02:53 hmmmm in fact, all of those macros look like they need work 02:54 est31 btw, is style class ClassName { 02:54 hmmmm yea 02:54 est31 or is style class ClassName 02:54 est31 { 02:54 hmmmm the first 02:54 est31 ok 02:55 hmmmm the bracket going on the next line is only for functions 03:04 johnnyjoy est31, please let me know if there is anything else I can do. 03:32 hmmmm alright I added some comments on the threading cleanup 03:33 hmmmm est31: merge https://github.com/minetest/minetest/pull/2828 ? 03:34 hmmmm jenkins-ci/android-nrz is kinda flakey lately 03:34 hmmmm we can ignore that failure 03:36 est31 hmmmm, its because sf.net is down 03:36 hmmmm still!? 03:37 est31 http://sourceforge.net/blog/sourceforge-infrastructure-and-service-restoration/ 03:37 est31 "We’re holding SCM service restoration for last, and will be prioritizing Git service to be first within that process based on its fast verification path. Holding SCM restoration for last allows us to take a cautious approach and to free our staff to interact with developers if any concerns exist when the service is re-enabled." 03:37 est31 still. 03:39 hmmmm oh man there's so much stuff to review 03:39 hmmmm it could be a full time job 03:58 est31 why do we have InvalidPositionException? 03:58 hmmmm in reference to what? 03:58 est31 most of the times we do a catch(InvalidPositionException &e){} anyways 03:58 est31 its just stupid to bother the exception handler 03:59 est31 its not zero cost when it has to handle exceptions 04:00 est31 but shrug not that important 04:11 Sokomine hmmmm: i provided the edges of the area for which light was to be calculated - and those included the shell. without parameters (and without the shell), it doesn't crash, but lighting is not updated correctly 04:16 hmmmm celeron did go a bit exception-crazy at first 04:16 hmmmm it wasn't until much later it was determined that exceptions are super freaking slow and also hard to deal with effectively 04:17 hmmmm minetest started out as this coding exercise where C++ flavor-of-the-month "best practices" were used everywhere 04:18 est31 well its still around, thanks to the fact that not the "language-of-the-month" was used 04:43 hmmmm honestly, i've found that the best C++ code eschews all features but the STL and classes 04:43 hmmmm there is a lot of crap that's more troublesome than it's worth 04:44 hmmmm in general the rule is to don't listen to what ##C++ tells you to do 06:05 Hunterz wow too many commits and PRs last weekend... nice 06:25 est31 Tesseract, time to review my areastore pr? 07:00 VanessaE paramat: are you aware that default acacia wood isn't being registered with the stairs mod? 07:08 freemint_ In lua_api.txt i read that minetest can nnot play steroe sounds positionally is this limitation still in place? 07:10 VanessaE it is still the case. 07:10 VanessaE limitation of OpenAL I think. 07:11 freemint_ ok, 07:11 freemint_ thx 07:40 est31 hmmmm, can you remember discussions about interleaving coordinates for mapblocks? 07:40 est31 aka using z order curves 07:41 hmmmm not really 07:42 hmmmm is this for building your areastore more efficiently? 07:42 est31 no, for loading mapblocks 07:42 est31 if we store them in interleaved manner, the database perhaps aligns them on the disk that way too 07:43 est31 I dont know whether we have that guarantee 07:43 est31 if we have however, z order curves are a fine thing 07:43 est31 esp. on hard disks which have seeking time 07:43 hmmmm no we definitely do not have that guarantee 07:44 hmmmm and Z order curves aren't being used right now 07:44 est31 yes 07:44 hmmmm some insane algorithm that doesn't quite make much sense but somehow guarantees uniqueness is used instead 07:44 hmmmm if it were up to me i'd keep things extremely simple and it would just be the concatenation of each 10 bit value 07:44 hmmmm rather, 12 bit 07:45 est31 z order curves are concatenation too but per bit 07:45 hmmmm right, so X Y and Z are interleaved 07:45 est31 and closeness in the map means also closeness in ids 07:46 hmmmm I see how it works yeah 07:46 hmmmm I'm just wondering whether there would be any tangible benefit from that 07:47 est31 what do databases align the blocks after 07:47 hmmmm whatever they feel like doing.. 07:53 est31 if it were up to me i'd keep things extremely simple and it would just be the concatenation of each 10 bit value 07:53 est31 isnt it that right now? 07:53 est31 https://github.com/minetest/minetest/blob/990a96578f20244626b6b9f67f8e79a7e2e614ea/src/database.cpp#L51 07:53 hmmmm it would seem like that, wouldn't it 07:54 hmmmm consider negative components 07:55 est31 oh 07:56 est31 err 07:56 est31 no 07:56 est31 its casted 07:56 hmmmm exactly 07:56 est31 doesnt that mean "take raw memory value" 07:56 hmmmm well not quite 07:56 hmmmm for x86/64, yes 07:57 hmmmm so consider what (u64)-1 looks like in memory 08:28 Calinou est31, can I make the website competition topic a sticky? 08:28 est31 yes please 08:28 est31 thanks 08:29 Calinou done 10:45 rubenwardy http://irc.minetest.ru/minetest-dev/2015-07-20#i_4331860 10:45 rubenwardy Isn't it the second? The logic for braces on new line for functions is that you can't next functions 10:45 rubenwardy oh wait, you can nest classes 10:45 rubenwardy nevermind 13:05 Routhinator An odd question as I cannot find anything on this. Is there a maximum number of Biomes allowed? Ive been trying to figure out why a few are not generating and trying to rule out "too many biomes" as a possibility. 13:11 Zeno` I don't think there should be 13:12 Zeno` (well, there would be a limit -- everything has a limit -- but if you're encountering it something would be wrong) 13:13 freemint_ The Biomes are stored inside a LUA table as long you do not have more biomes then a lua numer (something like 10^42) you must only fear that your machine has not enough ram 13:14 Routhinator OK so maybe it's my humidity and temp settings. Will have to review them tonight. 13:15 freemint_ maximum number on a 64 bit 5.6* 10^300 13:16 freemint_ humidity and temp are depircated why do you use them? 13:18 Routhinator They are? I was basing my biomes off paramats biomesdev. It's still used in his. If this settings are deprecating then how do you define the humidity and temp of a biome? 13:19 freemint_ this feature was dropped 13:20 freemint_ The weather functions were dropped at Apr 18, 2014. -wiki 13:20 freemint_ http://dev.minetest.net/minetest.get_humidity http://dev.minetest.net/minetest.get_heat 13:21 freemint_ :-) sorry 13:22 kahrl IANAMD but I'm pretty sure biome generation is still based on two noise maps called "heat" and "humidity" 13:23 kahrl they are/were unrelated to the ex-API functions get_heat and get_humidity 13:23 freemint_ Maybe it is, yes, but these are not exposed to the modding api 13:25 kahrl not directly, but heat_point and humidity_point in a biome def affect it 13:27 freemint_ ok you are rigth, look in the latest chagelog : 13:27 freemint_ Made biome heat and humidity noise parameters user-configurable (kwolekr) 13:27 freemint_ Maybe this helps. 13:45 est31 Zeno`, you really think #2913 is caused by the pop_front function? 13:45 ShadowBot https://github.com/minetest/minetest/issues/2913 -- Unexplained, random crashes (segfaults, aborts, OOM) 13:46 est31 Yes it appears in all gdb output, but not inside the crashing thread's stack 13:46 est31 hrmm perhaps its zeno humor 13:47 Zeno` est31, I haven't traced it myself 13:47 Zeno` it seems a good place to start though 13:48 Zeno` for several reasons... 13:48 Zeno` that Mutexed thing was reimplemented not all *that* long ago 13:48 nrzkt hi Zeno` ! 13:48 Zeno` howdy :) 13:49 Zeno` nrzkt, you reimplemented it :P 13:49 est31 from how I see it, the function is just "lets wait for something to happen on the producer queue" 13:49 Zeno` is pop_front properly protected and checks are in place for empty queue? 13:50 est31 my theory its blocking 13:50 Zeno` est31, possibly 13:50 est31 at least there is sem_timedwait() call from libpthread.so higher in the stack 13:51 Zeno` Why are these hard ones always so hard to reproduce? heh 13:51 Zeno` higher in the stack doesn't mean much 13:51 est31 higher, lower, depends on how you look at it 13:51 Zeno` the function higher in the stack may have been passed an invalid pointer 13:52 est31 you are in australia, everything thats up for me is down for you :) 13:52 Zeno` lmao :) nice :P 13:52 Zeno` est31, have you reproduced that bug? 13:52 est31 nope 13:53 Zeno` damn :( 13:54 est31 most of the crashes are e.g. inside constructors 13:55 est31 sign for that something terrible has happened to the heap 13:55 est31 perhaps the line before, perhaps far away 13:55 Zeno` well my main reasons for suspecting that are: a) it was changed since the last release; b) it seems like a race condition (which point to some kind of mutex fault) 13:56 Zeno` It's hard to say though because I haven't been able to reproduce. It's just a guess 13:56 nrzkt Zeno`, in reimplement what ? 13:57 Zeno` the mutexed queue 13:57 nrzkt oO 13:57 nrzkt where ? 13:57 Zeno` #2913 13:57 est31 I think container.g 13:57 ShadowBot https://github.com/minetest/minetest/issues/2913 -- Unexplained, random crashes (segfaults, aborts, OOM) 13:57 est31 .h* 13:58 Zeno` hmm 13:58 * Zeno` looks at the dumps again 13:58 nrzkt i only switch from std::list to std::queue into MutexedQueue to have a faster container 13:59 nrzkt you said taht std::queue is thread_safe ? 13:59 est31 no, I dont think we have guarantee for that 13:59 est31 it has to be mutexed I think 13:59 Zeno` I said it was thread safe? 14:00 nrzkt i may have misunderstood what you said 14:00 Zeno` possibly, because I don't believe it would be at all 14:00 nrzkt std::queue is not threadsafe 14:00 Zeno` (language barrier possibly) 14:01 Zeno` nrzkt, I am not pointing the finger at you btw. I don't *know* if that's even the cause. It's just a guess 14:02 Zeno` and even if it was part of that change then I don't care as long as it's fixed :) 14:02 Zeno` It could be anything. Those traces are not 100% useful because they are from release builds :( 14:02 kilbith est31: you're aware of that simpler implementation of PostGreSQL by SN ? https://forum.minetest.net/viewtopic.php?p=184869#p184869 14:03 Zeno` and I'd rather catch the fault and backtrace manually, but I can't reproduce 14:03 est31 Zeno`, VE does have a debug build 14:03 est31 kilbith, now i am, thanks 14:04 Zeno` hmm 14:04 nrzkt Zeno` no problem :p 14:05 Zeno` it's a tricky one :( 14:05 Zeno` you might be right though, est31 14:06 Zeno` wait time seems a bit high 14:06 Zeno` but... nah 14:06 Zeno` dammit! I will have to pay for a VPS again 14:07 Zeno` seems like the only way to reproduce heh 14:07 Zeno` hold on 14:07 Zeno` data = {vmanip = 0x0, seed = 0 14:07 Zeno` is vmanip a pointer? 14:08 est31 lotsa 0s in there 14:08 est31 vmanip = 0x0, seed = 0, blockpos_min = {X = 0, Y = 0, Z = 0}, blockpos_max = {X = 0, Y = 0, Z = 0}, blockpos_requested = {X = 0, Y = 0, Z = 0} 14:08 Zeno` what's vmanip though? 14:08 Zeno` I don't have the src handy 14:09 est31 I guess its short for "voxel manipulator" 14:09 est31 so most likely a pointer 14:09 Zeno` yeah I know that much, but does that function check for NULL ptr? 14:10 Zeno` or maybe it gets the real manipulator from somewhere else, but then why is it passed as a param? 14:11 est31 hrmm 14:11 est31 data is only declared at line 457 14:11 est31 in theory its out of scope 14:11 est31 (as stack variable) 14:11 est31 "BlockMakeData data;" 14:11 Zeno` wait... 14:12 est31 I guess the compiler did some reorderings 14:12 Zeno` where is BlockMakeData declared? 14:13 Zeno` depending on the size of an object of that type, whacking it on the stack could certainly cause a segfauly 14:13 est31 emerge.h 14:14 Zeno` well it doesn't look all that big :D 14:14 Zeno` we have another queue though... 14:15 est31 also VE's server has tons of RAM 14:15 Zeno` RAM would not matter. Do char array[29402942094]; even if you have the RAM it will segfault 14:15 est31 why 14:16 Zeno` because the stack size is set by the OS 14:16 est31 ok 14:16 Zeno` it's allocated on the stack and not the heap 14:16 Zeno` yeah 14:16 est31 I've thought stack size is unlimited, until stack and heap have a meetup. 14:19 Zeno` pretty sure it's not... write a quick test case ;) 14:23 Zeno` although with -O2 is might mitigate it 14:25 Zeno` same as it mitigates stack overflow for tail end recursion 14:26 est31 kilbith, for the record I think the older implementation is by johnnyojoy, because his copyright headers date to 2014, and his pr wasnt rebased at the start, but he didnt release it until now. 14:26 est31 fwiw 14:30 Zeno` http://codepad.org/sggxINAq 14:32 Zeno` I doubt the array needs to be *that* large 14:43 Zeno` maybe the queue pre-allocates some memory (but it'd probably do that on the stack so that's a red herring) 14:43 Zeno` *sigh* 14:44 Zeno` s/on the stack/on the heap 14:44 * Zeno` assigns est31 this bug 14:46 kilbith est31: ok, but SN's one looks cleaner from my standpoint 14:47 est31 what are the points you see SN did better? 14:50 kilbith "It automatically sets up the tables and only requires one extra setting (postgresql_connection_info)." 14:51 est31 yea, thats more appealing 14:51 kilbith also SN is master in polishment :p 14:51 est31 yea 14:52 nrzkt if prefer SN implementation too 14:52 nrzkt it's very clear 14:52 nrzkt but i hope this use authentication 14:53 Zeno` night all 14:53 Zeno` I'll be back tomorrow 14:54 kilbith nite 14:54 kilbith i guess SN intends to put it in PR (rebased recently) 14:55 est31 we should make benchmarks, and compare between interleaved, split up like in his pr, or the old "just throw it together" approaches 14:56 est31 I wonder what SN suggests about doing with storing mod data in the database 14:57 est31 whether to make extra table 15:00 TBC_x have you tried to compile it with sanitizers? 15:00 est31 nrzkt, #2931 needs second +1 15:00 ShadowBot https://github.com/minetest/minetest/issues/2931 -- Allow random menu images for subgames by sfan5 15:01 est31 gtg 15:04 nrzkt est31: i agree but this is annoying for redis 15:06 nrzkt est31: validated 15:06 nrzkt please note i shutdown the jenkins project for building PR for android because irrlicht source download has a problem 15:15 H-H-H nrzkt according to the tweets it shouldnt be to long before its back up 15:15 nrzkt H-H-H thanks for the review 15:15 nrzkt does they add spyware into source with the next release ? :p 15:16 H-H-H lol nah just some bloatware instead usually :P 15:16 * H-H-H ducks 15:23 TBC_x what version of irrlicht is the android built against? 15:25 TBC_x I got the zip here http://en.osdn.jp/projects/sfnet_irrlicht/downloads/Irrlicht%20SDK/1.8/1.8.1/irrlicht-1.8.1.zip/ 15:25 TBC_x checksum matches with sf zip 15:29 freemint_ minetest.get_voxel_manip([p1, p2]) -- "wiki" what does the [ ] mean in this context? Or is this bullshit in the wiki? 15:36 nrzkt it's the latest if i remember 15:36 nrzkt look at jenkins logs 15:48 jin_xi freemint_: i think its interval notation, meaning its inclusive p1 and p2 15:49 freemint_ How is the usage? 15:51 freemint_ jin_xi {p1, ..... , p2} ? 16:25 rubenwardy updated #2908 16:25 ShadowBot https://github.com/minetest/minetest/issues/2908 -- Make map limit configurable by rubenwardy 16:46 TBC_x whoops 16:47 TBC_x double free corruption in network code 16:47 TBC_x coredump lost for some reason 16:47 TBC_x but got libc stack trace 16:48 TBC_x client 17:30 TBC_x oh boy 18:31 TBC_x damn: df -h /home 18:31 TBC_x Filesystem Size Used Avail Use% Mounted on 18:31 TBC_x /dev/sda3 274G 260G 385M 100% /home 19:02 paramat hi sfan5, please can i merge game#582 ? 19:02 ShadowBot https://github.com/minetest/minetest_game/issues/582 -- Default: Add biome API tree schematics and enable growing by sapling ABMs by paramat 19:02 sfan5 looks good 19:10 paramat thanks 19:11 paramat also if you have time, comments on game#581 ? 19:11 ShadowBot https://github.com/minetest/minetest_game/issues/581 -- New stairs and slabs discussion 19:30 paramat VanessaE yes i will add acacia to stairs soon, ^ that's the discussion issue 19:33 paramat Routhinator, maximum is 256 biomes in the biome API 19:34 paramat heat and humidity have not been dropped 19:34 hmmmm no, don't tell me somebody wants more than 256 biomes 19:35 paramat what was removed was dynamic weather, which was a dynamic variation of heat and humidity 19:35 hmmmm if so that's just dumb 19:35 hmmmm i will not modify any biome code to accomodate an absurd number of biomes 19:35 paramat no they don't, they were just checking if they had exceeded a low limit 19:35 paramat http://irc.minetest.ru/minetest-dev/2015-07-20#i_4332375 19:35 hmmmm oh ok 19:35 paramat heh 19:36 paramat 256 is more than enough 20:06 RealBadAngel so, any more comments on #2934? 20:06 ShadowBot https://github.com/minetest/minetest/issues/2934 -- Add wielded (and CAOs) shader by RealBadAngel 20:11 hmmmm i approve 20:39 nrzkt i looked at environment code and i found a very very strange loop in the code, i don't know exactly why this is like this but i think this loop should be removed: https://github.com/minetest/minetest/blob/master/src/environment.cpp#L1174 20:39 nrzkt i don't see why we need to loop over active blocks multiples times to apply abm 20:41 nrzkt somebody can enlighten me about this loop ? 20:42 nrzkt i removed it from my code into AppleTree server and i didn't notice any problem with many loaded mapblocks with abm (i have many mods, like mobs from tenplus1 20:44 nrzkt hmmmm: have you got an idea ? 21:32 nrzkt if someone can review #2940 before merge it could be good. It's a minor cleanup in the code 21:32 ShadowBot https://github.com/minetest/minetest/issues/2940 -- Remove profiler.h include where it's not needed and some unreachable code. by nerzhul 21:33 nrzkt if a dev agree, merge it 21:54 paramat now pushing game#582 21:54 ShadowBot https://github.com/minetest/minetest_game/issues/582 -- Default: Add biome API tree schematics and enable growing by sapling ABMs by paramat 22:01 Tesseract hmmmm: I'm not sure how to fix one of your comments. I have to implement something like this: """(mutex.lock(); T _val = (op); mutex.unlock();, _val)""" (in a macro). It has to be an expression and has to lock and unlock the mutex before returning the value of "op". 22:02 Tesseract (The return-in-macro comment) 22:03 paramat push complete 22:03 Tesseract I can do something with an inline function call, but I'd like something more concise. 22:06 nrzkt Tesseract can you review #2940 please ? 22:06 ShadowBot https://github.com/minetest/minetest/issues/2940 -- Remove profiler.h include where it's not needed and some unreachable code. by nerzhul 22:27 Routh hmmmm: No no ridiculous 256 biomes haha, just wanted to see if 18 was too much. 22:27 Routh paramat has me sorted now though, I had too many biomes with similar heat/humidity 22:28 paramat and you can adjust the average size of biomes by adjusting the noise 'spreads' of heat and humidity noises 22:28 paramat by adding lines into .conf 22:28 Routh Gotcha, I'll look into that once I get them all working properly. Lots of tweaking left to do. 22:30 paramat if you want vertically separated biomes to appear vertically aligned they need identical heat/humidity values 22:30 Routh identical heat/humidity but distinct y_min and y_max? 22:31 Routh I was wondering, so that means I can have a 'mountain top' biome? 22:32 paramat yes 22:32 paramat if separated vertically you can use identical biome points 22:32 paramat my systems are based on https://upload.wikimedia.org/wikipedia/en/2/29/PrecipitationTempBiomes.jpg 22:33 paramat plus a glacier biome in extreme cold 22:35 Routh Yes I reused some of yours directly, hope you don't mind. 22:36 paramat of course not =) 22:37 Routh The funny thing is this is the easy part of my plan. The City Ruins biome will be the hardest for my subgame, and thus I'm saving it for last. 22:38 paramat nice idea, i like generative architecture 22:52 hmmmm Tesseract: Hmm, I see your plight 22:52 hmmmm this might be a good situation for inline functions 22:53 hmmmm but then again you need actual text substitution here 22:57 hmmmm Tesseract: Oh well, it can't be helped 22:59 hmmmm nrzkt, that is not a loop, it's a silly way to avoid goto 23:00 hmmmm usually whenever you see a do { } while (0) in the actual code (not a macro definition) this is a good candidate to be made into a function 23:44 TBC_x wtf? I just found a 3.2 GB plaintext file on my disk 23:44 TBC_x and it is not a log 23:48 TBC_x it is random sequence of bytes in ascii... looks like xxd output