00:01:01 03dolorous02 07* 0.34-a0-1852-g7107006798: Fix typos, wording and punctuation. 10(21 minutes ago, 1 file, 8+ 8-) 13https://github.com/crawl/crawl/commit/7107006798e6 00:01:01 03dolorous02 07* 0.34-a0-1853-gf521b0547f: Properly pluralise "plasmodium" as "plasmodia." 10(10 minutes ago, 1 file, 3+ 1-) 13https://github.com/crawl/crawl/commit/f521b0547f8c 00:33:55 Unstable branch on cbro.berotato.org updated to: 0.34-a0-1853-gf521b0547f (34) 01:28:54 03gammafunk02 07* 0.34-a0-1854-gd744bac791: Close lua states when reseting the game 10(2 hours ago, 3 files, 26+ 12-) 13https://github.com/crawl/crawl/commit/d744bac7910a 04:31:12 Experimental (bcrawl) branch on underhound.eu updated to: 0.23-a0-5261-gd9800d219b 05:36:40 Unstable branch on crawl.akrasiac.org updated to: 0.34-a0-1854-gd744bac (34) 08:42:03 <08n​icolae> just out of curiosity, what's the expected timeline on finishing up... whatever version this is. let me check. 0.34. when are we doing feature freeze for that? i assume after the holidays? i had some more inspiration for overflows and don't want to dump a bunch on @regret-⸸nde※ right before Go Time. 09:17:06 03dolorous02 07* 0.34-a0-1855-gf487e81226: Add "no available space" to canned messages. 10(6 minutes ago, 4 files, 8+ 4-) 13https://github.com/crawl/crawl/commit/f487e81226bb 09:28:55 03dolorous02 07* 0.34-a0-1856-ge225a2cb73: Properly use a canned message in Brom's. 10(2 minutes ago, 1 file, 1+ 1-) 13https://github.com/crawl/crawl/commit/e225a2cb73ba 09:35:50 04Build failed for 08master @ f487e812 06https://github.com/crawl/crawl/actions/runs/20375769817 10:36:30 03CrawlOdds02 {dolorous} 07* 0.34-a0-1857-g980f348b7d: Make Teleport Other prefer not to cancel teleport 10(5 weeks ago, 2 files, 12+ 0-) 13https://github.com/crawl/crawl/commit/980f348b7de6 11:02:37 <09h​ellmonk> are there any extant plans for additional bauble types? 12:38:46 <04d​racoomega> I don't have anything specific at the moment (though additional types existing would be nice). I once pondered whether it would be interesting to have some mid-tier forms available on a temporary basis much earlier than usual this way, though was undecided. 12:46:54 <04d​racoomega> So, I am working on fixing the apparently-still-extant bug where xv can show wildly inflated damage numbers for off-floor monsters, which has to do with how monster_info slaying isn't marshalled/unmarshalled properly. And in the process I am finding other things which also aren't (and several things that we still marshall but seemingly never use anywhere?) 12:48:57 <04d​racoomega> C++ // This is somewhat hackish, but it's a good way of over-riding monsters' // descriptions in Lua vaults by using MonPropsMarker. This is also the // method used by set_feature_desc_long, etc. {due} (set_feature_desc_long hasn't existed since 2012) 12:57:04 <04d​racoomega> Oh, apparently this may have never functioned properly? 12:57:09 <04d​racoomega> %git 722926b 12:57:10 <04C​erebot> PleasingFungus * 0.28-a0-153-g722926ba4e: Remove nonexistent prop references (4 years, 5 months ago, 1 file, 0+ 6-) https://github.com/crawl/crawl/commit/722926ba4e7e 13:10:48 <08n​icolae> bubble bauble 13:22:50 03dolorous02 07* 0.34-a0-1858-g35636e3ec7: Expand a graffiti fight option. 10(8 minutes ago, 1 file, 1+ 1-) 13https://github.com/crawl/crawl/commit/35636e3ec71f 13:22:50 03dolorous02 07* 0.34-a0-1859-g1892a10f92: Expand graffiti "happened reasons." 10(6 minutes ago, 1 file, 4+ 0-) 13https://github.com/crawl/crawl/commit/1892a10f923b 13:22:50 03dolorous02 07* 0.34-a0-1860-gf78f79cf17: Fix wording of several graffiti rumours. 10(4 minutes ago, 1 file, 2+ 2-) 13https://github.com/crawl/crawl/commit/f78f79cf1740 13:22:50 03dolorous02 07* 0.34-a0-1861-g0aceb10d9a: Add another graffiti duplicate option. 10(2 minutes ago, 1 file, 2+ 0-) 13https://github.com/crawl/crawl/commit/0aceb10d9a90 13:32:31 03dolorous02 07* 0.34-a0-1862-g9437d6726d: Add another rare graffiti author. 10(5 minutes ago, 1 file, 2+ 0-) 13https://github.com/crawl/crawl/commit/9437d6726df0 13:33:02 <04d​racoomega> To be honest, I have repeatedly felt like monster_info is overwrought these days. It calculates and caches a lot of things that are unambiguously derived from public monster information, for reasons that seem to be primarily because otherwise we'd need duplicate methods to calculate them - one for the UI and one for the rest of the game. And, even despite this, it still periodically requires making new duplicated methods since a 13:33:03 lot of UI will only interact with monster_info (or we abandon this entirely and just look up the 'real' monster anyway - which is still unambiguous if they're in LoS, as is the case with almost all targeting code) In much older times, there was a lot of semi-hidden information (ie: properties a given monster had which would sometimes be known to the player and sometimes not) that this class was used to manage, but I think we've removed virtually 13:33:03 all of these by this point? (eg: monsters with hidden randomized speed, with hidden equipment properties, or effects like Mislead). And now the only truly hidden properties are things the client never has access to (like certain monster behavioral state, specific enchantment durations, etc.) which can be easily managed by just... not having the UI show those (which it already doesn't) I don't even think monster_info objects are any smaller than 13:33:04 monster objects, for all the ones we save (in fact, they may be bigger?). I dunno, it just seems like it might be a better approach in the reality of modern Crawl to just cache copies of actual monsters for monster memory instead of trying to operate on monster_info in so many places (or use them as a light wrapper around a monster that can do some of the 'massage information to a UI-palatable form' while still allowing other code to be able to 13:33:04 operate on the monster directly) 13:34:17 <04d​racoomega> Did you know that every single time you ask for the name of a monster, it has to construct an entire monster_info based on that monster to query it? 13:34:32 <04d​racoomega> (Which is done constantly for messaging) 13:35:48 <09g​ammafunk> sounds like a plausible refactor 13:36:01 <09g​ammafunk> but I now that monster_info is used everywhere so there's a lot of code to update 13:36:02 <04d​racoomega> It's definitely a non-trivial undertaking, given how fundamental this class is used... everywhere 13:36:39 <04d​racoomega> But this xv damage display bug is get another case of the two things getting slightly out of sync (and such problems have happened quite regularly in one form or another) 13:37:49 <04d​racoomega> And it seems like a much safer policy in modern Craw to 'assume the player is allowed to know this unless we specifically say otherwise' than 'assume the player isn't allowed to know this unless we specifically say otherwise' 13:38:06 <04d​racoomega> (It's not like monster_info has stopped periodic Mara leaks, either >.>) 13:38:50 <06d​olorous_84348> I was wondering about monster_info when applying the PR to prefer not casting Teleport Other on teleporting monsters. Teleport Other uses monster_info when aiming, preferred or otherwise, but e.g. Magnavolt checks the monster directly. And the monster naming issues I've dealt with fairly recently (with "the "-type monsters and others) deal with monster_info a lot because it's used a lot in monster displays. In fact, the reason 13:38:50 why the flag for "the " monsters only works with uniques is not only because it would overlap with redefined monsters that get the same, but also because monster_info's core_name handling is so complicated in some places that it was just easier to limit it to uniques. 13:41:38 <04d​racoomega> Yeah, targeter code is 'supposed' to only interact with monster_info, but in practice there are quite a few places where it grabs the monster directly because otherwise you'd need to duplicate a bunch of methods for exactly one spell targeter. This technically breaks a kind of separation that is 'supposed' to exist, but the fact that it is regularly very compelling to break this has always suggested to me that the approach is 13:41:39 questionable. 13:43:00 <06d​olorous_84348> Good to know. 13:43:20 <04d​racoomega> (As I said, when monster_info was first added, there were a lot more compelling reasons to use that approach, but I feel most of them are dated now) 13:45:07 <04d​racoomega> In a somewhat similar way that until relatively recently, a lot of code was lingering around to handle 'partially' identified items, and to separate an item's 'real' properties from some subset which the player was aware of. 13:46:27 <04d​racoomega> But Mara/rakshasa illusions may be the only cases remaining where the player doesn't have access to information about a monster that is usually public? 13:47:06 <04d​racoomega> (Obviously this still needs proper handling of some sort, but not necessarily in the way that is currently done) 13:50:44 <04d​racoomega> Although I suppose I should keep in mind the things I wanted to do with monster invisibility UI improvements, which would again require being able to reveal some info to the player and hide others. But I am sure there are simpler ways to handle that than 'an entirely separate API to query monster properties' 13:51:40 <04d​racoomega> I'll give it some thought 13:57:06 <06d​olorous_84348> Good luck figuring it out. 14:02:12 <04d​racoomega> (I am probably not going to attempt that for this version and I have more immediate priorities for 0.35 also, but it's definitely going onto the list of Things I Would Like To Do In Future) 14:02:20 <04d​racoomega> Especially after finding yet more things not handled properly here today 14:09:36 LukeCody2 (L19 TrFi) Crash caused by signal #8: Floating point exception (Elf:3) 14:14:11 <04d​racoomega> ...huh. Something to do with Awaken Flesh trying to create an abomination when the flesh had 0 max HP. Seemingly caused by trading a bound soul of a fleshcrafter for something else? 14:17:46 <09g​ammafunk> who would dare to use floating point?! 14:22:53 <06p​leasingfungus> re: getting rid of monster info, i think there's promise there, but also some issues 14:23:09 <06p​leasingfungus> eg you have the memory of a monster on the map. you go around the corner. that monster dies of poison. 14:23:35 <06p​leasingfungus> at that point, the monster object is cleaned up and becomes junk. but you still want to be able to show it on the map and (iirc) Xv it, etc. 14:23:57 <04d​racoomega> No, no. I didn't mean referring to the real monster. But having monster memory store copies of monsters instead of mon_info derived from monsters 14:24:01 <06p​leasingfungus> ah 14:24:07 <06p​leasingfungus> yeah, could work 14:24:16 <04d​racoomega> Since obviously you need to be able to refer to past states of monsters, based on when they were last seen 14:24:25 <06p​leasingfungus> the past truly is a foreign country... 14:24:41 <04d​racoomega> But monster_info doesn't seem to actually be meaningfully lighter-weight than monsters themselves and we store a ton of them 14:51:42 <09g​ammafunk> I think that's how we generally use item_def 14:52:13 <09g​ammafunk> when we need copies for descriptive purposes, we just make copies as needed that don't actually end up living on the env item grid array etc 14:52:29 <09g​ammafunk> and there's no intermediate item_info class or anything 14:55:15 <04d​racoomega> There was, for a time! 14:55:19 <04d​racoomega> (Sort of, at least) 14:55:23 <04d​racoomega> %git 12357ec 14:55:24 <04C​erebot> advil * 0.27-a0-102-g12357ec85a: Remove item_info (4 years, 11 months ago, 24 files, 54+ 50-) https://github.com/crawl/crawl/commit/12357ec85acb 14:57:24 <09g​ammafunk> interesting 14:59:59 <04d​racoomega> (As noted by the commit, this was basically a typedef, so far less heavyweight than monster_info. But the original intent of the commit that added them seemed to be leaning in that directon) 15:07:39 <04d​racoomega> Hmmm... actually, I guess one definite complexity with saving just monster copies is that monsters don't actually own their own items (but monster_info do) 15:07:57 <04d​racoomega> (ie: monsters just have numeric references to floor items) 15:08:19 <04d​racoomega> Which is also pretty weird, honestly! A lot of the item stack handling feels truly ancient 15:10:05 <04d​racoomega> It specifically complicates moving monsters between floors and several other cases 15:15:45 <04d​racoomega> (There have actually been bugs in past where very briefly on floor transition, monsters sometimes believe they are wearing different items on the new floor) 15:17:20 <04d​racoomega> For instance: 15:17:22 <04d​racoomega> %git b00f08b 15:17:23 <04C​erebot> DracoOmega * 0.34-a0-738-gb00f08be49: Remove undefined equipment behavior when transiting monsters (Xolotl) (4 months ago, 1 file, 5+ 1-) https://github.com/crawl/crawl/commit/b00f08be4958 15:18:05 <04d​racoomega> (This one was quite tricky to figure out at the time) 15:26:06 <04d​racoomega> I don't know if this means that refactoring monster_info away wants to refactor this behavior away first, and hoo boy >.> 15:33:52 <04d​racoomega> Oh, I see the missing link in that crash. The Awaken Flesh explosions themselves are what killed the demonologist, and so it was trying to transform flesh that had already disappeared by that point 15:35:20 Snord (L17 MfBe) Crash caused by signal #6: Aborted (Elf:1) 15:36:24 roguelemental (L14 MuNe) Crash caused by signal #6: Aborted (Lair:5) 15:36:25 Spinaci (L5 FoFi) (D:3) 15:42:03 <04d​racoomega> Surprisingly awkward to fix properly, really 15:49:36 <04d​racoomega> I wonder if dismissing a bound soul because you got a new one should be a fineff. (Actually, I wonder if dismissing a dead monster's summons should also be a fineff, for that matter... This is not the first case I've seen of expecting a target to still be there at the end of a spell and it wasn't) 15:59:22 03dolorous02 07* 0.34-a0-1863-ge850957c4e: Resort graffiti "happened reasons." 10(36 minutes ago, 1 file, 4+ 4-) 13https://github.com/crawl/crawl/commit/e850957c4ea9 15:59:22 03dolorous02 07* 0.34-a0-1864-g89cd473a45: Add another graffiti short saying. 10(9 minutes ago, 1 file, 3+ 0-) 13https://github.com/crawl/crawl/commit/89cd473a4516 16:00:16 it's constant 🙂 16:21:19 Bei0000 (L12 DgGl) ERROR in 'tileweb.cc' at line 237: Socket write error: Resource temporarily unavailable (Lair:1) 16:21:20 roguelemental (L16 MuNe) ERROR in 'tileweb.cc' at line 237: Socket write error: Resource temporarily unavailable (D:15) 16:21:43 StonerKitturk (L17 KoBr) Crash caused by signal #6: Aborted (Snake:2) 16:41:35 Unstable branch on underhound.eu updated to: 0.34-a0-1864-g89cd473a45 (34) 18:40:40 hamnet (L9 OpSh) ERROR in 'tileweb.cc' at line 237: Socket write error: Resource temporarily unavailable (Bailey) 21:31:01 <04d​racoomega> How am I already 4 layers deep from "There was an obscure Awaken Flesh crash"? T.T 21:31:18 <04d​racoomega> So, you know how a bunch of monster cloud spells kind of weirdly do a very tiny, irrelevant amount of impact damage? 21:32:16 <04d​racoomega> Monster freezing cloud claims it doesn't do any impact damage, but it also does, and unlike all of these other cloud effects, it does like... actual damage. (2d22 damage on blizzard demons) 21:33:54 <04d​racoomega> (I mean, this is not a ton, but it's like 2/3rd of what their bolt of cold did!) 21:33:58 <04d​racoomega> Which is a lot to claim is 0 21:36:12 <09h​ellmonk> why is freezing cloud claiming to do no impact damage is my question 21:36:27 <09h​ellmonk> iirc the bots used to show the damage from it 21:37:39 <04d​racoomega> Well, the bots and xv are unrelated code 21:37:45 <04d​racoomega> *??blizzard_demon 21:37:45 <04C​erebot> ansi blizzard demon (2) | Spd: 10 | HD: 12 | HP: 59-78 | AC/EV: 10/10 | Dam: 20, 20 | demonic, doors, evil, see invisible, fly, insubstantial | Res: will(140), cold++, elec+++, poison, miasma, neg+++, foul_flame, torm, napalm | Vul: fire, holy | XP: 937 | Sp: b.cold (3d21) 21:37:46 [!sil], b.lightning (3d18) [!sil], freezing cloud (2d22) [!sil], sleetstrike 21:37:47 <04C​erebot> ansi (2d14+(3/space)) [!sil] | Sz: Large | Int: human. 21:37:58 <04d​racoomega> Okay, so this one is correct 21:39:48 <04d​racoomega> In any case, the zap it's using isn't associated with the spell, so xv doesn't know about it. And I'm... actually rather unclear why it's even separated from normal zap setup like C++ case SPELL_FREEZING_CLOUD: // battlesphere special-case zappy(ZAP_FREEZING_BLAST, power, true, beam); break; 21:41:27 <04d​racoomega> I have no idea if this is due to some combination of battlesphere not working with player freezing cloud but wanting it to work with monster freezing cloud (because of old tengu reavers??) 21:41:49 <04d​racoomega> (I mean, it's work for the player spell for years now, anyway) 21:44:22 <04d​racoomega> I am honestly tempted to rename the monster spell to something else, since this property feels fairly unlike the player spell (and I'd definitely rather not remove the upfront damage from them) 21:44:43 <04d​racoomega> Even if this means player ghosts/illusions end up with a differently named spell as equivalent 22:02:56 ProfX (L2 GnBe) ERROR in 'tileweb.cc' at line 226: Socket write error: Resource temporarily unavailable (D:1) 22:03:59 dudehammanbag (L3 MiFi) ERROR in 'tileweb.cc' at line 237: Socket write error: Resource temporarily unavailable (D:1) 22:12:26 <09g​ammafunk> guess I should take a break from getting postgres to stubbornly not auto explain my queries 22:12:30 <09g​ammafunk> and fix that cloud targeter thing 22:14:34 <09g​ammafunk> oh nice, agent is already an arg to the targeter and will be nullptr in the case we're interested in 22:16:39 <09g​ammafunk> hrm, should I generalize this to only let any agent cloud an area they can see (with los_no_trans) 22:17:11 <09g​ammafunk> seems pretty reasonable 22:37:06 <06p​leasingfungus> i do day job postgres sometimes, so might be able to help with some issues 22:46:42 <09g​ammafunk> have you used auto_explain? I have it enabled and carefully configured with all directly and indirectly related config various (postgres restarted ofc) and it refuses to explain 22:48:30 <09g​ammafunk> I'm getting queries logged by the standard log_statement configuration value 22:48:41 <09g​ammafunk> but they are only getting logged and not explained/analyzed 22:48:49 <06p​leasingfungus> no, i haven't used that, sorry 22:49:07 <09g​ammafunk> alternately I can add explain/analyze directly to the SELECTs in sequell but I was hoping to avoid that 22:49:35 <06p​leasingfungus> if you query pg_config, are your config settings there? 22:49:51 <09g​ammafunk> yep, all settings I've changed are seen by SHOW 22:50:25 <09g​ammafunk> and like it is logging my statements according to the change in log_statement, but auto_explain is just MIA 22:53:27 <06p​leasingfungus> peculiar. could ask in the mailing list? 22:55:37 <09g​ammafunk> yeah, feel free, although I'm sure they might ask what my configuration is setting. so maybe I can get you what I've changed 22:55:55 03gammafunk02 07* 0.34-a0-1865-gfffb249c6f: Fix cloud targeting for non-players 10(21 minutes ago, 1 file, 4+ 4-) 13https://github.com/crawl/crawl/commit/fffb249c6f0d 22:55:56 <06p​leasingfungus> oh no, i've been volunteered 22:55:56 <06p​leasingfungus> voluntold 22:56:14 <09g​ammafunk> well ^ is technically fixing a PF bug 22:56:22 <09g​ammafunk> so you are in fact obligated 22:56:24 <09g​ammafunk> one sec 22:56:31 <06p​leasingfungus> wow 23:00:04 <09g​ammafunk> Relevant settings I've modified are log_destination = 'stderr' logging_collector = on log_min_messages = log log_min_duration_statement = 2000 log_statement = 'all' shared_preload_libraries = 'auto_explain' auto_explain.log_min_duration = 1000 auto_explain.log_analyze = on auto_explain.log_buffers = on auto_explain.log_nested_statements = on I get LOG statements showing my queries in the postgres logfile, but no results from explain 23:00:05 or analyze 23:01:44 <06p​leasingfungus> hrm 23:01:55 <09g​ammafunk> this is sort of an aside since I don't know that you'd want to put this in the request, but this is what a sequell query looks like 😫 : https://pastebin.com/M7RGanEk 23:02:03 <06p​leasingfungus> i'm looking at the auto_explain options and they do look reasonable 23:02:13 <06p​leasingfungus> also yikes 23:02:22 <06p​leasingfungus> why....... 23:03:44 <09g​ammafunk> I think those l_... "tables" are indexes? 23:04:07 <09g​ammafunk> but I don't know, this is all greensnark's mad genius 23:05:44 <09g​ammafunk> (this was for !lg * name=gammafunk) 23:06:01 <09g​ammafunk> (which returns my last game) 23:11:10 <09h​ellmonk> it is time for pleasingfungus to return and make a huge content update 23:11:20 <09h​ellmonk> it has been decreed 23:16:57 <09g​ammafunk> the players have been begging us for shadow traps to return 23:18:09 <04d​racoomega> Hey, I've seriously considered doing that! >.> (With a much longer cooldown) 23:35:21 Unstable branch on crawl.develz.org updated to: 0.34-a0-1865-gfffb249c6f (34) 23:48:08 ProfX (L4 GnBe) ERROR in 'tileweb.cc' at line 226: Socket write error: Resource temporarily unavailable (D:2) 23:48:10 ziggable (L4 GnWr) ERROR in 'tileweb.cc' at line 229: Socket write error: Resource temporarily unavailable (D:2) 23:48:14 Pekkekk (L21 NaSk) ERROR in 'tileweb.cc' at line 226: Socket write error: Resource temporarily unavailable (Vaults:1) 23:57:32 Windows builds of master branch on crawl.develz.org updated to: 0.34-a0-1865-gfffb249c6f