00:03:15 03ebering02 07[positional-magic] * 0.25-a0-144-ga3e78d0: drop! Placeholder tile for Foxfire 10(6 minutes ago, 1 file, 1+ 1-) 13https://github.com/crawl/crawl/commit/a3e78d06b3fa 00:03:17 03ebering02 07https://github.com/crawl/crawl/pull/1200 * 0.25-a0-144-ga3e78d0: drop! Placeholder tile for Foxfire 10(6 minutes ago, 1 file, 1+ 1-) 13https://github.com/crawl/crawl/commit/a3e78d06b3fa 00:59:43 ebering: out of curiosity, what workflow do you have that involves pushing commits with !drop to upstream? i'm not complaining, do whatever you want on your branch, it just seems weird to me and i like learning how people use git 01:13:22 amalloy: I plan to rebase this before merging to master, replacing that commit with an actual tile 01:13:54 So it means approximately FIXME ? 01:13:56 But this has a live experimental and some players messaged me asking why foxfires were TILE_ERROR 01:15:32 So yes, it means approximately fixme 01:18:31 I don't actually know if autosquaash will turn a drop! into a drop in the rebase 01:23:17 i don't think so. i don't use autosquash but afaict it only knows about fixup and squash 01:23:54 I suppose the correct way™ would be to have the real tile be a squash or fixup to that commit 01:25:03 right, eventually it will be 01:25:14 but it's useful-ish to have some kind of marker on the commit to remind you to do that 01:26:13 03ebering02 07[positional-magic] * 0.25-a0-145-gbca9aa5: squash! Positional magic 🔥: New spell Foxfire 10(37 seconds ago, 1 file, 4+ 4-) 13https://github.com/crawl/crawl/commit/bca9aa59aa8e 01:26:15 03ebering02 07https://github.com/crawl/crawl/pull/1200 * 0.25-a0-145-gbca9aa5: squash! Positional magic 🔥: New spell Foxfire 10(39 seconds ago, 1 file, 4+ 4-) 13https://github.com/crawl/crawl/commit/bca9aa59aa8e 01:26:45 tbh i also think it's fine to never drop the commit, just make the placeholder part of the permanent history 01:30:50 Experimental (positional-magic) branch on crawl.kelbi.org updated to: 0.25-a0-145-gbca9aa59aa 01:31:01 that rebuild cycle 01:56:35 Let's have the conversation we actually need to be having about ebering's commits 01:56:45 which is his use of forbidden emojis 01:58:47 Could be Positional 🎩 🔥: New spell 🦊🔥 03:11:46 Unstable branch on crawl.beRotato.org updated to: 0.25-a0-110-ge29c8f2 (34) 03:54:58 Fork (bcadrencrawl) on crawl.kelbi.org updated to: 0.22.1-1006-g2460259046 04:58:57 re FIXME commits, my approach is to prefix the message with WIP:, with notes on what needs doing in the message body 04:59:30 then I have a (somewhat messy) pre-push hook that prevents me pushing such commits to specific branches (i.e., master) 06:45:37 03Aidan Holm02 07[ui-next] * 0.25-a0-149-g8ca42b1: fixup! Refactor menu button activation handling 10(9 minutes ago, 1 file, 1+ 1-) 13https://github.com/crawl/crawl/commit/8ca42b105cb1 06:45:37 03Aidan Holm02 07[ui-next] * 0.25-a0-150-g8020751: fixup! Sync all widget state on layout push 10(13 minutes ago, 3 files, 11+ 9-) 13https://github.com/crawl/crawl/commit/80207519d4ee 06:45:37 03Aidan Holm02 07[ui-next] * 0.25-a0-151-ga781fe9: fixup! Use textbox widget for msgwin_get_line() popup 10(12 minutes ago, 1 file, 0+ 1-) 13https://github.com/crawl/crawl/commit/a781fe93c70b 06:45:37 03Aidan Holm02 07[ui-next] * 0.25-a0-152-g81d8b74: fixup! Add focus sync 10(12 minutes ago, 1 file, 1+ 1-) 13https://github.com/crawl/crawl/commit/81d8b74be119 08:32:04 did something get a lot worse about step from time? 08:32:13 maybe I've never tried it on a level with a lot of enemies 08:32:43 for example it takes about 7s at 100% cpu to run on V:5 08:35:16 (which can cause it to get killed on some servers as in 1205) 08:42:59 mangrove and thorn hunter don't pacified. 13https://crawl.develz.org/mantis/view.php?id=12128 by sdynet 08:44:28 yes, something definitely changed about step from time in 0.24 08:44:43 there was another report about jiyva too iirc 08:49:03 advil: do you have a save I could profile with? preferably one that can be opened on 0.23 (or before the slowdown) 08:49:22 I've done some profiling already fwiw 08:49:36 it's not obviously ui-related if that's what you're worried about 08:50:24 but it's very easy to create; &_chei&^200&A27&~v5ad 08:50:34 (from memory) 08:50:56 it's something in monster move 08:51:43 on local tiles I'm getting around 1 second for a V5 step from time 08:52:28 is your build optimized? 08:52:54 some of this might be debug code 08:53:59 ah, yeah, it takes _much_ longer on a debug-lite build 08:54:46 for reference what I'm looking into is https://github.com/crawl/crawl/issues/1205 09:05:10 for me it's all in try_pathfind 09:05:48 and half of it is in foo::assert_validity 09:06:00 yes, it's mostly assert_validity for me (on a debug build) 09:06:56 which I think is coming from some enchantment stuff 09:06:59 https://www.dropbox.com/s/eaqm5tfzvrv3e48/Screenshot%202019-11-19%2009.06.48.png?dl=0 09:07:14 still not sure if any of this should be showing up on a server build though 09:08:36 this is a Very Crawl stack trace: https://www.dropbox.com/s/myd3lgi172wkfi8/Screenshot%202019-11-19%2009.08.27.png?dl=0 09:12:52 heh, yeah I noticed constantly scanning worn artefacts was a hotspot in debug builds a while ago 09:14:05 aside from assert_validity, the rest of the time seems to mostly be in stl goop that wasn't inlined 09:15:53 although that doesn't really explain why it got slower, since none of that is new in 0.24 09:15:54 I also see a big hotspot in monster::has_ench 09:16:10 I'm not sure it really did get slow, I was comparing a release build vs a debug build 09:16:29 I just checked it on CAO and while it's slower than local, it wasn't slow enough to trip the stuck process detector 09:16:50 that's bizarre; has_ench accounts for 0.8% of my runtime 09:17:37 the bulk of that time is spent in stl stuff so depending on how your profiler works it may or may not be showing it 09:18:17 it shows it; i think it's more likely that profiles will be highly save-dependent 09:24:53 maybe, or our stl is differently optimized 09:26:04 most of this is in std::__1::__tree_const_iterator, [...nonsense continues] 09:26:24 and by most, I mean all, the sampled time for has_ench (and get_ench) is literally 0ms 09:27:06 it's part of attitude checks 09:29:51 haha if something triggers a dispersal trap during SfT it blinks you 09:31:03 classic 09:32:00 annoyingly, stack traces aren't working properly for me, so I'm not sure where try_pathfind is being called from 09:35:45 weirdly, I'm not seeing try_pathfind at all; though given how it's called, I suspect its weight may be determined by how many monsters start aware of you 09:37:35 the main candidate call is in handle_behaviour 09:46:29 turns out CFLAGS=-fno-omit-frame-pointer breaks tilesheet generation for some bizarre reason 09:46:34 yak_shaving_depth++ 10:00:04 hm cannot replicate that dispersal trap, maybe it was a delayed travel effect from no time passing 10:04:38 if it does happen it's def. a bug 10:07:51 what's puzzling is that it seemed to happen about halfway through the SfT 10:08:06 from reading the code I don't see any way for it to trigger, though 10:08:51 and I know I had done a whole bunch of 0 time wizmode actions 10:08:51 so it's probably that 10:14:39 ebering: should I pin your reddit thread about the branch? 10:19:02 advil: maybe 10:19:08 heh 10:19:11 I'm a bit worried about the usual suspects derailing it 10:19:34 yeah, it seems like there's some conspiracy theorizing 10:19:34 but it's probably worth the risk since eNon gave some good feedback 10:19:34 I could like actually moderate the thread 10:19:46 oof if you're up to it 10:21:29 but yes it would be appreciated if it's not too much trouble 10:21:44 spectating the people playtesting has produced a lot of good feedback 10:21:58 and sdynet is a hero for aggregating info from the korean community 10:26:17 gotta try it myself 10:28:00 03Aidan Holm02 07[ui-next] * 0.25-a0-118-gd4936e2: Add text entry widget 10(5 weeks ago, 2 files, 575+ 0-) 13https://github.com/crawl/crawl/commit/d4936e25bce7 10:28:00 03Aidan Holm02 07[ui-next] * 0.25-a0-119-gea73cfa: Add hotkey event handling support 10(5 weeks ago, 2 files, 25+ 0-) 13https://github.com/crawl/crawl/commit/ea73cfa6a33d 10:28:00 03Aidan Holm02 07[ui-next] * 0.25-a0-120-g191d387: Use new hotkey API 10(5 weeks ago, 5 files, 32+ 53-) 13https://github.com/crawl/crawl/commit/191d3873baa9 10:28:00 03Aidan Holm02 07[ui-next] * 0.25-a0-121-gf63eb7b: Remove Layout::add_event_filter() API 10(5 weeks ago, 2 files, 0+ 9-) 13https://github.com/crawl/crawl/commit/f63eb7bfeb5a 10:28:00 03Aidan Holm02 07[ui-next] * 0.25-a0-122-g7470829: Improve Widget::for_each_child() helper 10(5 weeks ago, 2 files, 9+ 11-) 13https://github.com/crawl/crawl/commit/7470829e0bd1 10:28:00 03Aidan Holm02 07[ui-next] * 0.25-a0-123-gf752f24: Add widget internal child tracking 10(5 weeks ago, 6 files, 30+ 5-) 13https://github.com/crawl/crawl/commit/f752f24f8454 10:28:00 03Aidan Holm02 07[ui-next] * 0.25-a0-124-g1eeb8ab: Move controller event handlers to popup widgets 10(4 weeks ago, 5 files, 15+ 15-) 13https://github.com/crawl/crawl/commit/1eeb8ab23a37 10:28:00 03Aidan Holm02 07[ui-next] * 0.25-a0-125-g30cadaf: Make shift-tab work on unix console 10(7 days ago, 1 file, 1+ 0-) 13https://github.com/crawl/crawl/commit/30cadafd7d2e 10:28:00 03Aidan Holm02 07[ui-next] * 0.25-a0-126-g9ead4e4: Add widget focus cycling 10(4 weeks ago, 5 files, 803+ 21-) 13https://github.com/crawl/crawl/commit/9ead4e493abc 10:28:00 03Aidan Holm02 07[ui-next] * 0.25-a0-127-gd58318b: Improve seed generation UI 10(4 weeks ago, 5 files, 219+ 177-) 13https://github.com/crawl/crawl/commit/d58318bdf3c9 10:28:00 ... and 20 more commits 11:14:45 man, how have we not implemented change password over webtiles 11:15:09 I think getting admin access on cao has not been good for my level of crawl focus 11:15:37 . . . I could have swore that there was a commit on that purpose from Floraline in February . . . 11:18:36 There definitely are multiple Floraline commits related to password resets being automated with a mailserver function...I remember reading them (knee deep in bringing mainline changes to my fork atm) 11:18:51 floraline implemented a forgot password function 11:20:49 but right now to change your password, you need to do it over dgl 11:23:09 Stable (0.23) branch on underhound.eu updated to: 0.23.1-91-gf373564dc4 11:30:19 Ahh I see, well those are similar things I can see how I was confused. 11:33:57 it seems like a lot of manual intervention is required for webtiles server updates, so updates don't happen very often 11:34:27 personally I'd be a lot more likely to dive into modernizing that if I knew my changes would be deployed in a timely fashion 11:35:01 same 11:35:33 it's just that now I have direct access to a webtiles server so I can (try to) deploy things myself 11:36:00 right 11:36:30 this is part of why people were trying to come up with docker, ansible, etc. versions of server configs 11:36:41 all of which are bitrotted, I think 11:36:50 though I can also now see all the problems which gives me a much wider scope for things to try to fix 11:37:32 deployments like that probably need to be official to not bitrot 11:37:44 so I suspect iterating from the current state of the official servers is the best bet 11:37:51 yeah, I agree 11:38:14 (though I'm 90% a start-by-iterating person) 11:38:34 bitrot? ...different way of saying deprecated and/or no longer line up with the current version? 11:38:59 Bcadren: not kept in sync, gradually becoming incompatible 11:38:59 yeh, hasn't been kept up to date so mismatches current deployments. probably 11:39:08 one thing I toy with from time to time is running a dev-focused server that only has trunk + 1 stable version, and is known to be a testbed for server tweaks 11:39:41 one possibility, although risky stability-wise, is to update the webtiles server when updating trunk 11:39:47 it's a lot of time though that I'm never quite sure I have 11:39:56 actually it does get updated in the usual setups 11:40:01 but the server doesn't get restarted 11:40:18 advil not urgent or anything, but my question from yesterday do you think your pregeneration/seeding would allow for multi-level subvaults? 11:41:01 ...huh; so things like CSS/image assets are always up-to-date? 11:41:21 Bcadren it would help with debugging them, at least; not sure it would make them any easier aside from that 11:41:42 aidanh yeah, they should be (I can't guarantee that every server is configured like that though) 11:42:06 i could swear tornado has some form of hot-reload functionality 11:42:17 it does but it has terrible interactions with various things webtiles does 11:42:20 although I've only worked with more recent versions 11:42:53 I was trying to use it in my py2019 branch and things went really badly (though it did hot-reload!) 11:43:04 can't remember what the exact problems were at this point though 11:43:39 I don't know why that thing keeps coming to my mind. It shouldn't be a priority for me/my fork atm, but part of me wants to try to make it work. Hah. The "if subvault X is placed on D:4, always place subvault Y on D:5" part is simple lua logic, it's making sure stairs connect that's the unprecedented part of that. 11:44:04 i don't know if servers like CAO ever hit zero users, but perhaps it'd be possible to automate that 11:44:13 well, you would also need to ensure that the relevant vaults on the second level really do place, and don't get lost on vetos 11:44:35 the other thing webtiles could do with is database migrations 11:44:59 aidanh: yeah, there are times of the day where it gets low enough that disabling logins for a bit would get you to zero 11:45:05 database migrations? 11:45:35 something like alembic for example, don't know if that supports py2 though 11:45:47 basically database schema versioning and auto migration between versions 11:46:24 what db are you talking about? 11:46:29 the users one? 11:46:48 any/all 11:47:06 I'm not sure there is any db besides dglusers, that's why I'm wondering :-) 11:47:29 there might be some things you would imagine are stored in a db, but aren't 11:47:32 passwd.db3 and user_settings.db3 11:47:45 ah ok, yeah 11:48:15 I'd forgotten I split those up 11:48:20 although for something like a password-change feature, a schema change shouldn't be necessary 11:49:18 adding fields to those is not very hard 11:49:49 I initially implemented mute with just passwd, but the thing is that passwd is also accessed by dgl directly, and I didn't want to mess with it too much 11:51:02 right 11:52:30 user_settings.db3 is supposed to be fair game for anything non-login that might be helpful to store; right now it is only a table with mute lists 11:52:32 advil: is that py2019 branch online anywhere btw? 11:52:45 %git py2019 11:52:45 07advil02 * 0.24-a0-617-gb518322: Webtiles: static type annotations for low-level messaging 10(10 weeks ago, 3 files, 55+ 42-) 13https://github.com/crawl/crawl/commit/b51832213d7b 11:53:00 doh 11:53:01 https://github.com/crawl/crawl/compare/py2019 11:53:05 it's a repo branch 11:55:12 03ebering02 07[positional-magic] * 0.25-a0-146-g155c682: fixup! Positional magic ⭐️: Make dazzling flash silent (cwz) 10(4 hours ago, 2 files, 3+ 1-) 13https://github.com/crawl/crawl/commit/155c6823580c 11:55:12 03ebering02 07[positional-magic] * 0.25-a0-147-gc32e14b: fixup! Positional magic ⭐️: New Iskenderun's Mystic Blast 10(20 seconds ago, 1 file, 1+ 0-) 13https://github.com/crawl/crawl/commit/c32e14bb84bd 11:55:14 03ebering02 07https://github.com/crawl/crawl/pull/1200 * 0.25-a0-146-g155c682: fixup! Positional magic ⭐️: Make dazzling flash silent (cwz) 10(4 hours ago, 2 files, 3+ 1-) 13https://github.com/crawl/crawl/commit/155c6823580c 11:55:14 03ebering02 07https://github.com/crawl/crawl/pull/1200 * 0.25-a0-147-gc32e14b: fixup! Positional magic ⭐️: New Iskenderun's Mystic Blast 10(23 seconds ago, 1 file, 1+ 0-) 13https://github.com/crawl/crawl/commit/c32e14bb84bd 11:55:38 it's pretty stable a local testing level, runs with pretty much any version of tornado and python that I have 11:56:15 i imagine most servers don't use virtualenvs or anything like that, right? 11:56:21 heh no 11:56:32 well, most are using a chroot jail 11:57:22 hm, still, that doesn't make version pinning as easy as it could be 11:58:01 in my testing it's completely version neutral (past a certain point in py2.7) 11:58:30 so *in principle* it's safe to use on existing servers as long as their py27 isn't super ancient, something I haven't checked 11:59:20 there are some specific steps I took to keep it that way as much as possible, e.g. it'll run in versions of python that don't have the typing module 12:00:13 I'm more worried about issues that may crop up on a high traffic server, e.g. the timeout mechanism we were using to break out of blocking processes is deprecated on many versions of tornado, and doesn't exist on current ones 12:00:46 wrt venvs, i guess I was more thinking in terms of keeping servers up-to-date as requirements change in the future 12:01:12 especially with something like pip-sync 12:01:15 that might be nice, yeah 12:02:01 Experimental (positional-magic) branch on crawl.kelbi.org updated to: 0.25-a0-147-gc32e14bb84 12:02:11 locally I'm now in the habit of making conda envs for every little thing I do 12:02:30 it's made package management much easier 12:03:08 ..huh, I could swear that conda was only for python, but it seems it's multi-lang now? 12:05:11 i shall have to give that a try some time 12:05:13 yes, I use it for ruby as well 12:05:32 at one point I was also getting a lot of my c++ stuff from it 12:05:36 though that was causing issues 12:13:28 this artefact code is wild 12:13:46 has there ever been a way for artefacts to change after creation? 12:13:59 &t or whatever in wizmode 12:14:01 to tweak an item 12:14:15 heh ok 12:14:20 um, I think there was something to do with the smith god idea of pubby and dpeg 12:14:31 or maybe dpeg's okawaru test your gifts in combat plan 12:14:47 but I didn't think any of those reached trunk implementation phase 12:14:55 well, this code could handle them! 12:15:56 speaking of that, I'm slowly fleshing out a crawl mods technical design document 12:16:26 each time you check a single property, it copies builds two new CrawlHashTables of the entire artifact state from scratch 12:16:51 I guess this wouldn't be completely horrible if it were a regular stl data structure 12:17:39 in fairness, some of this stuff is to handle partial id 12:17:50 (partial id doesn't exist any more ever, right?) 12:19:15 the last time the topic of mods came up, the consensus was that it'd be prohibitive to port crawl's existing species, backgrounds, etc. 12:19:59 however, adding support for new species should be more straight-forward 12:20:41 what's a mod vs a fork? 12:21:37 mods would be lua scripts loaded at runtime, capable of doing most of the things that forks can do 12:22:12 that would be distributable as zip files, essentially 12:23:15 ah I see 12:23:46 sounds non-trivial (this is probably what I said last time) 12:23:46 e.g. a mod that restored ogre's M&F aptitude would potentially just be: data.species["base:ogre"].aptitudes["base:maces-and-flails"] = 2 12:24:15 well, yes, it is actually :) 12:24:25 yes, non-trivial, and yes, what you said last time 12:24:38 heh 12:25:21 -!- Tuxedo[Qyou] is now known as Tux[Qpa_pe]__ 12:26:29 but yeah, converting all of the existing crawlcode special-casing is definitely a non-goal 12:28:16 I can see that some things like your example are probably not too hard though 12:30:55 right 12:31:34 i've been looking at https://github.com/b-crawl/bcrawl/ for a list of desirable capabilities 12:32:07 data.species["base:felid"].item_slots["cloak"] = is_scarf 12:32:11 quite a lot of them are small adjustments of that order 12:33:29 yeah, pretty much 12:34:29 other things, like increasing abyss depth every time you enter it, would require runtime hooks, as opposed to just data modifications 12:35:02 the basic idea is that crawl would fire an event "traverse-level" or something like it, and mods could declare handler functions 12:36:02 I dunno how much you browse tavern 12:36:15 but there was a really interesting thread that Implojin resurrected describing an "action button" ui 12:36:25 (this is orthogonal to what you're currently writing about) 12:37:12 btw, I have a nascent plan to generalize the quiver slot to include many actions 12:37:19 iirc implojin's idea was along those lines too 12:38:21 i can't seem to find that thread 12:40:02 advil: yes it was basically that 12:40:05 with quivers 1-5 12:40:18 I have started-ish working on it 12:40:57 https://crawl.develz.org/tavern/viewtopic.php?f=8&t=21763 12:41:14 but I have to say that my crawl focus is very diluted right now by too many things / time 12:41:17 I was going to try and do a prototype using just lua and hacks after merging the crawl.get_target pr 12:41:20 ya 12:41:26 thanks 12:42:23 I was actually not going to go the lua route because of too many painful experiences with autotargeting code 12:42:54 that technique is super brittle ime 12:55:16 oh yes 12:55:41 I meant more as just a prototype 12:55:46 to get the feel for what the ui should be doing 12:56:20 definitely the vague ideas I have probably are outside of lua's ability to do 13:04:47 New branch created: pull/1207 (1 commit) 13https://github.com/crawl/crawl/pull/1207 13:04:47 03Istvan Marko02 07https://github.com/crawl/crawl/pull/1207 * 0.25-a0-111-ga30adb8: Use yaml.safe_load instead of load 10(4 minutes ago, 1 file, 1+ 1-) 13https://github.com/crawl/crawl/commit/a30adb8b7b76 13:53:24 hm, so I have found one remaining case of partial id, where you try to wield a randart that is branded in an unwieldable way (Ds + holy for example) 13:53:30 can anyone think of oths? 13:53:33 *others 14:02:06 some vaults use it 14:02:14 if they place a guaranteed base type that's maybe a randart 14:04:36 oh, hm 14:07:38 -!- misha is now known as werekitten 14:22:17 -!- werekitten is now known as misha 15:52:55 radical idea (cannot promise good): remove flame cloud, replace with wand version 16:03:33 -!- krator44-- is now known as krator44 18:25:46 New branch created: pull/1208 (1 commit) 13https://github.com/crawl/crawl/pull/1208 18:25:46 03alexjurkiewicz02 07https://github.com/crawl/crawl/pull/1208 * 0.25-a0-111-ga9992d0: Adjust Trog weapon gifting (ebering) 10(12 hours ago, 1 file, 33+ 21-) 13https://github.com/crawl/crawl/commit/a9992d0000fc 18:31:07 03alexjurkiewicz02 07https://github.com/crawl/crawl/pull/1208 * 0.25-a0-111-gae72d08: Adjust Trog weapon gifting (ebering) 10(13 hours ago, 1 file, 27+ 21-) 13https://github.com/crawl/crawl/commit/ae72d089a166 18:52:05 is there a helper function to check if an item is in an array? 18:52:16 I just wrote: const bool bad_brand = std::find(std::begin(TROG_BRANDS), std::end(TROG_BRANDS), get_weapon_brand(item)) != std::end(TROG_BRANDS); 18:52:52 which doesn't even seem to work actually, it matches every item 19:00:31 that looks right to me, if you want to check whether the brand is present in a list of trog brands 19:03:25 it seems crazy verbose 19:03:29 verbosity is the c++ way 19:03:34 :D 19:03:46 is it worth writing a helper macro to simplify this? 19:04:01 ITEM_IN_LIST 19:04:48 I guess one kind of answer would be that you might consider another data type 19:04:51 set or unordered_set 19:04:59 the former if you want order 19:05:44 (though beware, it's implemented as some kind of balanced tree structure, not a hashset as I would have guessed) 19:06:00 with those, it's just a call to count 19:09:06 I'm not sure I buy this mind you, but often in c++ land there's a sort of mindset where the code you just pasted ought to be verbose because it is doing something non-ideal 19:11:02 advil: i'd use find, not count 19:11:22 er, wait 19:11:41 no, count is obviously great 19:12:41 if the object is a set it's guaranteed to be logarithmic; if it's unordered_set it's constant unless there's a hash collision 19:12:58 (find has the same complexity for those types though) 19:14:07 well, I have a list of 4 brands, and I want to do two things with it: pick one at random, and see if another brand is in the list 19:15:08 well for stable randomness don't use unordered_set then 19:16:10 at size 4 it probably doesn't matter much what you do 19:19:27 in fact using std::count on a vector would be slightly less verbose 19:31:49 I was picking one at random with random_choose 19:36:08 yeah that's fine, what I meant was that while unordered_set will give you an iterator if you ask, it won't give you the same order across systems 19:46:00 03alexjurkiewicz02 07https://github.com/crawl/crawl/pull/1208 * 0.25-a0-111-gd727993: Adjust Trog weapon gifting (ebering) 10(12 hours ago, 3 files, 51+ 40-) 13https://github.com/crawl/crawl/commit/d727993311ce 20:12:36 Inner Flame includes player in its target cycle. 13https://crawl.develz.org/mantis/view.php?id=12130 by Yermak 20:12:36 Sif's last ability cannot be used until you have at least one spell memorized. 13https://crawl.develz.org/mantis/view.php?id=12129 by Yermak 20:12:56 Awesome! Now strip Oka of gifting distortion, too! 20:31:38 spicy commit coming up 20:32:09 03advil02 07* 0.25-a0-111-gca9b790: Clean up some heavy-handed artefact code 10(3 hours ago, 6 files, 71+ 66-) 13https://github.com/crawl/crawl/commit/ca9b790695f0 20:32:09 03advil02 07* 0.25-a0-112-g94313f7: Refactor habitability checks around monster flight 10(2 hours ago, 2 files, 12+ 12-) 13https://github.com/crawl/crawl/commit/94313f71df4b 20:32:09 03advil02 07* 0.25-a0-113-g514c71c: Fix a wizmode / test crash on randbooks 10(6 minutes ago, 2 files, 3+ 3-) 13https://github.com/crawl/crawl/commit/514c71c9f14b 20:32:09 03advil02 07* 0.25-a0-114-g53d2a09: Remove clinging 10(5 minutes ago, 24 files, 17+ 233-) 13https://github.com/crawl/crawl/commit/53d2a09ee027 21:01:29 "If they're the same holiness, monsters smart enough to use stairs can push past monsters too stupid to use stairs" 21:01:42 contemplating making this not contingent on holiness, any thoughts? 21:07:16 i would not expect that behaviour to check holiness, but then iirc holiness is a somewhat overloaded term 21:07:52 I think in practice it'll mostly lead to living creatures not pushing past undead 21:08:06 which I do think would be somewhat noticeable if it changes 21:08:29 but yeah, it seems quite unexpected as a general principle 21:09:02 does anyone know anything about `bitset`? why it seems to be extremely slow for example? 21:12:01 Unstable branch on crawl.kelbi.org updated to: 0.25-a0-114-g53d2a09ee0 (34) 21:15:37 advil: i don't know anything specific, but its documentation refers to vector, which afaik is one of the worst design decisions in c++. if the two came out at around the same time i could believe bitset is also bad 21:16:14 I should say I've only done sample profiling so I don't know what the call count is like 21:22:22 the problem is something like a ton of low-level calls to enchantment checks which are implemented as a FixedBitVector 21:22:27 a lot of this is fixable up the line 21:25:05 this is ench_cache, right? 21:25:17 heh, classic, caching code with perf issues 21:29:09 Anyone know what generates the tileinfo and tiledef files from the dc-player.txt, etc. files in the rltiles folder? 21:29:45 rltiles/tool/tilegen.elf 21:31:54 aidanh yes indeed 21:32:56 there's some unnecessary debug code that I've turned off, but even so, any check of an ench in monster move contributes a big hotspot (more or less the last significant one) 21:33:33 I'm just confused because if this sort of check were literally implemented as a bit array it would be *really* fast 21:42:24 haha well a single step from time has ~1510000 distinct monster attitude checks, each triggering 4 ench checks on average 21:42:40 so maybe I can't really complain that a single ench check is *that* slow 21:43:16 these monsters have serious attitude 21:43:17 The build was broken. (master - 53d2a09 #12250 : advil): https://travis-ci.org/crawl/crawl/builds/614313227 21:46:57 03Aidan Holm02 07* 0.25-a0-115-gb95ba5e: Unbrace 10(32 seconds ago, 1 file, 0+ 2-) 13https://github.com/crawl/crawl/commit/b95ba5eb33df 21:48:07 03advil02 07* 0.25-a0-116-ga07cd79: Disable some debugging code even in FULLDEBUG 10(34 minutes ago, 2 files, 2+ 2-) 13https://github.com/crawl/crawl/commit/a07cd79442ea 21:48:07 03advil02 07* 0.25-a0-117-g166592d: Various refactoring to make expensive calls less likely 10(3 minutes ago, 5 files, 58+ 47-) 13https://github.com/crawl/crawl/commit/166592d65c21 21:50:29 03Aidan Holm02 07* 0.25-a0-118-geeaa2dc: Clean up ui.cc and ui.h 10(3 weeks ago, 3 files, 301+ 150-) 13https://github.com/crawl/crawl/commit/eeaa2dc6835b 21:50:29 03Aidan Holm02 07* 0.25-a0-119-g8dd6822: Make box alignment members protected 10(5 weeks ago, 16 files, 56+ 42-) 13https://github.com/crawl/crawl/commit/8dd68223145b 21:50:29 03Aidan Holm02 07* 0.25-a0-120-g87cb31b: Extract UI debug drawing code 10(6 weeks ago, 1 file, 60+ 30-) 13https://github.com/crawl/crawl/commit/87cb31babd3c 21:50:29 03Aidan Holm02 07* 0.25-a0-121-gf485fd5: Refactor widget hover path handling 10(5 weeks ago, 1 file, 99+ 65-) 13https://github.com/crawl/crawl/commit/f485fd5ed05a 21:50:29 03Aidan Holm02 07* 0.25-a0-122-g66650a8: Rename MouseEvent -> wm_mouse_event 10(5 weeks ago, 42 files, 137+ 137-) 13https://github.com/crawl/crawl/commit/66650a818606 21:50:29 03Aidan Holm02 07* 0.25-a0-123-gfe7bffb: Add improved console cursor positioning API 10(10 weeks ago, 2 files, 25+ 0-) 13https://github.com/crawl/crawl/commit/fe7bffbe7c16 21:50:29 03Aidan Holm02 07* 0.25-a0-124-gab78da2: Add checkbox widget 10(5 weeks ago, 7 files, 143+ 2-) 13https://github.com/crawl/crawl/commit/ab78da221fa1 21:50:29 03Aidan Holm02 07* 0.25-a0-125-g5d773dd: Add text entry widget 10(5 weeks ago, 2 files, 575+ 0-) 13https://github.com/crawl/crawl/commit/5d773dd3d052 21:50:29 03Aidan Holm02 07* 0.25-a0-126-g50eff3a: Add hotkey event handling support 10(5 weeks ago, 2 files, 25+ 0-) 13https://github.com/crawl/crawl/commit/50eff3ad4f5e 21:50:29 03Aidan Holm02 07* 0.25-a0-127-g74dbbd1: Use new hotkey API 10(5 weeks ago, 5 files, 32+ 53-) 13https://github.com/crawl/crawl/commit/74dbbd1b814a 21:50:29 ... and 27 more commits 21:53:25 alexjurkiewicz: whereabouts were you getting stuck on the ui code? 21:59:45 03Aidan Holm02 07* 0.25-a0-155-g11d28fe: Grammar fixup 10(2 minutes ago, 1 file, 1+ 1-) 13https://github.com/crawl/crawl/commit/11d28fe0fd33 22:09:03 advil: nice spicy commit 22:14:34 I'm surprised no one did it already tbh, it wasn't a very hard removal 22:19:44 Unstable branch on crawl.kelbi.org updated to: 0.25-a0-155-g11d28fe0fd (34) 22:33:30 you mean my spider pathfinding bugfix commits were all for naught? :O 22:45:27 The build was fixed. (master - 166592d #12251 : advil): https://travis-ci.org/crawl/crawl/builds/614331386 22:51:20 new webtiles ui bug: if I go to set a skill target, I can't back out of setting the target by pressing escape 22:51:27 I can put this on mantis if desired 22:51:49 caused by the recent commits, it was working fine this morning 22:51:57 kitchen_ace: no need, i'll fix that now 22:52:01 thanks 22:52:07 welcome, thanks back 22:52:37 haven't noticed any similar problems so far 23:13:50 03Aidan Holm02 07* 0.25-a0-156-g0c4bda3: Fix input_dialog key binds on webtiles (kitchen_ace) 10(2 minutes ago, 1 file, 6+ 2-) 13https://github.com/crawl/crawl/commit/0c4bda3fdf99 23:17:55 Unstable branch on crawl.kelbi.org updated to: 0.25-a0-156-g0c4bda3fdf (34) 23:25:07 The build was fixed. (master - 11d28fe #12253 : Aidan Holm): https://travis-ci.org/crawl/crawl/builds/614333597 23:25:55 aidanh: i think we spoke about it, about how the newgame menus used a specialised class which contained the logic for showing species descriptions. I could never figure out how to duplicate that logic to also show species stats 23:26:43 from memory, I was getting stuck with understanding how the menu knew which description to show, when it was generic code shared between species & background menus 23:27:01 and I was confused by how to extend the class to add another set of widgets in a similar area 23:27:40 mostly I think it's my inexperience with c++ GUI code. The way the logic switches from imperative to callback inside a single function really threw me 23:29:16 alexjurkiewicz: I can't seem to find that in my logs, do you remember the date? 23:31:00 no, sorry, but you could try searching for outer-menu / OuterMenu 23:31:06 i guess about 2 weeks ago, based on the PR dates 23:31:45 oh, right, duh, found it 23:33:12 so basically the way it works is that when you set up an OuterMenu, you pass it a Switcher widget 23:33:26 well, a pointer to a Switcher widget 23:33:52 as you add buttons to the menu, the menu will add their descriptions to the switcher, and switch to the correct description when the button takes focus 23:35:40 !source outer-menu.cc:293 23:35:41 https://github.com/crawl/crawl/blob/master/crawl-ref/source/outer-menu.cc#L293 23:35:42 how does the menu add the descriptions to the switcher? and how does it know what the correct description is? 23:36:11 that's the bit that switches the description on focus (it's much easier to read now) 23:36:23 !source outer-menu.cc:312 23:36:24 https://github.com/crawl/crawl/blob/master/crawl-ref/source/outer-menu.cc#L312 23:37:01 that's where descriptions (i.e. text widgets containing the descriptions) are added 23:37:35 the menu adds the description to the switcher, then uses switcher->num_children() to determine the index of the widget it just added 23:43:41 alexjurkiewicz: in any case, if i understand correctly what you want to do is add more content to the switcher, underneath the descriptions? 23:44:27 currently the menu makes a text widget from btn->description, and adds that to the switcher 23:46:11 but you could change OuterMenu::add_button() to take an extra shared_ptr param, and add that instead 23:47:50 then at the callsite, pass your ui, e.g: main_items->add_button(btn, 0, i, vbox_with_desc_and_stats) 23:56:53 yeah, that's what I wanted to do 23:57:30 but the format would be different for species and background screens. Background would only have s/i/d info, while species would also have hp/xp/mp/mr apts 23:59:36 no worries; you'd be constructing the description UI shown per-button at each call site, so you can vary it as you choose