00:22:48 <06m​umra> That's true about quite a few things. Historically there were probably optimisation reasons for doing things in a certain way and/or limits of C++ at the time, but most optimisations are fairly superfluous given modern advancements in both compilers and hardware. 00:23:17 <02M​onkooky> I found a comment indicating this predated std::array, which I suppose explains it 00:55:26 Monster database of master branch on crawl.develz.org updated to: 0.34-a0-1047-g5074f317b0 00:59:47 -!- indigaz21 is now known as indigaz2 04:15:54 <09g​ammafunk> its used to hold a bunch of arbitrary types AND is capable of marshalling those types to a save file, so I think migrating away from it is somewhat non-trivial 04:17:10 <09g​ammafunk> or at least for anyone doing so, they'd better be very careful that whatever classes they derive from std to handle marshalling (or however they architecture this) gets that reimplimentation really correct 04:25:10 <04d​racoomega> I mean, it performs a simple task and it seems to do it correctly and in a straightforward-to-use way. At that point, does it matter how arcane it is beneath the hood? (Lord knows stl containers are often incredibly arcane to read also) 04:32:05 Experimental (bcrawl) branch on underhound.eu updated to: 0.23-a0-5261-gd9800d219b 04:38:53 <09g​ammafunk> it probably matters at some point down the line when we have all servers with remotely modern compiles and can take advantage of some nice c++XX features (where XX is also remotely modern). And I'd not be surprised if the underlying stl implementations were better. At the very least it'd probably mean less low-level code overall for us to keep around 04:39:08 <09g​ammafunk> but I agree it's not a priority 05:08:34 Unstable branch on crawl.akrasiac.org updated to: 0.34-a0-1047-g5074f31 (34) 08:29:19 dolemite99 (L22 MiMo) ASSERT(_valid()) in 'ray.cc' at line 229 failed. (Depths:4) 08:59:10 New branch created: pull/4865 (1 commit) 13https://github.com/crawl/crawl/pull/4865 08:59:11 03WizardIke02 07https://github.com/crawl/crawl/pull/4865 * 0.34-a0-1037-g8f37ac071a: Fix console resize in webtiles 10(67 minutes ago, 3 files, 47+ 38-) 13https://github.com/crawl/crawl/commit/8f37ac071af7 09:07:43 03WizardIke02 07https://github.com/crawl/crawl/pull/4865 * 0.34-a0-1037-g93019cd1ce: Fix console resize in webtiles 10(75 minutes ago, 3 files, 47+ 38-) 13https://github.com/crawl/crawl/commit/93019cd1ce73 09:45:01 03WizardIke02 07* 0.34-a0-1048-g5e2657f105: Fix changed terrain counting as known 10(12 minutes ago, 1 file, 3+ 1-) 13https://github.com/crawl/crawl/commit/5e2657f1053d 09:56:47 03WizardIke02 07https://github.com/crawl/crawl/pull/4865 * 0.34-a0-1037-gbfe73b1c81: Fix console resize in webtiles 10(2 hours ago, 3 files, 47+ 39-) 13https://github.com/crawl/crawl/commit/bfe73b1c8188 10:34:57 <02M​onkooky> there's no clean way to iterate over the entire thing 10:44:06 <02M​onkooky> like there's nothing wrong FixedArray itself, but it being arcane is a real issue when you have to code dive to understand how something works 10:50:10 <04d​racoomega> I mean, don't you iterate over it how you might iterate over any array? 11:05:12 <02M​onkooky> you have to access by coord_def or pair, rather than two parameters 11:06:27 <02M​onkooky> again, totally usable if you know how to use it, but not intuitive (oh and the pair parameter is genericized to seemingly no benefit) 12:08:40 <09g​ammafunk> you want to do a double for loop to iterate over it via integer access? is that what you're asking for? 12:09:17 <09g​ammafunk> looking at the implementation, it shouldn't be hard to add that form of access 12:09:57 <09g​ammafunk> the templated indexer and pair methods are probably there because people generally preferred to use those types of interfaces 12:10:39 <09g​ammafunk> I think the rectangle iterator/coord_def approach was favored because it does math about level geometry for you 12:11:34 <09g​ammafunk> but I don't know that we'd actually want to go adding much code that did things in a more manual way 12:17:21 <05i​coson> the reason for FixedArray/FixedVector is simple: before c++11 there was no stdlib fixed size array implementation (std::array is "only" since c++11) 12:18:19 <05i​coson> at one point (2023 according to blame) I audited this and wrote the following comment: // TODO: this class precedes std::array and is quite redundant with it, except // for the bounds check in operator[] (which std::array only has on `at`). // Should we replace / subclass / use as an underlying implementation? 12:19:41 <05i​coson> (however, change for the sake of change in crawlcode is often a somewhat risky prospect) 13:04:08 <06p​leasingfungus> re: homunculi chat a few days ago: i don't think my version of it ever made it outside my famous TODO doc - assume that's where @gammafunk saw it 13:06:06 <09g​ammafunk> Hmmm 13:06:49 <09g​ammafunk> Maybe I hallicinated testing it 13:08:04 <09g​ammafunk> Maybe I...am actually a homunculus!!! 13:22:10 <02M​onkooky> realistically I'm asking for nothing at this point, just complaining 13:23:05 <02M​onkooky> I've already done the dive to figure out how this works, and found my use case done elsewhere (clearing an fprop) 13:37:29 03WizardIke02 07https://github.com/crawl/crawl/pull/4865 * 0.34-a0-1037-g80ed0ba1b9: Fix console resize in webtiles 10(6 hours ago, 3 files, 47+ 39-) 13https://github.com/crawl/crawl/commit/80ed0ba1b94b 13:46:04 <06p​leasingfungus> i also have a lot of opinions about the ranged combat chat from yesterday 13:46:14 <06p​leasingfungus> but doubt i have time to write them up 🙁 13:47:20 <06p​leasingfungus> i'm nearly sure i specifically did a writeup about the problems with making ranged weapons bad at point blank at some point, specifically 13:47:44 <06p​leasingfungus> it's a very common idea, insofar as it's intuitive, common in other games (eg d&ds), etc 13:47:58 <06p​leasingfungus> and of course it sort of matches how many monsters behave 🙂 13:50:53 <12g​e0ff> it would be interesting to read even an abridged version of that 13:57:05 <06d​olorous_84348> Seconded. 14:43:57 <06p​leasingfungus> I have failed to find the old post, if it ever existed. 🙂 14:44:06 <06p​leasingfungus> It may have actually been a post about ranged weapon ammo. 14:44:51 <06p​leasingfungus> Because of the fiddliness/swapping issues that gammafunk brought up yesterday, my suspicion is that you'd need something like angband's "separate ranged weapon slot" for "ranged is bad in melee" to work. 14:45:33 <06p​leasingfungus> That'd have some weird implications in itself - other characters sticking junk in their ranged weapon slot to get stats/resists, for example. (IIRC, this is exactly what happens in angband.) 14:47:01 <06p​leasingfungus> Even with that change, all of the concerns that DO brought up - adding complexity without necessarily improving the 'flat' dynamics of current ranged gameplay, strategic overlap with Throwing, early-game balance, etc - still seem to apply. 14:48:20 <06p​leasingfungus> It'd be much easier to make throwing not work in melee, but there's no particular reason to. 🙂 14:56:02 <09h​ellmonk> nerf javelins 15:29:32 New branch created: pull/4866 (1 commit) 13https://github.com/crawl/crawl/pull/4866 15:29:32 03CrawlOdds02 07https://github.com/crawl/crawl/pull/4866 * 0.34-a0-1048-gc696e775ce: Allow igniting poisoned allies 10(2 days ago, 3 files, 40+ 9-) 13https://github.com/crawl/crawl/commit/c696e775cea4 16:39:23 Unstable branch on underhound.eu updated to: 0.34-a0-1048-g5e2657f105 (34) 17:59:56 neva2 (L27 DrCK) ASSERT(spell < NUM_SPELLS && index < 2) in 'tilepick.cc' at line 5032 failed. (Zig:7) 18:04:52 wut 18:05:16 !crashlog neva2 xl=27 drck place=zig:7 18:05:17 1. neva2, XL27 DrCK, T:99079 (milestone): https://crawl.akrasiac.org/rawdata/neva2/crash-neva2-20251031-005956.txt 18:05:52 parchment_colour(spell_type) 18:06:54 no gdb, of course, so can't find out details 18:07:15 <04d​racoomega> Yeah, but it implies that somehow a parchment generated with a spell of NUM_SPELLS or something? 18:09:21 <04d​racoomega> Like, maybe it should just return an empty tile in this case, but I do wonder where such an item (probably) came from 19:28:20 <09g​ammafunk> ??sizzell 19:28:21 <04C​erebot> sizzell[1/2]: Like Gretell, except that |amethyst is typing everything himself. Announces games and upgrades on crawl.s-z.org ({CSZO}). Uses "%" for its commands ("%dump" etc), but does not do nick mapping. 19:28:30 <09g​ammafunk> ??sizzell[2 19:28:30 <04C​erebot> sizzell[2/2]: Source at https://github.com/crawl/sizzell 20:55:39 <06m​umra> I had an idea around this (not claiming it was perfect) to add a concept of "holster" slots (and do away with the a/b inventory slots convention for weapon swapping -- something which is itself quite an awkward inventory legacy and rather non-obvious to new players). The idea being something in a holster slot wouldn't give you resists (you only get resists from the primary wielded weapon) but you can attack from a holster slot with no 20:55:40 swap delay. Changing the wielded weapon would take time (and could maybe be increased from the current time) as would changing holster slots. So this allows autofight to select an approriate weapon for a target without having to worry about swapping. Holsters would be bound to numeric keys to allow easily using different weapons in gameplay, and pressing v would allow you to select a target anywhere and again use the "best" weapon to attack (i.e. the 20:55:40 lowest holster number that can reach the enemy). As well as making ranged/melee swaps better this deals with a couple of other common weapon swaps: swapping to a dagger for stabs, and wielding a staff for spell enhancers but having a different weapon handy for melee that has better damage. It'd also allow having a polearm handy for reach attacks that you still don't want to be your main weapon. So you'd potentially want 3-4 holster slots with such a 20:55:41 system. Still not saying it's perfect 🙂 Just genuinely curious, do people think "swapping weapons for resists" is really good gameplay or something that would actually be better got rid of (or at least made slower) were it possible? 21:01:30 <06p​leasingfungus> i know hellmonk's position 🙂 21:37:10 <09h​ellmonk> I have accepted the necessity of some equip swapping in crawls structural system. Hellcrawl2 (real(🔜 )) will remove it though 23:31:49 Unstable branch on cbro.berotato.org updated to: 0.34-a0-1048-g5e2657f105 (34) 23:35:37 -!- wvc6 is now known as wvc 23:35:44 Unstable branch on crawl.develz.org updated to: 0.34-a0-1048-g5e2657f105 (34) 23:59:02 Windows builds of master branch on crawl.develz.org updated to: 0.34-a0-1048-g5e2657f105