00:21:58 Unstable branch on cbro.berotato.org updated to: 0.32-a0-17-gb74e046682 (34) 00:54:25 Monster database of master branch on crawl.develz.org updated to: 0.32-a0-17-gb74e046682 01:12:50 Stable (0.31) branch on cbro.berotato.org updated to: 0.31-b1-17-gcfd88c8481 01:26:47 03Sean Dewar02 {wheals} 07* 0.32-a0-18-g89e19f1974: Add missing description for Okawaru's "Receive {Weapon,Armour}" ability 10(21 hours ago, 1 file, 10+ 0-) 13https://github.com/crawl/crawl/commit/89e19f19743f 01:27:50 03Sean Dewar02 {wheals} 07[stone_soup-0.31] * 0.31-b1-18-g61460d1e46: Add missing description for Okawaru's "Receive {Weapon,Armour}" ability 10(21 hours ago, 1 file, 10+ 0-) 13https://github.com/crawl/crawl/commit/61460d1e4690 01:49:47 Unstable branch on crawl.kelbi.org updated to: 0.32-a0-18-g89e19f1974 (34) 01:49:48 Unstable branch on crawl.kelbi.org updated to: 0.32-a0-18-g89e19f1974 (34) 01:51:26 Fork (bcrawl) on crawl.kelbi.org updated to: 0.23-a0-5140-g5775ae71e1 01:51:27 Fork (bcrawl) on crawl.kelbi.org updated to: 0.23-a0-5140-g5775ae71e1 03:22:10 Stable (0.31) branch on underhound.eu updated to: 0.31-b1-18-g61460d1e46 04:23:18 Experimental (bcrawl) branch on underhound.eu updated to: 0.23-a0-5140-g5775ae71e1 05:17:49 Unstable branch on crawl.akrasiac.org updated to: 0.32-a0-18-g89e19f1 (34) 06:12:53 oh joy cargo culting my way through creating a map marker 06:43:39 More seriously I'm struggling to understand why a bunch of whole-map rectangle iterators (eg in dgn-foo.cc) start at ri(1) not ri(0) 06:46:44 Oh wait I see now 06:55:29 <03i​mplojin> love this: // Water clusters are groups of plants clustered near the water. // Wind clusters are groups of plants clustered in wind shadow -- // possibly because they can grow better without being exposed to the // strong winds of the Shoals. // // Yeah, the strong winds aren't there yet, but they could be! // 06:55:39 <03i​mplojin> dgn-shoals seems very silly 06:58:05 <03i​mplojin> // If someone is calling the tide, the tide velocity is clamped high. if (tide_caller) acc = CALL_TIDE_VELOCITY; // If there's no tide caller and our velocity is suspiciously high, // reset it to a falling tide at peak velocity. else if (abs(acc) > PEAK_TIDE_VELOCITY) acc = -PEAK_TIDE_VELOCITY; 06:59:44 <03i​mplojin> all this code and ... heightmaps? and hints of grand plans for weather that, in the end, is used to sometimes make a water tile deep 07:01:28 <03i​mplojin> or is it to just make a shallow water tile? hm 07:03:54 <03w​heals> just shallow water since 07:04:00 <03w​heals> %git efa17c4 07:04:01 <04C​erebot> PleasingFungus * 0.16-a0-3717-gefa17c4630: Streamline Shoals (9 years ago, 2 files, 9+ 190-) https://github.com/crawl/crawl/commit/efa17c463063 07:04:10 <03w​heals> so a pretty recent change 10:03:09 <09g​ammafunk> wow, it's after 0.16 already? I was just getting used to that version 10:29:58 mrali (L2 MiBe) Crash caused by signal #6: Aborted (D:2) 10:34:40 <03w​heals> !crashlog mrali 10:34:41 <04C​erebot> 1. mrali, XL2 MiBe, T:885 (milestone): https://underhound.eu/crawl/morgue/mrali/crash-mrali-20240115-172957.txt 15:25:41 <04d​racoomega> Crawl's item implementation is cursed C++ /// The location of the item. Items in player inventory are indicated by /// pos (-1, -1), items in monster inventory by (-2, -2), and items /// in shops by (0, y) for y >= 5. coord_def pos; /// For floor items, index in the env.item array of the next item in the /// pile. NON_ITEM for the last item in a pile. For items in player /// inventory, instead the index 15:25:42 into you.inv. For items in monster /// inventory, equal to NON_ITEM + 1 + mindex. For items in shops, /// equal to ITEM_IN_SHOP. short link; 16:26:00 Unstable branch on underhound.eu updated to: 0.32-a0-18-g89e19f1974 (34) 16:36:20 <09g​ammafunk> yes that linked "list" approach for items is horrible 16:37:54 <09g​ammafunk> that item position logic is also very silly. That comment doesn't even explain what the y for in-shop items means, if it means anything 16:39:10 <04d​racoomega> Probably a different place per-shop? _cull_items() also contains this gem of // 2. Avoid shops by avoiding (0,5..9). 16:39:34 <04d​racoomega> As they othewise iterate through the tiles on a floor 16:40:38 <04d​racoomega> I am not sure I see this comment's effect reflected in the code below it, though 16:40:59 <09g​ammafunk> I'm fearful that code archaeology will reveal that this was linley's original design for floor items and shop items 16:42:43 <04d​racoomega> I was running into problems trying to save/re-create apostle inventories - so that you can revive them afterward even if they're dead. Various crashes when people die, and then afterward when loading save files that otherwise seemed to be working, and it took me this long to realize that monsters don't actually hold anything 16:42:45 <04d​racoomega> The floor does 16:42:51 <04d​racoomega> In a giant pile at (-2, -2) 16:43:56 <04d​racoomega> And even when the monster 'holding' it is stuck in a prop and not on the map itself, it's still referencing items on the 'floor' 16:44:40 <09g​ammafunk> I knew that the floor held them for monsters, but I thought (or misremembered that) the items moved with them 16:44:50 <04d​racoomega> They probably do, if the monster actually exists on the map 16:45:11 <04d​racoomega> But not when I basically have a 'backup copy' of the monster stashed in a prop, so it can be reconstituted after the one on the map dies 16:45:24 <09g​ammafunk> Yeah, because, otherwise I was wondering how monsters keep their respective lists straight. Is it just a CrawlVector of item_defs as a prop for each monster? 16:46:12 <09g​ammafunk> oh you're saying you've added a prop to keep a copy of the items? 16:46:25 <04d​racoomega> Monster inventory is just a fixed array of indecies into the floor's item list 16:46:39 <09g​ammafunk> I see 16:47:06 <04d​racoomega> The game is presumably doing fanciness behind the scenes to move these pseudo-floor items around with the monsters, but can't know to do that for monsters saved in a prop 16:47:39 <04d​racoomega> The entire handling of items like that is dumb, but what I think I will need to do is unlink all of the saved-monster's items, and then manually link and give them back to the monster when I recreate it 16:48:06 <04d​racoomega> (I was looking into how ?acquirement saves items in a prop that do have to move around with you between floors) 16:48:15 <04d​racoomega> But aren't owned by anyone 16:48:24 <09g​ammafunk> right, it simply saves item defs 16:48:31 <09g​ammafunk> it does not save actual floor items as such 16:48:51 <09g​ammafunk> it's fine to keep copies of item defs around (modulo annoying aspects like unrands) 16:49:18 <04d​racoomega> In fact, the code that creates those item defs for ?acq appears to generate the item normally, then make a copy of the item def, and then unlink and destroy the original 16:50:40 <09g​ammafunk> yes 16:50:50 <04d​racoomega> Which I guess I will also have to do 16:51:26 <04d​racoomega> Newbeogh is one implementation headache after another, let me tell you 😛 16:51:39 <09g​ammafunk> yeah I can believe it 16:52:52 <09g​ammafunk> when implementing this acquirement, I had to read through various item creation thingies to even figure out the best way to do this 16:53:13 <09g​ammafunk> I think the shop code was helpful but it was quite a headache 16:53:39 <04d​racoomega> Oh, you coded new ?acq? 16:53:57 <09g​ammafunk> yep 16:54:02 <04d​racoomega> Well, 'new'. I have no idea how new it actually is, tbh 16:54:07 <09g​ammafunk> fairly old by now, yeah 16:54:22 <09g​ammafunk> and the design/suggestion is far older; I think a fork called crawl-light had a someone similar system 16:54:30 <09g​ammafunk> various people including minmay mentioned it a lot 16:54:31 <04d​racoomega> I've somehow never really had to deal with items before now. I do not like them very much 😛 16:54:38 <04d​racoomega> Yeah, I remember the idea floating around for a long time, in a general form 16:54:52 <04d​racoomega> But implementation is worth a lot of ideas 😛 16:57:00 <09g​ammafunk> it iterated quite a bit to get the acquirement balance right over a few versions. menu issues were a pain, but manageable. I had help from advil and aidanh (who rewrote a lot of our menu system) after I got the item gen and menu working to fine tune certain menu aspects 16:57:27 <09g​ammafunk> looking forward to new Beogh though, I only ever won it once and had no desire to return to it, even less so than with yred 16:58:06 <04d​racoomega> I think it'll be fun! I mean, I think they'll both be fun, ideally ^^; 16:59:21 <04d​racoomega> (Yred needs some definite balance adjustments before it's ready for a post-tourney experimental branch, but it's been 'working' on a quite playable level for a little while now. I always knew the Beogh plan was more technically ambitious, but I am finding out recently that it is even more than that) 16:59:50 <04d​racoomega> But still making forward progress, day by day 18:17:45 <04d​racoomega> Do we call this progress? 18:17:45 <04d​racoomega> https://cdn.discordapp.com/attachments/747522859361894521/1196624298413129818/image.png?ex=65b84e38&is=65a5d938&hm=eef9654fb4399b915f298c53f8942c140da27e87e8e6c5522ac243aef81c0ff5& 18:18:20 <04d​racoomega> "At least it doesn't crash" 18:25:33 <09g​ammafunk> wandering peacefully with its !bad item 18:27:31 <04d​racoomega> I bet it doesn't even realize how bad they are 18:28:08 <06r​egret-⸸nde※> also in the same vein of fiddling with better gear for monsters: 18:28:08 <06r​egret-⸸nde※> https://cdn.discordapp.com/attachments/747522859361894521/1196626912030769212/image.png?ex=65b850a8&is=65a5dba8&hm=779de0a41c692aa85dabd442151a6deeeddb91c0b9bd6084250f48356c88cd70& 18:34:02 <09g​ammafunk> can we get Will+, Will- I wonder 18:36:51 <04d​racoomega> Oh, even better. After putting in some more diagnostic output, I can (sort of) see why it's ended up with bad items 18:36:55 <04d​racoomega> Restoring item: 0, 20, 2, 1 Giving +2 broad axe of flaming to orc apostle... Destroying +2 broad axe of flaming because orc apostle doesn't want it! Restoring item: 2, 0, 2, 16 Giving +2 robe of positive energy to orc apostle... Destroying +2 robe of positive energy because orc apostle doesn't want it! The orc apostle is no longer covered in acid. Unknown command. Press: ? - help, v - describe, . - travel Here: an orc apostle, 18:36:56 wielding a !bad item (cl:100,ty:0,pl:0,pl2:0,sp:0,qu:0) and wearing a !bad item (cl:100,ty:0,pl:0,pl2:0,sp:0,qu:0) (wandering, peaceful) 18:37:07 <04d​racoomega> It doesn't want them 18:37:12 <04d​racoomega> It wants its !bad item instead 18:37:49 <06r​egret-⸸nde※> so much more power and aesthetic to wear !bad items over regular gear, after all 18:40:18 <04d​racoomega> I suppose a real player would totally wear a !bad item over a +2 broad axe of flaming, if it were possible for them to do so 18:41:19 <06r​egret-⸸nde※> nearly done my decorations project here, except for the part of accurately describing rough numbers of where each of them would be used, which was easy for a lot of these and became much harder for my pledge to make nearly every fog_machine have a visible source 18:41:43 <06r​egret-⸸nde※> does alistair's mansion party have cloud vents, cloud emblems, or cloudy crevices? 18:42:11 <04d​racoomega> Vents 18:42:13 <04d​racoomega> It's the air exchanger 18:42:32 <04d​racoomega> Best HVAC money can buy, spewing only the best... actually what clouds even are there? 18:42:38 <06r​egret-⸸nde※> degeneration. 18:42:41 <04d​racoomega> Welp 18:42:49 <04d​racoomega> Worst HVAC money can buy, spewig only the worst- 18:53:08 <04d​racoomega> Exciting new error messages: 18:53:09 <04d​racoomega> https://cdn.discordapp.com/attachments/747522859361894521/1196633204552126504/image.png?ex=65b85684&is=65a5e184&hm=4aabff0fc3ececcce2a8566cb1aeceb8846e38c5df3f5908863de1c3b487e838& 18:53:38 <06r​egret-⸸nde※> amazing clarification already readied by the game 18:54:00 <04d​racoomega> Somewhere along the line I am not properly breaking monster references, I guess 18:56:37 <04d​racoomega> Even if it's not clear to me where 19:06:37 <04d​racoomega> Okay, at this point I'm concerned how the cloned monster that I'm storing in a prop seems to 'die' on save/reload. Like, I can revive them (still item bugs, but I can revive them) as long as I don't save/quit, but when I do save and reload, the stored monster seems to have become MONS_NO_MONSTER 19:09:07 <04d​racoomega> Though presumably this basic behavior does actually work, since this is how porkulator stores what to restore a porkalated monster to 19:09:38 <09g​ammafunk> By cloned monster that you're storing in a prop, I take it to mean that while the monster is dead (or at least until you need to revive it), its monster definition is cloned to a prop, and when you actually turn it into a real monster again, said cloned real monster converts to an ill-defined monster? 19:10:00 <09g​ammafunk> upon save/reload, I guess 19:13:09 <04d​racoomega> Well, I am stored it in a prop before it is dead. Like, the 'base state' of a monster. Which then can be used to restore it some point in the future after it has died. And I can reinstantiate it seemingly fine, after the original's death, if I don't save/quit. But saving/quiting first seems to reset the monster in the prop somehow 19:13:38 <04d​racoomega> Regardless of whether I have reinstantiated it first 19:14:28 <09g​ammafunk> yeah, I see what yo umean about breaking monster references. Presumably the monster def in the prop is still getting updated when the original monster dies 19:15:05 <04d​racoomega> Well, it can't be, since it doesn't get reset from it dying while Crawl is running 19:15:22 <04d​racoomega> They can die and be restored over and over as long as I don't close the game 19:15:36 <09g​ammafunk> well, it could be, because the reset isn't happening until marshalling 19:15:55 <09g​ammafunk> I imagine you might see the same issue if crawl is still running if you do e.g. an excursion 19:16:03 <04d​racoomega> I mean, it works if I change floors myself 19:16:11 <04d​racoomega> Which I assume is doing at least as much work as an excursion 19:26:24 <06r​egret-⸸nde※> https://github.com/crawl/crawl/wiki/Decoration-type-spree-for-0.32 19:27:16 <06r​egret-⸸nde※> have a bunch of questions about execution for all this, but none of this is particularly pressing, and it's all waiting for the next version 19:27:43 <06r​egret-⸸nde※> would like some answers to the Inquiries section before bothering to do the rest 19:42:38 <06p​leasingfungus> > would it be weird if a "metal statue" was made an underlying feature..? seems fine - the whole lrd thing is silly but very low impact 19:43:33 <06p​leasingfungus> > Are three cloud-source features too much mental overload…? something about the word ‘emblem’ seems silly to me but otherwise seems fine. 19:45:45 <06r​egret-⸸nde※> rune means something in crawl (and runed adds another two), glyph means something for console, sigil just got binding sigils 19:45:52 <06r​egret-⸸nde※> miscellaneous magic words are hard 19:46:34 <06p​leasingfungus> > low tables / bedding not overwhelmingly excited by those, think it’s fine to punt 19:46:50 <06p​leasingfungus> sigil seems fine even with that tbh 19:47:25 <06p​leasingfungus> > Would other equivalents to butterflies- zero-attack, randomly-moving monsters- add to further annoyance in terms of autoexploring through them…? bit nervous about this yes 19:47:27 <06r​egret-⸸nde※> I guess I'm reluctant to add "sign of cloud generataor" to the same word currently meaning "a spell-made trap that does something when stepped on" 19:47:59 <06r​egret-⸸nde※> but I am flexible 19:48:02 <06p​leasingfungus> it’s a magic terrain feature 19:48:18 <06p​leasingfungus> (both are) 19:48:25 <06r​egret-⸸nde※> fair enough 19:48:42 oh darn it don't make me draw a new thorn lotus tile 19:48:50 <06p​leasingfungus> lol 19:49:09 <06p​leasingfungus> don’t think renaming any of these later should be hard 19:49:20 <06p​leasingfungus> great case for mass find replace 20:25:13 <04d​racoomega> Okay, I think I have finally figured out the problem (well, one of this long chain of problems) and it is very silly 20:27:45 <04d​racoomega> The apostle had been being saved in the prop while its hp was 0 (because it happened at the point in _monster_avoided_death where it hasn't actually been healed up yet). This wasn't noticable to me because redeploying the apostle on the battlefield was also setting its hp to full. But I guess Crawl, on game load (but not floor changes) was 'killing' it because it had 0 hp. I guess changes floors didn't affect it since it was a 20:27:46 player prop and we probably don't marshall/unmarshall the player except on game load. 20:29:01 <04d​racoomega> And putting all this together, it does seem able to restore an apostle with full gear, and is resiliant against floor changes and save/loading (I think) 20:29:09 <04d​racoomega> Only took the whole day 😛 20:30:31 <04d​racoomega> (I am not at all confident that something isn't dangerously broken, given how brittle all this has been, but so far it seems to be working) 20:30:34 <06p​leasingfungus> salute to your perseverance 20:31:20 <04d​racoomega> Perseverance is my default bugfix strategy ^^; 20:32:04 <04d​racoomega> "Maybe if I hit enough things with hammers (and mprfs), I will figure out where the problem is." 20:42:10 <09h​ellmonk> I remember trying to do this in hellcrawl and having the same problem so I gave up and just teleported the monster away to an unused level so it never despawned 21:12:19 <09g​ammafunk> dang, I was vaguely close with that marshalling problem idea, but didn't consider that the player marshalling of the prop was the connection. Was thinking in terms of the level marshalling 23:19:39 <03w​heals> doesn't beogh revival already use a monster inside a prop? now I'm surprised that never caused issues 23:32:45 <04d​racoomega> It uses a monster in a prop of its own corpse, but it just picks up the items left on top of the corpse rather than trying to save any of those 23:34:16 <04d​racoomega> To be clear, the items on top of the corpse that are marked as having been used by it. Not just anything on top of it