00:01:05 so you need to find an AMU_* with ARTP_CONTAM 00:19:32 alrighty, i'll poke around 00:29:05 interesting that a grep -R for ARTP_CONTAM only brings up flavor text and definitions for enums 00:29:14 is it a status effect that is always generated at run time maybe? 00:33:04 ??phantom mirror 00:33:04 phantom mirror[1/5]: An evocable - creates a friendly illusory duplicate of a target monster; consumed on use. Duration increases with Evocations and decreases with target's MR (minimum duration is 6). Stacks in your inventory! For the rakshasa ability, see {rakshasa[2]}. 00:33:59 !source cast_phantom_mirror 00:33:59 1/1. https://github.com/crawl/crawl/blob/master/crawl-ref/source/mon-cast.cc#L3184 00:34:15 looks like only rakshasas cast that? 00:34:55 er. rakshasas are the only monsters that cast phantom mirror? I didn't see a link back to Mara yet (still looking) 00:35:05 @??mara 00:35:06 Mara (13R) | Spd: 10 | HD: 18 | HP: 123-171 | AC/EV: 12/14 | Dam: 30 | 05demonic, 10weapons, 10items, 10doors, evil, see invisible | Res: 06magic(140), 05fire++, 03poison, 04rot, 13neg+++, 13torm | Vul: 08holy | XP: 8053 | Sp: pain (d17) [06!sil], b.fire (3d27) [06!sil], mara summon [06!sil], sum.illusion [06!sil], blink [06!sil] | Sz: Medium | Int: human. 00:37:43 oh nm. looks like mara uses it for the fake maras, but uses a different spell for the illusion. 00:37:49 I'm sure there's a good reason why 01:33:04 !source 01:33:05 clone_mons 01:33:05 Syntax is '[:[-]]', or the name of a function/#define/vault 01:33:13 !source clone_mons 01:33:13 1/1. https://github.com/crawl/crawl/blob/master/crawl-ref/source/mon-clone.cc#L271 01:33:31 I can't follow what's going on with the parameter: obvious 01:46:33 ??plan 01:46:33 plan[1/1]: https://crawl.develz.org/wiki/doku.php?id=dcss:planning:release_plans 01:50:02 -!- amalloy_ is now known as amalloy 01:51:13 johnstein: obvious is set to true if the player could see both the original monster and the clone 01:51:47 the shenanigans with _obvious are to simplfiy handling of if the caller passed nullptr as the value of obvious 02:00:16 amalloy, I don't even see where obvious is used 02:10:56 also, is it customary to remove a default parameter that is not being passed by any calling function? 02:29:01 johnstein: what do you mean, where it's used? what caller ever uses it, you mean? i haven't looked at that 02:29:15 but i imagine it's being used for messaging 02:29:52 afaict it's being passed at https://github.com/crawl/crawl/blob/03f33331b1035147877d8220656e2ccac7fdbd11/crawl-ref/source/mon-clone.cc#L104 02:30:21 which indeed is used for messaging 02:30:32 sorry, I meant pos 02:30:45 I don't see any call to clone_mons() that passes pos 02:31:08 well 02:31:14 indeed it is currently unused 02:31:36 it exists to allow the caller to specify exactly where to clone to, which doesn't seem like a crazy feature to leave in 02:32:31 although i'm not really impressed with its implementation. it will cause an ASSERT if anyone ever passes a position a monster already exists at 02:32:39 so removing it might be an improvement 02:32:52 yea. I could see how it could be useful. I just didn't know if it was common to prune things like that sometimes. just trying to get a feel for when pruning is a good idea 02:33:08 it often is good, yes. here i wouldn't mind much either way 02:52:53 Monster database of master branch on crawl.develz.org updated to: 0.21-a0-243-g597973d 03:00:36 -!- amalloy is now known as amalloy_ 03:11:45 Unstable branch on crawl.beRotato.org updated to: 0.21-a0-243-g597973d (34) 03:36:40 -!- amalloy_ is now known as amalloy 03:48:10 New branch created: pull/608 (4 commits) 13https://github.com/crawl/crawl/pull/608 03:48:11 03johnstein02 07https://github.com/crawl/crawl/pull/608 * 0.21-a0-228-g766b065: Allow setting attitude of cloned monsters 10(4 days ago, 3 files, 18+ 2-) 13https://github.com/crawl/crawl/commit/766b06501961 03:48:11 03johnstein02 07https://github.com/crawl/crawl/pull/608 * 0.21-a0-229-g1ff3397: Simplify handling a cloned monster's attitude. 10(2 hours ago, 2 files, 3+ 17-) 13https://github.com/crawl/crawl/commit/1ff339778576 03:48:11 03johnstein02 07https://github.com/crawl/crawl/pull/608 * 0.21-a0-230-gfb6f22b: Remove an unused default parameter 10(88 minutes ago, 2 files, 3+ 3-) 13https://github.com/crawl/crawl/commit/fb6f22be6ddc 03:48:11 03johnstein02 07https://github.com/crawl/crawl/pull/608 * 0.21-a0-231-gd7c6c40: Add a docstring 10(87 minutes ago, 1 file, 4+ 5-) 13https://github.com/crawl/crawl/commit/d7c6c40216df 04:03:47 03johnstein02 07https://github.com/crawl/crawl/pull/608 * 0.21-a0-232-gfa3e58f: Unwrap a line 10(5 minutes ago, 1 file, 1+ 2-) 13https://github.com/crawl/crawl/commit/fa3e58f10ae5 04:32:38 -!- amalloy is now known as amalloy_ 06:03:43 Jiyva altar not found on the final Slime Pits floor 13https://crawl.develz.org/mantis/view.php?id=11212 by hauzer 07:06:16 ziggurnaut (L3 DsNe) (D:2) 08:40:01 New branch created: pull/609 (1 commit) 13https://github.com/crawl/crawl/pull/609 08:40:01 03Bernhard M. Wiedemann02 07https://github.com/crawl/crawl/pull/609 * 0.21-a0-244-gc68f053: Sort input file list 10(32 minutes ago, 1 file, 1+ 1-) 13https://github.com/crawl/crawl/commit/c68f0537b67c 10:46:28 p0werm0de (L25 DsFi) ASSERT(who) in 'beam.cc' at line 1971 failed. (Geh:5) 11:14:59 !tell gammafunk https://bpaste.net/raw/a1e61c3aa09b has some qw data with spawn vs nospawn (2000 GrBe games for each) 11:15:00 elliptic: OK, I'll let gammafunk know. 11:17:33 !tell gammafunk it looks pretty reasonable to me, winrate is down a bit but that's not unexpected, and xp seems to match up fairly well for the early game 11:17:33 elliptic: OK, I'll let gammafunk know. 11:20:54 !tell gammafunk I'll probably compare some other chars on qw too, but human testing is more useful at this point... maybe could just test it in trunk for a while? 11:20:54 elliptic: OK, I'll let gammafunk know. 11:21:08 nice 11:21:09 gammafunk: You have 4 messages. Use !messages to read them. 11:21:37 interesting how score is down 11:21:37 it's taking a bit longer to win? 11:21:41 oh wait 11:21:46 the last command is basically computing xp 11:21:51 ah I see 11:21:52 the hard way 11:22:20 so it's getting less XP in the end? 11:22:49 I'd sort of think it would get more under nospawn 11:23:19 yeah, it looks like things start to drop a bit in lairrunes/V/depths compared with spawn 11:23:22 oh, well I guess we did sort of under replace that XP didn't we 11:23:32 the XP lost from spawns, that is 11:23:34 not a huge amount though, I was more concerned with early xp 11:23:47 right, the numbers do look pretty good 11:24:04 e.g. it enters zot at XL 25.18 instead of 25.69 11:24:26 but still always makes it to XL 27 before winning 11:24:29 !apt xp 11:24:29 Could not understand "xp" 11:24:31 !apt exp 11:24:32 Exp: Ha: 1!, Hu: 1!, Ko: 1!, Fo: 1!, HO: 0, HE: N/A, Op: 0, Na: 0, Gr: 0, Gn: 0, Ba: 0, Te: 0, Og: 0, Gh: 0, Mf: 0, VS: 0, Mu: -1, DD: -1, Sp: -1, Mi: -1, Fe: -1, Ce: -1, Dr: -1, Vp: -1, Ds: -1, Tr: -1, DE: -1, Dg: -2* 11:24:49 there are a couple of small issues, one of which I can get your opinion on (although I think I know what you're going to say) 11:25:45 btw if there are any other sequell commands that you want to apply to the data, you can PM them to Seqwell in the next hour or so (or ask me later and I can bring Seqwell back online) 11:26:12 ok, I'll think about that; good way to handle the data 11:26:19 it's just an outdated version of sequell with 7 million qw games 11:26:49 https://github.com/crawl/crawl/pull/606/commits/035259edfecc9579649a39f3d3c37422f4052ea7#diff-337e59ae3f4d2d932ad3cef1ea8d0d4dR267 11:27:06 this "ultra ood thing for absdepth >=12 (D:13 and deeper)" 11:27:26 it had scaling based on turns but it basically always happened from D:13 on in terms of absdepth 11:27:30 but the chance is really small 11:28:00 for choosing monsters as OOD or not for any random monster 11:28:17 so this affects level gen monsters and is still relevant with nospawn 11:28:23 question is do we need to preserve this 11:28:53 the chance of 1/5000 is so small it seems kind of silly, but it would be relevant on some levels 11:28:54 I'd just remove it 11:29:00 yeah, that was my thought 11:29:12 so I'll do some more cleanups, remove that, and rebase/merge, thanks 11:29:27 probably vaults placing crazy monsters is more significant 11:31:22 -!- amalloy_ is now known as amalloy 11:31:44 time to respond to amalloy's review with a chei dunk in every response 11:32:34 only a slouch would take such easy jokes 11:45:34 is there a way to check against null in c++, or do I need to give a variable a dummy value to check against? specifically, stat_type 11:48:02 c++ only has nulls if you are using pointers 11:48:23 (whatever language you are used to that has nulls secretly uses pointers for everything) 11:49:06 the good news is, NUM_STATS is probably a decent "empty" 11:50:10 alright, that makes sense; I use c# normally, and it doesn't really require me to bother with pointers 11:53:35 -!- amalloy is now known as amalloy_ 13:04:55 Unstable branch on crawl.akrasiac.org updated to: 0.21-a0-243-g597973d (34) 13:05:48 03Floodkiller02 07https://github.com/crawl/crawl/pull/600 * 0.21-a0-246-g0336cc5: Manually delete Popup and MenuEntrys in choose_stat 10(68 minutes ago, 1 file, 22+ 11-) 13https://github.com/crawl/crawl/commit/0336cc5b4cad 13:05:48 03Floodkiller02 07https://github.com/crawl/crawl/pull/600 * 0.21-a0-247-gb04d61d: Restructre ifdefs for functions calling choose_stat 10(5 minutes ago, 1 file, 10+ 6-) 13https://github.com/crawl/crawl/commit/b04d61d612de 13:07:05 !crashlog 13:07:58 !lm 13:08:00 7287. [2017-06-15 20:28:17] hyperadvil the Bolt Thrower (L9 HuHu of Dithmenos) became a worshipper of Dithmenos on turn 10716. (D:7) 13:08:15 oh heh 13:08:16 !crashlog 13:08:25 17723. p0werm0de, XL25 DsFi, T:24760 (milestone): http://crawl.xtahua.com/crawl/morgue/p0werm0de/crash-p0werm0de-20170904-144606.txt 13:13:09 looks like a pain bond crash 13:32:03 03advil02 07* 0.21-a0-244-gd4adca8: Don't assume agent is still alive for monster sticky flame 10(4 minutes ago, 1 file, 2+ 2-) 13https://github.com/crawl/crawl/commit/d4adca82686d 13:40:29 <|amethyst> advil: hm... behaviour_event looks like it actually handles a null src 13:40:52 <|amethyst> advil: so maybe it would be better to call it anyway (so the monster gets whacked with a src_idx of MHITNOT) rather than having that if 13:41:17 oh hm 13:41:26 I didn't really check that, I have to admit 13:42:22 <|amethyst> well, there is an // AXE ME comment :) 13:42:37 although, MHITNOT; // AXE ME 13:42:42 <|amethyst> I think the real fix is to make pain bond damage a final effect like yred injury mirror 13:43:11 <|amethyst> there was another crash a day or two ago related to pain bond (and a monster being damaged by exploding monster chunks) 13:43:41 I think there was some issue with doing that, though it may not have been major 13:43:53 that option came up when I originally fixed the recursion 13:44:34 it is a nerf to pain bond, I suppose...not that it couldn't handle a nerf 13:44:48 since now monsters often die before getting to act 13:45:14 <|amethyst> final effect isn't at the end of the whole turn 13:45:41 <|amethyst> it's at the end of each attack and each monster move 13:45:45 <|amethyst> and maybe a few other places 13:46:46 <|amethyst> s/isn't at/isn't just at/ 13:47:10 ah, so maybe the timing won't change very much 13:52:02 the main effect of calling mon_behaviour in that case would seem to be to clear the foe. Do you know if it would get immediately set back to the player? 13:52:15 there's a bunch of other subsidiary stuff that probably should still be done though 13:53:59 <|amethyst> hm, good question 13:55:09 I suppose I could just try to replicate it, but it's an annoying situation to set up :) 13:59:03 <|amethyst> hm, I see that it *doesn't* set the target in that case 13:59:09 <|amethyst> just the foe 13:59:56 oh 14:00:45 <|amethyst> hm 14:01:40 <|amethyst> so if this worked the way it was "supposed" to, with the monster getting the soon-to-be-dead foe as its target 14:01:55 <|amethyst> then _mon_check_foe_invalid would end up resetting the foe to MHITNOT 14:02:50 <|amethyst> it looks like handle_behaviour will reset the foe back to MHITYOU or an ally if it's an enemy, or to an appropriate enemy or you if it's an ally 14:03:55 <|amethyst> but this is based on reading, not testing 14:09:08 Unstable branch on crawl.jorgrun.rocks updated to: 0.21-a0-244-gd4adca8 (34) 14:37:40 -!- neunon_ is now known as neunon 14:37:42 -!- yaknyasn_ is now known as yaknyasn 14:43:41 -!- Webmant9 is now known as Webmant 15:20:18 -!- Rjs- is now known as Rjs 15:30:54 -!- buki_ is now known as buki 16:01:59 -!- Fixer_ is now known as Fixer 18:02:26 Unstable branch on underhound.eu updated to: 0.21-a0-244-gd4adca8 (34) 20:23:35 -!- amalloy_ is now known as amalloy 20:36:09 amalloy: fixed the delete issue, was there anything else you spotted? 20:41:57 |amethyst probably wants to look at it. it's simpler to not use `new` at all than to add the deletes, but if that's a pattern you copied from elsewhere in the codebase it should probably be fixed everywhere 20:42:14 <|amethyst> which pr is this? 20:42:32 #600: https://github.com/crawl/crawl/pull/600 20:44:26 <|amethyst> if you're not sure which are being deleted somewhere else, you need to become sure 20:45:22 <|amethyst> specifically here, MenuEntries are deleted by the containing menu 20:45:35 <|amethyst> also, 20:45:44 <|amethyst> even if they weren't and you did need to delete them by hand 20:46:14 <|amethyst> you created three MenuEntries, so in that hypothetical case would have to delete three of them, too 20:46:30 <|amethyst> hmmm 20:46:48 <|amethyst> ouch, it looks like Popup *doesn't* delete its own entries.. 20:48:05 <|amethyst> yeah, it looks like a lot of the TOUCH_UI stuff in the existing code leaks memory 20:48:45 BTW I don't think anyone has weighed in on whether "stat shifting" is a good idea yet 20:48:49 but I don't think it's a good idea 20:49:28 <|amethyst> hm 20:49:35 <|amethyst> I have no way to test the TOUCH_UI code I think 20:50:10 <|amethyst> or I guess maybe you can turn that on in the Makefile for local tiles even if not playing Android 20:50:14 |amethyst: you can compile with TOUCHUI=Y 20:50:36 it worked when I did it with tiles turned on as well 20:51:11 <|amethyst> I guess all the menu stuff uses pointers and new solely to get polymorphism 20:51:32 <|amethyst> would be better to use unique_ptr these days but I'm not about to make that change 20:51:37 gammafunk: why do you believe it isn't a good idea? 20:51:39 <|amethyst> but at least let me try to fix Popup 20:52:08 I think stat shifting is a good way to explore how it feels to play with 28 strength, 1 int, and 1 dex 20:52:28 but probably not good for a species 20:52:46 elliptic mentioned an idea others had of simply removing the skill menu and having all skills raise slowly in some fashion 20:54:49 if you want to encourage diversification then I think something like that is the way to do it, yeah 20:55:23 alternatively I actually think Dg does a decent job already of encouraging this 20:55:58 though it did a better job before you could focus your stats I guess 20:56:13 (I was not a fan of that change) 20:58:24 yeah, Dg got some of that feel already since they don't have god backup and they have flat apts 20:59:16 yeah, and high stats generally open up more possibilities for what you can do 20:59:28 I forget if I mentioned this here or elsewhere (probably elsewhere) 20:59:41 but I've come to realize from the discussions that keep cropping up about diversification with Gnolls is that most of the changes asked would just make them more like Demigods/Humans 21:00:03 and ends up becoming an argument against adding them 21:01:03 so the purpose of this PR was to try and redirect the focus from forced generalization to making them more about exceptional adaptation 21:01:38 keeping the low unmodifiable stat pool, but letting them flex it around to match whatever gear they find and want to use 21:01:55 I don't think that is how the shifting stats will work in practice 21:02:46 I think people will either go with 28 str 1 int 1 dex and wear heavy armour, or they will go with 1 str 28 int 1 dex and be a pure caster 21:04:07 crawl already encourages adaptation to what you find in many cases and through a couple different gods 21:04:17 so I'm not really sure how to do that for a species 21:04:39 that's very weak to stat drain. but maybe something like 4/22/4 would be popular 21:04:42 I do sort of like the forced generalization thing though, and I don't think it would necessarily be that similar to Dg/Hu 21:04:49 amalloy: gnolls are immune to stat drain, no? 21:04:53 oh 21:05:09 then yes, players will go for 28 21:08:07 elliptic: most discussions about forced generalization that I've been a part of keep circling back to complaints about leaning on Summoning or some other low invest/high power skill 21:09:00 and the current low locked stat version had most complaining about leaning on skills that don't rely on stats (Invo/Evo/Summoning) 21:09:26 well, that's because low stats has the opposite effect to forced generalization 21:09:41 it makes some things close to unusable, which means there are fewer options 21:10:45 well, soft locking the skill levels also reduced options, so a hard lock would likely be the same but magnified 21:14:49 if you think most players would minmax stats to an absolute extreme like that, and it would end up as a problem, a couple solutions could be adding back in stat drain or raising the amount transferred 21:15:52 for example, transferring 5 at a time 21:18:36 <|amethyst> let's see how slow tiles is under valgrind when built with no optimisations... 21:20:44 stat drain isn't actually related to stats' effect specialization problem, that's just dictating how low players would be willing to take their less important stats 21:22:29 <|amethyst> hm... there are a lot of memory leaks here, and also use of uninitialised memory 21:22:34 Floodkiller: I just don't think that low stats is the right approach at all... I didn't play the original version of gnoll but it made more sense to me, and if I understand things correctly some of the criticisms of it would be addressed by simplifying how the skill level lock worked 21:22:40 <|amethyst> but I'm not seeing the Popup-related leak 21:23:10 <|amethyst> build_options_list is a major offender 21:23:15 also if summoning being very powerful at low skill is really that much of a problem then it is a problem with crawl in general IMO 21:24:02 Yeah, it is a problem in general with crawl and with the idea of "forcing" generalization, but that would more suggest that the species concept is flawed 21:24:13 is summoning at low skill really that good? 21:24:26 however if you can think of a way to address MPA's concern about the skill breakpoints, that would at least be one hurdle down 21:24:45 gammafunk: well, that would certainly be addressed by this idea 21:25:02 elliptic: sure, shadow creatures exists, but most summons spells don't depend too strongly on spellpower, and you can use many summons spells at once 21:25:56 since no breakpoints and also no player control over skilling 21:26:06 but the old version of gnoll probably won't see quite as much summons specialization compared to current gnolls I'd guess, since more things are reasonbly viable with the old version 21:26:59 elliptic: what's the idea of how the skill level lock worked? You mean "all skills trained all the time, slowly"? 21:27:09 s/worked/would work/ 21:27:15 yes, that seems like the simplest way of achieving balanced skills 21:27:29 yeah, that would definitely address MPA's concern 21:27:46 sort of vaguely has a nice thematic feel for the species as well 21:27:56 "short attention span" so they can't even choose skills to train =p 21:28:39 could literally just take human, change all the apts to something highish (not sure what would be reasonable, maybe +4 or so), and make sure that all skills are on at all times (even if you normally wouldn't be able to train them) 21:28:57 how would the display work? 21:29:09 just show "Skill" on the m screen? 21:29:29 I guess you could make it normal but options not selectable 21:29:37 right, you'd have to show levels I suppose 21:29:45 since that's important info for some spells/things maybe 21:29:54 well, that depends on whether we actually want all apts to be equal - it might make some sense to have some apts be 1 or 2 different 21:30:04 right, I was thinking that too 21:30:18 also I think you'd want the starting levels of the skills to be based on background still 21:30:33 so yeah, probably just the normal skill screen but without the ability to toggle skills on/off 21:31:03 Sounds like kind of a neat idea 21:31:21 Depends on if Floodkiller likes it and if anyone else really hates it 21:31:28 I'm not sure exactly how well this would work but it is where I would start if I wanted to encourage players to consider using every item they find 21:34:20 you'd probably want stats to be relatively high on this species, or at least higher than human 21:36:49 what we have here is a rollercoaster ride of stats 22:02:54 I'd be okay with trying it, but I'm worried that it would be giving up on trying this implementation too early (I'm still interested in trying this PR) 22:04:25 I'm also starting to get a bit of design fatigue with rewriting it often; I'd like to finish formatting my extended reform for the wiki, get feedback on that, then start working on it 22:05:05 but I'm still working on Gnoll finished because I don't want it to just remain half finished then tossed away 22:05:10 Gnoll first* 22:12:19 I can't really see how stat shifting would be a good direction for the species 22:13:16 But if you don't want to work on them for a bit, no reason why you can't work on another project and come back to them later 22:32:51 03|amethyst02 07* 0.21-a0-245-ga5e3c5f: Fix memory leak in TOUCH_UI popup code. 10(85 minutes ago, 4 files, 34+ 26-) 13https://github.com/crawl/crawl/commit/a5e3c5ff6676 22:32:51 03|amethyst02 07* 0.21-a0-246-gf6eb2b2: Avoid another useless new in popup-related code. 10(82 minutes ago, 1 file, 6+ 10-) 13https://github.com/crawl/crawl/commit/f6eb2b272542 22:32:51 03|amethyst02 07* 0.21-a0-247-g1d7a809: Remove an uninitialised memory access in init_mons_spells. 10(65 minutes ago, 1 file, 1+ 0-) 13https://github.com/crawl/crawl/commit/1d7a8097ce70 22:32:51 03|amethyst02 07* 0.21-a0-248-ga68f6df: Make sure options.option_behaviour contents are freed. 10(42 minutes ago, 2 files, 10+ 2-) 13https://github.com/crawl/crawl/commit/a68f6dfccf16 22:32:51 03|amethyst02 07* 0.21-a0-249-g0593ebf: Avoid a compile-time warning in TOUCH_UI mode. 10(38 minutes ago, 1 file, 2+ 0-) 13https://github.com/crawl/crawl/commit/0593ebf185be 22:32:51 03|amethyst02 07* 0.21-a0-250-g788435b: Avoid leaking a few regions in TilesFramework::shutdown(). 10(19 minutes ago, 1 file, 8+ 2-) 13https://github.com/crawl/crawl/commit/788435b1a31d 22:32:51 03|amethyst02 07* 0.21-a0-251-g5e8393f: Fix one more tiles memory leak. 10(5 minutes ago, 1 file, 4+ 0-) 13https://github.com/crawl/crawl/commit/5e8393f93954 22:33:48 <|amethyst> Floodkiller: if you're doing something that involves a stat popup, see the changes to the code in attribute_increase 22:34:11 <|amethyst> Floodkiller: you shouldn't have to delete anything manually, unless you allocate the Popup itself with new, which you shouldn't need 22:34:50 <|amethyst> Floodkiller: however, I would recommend finding a way to split "prompt for a stat" off into a separate function, so you don't have to duplicate the code from that function 22:35:37 <|amethyst> I guess maybe I should have written those a little less verbosely 22:35:54 <|amethyst> MenuEntry * const status = new MenuEntry("", MEL_SUBTITLE); could be just const auto status = new MenuEntry("", MEL_SUBTITLE); 22:36:37 <|amethyst> also, valgrind is a lot happier now, though there are still two or three unfixed leaks 22:38:40 <|amethyst> we never call FT_Done_Face() to free fonts; there are a couple related to SDL_CreateWindow (but we do call SDL_DestroyWindow() and SDL_Quit, so I dunno), and there's one deep inside my GL library which probably isn't something we can fix 22:38:56 <|amethyst> I don't know enough about SDL and FreeType to fix those, though 23:09:06 Unstable branch on crawl.jorgrun.rocks updated to: 0.21-a0-251-g5e8393f (34) 23:24:39 amalloy: re that comment about simplifying the monster number die, looks like Pan's monster numbers have a lot less variance 23:25:10 oh sorry 23:25:13 I'm wrong 23:25:30 yeah never mind, it's fine 23:25:56 At some point a long time ago I got it in my head that NdM meant rolling an M-sized die and multiplying the value by N 23:26:04 interesting 23:26:08 and every so often I make that mistake again 23:27:01 so I was thinking it was Var(Y) = Var(3X) where X is uniform 0-8 in this case 23:27:21 but it's just 3*Var(X) since Y = X + X + X 23:28:13 I seem to only make that mistake whenever looking at variance of NdM, the N really looks like multiplication 23:53:52 what platforms does TOUCH_UI run on, anyway? i thought the android version was just a webtiles wrapper. is there some madman building crawl to run natively on the ipad? 23:56:46 (i was going to say Palm Pilot to make it more absurd, but i don't know that the stylus really counts as a touch ui)