00:12:42 RE: div_rand_round, something doesn' tmake sense to me here in one of the twom implementations 00:12:52 I see what advil is getting at about sequence points 00:12:53 but 00:12:55 https://github.com/crawl/crawl/blob/b60e247eb4dafc9d0a3a18b078440513962df170/crawl-ref/source/random-var.cc#L222 00:13:03 Unstable branch on cbro.berotato.org updated to: 0.33-a0-647-gb60e247eb4 (34) 00:13:04 the same expression is repeated multiple times 00:13:21 why do we need x_min1 and x_min2 and x_max1 and x_max2? 00:13:29 why isn't x_min and x_max enough? 00:14:08 ooh. I kinda get it. It's still I think unnecessary in this case 00:15:13 But the funciton in question is const, so adding duplicate locals doesn't improve things, afaik 00:36:23 <03w​heals> cgettys: c++11 already supports scoped enums and we use them in a few places, changing existing enums would be fine but low priority 00:55:07 Monster database of master branch on crawl.develz.org updated to: 0.33-a0-647-gb60e247eb4 01:06:41 You're right, I misread the spec. I figured it wasn't high priority either way, just was curious - is the sort of thing that would result in me reading a lot of code w/o having to know it well to start with, and might be a "nice to have" 04:35:19 Experimental (bcrawl) branch on underhound.eu updated to: 0.23-a0-5249-g4a8afe7061 05:07:22 Unstable branch on crawl.akrasiac.org updated to: 0.33-a0-647-gb60e247 (34) 06:42:58 <06w​ensley> Would it be easier just to get crawl building with a version of musl that supports whatever ancient kernel CAO has, and then just ship them a single static binary? 07:37:09 New branch created: pull/4212 (1 commit) 13https://github.com/crawl/crawl/pull/4212 07:37:10 03radio-gra02 07https://github.com/crawl/crawl/pull/4212 * 0.33-a0-648-gc6214344b9: Clarify options_guide.txt regarding player-defined dump sections 10(16 minutes ago, 1 file, 16+ 2-) 13https://github.com/crawl/crawl/commit/c6214344b932 07:37:51 we might also build with a modern GCC + an old glibc, if there is such a toolchain readily available somewhere. 08:08:51 <09g​ammafunk> hah! really should have checked that one a lot more carefully 09:22:26 <08n​icolae> okay. i'm back home from break. hopefully i can get back into more crawl. or at least getting around to uploading what i got. 10:01:23 <05i​coson> I'm not sure if the extra sequence points in div_rand_round are necessary, but it's more general to assume that rv::min and rv::max may need their own sequence points 10:01:47 <05i​coson> reading the code it's not obvious to me that I needed to do that, but a lot of that code isn't very obvious, so I may have had a reason; wouldn't recommend messing with it 10:03:07 <05i​coson> (that was responding to a discussion with cgettys last night) 10:08:46 I'll take a look too 10:19:06 Kind of weird, I think none of the methods in random-var.cc are ever non-deterministic? They don't do the rolling at all. 10:19:24 The only "random" thing is they model random distributions. 10:19:37 Why are sequence points a concern. 10:21:16 Yeah but those parts were explicitly added in the same comment that left the TODO in the beginning of the file 10:23:58 Oh, cdddf7c was a general "turn everything related to random into sequence points" commit 10:24:23 I think the random-var changes were redundant and just to be safe. 10:51:00 Tinttamiau (L20 KoHs) ASSERT(false) in 'god-companions.cc' at line 866 failed. (Shoals:4) 10:59:47 <03i​mplojin> // Should be impossible to reach here unless we did something wrong ASSERT(false); 10:59:59 <03i​mplojin> looks like something went wrong with accounting of apostles by mid? 11:58:52 <06w​ensley> Does anyone else have anything lined up for April fools? Because otherwise I'm very tempted to make the god who hates your guts for worshipping them 11:59:26 <06w​ensley> Other April fools ideas: sourceless malevolence causes drop bears to fall on you 12:01:07 I see people talking about Giraffetaur a few times recently (presumably due to that item creation chance bug) 12:05:31 <06w​ensley> We could also have multiple jokes I suppose. We could accumulate them and have the old ones reappear every year 13:03:22 <08n​icolae> bring back abyssal knights and have them start on a:7 13:06:16 <09g​ammafunk> april fool's jokes would tend to be maintenance nightmares if they're complex. what's worked best in the past is either something modest that's like flavor/tile changes, or for something elaborate where there's potential long-term issues with scoring/databases, just remove after it's finished 13:06:57 <09g​ammafunk> honestly I think we prefer to just not introduce longterm scoring/db issues if possible, but replacing the trunk links/launchers to run an april fool's crawl is something we've only successfully done once, with the nostalgia branch 13:07:07 <09g​ammafunk> which was awesome and a lot of fun, but it was fairly high effort 13:07:37 <09g​ammafunk> Mayflytaur was a funny/nice april fools but did introduce some scoring weirdness that's ideal to avoid 13:08:09 <06w​ensley> This is why we need the stabilized modding interface 🙂 13:08:41 <09g​ammafunk> I mean, that could be nice for a number of reasons, but maintenance remains an issue 13:09:10 <09g​ammafunk> if you mean the ability to load mods in a more integrated and on-the-fly way, yeah that could help, but this is a massive undertaking that also requires server infrastructure 13:09:23 <09g​ammafunk> so it's about as likely as the fabled single-sign-on at that point 13:11:08 <06w​ensley> What I mean is that if we had a modding interface, then we could implement April fools jokes as mods and then leave them around, because the only burden is maintaining the interface itself. And presumably any game with mods loaded would naturally be excluded from the listgame db (or at best have the stats tracked separately) 13:13:01 <09g​ammafunk> yes they could be left around, but they'd still run into maintenance issues as the game evolves. You would have to have some kind of versioning, and just designing/implementing this mod scheme is tons of work. I mentioned above that mod support would require server infrastructure support (in order to deal with issues like, yes, logs, among a few other things). So that's another layer to implement 13:13:50 <09g​ammafunk> It's just an extremely ambitious project to undertake, and I don't think april fool's is a sufficient motivating factor for anyone who might actually come along and make it 13:13:58 <09g​ammafunk> can always be proved wrong, but I'll believe it when I see it 13:15:59 <06w​ensley> I'm of a contrary opinion, I think that bolting on a complete modding interface all at once is too great a task, and that April fools jokes are small enough and unserious enough that they're the perfect place to begin thinking about what a modding interface would need (while acknowledging that there's no long-term commitment and that any groundwork laid is free to be ripped out at any time) 13:17:56 <06w​ensley> Naturally even doing the slightest thing could involve a ton of work (e.g. I suspect the game is not prepared to handle the fact that the number of gods might not be determined until runtime), but it's a smaller cardinality of infinity 13:20:06 <09g​ammafunk> Increasing the number of gods isn't really a major technical hurdle here, not even close to the most significant one. It's just a whole bunch of issues, and like I said server issues likewise have to be well understood and can't be hand-waved away 13:20:36 <09g​ammafunk> anyhow, if someone does want to start an april fool's project that's a bit more elaborate, starting sooner rather than later could help. 13:21:40 <09g​ammafunk> what tends to happen is someone mentions something several months prior, then it's late march and the remember and realize they don't have much time (and at that point if it's anything elaborate, there's no hope of special server support, so it'd have to go in trunk) 13:23:18 <06w​ensley> I'm still unclear what you mean by server support, aside from the scoring database. Worst case scenario, we just make modding local-only at first (or forever), just like wizmode 13:23:38 <09g​ammafunk> well, people typically want april fools to be experienced online 13:24:07 <09g​ammafunk> but yeah if you wanted something only for local crawl that's fine but...how do you get to fool people when they have to manually update to get your april fool's 13:24:37 <06w​ensley> Sure, and the mayflytaur example is a motivating reason to turn off scoring for that day, so other than scoring what sort of server infrastructure needs to be tweaked? 13:24:56 <09g​ammafunk> we don't turn off scoring, that's not a thing we'd do 13:25:25 <09g​ammafunk> but like, if you have a mod system and players can select mods 13:26:10 <09g​ammafunk> where's the central repository of mods? how is that loaded on servers? how is it presented to console/webtiles clients, this all requires support in the dgl server/webtiles server and in the webtiles client 13:26:15 <06w​ensley> If April fools is only present in trunk builds (?) then I don't see why it couldn't be turned off for a day, unless the reason is "we're afraid of how much would break if we tried" 13:27:59 <09g​ammafunk> 1) people who don't use your april fools stuff really don't want their trunk games to not be stored 2) probably a host of logistical issues if we did make trunk not emit logfile/milestone lines, likely related to when all the servers updated trunk 13:28:19 <09g​ammafunk> re (2) it's definitely a thing where we'd prefer to not find new exciting ways to run into scoring issues 13:28:58 <09g​ammafunk> so in the past we've done mostly (1) just put it in trunk and it'll be weird in whatever way for scoring (e.g. Mayflytaur) or (2) coordinate with servers to have the trunk launchers run a special april fool's version of crawl 13:29:16 <09g​ammafunk> (2) is a bit closer to what you're describing above but requires serious coordination with server admins 13:29:43 <09g​ammafunk> and we've only done it once on a couple servers (nostalgia branch, not sure if before my time something like that was tried, but I doubt it) 13:31:14 <09g​ammafunk> I think if you had an april fool's god that was just a challenge mode of sorts 13:31:35 <09g​ammafunk> that wouldn't fundamentally cause weird scoring issues so it's probably fine for trunk 13:32:19 <09g​ammafunk> but if you make it potentially give players a way to get e.g. a weird low turncount win somehow it gets annoying (the mayflytaur issue again) 13:33:46 <09g​ammafunk> !lg * dg god!= won 13:33:54 <04C​erebot> 4. Ge0ff the Cryomancer (L27 DgGl of Gozag), escaped with the Orb and 15 runes on 2021-03-04 13:15:05, with 11076711 points after 151872 turns and 8:29:07. 13:33:58 <09g​ammafunk> oops 13:34:05 <09g​ammafunk> !lg * dg god!= won !gozag 13:34:10 <09g​ammafunk> different trunk bug that one above was 13:34:20 <04C​erebot> 3. skillrobin the Talismancer (L27 DgJr of Nemelex Xobeh), escaped with the Orb and 3 runes on 2014-06-06 02:02:53, with 1504854 points after 118039 turns and 6:25:33. 13:35:25 <09g​ammafunk> you can also get stuff like this from april fools buggy code, which isn't exactly the end of the world, but would be nice to avoid (april fool's stuff tends to not get much testing ahead of time, unsurprisingly) 13:42:39 <06w​ensley> Don't worry about scoring, anyone who dares to ascend with the orb of zot in tow will find that their game mysteriously exits/tab mysteriously closes/ssh mysteriously disconnects when they go up from D1 😛 13:43:35 <06w​ensley> The god of self-loathing would rather destroy the universe then allow you to ascend in its honor 13:51:37 New branch created: vaultupdates (1 commit) 13https://github.com/crawl/crawl/tree/vaultupdates 13:51:38 03hellmonk02 07[vaultupdates] * 0.33-a0-648-gcfdbf87da5: update a zot vault + a new one 10(75 seconds ago, 1 file, 33+ 1-) 13https://github.com/crawl/crawl/commit/cfdbf87da5ea 13:52:24 <06r​egret-⸸nde※> *??death cob 13:53:08 <04C​erebot> death cob (z) | Spd: 25 | HD: 14 | HP: 81-108 | AC/EV: 10/15 | Dam: 35(drain speed) | undead, doors, evil, unbreathing | Res: will(40), cold, poison+++, drown, miasma, neg+++, foul_flame, torm | Vul: holy | XP: 1526 | Sz: tiny | Int: human. 13:56:41 <06r​egret-⸸nde※> A little empty for conjurers (maybe some draconian customers in the other sections?), and it very minorly annoys me to have not rotated a 10x17 vault, but it seems fine otherwise. 13:58:59 <09h​ellmonk> oh, good idea 13:59:35 <09h​ellmonk> I was a little worried about gigantic pack of death cobs 14:18:38 03hellmonk02 07[vaultupdates] * 0.33-a0-649-geedfef7a78: add shoppers 10(12 minutes ago, 1 file, 5+ 4-) 13https://github.com/crawl/crawl/commit/eedfef7a7804 14:28:16 <04d​racoomega> Comprehensive list of remaining Lear's specific handling code (as far as I can tell): C++ if (is_unrandom_artefact(item, UNRAND_LEAR)) return {SLOT_BODY_ARMOUR, SLOT_HELMET, SLOT_GLOVES, SLOT_BOOTS}; 14:28:23 <04d​racoomega> That's it 14:29:00 <04d​racoomega> (It also works better with equip preview now - actually showing the real change that would happen if you removed all the items needed to make room for it) 14:29:21 <04d​racoomega> (As do two-handers and shields if you're currently wielding a two-hander, etc.) 14:31:15 <04d​racoomega> Very close to having only save compat and marshalling code left now 14:32:09 <04d​racoomega> (Though I want to finish up a cute unrand or two to go with this before I push - as something to show off parts of the new system beyond formicid gloves and some assorted QoL improvements) 14:52:08 <08n​icolae> formicid gloves? do formicids get two gloves now 15:09:30 <04d​racoomega> The plan is that they will, yes 15:14:24 <06w​ensley> Awesome. I'll commission some detailed fanart of formicid hands for a new splash screen 15:16:08 -!- rozlav87 is now known as rozlav8 15:16:43 <06w​ensley> Do palentonga get two boot slots? 15:17:30 <06w​ensley> Er, armataurs. Goes to show how often I play them... 15:34:15 <02M​onkooky> https://discord.com/channels/205277826788622337/205316046230388737/1025925956751343697 15:34:21 <02M​onkooky> this was for armataur so it'd need updating 16:11:45 <06p​leasingfungus> belated, but removed monsters technically become the 'removed monster' ghost, they don't exactly vanish 16:11:51 <06p​leasingfungus> ancient saves haunted by long-gone foes... 16:13:21 <09h​ellmonk> is there anything else on the agenda for this version? looking for a small project 16:25:23 <09g​ammafunk> it's not just scoring, also milestones. We don't want to have hanging milestones for games that then go unscored and don't finish. The idea of having a version of trunk that just doesn't emit any logfile/milestone data for april fool's is half interesting, but I think the basic issue is that april fool's stuff is conditional on select. For example you have to choose to worship the april fool's god. You could make it work a bit 16:25:23 better for a april fool's species/class, since that's chosen at the beginning of the game, and I suppose if you require the april fool's god to be a zealot class and only allow worship that way, it could work. Conditional disabling of milestones/logfile for certain trunk games can work when it's based on a selection at game start. But it's a bit spooky and easy to get wrong. Feels like the best thing to do is design more elaborate april fool's stuff 16:25:24 to just be sane enough so that it's fine if it's in trunk for a while 16:26:46 <09g​ammafunk> maybe some portal maps? New ones are always exciting for players and they're not too hard to make. But they're not the most exciting project either 16:29:22 <04d​racoomega> I do have a lot of small things on my not even slightly organized to-do list (besides the big ones), but I'm not sure how many of them make any sense to suggest someone else do. Either because of technical complexity, design judgement calls I haven't even made myself yet, or because they're basically just bugfixes (which feels a little menial to suggest someone else do ^^; ) 16:40:06 Unstable branch on underhound.eu updated to: 0.33-a0-647-gb60e247eb4 (34) 16:42:54 <04d​racoomega> I don't know how you feel about removing the weird behavior where getting petrified while already petrifying causes you to immediately petrify (which can result in, essentially, instant petrification by walking earthen tomes if you roll really poorly). Being able to be instantly petrified feels very contrary to the fundamental differentiation of petrification from paralysis in the first place (...I did actually die this way once, 16:42:55 and it took me a while to even realize how it happened >.>). I'd planned to cut this out for a while now (and give petrification a sizeable power multiplier compared to paralysis, which I think also makes sense given its general lower threat level and !cancelation curing it. Maybe lower basilisk HD slightly so they get less of this extra power compared to other sources?) I mean, I don't know that this is exactly a 'fun' small project ^^; 16:48:55 <04d​racoomega> That was an embarrassingly long time meticulously comparing marshalling code to see where the mismatch was that was causing things to complain about save corruption on load, only to realize I had it wrapped in the wrong minor version tag entirely >.>; 16:53:55 <04d​racoomega> Is "Let forms give you real mutations while transformed into them" a small project or not, I wonder? ^^; 16:54:17 <04d​racoomega> My sense of scale may be growing warped 17:05:59 <02M​onkooky> I looked in to that at one point! but tbh I don't remember anything of my findings 17:10:10 <04d​racoomega> It doesn't seem like it should be too bad, really 17:11:05 <04d​racoomega> "YAML-ify form-data" >.> 17:21:24 <09g​ammafunk> yeah, I felt bad when adding intrinsic talisman properties 17:21:34 <09g​ammafunk> that I didn't implement just pulling that data directly from the form data 17:21:42 <09g​ammafunk> but it looked a bit awkward 17:22:12 <09g​ammafunk> somewhat similar situation to the awful armour property flags we have 17:25:27 <04d​racoomega> If you mean 'converting the baked-in resists from forms into proper resist mutations', I feel that's like... a second step after just allowing forms to have real mutations (for things like cold-blooded and whatnot) 17:26:44 <04d​racoomega> (Since one would also need to figure out, for example, how to handle the case of having an elemental vulnerability mutation + a resist mutation from a form, which normally conflict with each other directly) 17:51:24 <09g​ammafunk> no, I just mean extracting the information about what the resists are from the current form data 17:51:54 <04d​racoomega> Oh, is even that not straightforward at the moment? =/ 17:53:05 <04d​racoomega> Looks like there's fairly straightforward things like Form::res_fire() to me 17:53:30 <09g​ammafunk> well the problem is one of iteration 17:53:48 <09g​ammafunk> with artefacts I loop over the list of artefact properties 17:54:16 <09g​ammafunk> with form data I have the resists as an int that I assume are the packed flag values 17:54:59 <04d​racoomega> That is true, yes 17:55:39 <09g​ammafunk> so I'd like to avoid having just a long series of checks for all possible monster resists 17:55:51 <09g​ammafunk> but I guess it's just not that long of a list, looking at the enum right now 17:58:03 <09g​ammafunk> seems funny to me that this is using a monster resist flag 17:58:07 <09g​ammafunk> when it's for players only... 17:58:39 <09g​ammafunk> oh there is this handy cpp const mon_resist_flags ALL_MON_RESISTS[] = { MR_RES_ELEC, MR_RES_POISON, MR_RES_FIRE, MR_RES_COLD, MR_RES_NEG, MR_RES_ACID, MR_RES_MIASMA, MR_RES_TORMENT, MR_RES_PETRIFY, MR_RES_DAMNATION, MR_RES_STEAM, }; 17:59:13 <09g​ammafunk> but it's sort of annoying because you have special flag values for e.g. rF+, rF++, rF+++ 17:59:41 <09g​ammafunk> lol 17:59:59 03Implojin02 07* 0.33-a0-648-gd80f97202f: Dig for Victory! 10(31 minutes ago, 1 file, 3+ 1-) 13https://github.com/crawl/crawl/commit/d80f97202f38 18:00:00 <09g​ammafunk> feels a bit of a stretch 18:00:00 <09g​ammafunk> isn't Victory an early unrand? 18:00:06 <03i​mplojin> yep! 18:00:14 <09g​ammafunk> I'm wondering if Implojin has ever dug for victory in nethack 18:00:40 <09g​ammafunk> obviously my vault is only loosely related to said practice 18:01:47 <09g​ammafunk> it feels sort of bad that we're robbing the player of what's likely a superior piece of equipment in that superb_item it replaces 18:01:58 <09g​ammafunk> makes me wonder if you should just put it in one of the monster chambers instead 18:02:10 <09g​ammafunk> like the central one, perhaps on top of the guaranteed hatch there? 18:02:43 <03i​mplojin> i defer to the verdict of the vaultsmythe council 18:02:56 <04d​racoomega> I mean, a lot of those don't have any artprop they could possibly conflict with anyway, no? 18:03:00 <09g​ammafunk> yeah maybe I'll make a tweak 18:04:19 <09g​ammafunk> I'm not sure I understand what you're saying. I'm just pointing out that this is a convenient source of my desired iteration. My point about artprops was just that it's easy to iterate over those systematically but it's hard to do this with something like a flag 18:04:50 <09g​ammafunk> so what I need for talismans is a thing that I can iterate over to ask "does this talisman form have this resist" 18:05:39 <09g​ammafunk> so this is a list of resists forms can have, which is nice, although I'm not sure if I can actually query it easilly...probably so? 18:07:33 <04d​racoomega> I guess I thought it went in the direction of each artprop asking individually "Is there any reason I can't be on this item?" (which potentially includes a bunch of different ad hoc checks) rather than iterating from resists->artprops in the other direction. (I admit, I've not read the new code closely enough to say much, so I am sorry if I'm just babbling) 18:07:46 <09g​ammafunk> oh, you're saying artefact talismans won't generate conflicts with any of these via other props 18:08:18 <09g​ammafunk> yeah, so the thing there is, if we don't have this list of talisman resists, we'll get things like artefact serpent talismans that explicitely have rPois as a granted property 18:08:39 <09g​ammafunk> so yes, there are conflicts, just with a property and itself (via the resist the form always has) 18:09:25 <09g​ammafunk> I don't think it's desireable to have artefact granite talismans spending good properties on rElec that's useless, for example, whatever you might think about e.g. dragon form losing some rF by getting rF- 18:09:54 <04d​racoomega> No, I agree 18:10:12 <09g​ammafunk> we had this discussion some days ago, but it occurred to me that I didn't bring this up at the time (because I just wasn't thking about that), but yeah PF's old code did prevent that very situation, at least 18:10:34 <04d​racoomega> I mean, yes, certainly using artprops to pointlessly duplicate something the item already does is silly 18:10:46 <04d​racoomega> Ring of flight with extra flying 18:12:05 <09g​ammafunk> yeah, I mentioned in the commit the issue with e.g. dragon form and how one could try to make randart talismans smarter about conflicts but how there are potential issues, but I just went with the approach of not worrying about dragon form's rF++/rC- 18:12:37 <09g​ammafunk> I have a local branch with some further item creation refactoring and I can probably poke at getting the talisman resists from form data directly now that I've looked at this a bit more closely 18:12:56 <09g​ammafunk> seems like it's doable, and then we won't have duplication of form data (essentially) 18:37:49 03gammafunk02 07* 0.33-a0-649-g5bcc8a2132: Tweak Victory placement 10(7 minutes ago, 1 file, 2+ 3-) 13https://github.com/crawl/crawl/commit/5bcc8a213248 18:38:10 <09g​ammafunk> if anyone wants to make an unrand called "Trap!", let me know as I have an idea what vault we might put it in 18:58:22 lol 19:48:37 I know I've kinda missed the discussion here, but RE: modding, for that to really work, my personal opinion is that it works best when the entire game is structured as a mod 19:49:57 So the entire game is "just" an engine, then the core items are basically an always-installed mod 19:50:14 The distribution problem is real 19:50:53 Less so if the mod files are something scripting + config files so installing a mod is "just" copy the files 19:52:35 CDDA takes the approach of bringing some of the top mods in-tree (opt-in/out at character start time - well, world start time, but that's another discussion, their equivalent to dungeon can have multiple characters explore it) 19:52:40 But yeah, that'd be a massive project 19:54:21 On the plus side, you could shove deprecated items into "old-version-support" mods 19:54:35 On the minus side, you'd have to restructure huge parts of the game :D 20:04:34 s/huge parts of the/the whole/ 20:06:58 I'm sure I could find 1 function somewhere you wouldn't have to restructure :P 21:59:32 Maybe getting somewhere on the whole GLU removal thing, maybe 21:59:37 nope not quite yet 22:10:09 perhaps the only functions we don't need to restructure for modding are those involved in GLU :P 22:10:39 Probably 22:10:44 it looks insanely simple 22:10:50 except for the include maze 22:10:54 which is baffling me 22:11:08 there's some magic set of includes and defines that make the function available 22:11:09 that we need 22:16:18 Yeah, ok, I have a local commit that still does mipmapping, appears to be identical in output 22:16:21 and so on 22:16:30 the only problem is I haven't worke dout said ifdefs 22:16:43 I just handwrote extern "C" void glGenerateMipmap (GLenum target); 22:16:48 to prove it woul dwork :D 22:19:58 It's literally just "add glGenerateMipmap(GL_TEXTURE_2D); after using glTexImage2D normally" 22:22:17 I may need a second pair of eyes to make sense of this 22:22:25 I'd think if I define GL_GLEXT_PROTOTYPES 22:22:45 and GL_VERSION_3_0 1 22:22:53 and included crawl-ref/source/contrib/sdl2/include/SDL_opengl_glext.h 22:23:05 thenI should have the declaration of my function 23:35:15 Unstable branch on crawl.develz.org updated to: 0.33-a0-649-g5bcc8a2132 (34) 23:57:28 Windows builds of master branch on crawl.develz.org updated to: 0.33-a0-649-g5bcc8a2132