00:14 -!- elenmirie has joined #hardfought 00:14 -!- mode/#hardfought [+v elenmirie] by ChanServ 00:18 -!- Grassy has joined #hardfought 00:18 -!- mode/#hardfought [+v Grassy] by ChanServ 00:21 -!- Grasshopper has quit [Ping timeout: 248 seconds] 00:34 -!- StatueSurfer has quit [Ping timeout: 260 seconds] 01:11 -!- aoei has joined #hardfought 01:20 -!- StatueSurfer has joined #hardfought 01:27 -!- Grassy has quit [Read error: Connection reset by peer] 01:28 -!- Grasshopper has joined #hardfought 01:28 -!- mode/#hardfought [+v Grasshopper] by ChanServ 01:29 -!- raisse has quit [Ping timeout: 248 seconds] 01:46 -!- Beholder has quit [Remote host closed the connection] 01:46 -!- Beholder has joined #hardfought 01:46 -!- mode/#hardfought [+v Beholder] by ChanServ 01:48 !players 01:48 K2: Nobbs [06nh4] 01:48 K2: [hdf-eu] k2 [04gh] elenmirie [07nd] 01:48 !whereis 01:48 K2: !whereis - finds a player in the dungeon. 01:48 !whereis k2 01:48 K2: k2 is not currently playing on this server. 01:48 K2: [hdf-eu] k2 [04gh]: No details available 01:48 love it 01:48 thanks Tangles! 01:59 test 01:59 k 01:59 -!- StatueSurfer has quit [Quit: Page closed] 02:31 -!- aoei has quit [Quit: Leaving] 03:05 k2: Don't we have whereis in grunthack 03:05 hrm 03:05 lemme dbl check 03:06 !whereis k2 03:06 K2: k2 [04gh]: (Mon Elf Mal Neu) T:36 The Dungeons of Doom level: 1 03:06 K2: [hdf-eu] k2 [04gh]: No details available 03:07 something is amiss :P 03:07 lemme make sure its not my gh setup on eu server 03:08 !whereis k2 03:08 K2: k2 [04gh]: (Mon Elf Mal Neu) T:36 The Dungeons of Doom level: 1 03:08 K2: [hdf-eu] k2 [04gh]: (Cav Ogr Fem Cha) T:10 The Dungeons of Doom level: 1 03:08 \o/ 03:08 forgot to make the whereis folder for gh on eu server 03:09 also forgot for sporkhack 03:09 i better check em all 03:11 !whereis k2 03:11 K2: k2 [04gh]: (Mon Elf Mal Neu) T:36 The Dungeons of Doom level: 1 03:11 K2: [hdf-eu] k2 [14sp]: (Rog Gno Mal Cha) T:8 The Dungeons of Doom level: 1 03:13 [07nd] PasDeDeux (Rog Orc Fem Cha), 624 points, T:2105, killed by a giant ant 03:28 !whereis k2 03:28 K2: k2 [08un]: (Priest human Mal neutral) T:13 The Dungeons of Doom level: 1 03:28 K2: [hdf-eu] k2 [08un]: No details available 03:28 hmm 03:28 unnethack on eu server is not putting the whereis file in the whereis folder 03:28 its putting it one level up 03:28 even though the build cfg is identical from hdf main 03:41 -!- raisse has joined #hardfought 03:41 -!- mode/#hardfought [+v raisse] by ChanServ 03:43 !whereis k2 03:43 K2: k2 [08un]: (Priest human Mal neutral) T:13 The Dungeons of Doom level: 1 03:43 K2: [hdf-eu] k2 [08un]: (Healer gnomish Fem neutral) T:37 The Dungeons of Doom level: 1 03:43 \o/ 03:45 !whereis k2 03:45 K2: k2 is not currently playing on this server. 03:46 hi 03:46 Hello FIQ, Welcome to #hardfought 03:48 !whereis k2 03:48 K2: k2 [15nh]: (Wiz Elf Mal Cha) T:1 The Dungeons of Doom level: 1 03:48 K2: [hdf-eu] k2 [15nh]: (Val Dwa Fem Law) T:5 The Dungeons of Doom level: 1 03:49 !who 03:49 FIQ: Nobbs [06nh4] k2 [15nh] 03:49 FIQ: [hdf-eu] elenmirie [07nd] k2 [13dnh] 03:49 cool 03:49 !whereis k2 03:49 K2: k2 [15nh]: (Wiz Elf Mal Cha) T:1 The Dungeons of Doom level: 1 03:49 K2: [hdf-eu] k2 [13dnh]: (Wiz Gno Fem Neu) T:11 The Dungeons of Doom level: 1 03:49 cool 03:49 nice 03:49 slex doesnt have whereis 03:49 or does it now 03:49 !whereis elenmirie 03:49 elenmirie: elenmirie is not currently playing on this server. 03:49 elenmirie: [hdf-eu] elenmirie [07nd]: No details available 03:50 we should make a whereis pull request for dev 03:51 !tell LarienTelrunya you should look into adding whereis capability for slex. bundlebundlewhateverbleh 03:51 Will do, K2! 03:52 !whereis k2 03:52 K2: k2 [15nh]: (Wiz Elf Mal Cha) T:1 The Dungeons of Doom level: 1 03:52 K2: [hdf-eu] k2 [10fh]: (Mon Hum Mal Neu) T:258 The Dungeons of Doom level: 1 03:52 !whereis k2 03:52 K2: k2 [15nh]: (Wiz Elf Mal Cha) T:1 The Dungeons of Doom level: 1 03:52 K2: [hdf-eu] k2 [114k]: (Rog Syl Fem Cha) T:6 The Dungeons of Doom level: 1 04:05 [10fh] Sutton (Behemoth) (Tou Hum Mal Neu), 12618 points, T:433, quit 04:28 -!- raisse has quit [Quit: Raisse suddenly disappears!] 04:28 -!- raisse has joined #hardfought 04:28 -!- mode/#hardfought [+v raisse] by ChanServ 04:33 apparently someone called Morwen ascended nethack4 14 times in a single day 04:33 heh 04:35 sorry, 15 04:37 "ez pz", says Morwen 04:39 Wait, 14 times in a day? That's either Adeon-level speedrunning, or else a complete abandonment of any pretense of sleeping at night. 04:41 Or parked games. 04:41 Could be that, I suppose. 04:41 parked games I'd say 04:41 still impressive 04:41 also, 15 04:41 :P 04:41 Yeah. 04:41 I've spent all yesterday just to get to Gehennom in DynaHack and I'm happy with what I've got 04:41 and even if you were up 24h 04:41 you'd have to consistently almost match adeon 04:41 for 15 games 04:42 dynahack is sloooow 04:42 if it wasn't parked games 04:42 hothraxxa: why? 04:42 takes forever to train weapons 04:42 only from unskilled I think 04:42 you train all of them? 04:42 due to 25% miss 04:42 also i'm a healer. healers are severely handicapped in dynahack 04:43 how? 04:43 fiq: no it's true for all levels 04:43 hm ok 04:43 YASI: autoenhance option. Automatically enhances your skills when you are eligible to enhance them. 04:43 healers are restricted in armor 04:43 ah 04:43 I thought healers are a challenge in general 04:43 they are 04:44 anyway, no i don't train all weapons but healers have really limited options 04:44 unti you get the staff you're basically doing powderpuff damage 04:44 There's crysknife 04:44 hothraxxa: unihorn? 04:44 But yeah. 04:44 Or yes, unicorn horn. 04:44 or crysknife yes 04:44 fiq: that's my normal path yes 04:45 no crysknife 04:45 this time i didn't use the unihorn due to magicbane 04:45 ahh 04:46 crysknife sucks 04:46 you have to train knife, thenif you drop it...oops 04:46 Well, yes, there's that. 04:46 You don't want to eat random tins while wielding a crysknife. 04:46 Does it revert if a nymph steals it? That would suuuuuuck. 04:46 it does 04:46 don't know 04:47 not upon stealing itself 04:47 but when dropped 04:47 after death 04:47 ah when you kill her 04:47 Ah, so when you kill her. I see. 04:47 if you want to use a crysknife seriously 04:47 Can you polynymph and steal it back? 04:47 you really ought to fix it 04:47 yes 04:47 Wait, does it NOT revert if fixed? 04:47 it's not worth the trouble 04:47 a fixed crysknife only reverts 10% of the time 04:48 I've considered making it 0% 04:48 there is no reason it has to be so annoying to use 04:48 I support making that 0%. 04:48 Giving the player a way to prevent disaster but having it fail 10% of the time is just mean. 04:49 when was nethack ever not mean? 04:49 Heh. 04:50 yo fall into a spiked pit. the spikes were poisoned! you die... 04:50 Well, I mean, "It only happens 10% of the time" sounds like a SlashEM Extended developer's argument for implementing an EPI. 04:50 because it is 04:50 hothraxxa: Yes, and several variants have done various things to that. 04:50 all her ideas are like that 04:50 balancing evilness by making it rare 04:51 but making a lot of them 04:51 FIQ: NOt _all_. She also did pokedex. 04:51 so that you're bound to be hit by at least one 04:51 Which is horribly named, but a useful feature. 04:51 pokedex is just unnethackplus' monster lookup 04:51 Ah. 04:51 but renamed into the pokedex 04:51 Didn't realize it came from Un+ 04:51 it is the same thing my monster lookup was inspired by 04:52 dynahack has it too, based on un+ 04:52 I see. 04:52 Here I thought you were inspired by slex. 04:52 Silly jonadab. 04:52 no 04:52 then I would have mentioned it 04:52 because slex having a good feature is cool 04:52 due to it being so novel 05:01 -!- Tangles is now known as BeerHolder 05:04 -!- mode/#hardfought [-o BeerHolder] by ChanServ 05:07 -!- BeerHolder is now known as Tangles 05:07 -!- mode/#hardfought [+o Tangles] by ChanServ 05:40 -!- Demo_ has joined #hardfought 05:40 -!- Demo_ has quit [Client Quit] 05:42 -!- Grasshopper has quit [Ping timeout: 240 seconds] 05:42 <[Demo]> is nao dead these days? 05:44 -!- Grasshopper has joined #hardfought 05:44 -!- mode/#hardfought [+v Grasshopper] by ChanServ 05:48 -!- Grasshopper has quit [Ping timeout: 248 seconds] 05:49 !tell ais523 why is A_BLINK not implemented in uncursed? 05:49 Will do, FIQ! 05:51 -!- Demo has joined #hardfought 05:55 [07nd] Demo (Ran Elf Fem Cha) chose an elven dagger to be named "Sting", on T:2 06:03 <[Demo]> hmm having a problem, getting Error: Cannot use percent with 'hitpoints-max'. cause by this line OPTION=hilite_status: hitpoints-max/100%/green/green in 3.6.1 06:06 hitpoints can be expressed as a percentage of hitpoints-max, but hitpoints-max is just a number. 06:06 I'm guessing that's why. 06:06 -!- ais523 has joined #hardfought 06:07 Beholder: messages? 06:07 ais523: Message from FIQ at 2017-12-10 08:49 EST: why is A_BLINK not implemented in uncursed? 06:07 FIQ: a) it's unreliable (some terminals interpret it as background color); b) it's really annoying; c) it's fairly easy to simulate from outside the terminal if you really want it 06:07 <[Demo]> im not sure how that configuration got there, i assume its a default by k2? 06:08 I'm considering making libuncursed2 capable of simulating blink but it might be better to discourage it and persuade people not to :-) 06:08 ais523: I was going to simulate blink, yes 06:08 [Demo]: yeah it could be. 06:08 statuscolors/statushilites and menucolors support &blink as an attribute 06:08 which is where it'd be used 06:08 is there a good reason for that? :-D 06:09 meh 06:09 [Demo]: also some statushilites options changed recently, so maybe it worked before... 06:09 there are actually two defined blink states in the relevant standards, fast blink and slow blink 06:09 just implement a &blink color pair set 06:09 most terminals only implement one though 06:09 and make refreshes account for it 06:10 [Demo]: I'm guessing you want an up/down highlighting on that value. 06:10 the common misinterpretation of "blink" as "bold background" might make sense, but uncursed 1 can't bold backgrounds either (because they can get misinterpreted as blink…) 06:10 s/an// 06:10 unless uncursed intends to stand in my way by making changing color pairs not actually change the color set unless I redraw it 06:10 and not merely just refresh the window 06:11 if you change color pairs then the set color will change too 06:11 that's intentional and I used quite a bit of code making that work 06:11 cool 06:11 that means less work for me regarding mainframe 06:11 libuncursed2 will have a similar feature (a color palette letting you set colors indirectly) 06:11 that's how the main frame coloring works in NH4 06:12 since I only have to redraw the frame from scratch in case a resize happens 06:13 ais523: regarding the bold + background color thing 06:13 does that mean that there is no way to differ between a minotaur and fire giant pet? 06:13 in libuncursed 06:14 FIQ: what's the difference without a background? the same difference should work with 06:14 I'm thinking of "bolding" background and foreground separately here 06:14 yellow + reverse vs brown + reverse 06:14 would be the same in libuncursed, right? 06:15 they're often the same in curses, nethack-tty, and the like too 06:15 konsole's handling of this is somewhat sane, allthough not perfect 06:15 as is gnome-terminal 06:15 color-wise 06:15 gnome-terminal's is better but can't be simulated realibly 06:15 you can still tell them apart by the font used for the H 06:15 konsole's can 06:15 konsole reverses yellow to brown + darkgray 06:15 (due to bold black -> darkgray) 06:15 oh, that's believable 06:16 and is a natural consequence of 8-bit color handing 06:16 if you treat inverse as swapping red/green/blue but /not/ intensity 06:16 gnome-terminal does an actual color reverse 06:16 but that can't be simulated without 8bit color 06:16 but this only works because the background is being interpreted as black-the-color rather than as a background that happens to be black 06:16 ais523: well my point is 06:16 4bit color is enough, it's just that some terminals have only 3 06:16 you can simulate this 06:16 from libuncursed's POV 06:17 which is IMO more satisfactory than losing information 06:17 yes, it's best to simulate inverse as swapping red/green/blue but not intensity, if you want to keep colors distinct 06:18 also 06:19 pline stuff is significantly more annoying than I was expecting 06:19 the paging itself isn't too hard 06:19 but handling resizing is awkward 06:19 ideally what you want to do is to ensure that in no circumstances are messages "lost" (gone past without dismissing the --More--) 06:20 meaning that if you have 5 new messages on screen 06:20 that you haven't seen 06:20 and then make thet erminal smaller 06:20 you may end up with the --More-- earlier than it was previously 06:20 and vice versa 06:20 *terminal 06:22 <[Demo]> how the hell do u eat a blue jelly without taking cold damage? 06:22 you... don't take cold damage 06:23 from eating it 06:23 <[Demo]> right 06:23 <[Demo]> would make sense if things with cold attacks based on their body would dmg u when you ate them like poisonous or acidic things if you didn't have cold resistance 06:24 anyone else hear what happened with StatueSurfer the other day? Almost ascended (splatted on Fire) without ever learning you can open a container directly in your inventory. 06:24 So every time they wanted something, they dropped their bag and #looted. 06:24 <[Demo]> jesus, wow 06:25 <[Demo]> new conduct? 06:30 [10fh] Zee (krm26) (Arc Hum Fem Law), 19655 points, T:650, killed by a gas spore's explosion 06:32 [07nd] Demo (Ran Elf Fem Cha) had Orcrist bestowed upon her by Mars, on T:5353 06:33 <[Demo]> mars ur dumb 06:35 aosdict: in dnethack, you do take cold damage from eating blue jelly 06:35 Hmm, is there a way to look up branch name and level just from the level number? 06:35 yes 06:36 iterate the level list 06:36 look at overview code 06:36 in dungeon.c 06:37 Yeah, but that's inefficient. I have a d_level* available which will get me branch number and level within that branch. 06:37 so what is the problem? 06:37 -!- Grasshopper has joined #hardfought 06:37 -!- mode/#hardfought [+v Grasshopper] by ChanServ 06:37 Well I guess the problem is how to transform branch number into branch name. 06:39 Which seems like I should be able to do dungeons[dnum].dname 06:39 you can use stuff like In_mines 06:40 FIQ: this is for thief stones 06:40 you want a thief stone to be able to tell you it's keyed to a Mines level 06:40 even if you're not there 06:40 Well then, I guess the larger issue is 06:41 you and ais both advised storing the keyed level in a reused schar 06:41 yes 06:41 but I need to use that single number to look up the corresponding d_level struct 06:41 unless you want to fiddle with oextra 06:41 in order to get the branch and level info 06:42 the dungeon code is one of the other parts of the code I've almost never looked at :) 06:42 the dungeon code is kinda messy 06:42 anyway I suggest you store level ID 06:44 yeah but I feel like there is some array out there where I can look up the proper d_level just using the level ID 06:44 actually 06:44 I can't help you at all I think 06:44 because NH3 handles levels differently 06:44 and I only know what NH4 does 06:46 -!- raisse has quit [Quit: Raisse suddenly disappears!] 06:46 -!- raisse has joined #hardfought 06:46 -!- mode/#hardfought [+v raisse] by ChanServ 06:47 aosdict: when a monster migrates in NH4, it stores a z and dnum at muxy (coordinates for it thinking where the player is) 06:47 so you need to store 4 coordinates, clearly 06:47 dnum, z, x, y 06:48 -!- Grasshopper has quit [Ping timeout: 248 seconds] 06:48 -!- Grasshopper has joined #hardfought 06:48 -!- mode/#hardfought [+v Grasshopper] by ChanServ 06:49 aosdict: actually, branchporting is probably closest to what you want to do 06:49 in terms of "how do I figure out level from dnum/z" 06:49 I'm trying to do the other way around 06:49 iterate dungeons, figure out top/bottom level 06:49 and iterate levels 06:49 until you have the proper level pointer 06:50 aosdict: figuring out dnum/z from level? that's trivial 06:50 level.z 06:50 is a d_level struct with dnum/z 06:52 though that would work, it would require associating a level pointer with the object 06:53 yes, you want to store dnum/z 06:53 no pointer shenanigans 06:53 easier that way 06:54 well, there are still pointer shenanigans assuming you have to iterate through the levels in a dungeon 06:59 -!- Grasshopper has quit [Ping timeout: 255 seconds] 07:02 FIQ: wait, so if dungeons are only stored through pointers 07:03 why is there a 127 limit across the entire game 07:03 aosdict: whenever the game needs to refer to a level in a non-pointery way, it uses z 07:03 which is an xchar 07:03 or could one do something like the main branch goes down to DL90 and the Mines also go down to DL90 07:03 without breaking stuff 07:04 I can't answer that 07:04 ais523: do you know the answer to this? 07:04 FIQ: yes, but that seems like it would only localize the 127-level limit to a single branch 07:04 -!- Beholder has quit [Remote host closed the connection] 07:04 FIQ: actually there are three representations of levels: 07:04 a) a level pointer, which is a pointer 07:04 b) a branch number and level number pair, which is what (say) u.uz is 07:04 -!- Beholder has joined #hardfought 07:04 -!- mode/#hardfought [+v Beholder] by ChanServ 07:04 c) a ledger number, which is a single 8-bit integer 07:05 ledger numbers are IIRC mostly used in the save system 07:05 but they're the first sticking point you encounter if you try to add lots of extra levels 07:05 ah right 07:05 ledger number 07:05 I forgot about that thing 07:05 that is probably what aosdict wants to use to store thiefstone level 07:05 seems like I could use the ledger system then 07:05 [11hdf-us] [07nd] Demo (Ran Elf Fem Cha), 2880 points, T:8108, killed by a bolt of cold 07:05 yeah, ledger_to_dnum and ledger_to_dlev exist 07:06 <[Demo]> hmm 07:06 <[Demo]> not sure if i should blame myself 07:06 [hdf-us] is new 07:06 <[Demo]> yeah definitely should 07:07 so the ledger system can be used to freely switch between dlevel structs and xchars 07:07 !who 07:07 K2: [11hdf-us] Zxkuqyb [05dyn] k2 [15nh] Demo [07nd] 07:07 K2: [12hdf-eu] k2 [04gh] Raisse [07nd] elenmirie [07nd] 07:07 hah the lines match 07:07 what are the odds 07:08 nice :) 07:08 <[Demo]> whoa theres a eu server now? 07:08 yes 07:09 and very zippy it is, too! 07:09 provided you're in europe :-) 07:09 [hdf-au] [irl] Tangles (Hac Hum Mal Cha), 292851 points, T:12153, killed by a distributed system 07:09 -!- noty has joined #hardfought 07:10 lol aosdict 07:10 <[Demo]> wait is that an australia server too? 07:10 <[Demo]> how many hf servers are there now? 07:10 <[Demo]> oh 07:10 <[Demo]> damn bot 07:10 the march to world domination continues... 07:10 I don't know if the au server is still active 07:10 it was in November 07:11 -!- Beholder has quit [Remote host closed the connection] 07:12 -!- Beholder has joined #hardfought 07:12 -!- mode/#hardfought [+v Beholder] by ChanServ 07:12 AU server is down for now 07:13 [11hdf-us] [07nd] Demo (Rog Hum Fem Cha), 213 points, T:702, killed by a coyote 07:16 I wish C build systems were smart enough to figure out I only changed some comments in obj.h and there's no need for a full rebuild 07:17 debugging symbols might change as a result 07:20 <[Demo]> i know if im hungry i pay more for food but if im satiated do i pay less? 07:21 no 07:36 [11hdf-us] [07nd] Demo (Rog Hum Fem Cha) became literate by engraving "hi", on T:4053 07:50 [11hdf-us] [07nd] Demo (Rog Hum Fem Cha) had Stormbringer bestowed upon her by Kos, on T:5842 07:51 <[Demo]> dumb gods finally getting it right 07:51 huh, some but not all thiefstones are getting a ledger number of 0 and panicking 07:51 lovely 07:59 maybe using spe is not a great idea? could spe conceivably get set to 0 by some other process? 08:00 oh, good example: cancelling 08:00 not that I canceled anything 08:00 but this means that the code should at least support cancelled thief stones 08:04 right 08:05 just have to find what is setting it to 0 then 08:16 Does farlook provide any way to show the coordinates under the cursor? Based on its help page, it doesn't seem like it. 08:17 -!- Beholder has quit [Remote host closed the connection] 08:17 -!- Beholder has joined #hardfought 08:17 -!- mode/#hardfought [+v Beholder] by ChanServ 08:17 if you select the option for all onjects on the map, you get coordinates 08:17 or all mosnters 08:17 but not under the cursor 08:18 no. i think some variants have that 08:20 -!- Chris_ANG has quit [Read error: Connection reset by peer] 08:31 -!- raisse has quit [Ping timeout: 250 seconds] 08:33 <[Demo]> man i feel stupid 08:34 <[Demo]> purple worm on oracle level didnt trigger me to realize that there was a polytrap 08:34 <[Demo]> thought it was somehow maybe shrieker related 08:37 urgh 08:38 I feel like this might be some actual sort of memory corruption 08:38 since the first 3 thief stone wishes are fine 08:38 but then the next one panics 08:38 standing in one spot, doing nothing else 08:39 <[Demo]> what do they even do? 08:39 did I not link it yesterday? 08:39 <[Demo]> oh you might have i probably wasnt here 08:40 oh that was StatueSurfer 08:40 https://nethackwiki.com/wiki/User:Phol_ende_wodan/YANI/IRC_archive#Thief_stones 08:41 <[Demo]> im confused slightly but it seems useful for stealing stuff indeed 08:43 it's for stashing 08:43 I don't get the name 08:44 but otherwise it's a good idea 08:44 ais523: decided to make the actual object name "thiefstone" with no space, makes it a lot less ambiguous when using it in the rest of the code 08:45 -!- rikersan has joined #hardfought 08:45 I'm OK with that, although I'm surprised it makes that much of a difference 08:45 well, if it had a space, I believe the oname would be THIEF 08:45 because of how gray stones work 08:46 hooray for makedefs 08:46 oh, makedefs being stupid again? 08:46 and I ran into wish parser woes yesterday with Thief being a Rogue rank title... 08:46 you would wish for a thief stone and get a rock 08:46 :D 08:46 this reminded me of dtsund's wish proposal 08:47 I should look into implementing it 08:47 not sure if it was dtsund's 08:47 but someone 08:47 https://roguelikes.live/nh4-bugzilla/show_bug.cgi?id=394 08:47 afk 08:50 [11hdf-us] [10fh] Estelle (Jendic) (Wiz Elf Fem Cha), 44777 points, T:9107, killed by a Ms. Konosja, the shopkeeper 08:50 wait, the panic is happening _before_ init_thiefstone is called? 08:51 what? 08:51 <[Demo]> maybe u broke the wish parser 08:51 ugh 08:52 That's somewhat useful to know, at least. 08:53 aosdict: are you using a debugger? if not, this is the sort of situation where they're really helpful 08:53 ais523: I've been in GDB for a couple hours, yes 08:54 as in... I didn't, like, learn how to use GDB a couple hours ago. I've been debugging this panic for a couple hours. 08:55 ouch 08:58 <[Demo]> why am i playing a variant with sokoban 08:59 I think in some cases, it's trying to read the name of the object before getting to the init_thiefstone function. 08:59 <[Demo]> what variants essentially nullify sokoban> 09:00 the weird thing is that it doesn't happen consistently 09:00 <[Demo]> BUC maybe? 09:00 <[Demo]> stack size in inventory? 09:00 <[Demo]> other fields randomly set on items that are wished for? 09:00 I made them non-stacking 09:01 hmm good point with the BUC though 09:01 -!- Chris_ANG has joined #hardfought 09:01 aosdict: have you tried just breaking execution while waiting at the makewish() prompt, then single-stepping from there? 09:01 will try priests, see if that gives consistent crashing 09:01 ais523: yes, and then it invariably doesn't happen that run 09:01 typical 09:02 that sounds almost like a race condition but NetHack is single-threaded 09:02 hmm nope priests don't get it consistently 09:03 -!- raisse has joined #hardfought 09:03 -!- mode/#hardfought [+v raisse] by ChanServ 09:03 Well, since the code I added is causing the panic, I'll try adding if guards around the panicking code (needed to do that anyway for cancelled) and see what's what when it does make it into that block 09:04 hmm, what should a cancelled thiefstone display in inventory, instead of its keyed location? 09:05 "s - an uncursed thiefstone (keyed to Nowhere)"? 09:05 what would it do? 09:05 "s - an uncursed thiefstone (inactive)"? 09:05 does it actually send items to "nowhere"? 09:05 nothing? 09:05 ^ 09:05 it'd be a pain to get them back from there! 09:05 I can see an argument that it just becomes a flint stone 09:05 well, you can always go to Nowhere yourself :-) 09:05 apart from that, probably it does nothing 09:06 no, it would just not work seems like the most logical cancelled behavior 09:06 maybe there's some way to reactivate them if they're cancelled (e.g. scroll of charging) 09:06 ooh, and then it reinits the stone somewhere on the current level? 09:07 <[Demo]> well im bored with my dnethack game so i guess im just gonna kill it 09:07 <[Demo]> 😦 09:09 <[Demo]> can't do it 09:10 what race/role? 09:10 hmmmmmmmmm 09:10 okay, now that it isn't panicking 09:10 and is just showing (inactive) 09:11 !booze 09:11 * Beholder tosses raisse a schooner of grog, decanted by the late Pinobot at -11 degrees Fahrenheit. 09:11 I got a stack of two thiefstones from this wish, which should not be possible 09:11 <[Demo]> i dont know think its some sort of elf, dont recall, havent touched the game in months 09:11 <[Demo]> uh oh 09:11 I wonder if some part of the code was assuming mrg = 1 for all GEM_CLASS objects 09:11 -11F? that must have been hacked off, not decanted 09:11 [11hdf-us] [14sp] k2 (Pri Hum Mal Neu), 89292 points, T:20150, poisoned by a locust 09:11 while sleeping 09:11 * K2 sighs 09:12 ctrl x demo? 09:13 aha 09:13 else if (otmp->otyp != LUCKSTONE && !rn2(6)) 09:13 otmp->quan = 2L; 09:14 that at least explains why I'm getting 2 of them, might also bizarrely relate to this panic 09:17 okay, I just filled my inventory with them and no more inactive stones \o/ 09:17 (zapping cancellation at them makes them inactive too, and I didn't even have to do anything!) 09:22 <[Demo]> didnt want to check but fine i did 09:23 <[Demo]> elven noblewoman 09:23 that's not OP enough :p delete and try again /s 09:25 <[Demo]> i have a tame Gwynharwyf though 09:28 -!- raisse has quit [Ping timeout: 240 seconds] 09:32 [11hdf-us] [07nd] PasDeDeux (Rog Orc Mal Cha) made his first wish - "2 blessed scrolls of charging", on T:4839 09:33 demo: :/ that's patched in the latest version 09:34 <[Demo]> yeah its been patched for a while 09:39 neat, thiefstone heuristics for choosing a location appear to be working properly 09:39 <[Demo]> oh good 09:43 @d?dagon 09:43 Dagon (06,01&) | Lvl: 100 | Diff: 54 | Spd: 13 | Res: fire poison drain | Confers: nothing | MR: 100 | Generates: unique | AC: -25 | Attacks: 1d30 bite physical, 1d6 tentacle shred, 1d6 tentacle shred, 3d4 tentacle wrap, 2d3 gaze confuse, 2d3 gaze hallucination | Alignment: -20 | Flags: swims, seeinvis, poisonous, nopoly, demon, stalker, covetous, infravisible 09:49 -!- Haudegen has quit [Read error: Connection reset by peer] 09:58 now for the question of why is known being set to 1 on thiefstones by default 09:58 aosdict: because grey stones normally have nothing to identify other than the type name, I guess? and the typename is stored in a different structure 09:59 well it should be simple enough to track down 09:59 assuming gdb isn't being coy with watchpoints again 10:00 it's annoyingly difficult to watchpoint something that doesn't exist yet 10:00 can set the watchpoint when it calls init_thiefstone, at that point the struct has at least been allocated 10:01 oooor I can just confirm that known=1 already at that point. 10:03 ais523: what does oc_uses_known represent exactly? 10:04 I notice that, for example, all weapons have that set to true. 10:05 aosdict: if it's set to false the "known" flag is unused and always set to 1 10:05 aha 10:05 if it's set to true the "known" flag does something, it doesn't necessarily determine what though 10:05 I was reading it as "uses" as in "this wand has 3 more uses" 10:05 not "this class uses the known flag" 10:06 (normally either enchantment or charge count, although for unique items it works as a dknown override; that's how fake amulets work) 10:06 in thiefstones' case, oc_uses_known should be 1 10:07 more full rebuilds! 10:12 [11hdf-us] [06nh4] NobbsWiz (Nobbs) (Wiz Elf Mal Cha), 70639 points, T:22180, killed by a minotaur 10:15 <[Demo]> ouch 10:17 -!- raisse has joined #hardfought 10:17 -!- mode/#hardfought [+v raisse] by ChanServ 10:17 <[Demo]> does anyone know if gems do more dmg than rocks? 10:17 same thing 10:17 glass too, just weighs less 10:20 [11hdf-us] [07nd] PasDeDeux (Rog Orc Mal Cha) wished for "blessed +2 gray dragon scale mail", on T:4847 10:22 [11hdf-us] [07nd] PasDeDeux (Rog Orc Mal Cha) wished for "blessed fixed +2 gauntlets of power", on T:4863 10:25 flint stones do more damage afaik 10:27 probably sharper 10:27 -!- tacco\unfoog has joined #hardfought 10:29 @d?elder priest 10:29 elder priest (08,01@) | Lvl: 25 | Diff: 33 | Spd: 15 | Res: fire sleep shock poison petrification | Confers: nothing | MR: 90 | Generates: unique | AC: -9 | Attacks: 2d10 weapon physical, 1d4 gaze paralyze, 2d10 tentacle amulet steal, 2d10 tentacle tentacle, 2d8 cast clerical, 2d8 cast clerical | Alignment: -128 | Flags: omnivore, swims, amphibious, seeinvis, 10:29 nopoly, covetous, infravisible 10:29 :/ why is he petri resis 10:30 because he's acidic? 10:30 the elder priest? he's not 10:30 he's just a dick 10:30 there's no reason other htan "chris doesn't like people killing his pet monster" 10:35 <[Demo]> he has like 60 hp 10:35 <[Demo]> ive killed him by tossing the fluoirite octect at him 10:35 the what? 10:36 <[Demo]> dumb artifact gem that i had one game and kept using for stupid things 10:38 it's a dnh thing 10:38 it's a set of 8 double damage gems IIRC 10:38 pretty fucking useless 10:39 <[Demo]> until you kill the elder priest with it 10:39 oh, that's why it's called that 10:39 oct- = "8" 10:40 it's the Fluorite Octet 10:40 correctly spelled 10:41 <[Demo]> it seems really bad but is actually not the worst thing 10:44 that's held by peacekeeper 10:44 in terms of damaeg I think 10:46 !players 10:46 K2: [11hdf-us] hothraxxa [05dyn] PasDeDeux [07nd] 10:46 K2: [12hdf-eu] deki [07nd] 10:47 !rng change gender | don't 10:47 rikersan: don't 10:48 -!- Beholder has quit [Remote host closed the connection] 10:48 -!- Beholder has joined #hardfought 10:48 -!- mode/#hardfought [+v Beholder] by ChanServ 10:51 -!- Beholder has quit [Remote host closed the connection] 10:51 -!- Beholder has joined #hardfought 10:51 -!- mode/#hardfought [+v Beholder] by ChanServ 10:54 -!- zjmc_ has joined #hardfought 10:55 -!- Beholder has quit [Remote host closed the connection] 10:55 -!- Beholder has joined #hardfought 10:55 -!- mode/#hardfought [+v Beholder] by ChanServ 11:06 -!- rikersan has quit [Quit: Lost terminal] 11:09 -!- zjmc_ has left #hardfought 11:17 -!- ais523 has quit [Quit: sorry for my connection] 11:25 -!- raisse has quit [Ping timeout: 268 seconds] 11:30 !tell ais523 FIQHack 11:30 Will do, FIQ! 11:30 !tell ais523 with capital H 11:30 Will do, FIQ! 11:34 [11hdf-us] [14sp] k2 (Pri Hum Mal Neu), 9710 points, T:5587, killed by a goblin 11:37 !tell ais523 (context: you asked about the official spelling and capitalization of FIQHack) 11:37 Will do, FIQ! 11:59 !lastgame 11:59 K2: https://www.hardfought.org/userdata/k/k2/sporkhack/dumplog/1512932647.sp.txt 11:59 !lastgame nh343 11:59 K2: https://www.hardfought.org/userdata/c/cosmicweasel/nh343/dumplog/1512543422.nh343.txt 12:14 -!- Chris__ANG has joined #hardfought 12:17 -!- Chris_ANG has quit [Ping timeout: 250 seconds] 12:20 -!- Chris__ANG has quit [Ping timeout: 255 seconds] 12:28 does it matter which candles I use in candelabrum in DynaHack? tallow or wax? 12:37 no 12:40 <[Demo]> why is a shopkeeper randomly charging more for one empty oilskin sack of the same BUC of another one when both are empty? 12:40 -!- rikersan has joined #hardfought 12:44 I wonder why the code stores inventory as a linked list when it has a fixed size. Consistency with iterating over containers and object piles? 12:48 -!- bobbydurrett has joined #hardfought 12:50 -!- raisse has joined #hardfought 12:50 -!- mode/#hardfought [+v raisse] by ChanServ 12:54 What's a good message for a thief stone teleporting an item the player just picked up (assuming the player didn't want this to happen)? 13:00 -!- bobbydurrett has quit [Quit: Leaving] 13:02 !tell K2 fixed stuff 13:02 Will do, FIQ! 13:06 -!- aoei has joined #hardfought 13:16 -!- Tarmunora_ has quit [Remote host closed the connection] 13:17 -!- Tarmunora_ has joined #hardfought 13:26 annoying 13:27 there's a migration code MIGR_EXACT_XY, but as far as I can tell it only applies to monsters and doesn't actually take specific coordinates 13:29 and since the objects migrating to an exact position could be anywhere... 13:30 anything* 13:30 can't reuse any of the other struct obj* fields for those coordinates 13:31 FIQ: I think I do actually have to add two more coordinate xchars to either the obj or oextra struct. 13:39 [11hdf-us] [10fh] Deluxidream (Luxidream) (Arc Hum Fem Neu), 56410 points, T:10642, killed by a mumak 14:01 [11hdf-us] [07nd] Luxidream (Pri Elf Fem Cha) had Stormbringer bestowed upon her by Set, on T:2321 14:05 -!- Chris_ANG has joined #hardfought 14:08 <[Demo]> nice 14:24 [11hdf-us] [07nd] Luxidream (Pri Elf Fem Cha) made her first wish - "blessed fixed greased +2 gray dragon scale mail", on T:6415 14:32 [11hdf-us] [07nd] Luxidream (Pri Elf Fem Cha) polymorphed her first object, on T:7743 14:34 err.. do I get in from somewhere else?... https://i.imgur.com/AQ1h6kj.png 14:35 zxkuqyb go down a little further. 14:36 went all the way down to the vibrating square :/ 14:37 -!- raisse has quit [Ping timeout: 240 seconds] 14:37 oh I'm dumb 14:37 the doors are right there 14:39 so am I apparently 14:39 sneaky doors.. 14:43 -!- rikersan has quit [Quit: Lost terminal] 14:44 [11hdf-us] [07nd] Luxidream (Pri Elf Fem Cha), 5934 points, T:9906, killed by a bolt of lightning 14:44 <[Demo]> and thats why i wish for sdsm 14:45 for reflect? 14:56 I always do SDSM if I don't have another means of reflection already. 14:56 By the time I'm really desperate for GDSM I've hopefully come across a live one that drops scales. 14:59 [11hdf-us] [114k] bouquet (Rog Elf Fem Cha) entered the Minetown temple, on T:1189 15:00 [11hdf-us] [114k] bouquet (Rog Elf Fem Cha), 7065 points, T:1212, killed by a fire ant 15:10 -!- ais523 has joined #hardfought 15:14 [11hdf-us] [114k] bouquet (Rog Elf Fem Cha), 5577 points, T:1549, killed by a pony 15:21 ais523: just in case it is still unclear after Beholder's message: capital H 15:21 oh, I hadn't received the message yet 15:21 ais523: Message from FIQ at 2017-12-10 14:30 EST: FIQHack 15:21 ais523: Message from FIQ at 2017-12-10 14:30 EST: with capital H 15:21 ais523: Message from FIQ at 2017-12-10 14:37 EST: (context: you asked about the official spelling and capitalization of FIQHack) 15:21 thanks Beholder 15:22 and thanks FIQ 15:22 I will try to remember :-) 15:22 maybe you got enough pointers now ;) 15:22 (I realized that I might have gone a bit overboard with those b elenmirie messages, hence what I said just now :p) 15:22 err, Beholder 15:27 -!- realinari has joined #hardfought 15:31 -!- firemonkey has quit [Ping timeout: 255 seconds] 15:33 [11hdf-us] [07nd] Leggman (Val Dwa Fem Law) had Mjollnir bestowed upon her by Tyr, on T:728 15:36 -!- aoei has quit [Quit: Leaving] 15:38 -!- rikersan has joined #hardfought 15:42 [11hdf-us] [114k] bouquet (Rog Elf Fem Cha) entered the Minetown temple, on T:2637 15:44 are all these named weapons in Fourk actually artifacts or just named for funsies? 15:44 I started out with short sword named Sword of Yendor 15:44 I think they're joke names, not sure though 15:44 if they are, I approve :-D 15:45 found this one: "an elven spear named Aggressive Negotiation" 15:45 sounds ominous 15:46 huh, you *started* with one? 15:46 ais523: highly enchanted (or disenchanted) weapons sometimes get a random name 15:47 which file is the list of names in? 15:47 I should look at FIQHack source some day, I got a bit sidetracked by someone asking on Reddit how many messages NetHack had 15:48 (my answer was "it depends on how you define a message, but there are 3625 distinct calls to pline() and friends") 15:48 jonadab: your way of storing names is rather questionable IMO 15:48 ais523: oname_random_weapon in do_name.c 15:48 ais523: this is actually 4k, not fiqhack 15:49 the weapon name thing that is 15:49 a 4k patch that you copied over? 15:49 no 15:49 it is only in 4k 15:49 oh, talking about 4k all along 15:49 not in fiqhack at all 15:49 right 15:49 I know the difference, I just kind-of assume people are talking about FIQHack because it's Variant of the Year (in my own estimation) 15:49 heh 15:50 here's a copy of the function: http://sprunge.us/OSVE 15:51 FIQ: in fourk I started with Sword of Yendor. 15:51 bouquet: right, I'm not sure if that is supposed to happen 15:51 not sure about the qualities of these named weapons I periodically find. 15:51 I once found a knife called "Newtbane" in fourk :) 15:51 bouquet: highly enchanted weapons has a much higher chance of getting a name 15:51 so if you find a named one 15:52 you might want to check it out 15:52 (if it's of a type you'd actually use) 15:52 -!- ais523 has quit [Remote host closed the connection] 15:52 -!- ais523 has joined #hardfought 15:52 one of my "this would be nice but nobody's insane enough to actually do it" YANIs is to create a list of 120 names for /every/ monster type in the game 15:52 and then automatically name all monsters when they generate 15:52 that sounds painful 15:52 the only program I'm aware of that does something like this is Battle for Wesnoth, and it only needs 8 or so lists of names because it has only a few races 15:53 you can see how it would help in terms of the interhack principle / preventing tedious optimal play 15:53 but it'd be so hard to program that it cna't possibly be worth it, surely 15:53 [705][fiq@fiq-desktop ~/fiqhack]$ wc -l build/libnethack/include/pm.h 15:53 388 build/libnethack/include/pm.h 15:54 feel free to create around 45 000 names 15:54 but I'm not going to ;) 15:54 could be done as a group effort, I guess 15:54 but there's not enough people that would care to be feasible 15:54 FIQ/jonadab: a clue for making oname_random_weapon less repetitive: you can IIRC safely give printf (and friends such as msgprintf) extra arguments that they don't use 15:54 at least, NetHack does this on occasion and I don't know of any system where it breaks 15:54 ais523: yes, I would store these names differently 15:55 this code reminds me of the kind of code slex has 15:55 that means you can just have an array of printf patterns 15:55 case (300+ cases): (nearly identical code) 15:55 yeah 15:55 exactly 15:55 I don't think I've ever looked at slex's code 15:55 would I survive? 15:55 I think one of the variants already names the minetown watchmen (that may also be fourk) 15:55 it's not insanity-inducing 15:55 even just /talking/ about slex makes my head hurt half the time 15:55 just don't try to actually understand it 15:55 along the lines of "how could anybody think this could be a good idea?" 15:56 Tangles: yep, 4k also 15:56 there was actually a bug with this 15:56 involving the way not-fiqhack/3.6.x handles mextras 15:56 and names 15:57 [11hdf-us] [114k] bouquet (Rog Elf Fem Cha), 12576 points, T:3476, killed by a lynx 15:57 4k did a reasonable, but misguided, assumption that naming a monster would not change the pointer behind his back 15:57 to the monst 15:57 and thus things broke 15:57 FIQ: actually that changed in 3.6 15:57 and was the only patch that the vanilla devteam asked me to pull into NH4 15:57 ais523: yes, I said not-fiqhack/*3.6.x* 15:57 I haven't yet though 15:57 ah right 15:58 well if fiqhack has already fixed that, I guess I'll just steal that from you too :-) 15:58 I think 3.6.x's method is slightly less extensible but works pretty much similarly 15:58 but fiqhack abuses macros to reduce the work needed to add new ones 15:58 which I don't really like, but IIRC you concluded it was the sanest regardless (asked you about this before) 15:59 yes, sometimes in C there are no perfect options 15:59 so you pick the one that's least likely to go wrong even if it's unreadable 16:02 for reference: https://raw.githubusercontent.com/FredrIQ/fiqhack/4.3.0/libnethack/src/mextra.c is fiqhack's implementation 16:07 GEN_EXBASE/GEN_EXTYP are actually more readable than I was expecting 16:09 my main gripe with that approach is that there is still some needed bookkeeping that shouldn't really be neccessary when adding stuff 16:09 but I guess that is the kind of thing structdesc would fix 16:09 not exactly sure how structdesc is/was supposed to work 16:10 wow, I haven't worked on structdesc for ages 16:10 and this is probably a bad time to start again :-P 16:10 heh 16:10 well to me structdesc mostly sounded like magic 16:10 I didn't really understand how it would work, even in theory 16:10 it's just generation of boilerplate code from a description 16:11 all that mwrite8 stuff in the save code, etc. 16:11 mhm 16:11 so... makedefs? 16:11 except that the description in question is that of a C struct, and it generates all the subsidiary functions which are entirely just copying fields around 16:11 makedefs doesn't do that, but it'd be in a similar place in the compile sequence 16:12 something I've noticed while lurking r/roguelikedev 16:12 people there seem to love entity component systems 16:12 which basically seem like a more "complete" form of NetHack's mextra/oextra 16:12 from what I've understood of it 16:13 ais523: and yeah, I know makedefs doesn't do that right now, but it seems like a task that is the kind of thing makedefs is supposed to do 16:14 I know you mentioned that ideally you want to get rid of makedefs... do you have any idea of alternative means to create pm.h/onames.h? 16:14 there was some suggestion of making aimake do it (via calling into a separate Perl script), I think that was jonadab's idea 16:15 alternatively, just not autogenerating the PM_ constants 16:15 you mean creating them manually? 16:15 and manage 2 lists that need to be kept in sync? 16:15 one possibility would be to have the monster identifier to use inside monst.c 16:15 so that out-of-syncness would be trivially detectable 16:16 (ditto for objects) 16:16 couldn't you just do something like 16:16 [PM_JACKAL] = {jackal stuff} 16:16 yes, if you're using C99+ 16:16 meaning you don't actually need to keep them in sync at all 16:16 GNU89 doesn't have it? 16:16 although that wouldn't give you warnings about discontiguous indexes in most compilers 16:16 oh, maybe GNU89 does 16:16 because nethack/src/messages.c uses it 16:16 NetHack4 is written in (GNU89 intersection C11) 16:17 so I concluded that it was safe in GNU89<->C11 16:17 and have used it elsewhere at times 16:17 so I would have checked it was valid before using it myself 16:17 yes, hopefully :P 16:17 actually I think GNU used to use the same syntax without the = 16:17 and then they added the = version when it got standardised 16:17 so it isn't in GNU89? 16:19 it is, now 16:20 hm 16:20 fiqhack has ended up with an unintentional, allthough minor ambiguity in defines regarding objects 16:21 need to fix that at some point 16:21 opm_foo -> object property mask foo 16:21 OPM_FOO -> object permonst flag foo 16:21 (used for spinach, homemade, historic, male, female, laid by you) 16:23 ais523: Dwarf Fortress does that (names every single monster that generates). 16:23 Or, at least, all the ones from sentient races. 16:23 ais523: I think I am going to have to augment the obj or oextra structs :( because the existing object migration system already overloads ox and oy for destination dungeon level, and there's otherwise no other field in obj that is safe to overload 16:23 FIQ: latter should be OPMF, I think? 16:24 or, well, I just had a crazy idea 16:24 or possibly just OMF 16:24 object monster flag 16:24 aosdict: assuming we're talking vanilla, corpsenm should work for coordinates 16:24 it's explicitly allowed to be used for random things 16:24 ais523: yes, it works for the thiefstone itself 16:25 but not anything else teleporting (migrating) to another level 16:25 oh, I see, for the objects you're sending 16:25 isn't there a MIGR_EXACT_XY 16:25 or something liek that 16:25 *like 16:25 hmm, monster-only it seems 16:25 what about, you can only have one thief stone keyed to each level, and you store its coordinates on the level? 16:26 crazy idea: attach the objects with nobj or cobj to the thiefstone, migrate just the thiefstone to the proper coordinates, and pull all the other objects with it 16:26 ais523: what about wishing 16:26 what happens if it runs out of levels it can key to 16:26 aosdict: what if you're sending objects without sending the thief stone with them 16:26 FIQ: make it cancelled, I guess? 16:26 oh, true 16:26 although letting people wish for them on random levels seems beneficial from a gameplay point of view 16:27 what aosdict suggest would theoretically work, actually 16:27 but is very hacky 16:27 I guess a method that would "work" with the existing mechanisms would be to send a dummy monster with the objects 16:27 but that's even hackier 16:27 store the "migrating" objects on the cobj chain 16:27 and move them to their actual destination once you're on the level 16:27 then you store the objects on the minvent chain 16:27 FIQ: yes, I'm quite annoyed by the fact that MIGR_EXACT_XY doesn't do what it sounds like it does 16:28 ais523: Amy actually does something like that to work-around a limitation of the level compiler 16:28 IIRC she has a dummy monster that spawns a trap and immediately despawns, upon entering a level 16:28 aosdict: given that you're breaking save compat anyway, why not just add an extra field to struct obj? 16:28 that's got to be the cleanest solution 16:29 it is 16:29 is oextra a better idea though? 16:30 lots of scary warnings at the bottom of the file about adding fields to it :P 16:30 oextra is dubious if it's for objects in general, extra structs is supposed to be for a minority of objects/monsters 16:30 If you store thiefstone destination x and y on the level, you could still have more than one thiefstone per level, they'd just point to the same destination. 16:30 oextra is very hard to touch safely 16:31 jonadab: or that, right 16:31 aosdict: just port fiqhack's extra handling :P 16:31 it has 3 steps for adding new ones 16:31 unlike 3.6.x which has like 10 IIRC 16:31 (jk) 16:35 aosdict: btw, nobj wouldn't work 16:35 nobj points to the next object in chains 16:36 cobj would, though, since it's for objects contained 16:36 what about nexthere? I think migration would only use one or the other of nexthere and nobj? 16:36 (cobj is probably less hacky though) 16:37 nexthere is for "secondary" lists 16:37 oh wait, I forgot 16:37 nexthere and cobj is an union 16:37 hm no that makes no sense 16:37 oh, I guess in that case you use both :-) 16:37 oh right, it's nexthere and ocontainer 16:37 that are unions 16:37 but yes, nexthere+cobj can't union 16:37 that makes more sense 16:38 anyway, nexthere is for secondary chains 16:38 when the object is on a level 16:38 it's in the objlist chain (using nobj) 16:38 and lev->objects[x][y] using nexthere 16:40 yes, nexthere iterates over objects on a single map square 16:40 ais523: btw, looking at how badly nethack aliased rm->flags made me wonder 16:40 would using unions for aliasing be insane? 16:40 no, NH4 actually does that in some cases 16:40 with anonymous unions 16:41 you aren't allowed to do that in vanilla though because it's a C99 feature 16:41 (the issue with the rm->flags defines is that they define to "flags"... so you get very interesting errors if you ever try to make a variable that happens to be named like one of the defines -- redefining flags in the process within that scope) 16:41 and it's hard enough to persuade people to let us use C89 features 16:41 once when I did hit this issue and was very confused for a while 16:41 I ended up getting rid of all the defines 16:41 and told them to go die in a fire 16:42 because I never wanted to see that error again that lead to hours of debugging 16:42 ais523: what makes anonymous unions different from regular ones? 16:43 <[Demo]> they let gays do those ones too 16:43 * FIQ zaps [Demo] with a wand of striking 16:44 hm 16:44 FIQ: with a named union you have to use both the name of the union /and/ the name of the field inside it 16:44 so there's an extra step: struct, union name, field name 16:44 with an anonymous union you can just use the field names directly 16:45 so the fact that a union's there isn't mentioned 16:45 hm 16:45 then I think I know anonymous unions as just unions 16:45 and non-anonymous ones not a tall 16:45 *not at all 16:45 here's an example when the union field is named: struct s { union { int a; int b; } u; } 16:45 then you use s.u.a, s.u.b 16:45 if you get rid of the u (C99 extension) then it's an anonymous union field 16:46 and you can just use s.a, s.b 16:46 hm 16:46 being explicit is nice when you'd otherwise forget what aliases 16:46 [11hdf-us] [05dyn] Zxkuqyb (Val Dwa Fem Law), 1017104 points, T:53044, ascended 16:46 https://www.hardfought.org/userdata/Z/Zxkuqyb/dynahack/dumplog/2017-12-10%2019_46_19%2C%20Zxkuqyb-Val-Dwa-Fem-Law%2C%20ascended.txt 16:46 oh so there is no difference? 16:46 just clarification vs lack of it? 16:47 eh :D 16:47 hmm 16:47 ais523: so is there a reason that this isn't an union, for example? 16:47 sloppy 16:47 105# define orotten oeroded /* rotten food */ 16:47 zxkuqyb: grats! 16:48 thank! 16:50 FIQ: no, and I made many of those things into unions in NH4 16:50 but there are a lot of them and I only changed the ones I quickly noticed 16:50 ah 16:50 so it's just a matter of "I hadn't noticed / didn't feel like bothering when I did notice"? 16:51 ‎<‎FIQ‎>‎ oh so there is no difference? ← there are a few technical differences, e.g. you can take a pointer to the union itself rather than to an individual field within it, but they hardly matter; the syntax difference when using the union fields is the main reason you'd use one rather than the other 16:51 FIQ: right 16:51 ok 16:55 <[Demo]> @d?acerack 16:55 acerack ~3~ Acererak (08,01L) | Lvl: 25 | Diff: 32 | Spd: 15 | Res: fire cold sleep shock poison petrification drain | Confers: fire cold | MR: 99 | Generates: unique | AC: -9 | Attacks: 4d4 weapon physical, 5d6 touch level drain, 0d0 cast spell, 2d6 gaze level drain | Alignment: 20 | Flags: breathless, regenerates, seeinvis, poisonous, undead, covetous 17:11 -!- firemonkey has joined #hardfought 17:24 -!- rikersan has quit [Quit: Lost terminal] 17:26 -!- realinari has quit [Quit: realinari] 17:45 -!- firemonkey has quit [Ping timeout: 248 seconds] 17:51 can the stat line show tradition AC rather than "Def" in Fourk? 18:02 [11hdf-us] [114k] bouquet (Rog Elf Fem Cha), 5577 points, T:1411, killed by a gnome lord 18:05 -!- StatueSurfer has joined #hardfought 18:09 nope 18:09 only fiqhack and dynahack has that feature 18:09 (show_ac) 18:12 better idea: replace the combat system, and then you can have a naturally increasing defense stat. Easy! :P 18:13 > replace the combat system 18:13 seems legit 18:13 I mean, I've put a lot of work into trying to do this... just am not finished yet :) 18:17 -!- StatueSurfer has quit [Ping timeout: 260 seconds] 18:28 -!- ais523 has quit [Quit: quit] 18:33 -!- StatueSurfer has joined #hardfought 18:45 [11hdf-us] [10fh] HI BILLY MAIZE HERE (Luxidream) (Arc Hum Mal Neu), 24960 points, T:1896, killed by a dwarf 18:52 [11hdf-us] [07nd] krm26 (Tou Hum Mal Neu), 3342 points, T:5199, killed by a rope golem 18:55 [11hdf-us] [10fh] need skil (Luxidream) (Wiz Orc Fem Cha) killed the archeologist of HI BILLY MAIZE HERE, the former Digger, on T:2011 18:58 [11hdf-us] [10fh] need skil (Luxidream) (Wiz Orc Fem Cha), 32750 points, T:2082, killed by a mumak 19:02 [11hdf-us] [10fh] i WILL kill that mumak (Luxidream) (Wiz Orc Mal Cha) wished for "2 blessed fixed greased scrolls of charging", on T:540 19:02 [11hdf-us] [10fh] i WILL kill that mumak (Luxidream) (Wiz Orc Mal Cha) wished for "blessed fixed greased +2 blue dragon scale mail", on T:540 19:06 -!- StatueSurfer has quit [Ping timeout: 260 seconds] 19:19 [11hdf-us] [07nd] PasDeDeux (Rog Orc Mal Cha), 22762 points, T:13295, killed by a flaming sphere 19:24 [11hdf-us] [07nd] Leggman (Val Dwa Fem Law) acquired the luckstone from Mines' End, on T:5284 19:25 -!- tacco\unfoog has quit [] 19:27 -!- NeroOneTrueKing has joined #hardfought 19:32 hi 19:32 Hello K2, Welcome to #hardfought 19:32 K2: Message from FIQ at 2017-12-10 16:02 EST: fixed stuff 19:33 -!- Beholder has quit [Remote host closed the connection] 19:34 -!- Beholder has joined #hardfought 19:34 -!- mode/#hardfought [+v Beholder] by ChanServ 19:36 FIQhack updated (us and eu) 19:36 !players 19:36 K2: [11hdf-us] mtf [10fh] Luxidream [10fh] Leggman [07nd] bouquet [114k] 19:36 K2: [12hdf-eu] No current players 19:37 !players 19:37 K2: [11hdf-us] mtf [10fh] Leggman [07nd] Luxidream [13dnh] bouquet [114k] 19:37 K2: [12hdf-eu] k2 [15nh] 19:40 Luxidream switched to dnh? 19:40 uh 19:40 -!- StatueSurfer has joined #hardfought 19:40 still appears to be playing fh 19:41 -!- Beholder has quit [Remote host closed the connection] 19:42 -!- Beholder has joined #hardfought 19:42 -!- mode/#hardfought [+v Beholder] by ChanServ 19:42 the whereis file in his dnh game didnt unlink 19:43 or could be something else 19:43 checking 19:43 !players 19:43 K2: [11hdf-us] Luxidream [10fh] mtf [10fh] Leggman [07nd] bouquet [114k] 19:43 K2: [12hdf-eu] No current players 19:43 !players 19:43 K2: [11hdf-us] Luxidream [10fh] mtf [10fh] Leggman [07nd] bouquet [114k] 19:43 K2: [12hdf-eu] No current players 19:43 hmm weird 19:43 looks good atm 19:45 !players 19:45 K2: [11hdf-us] mtf [10fh] Leggman [07nd] bouquet [114k] 19:45 K2: [12hdf-eu] k2 [15nh] 19:52 [11hdf-us] [07nd] Leggman (Val Dwa Fem Law) had Demonbane bestowed upon her by Tyr, on T:7316 19:52 <[Demo]> ha 20:05 -!- raisse has joined #hardfought 20:05 -!- mode/#hardfought [+v raisse] by ChanServ 20:13 [11hdf-us] [114k] bouquet (Rog Elf Fem Cha) entered the Minetown temple, on T:4498 20:42 FIQ: hm. Could also refactor the object migration code and further abuse owornmask to hold a ledger number instead of using ox and oy for it 20:43 but that _is_ the sort of manipulation I'd do when worrying about save compat 20:44 [11hdf-us] [114k] bouquet (Rog Elf Fem Cha), 15678 points, T:6063, killed by a mumak 20:45 -!- bouquet has quit [Quit: bouquet] 20:53 [11hdf-us] [06nh4] Diurna (marambolas) (Hea Hum Fem Neu), 17240 points, T:1466, killed by a newt, while fainted from lack of food 20:54 -!- deadnoob has quit [Ping timeout: 258 seconds] 20:56 [11hdf-us] [06nh4] Duranga (marambolas) (Arc Dwa Mal Law), 1536 points, T:11, escaped 21:16 -!- StatueSurfer has quit [Ping timeout: 260 seconds] 21:18 YANI: Refactor the migration code to be a single unified linked list of a new struct for this purpose, containing a struct d_level for destination, a long for migration code, a struct obj* for an object being migrated and a struct monst* for a monster. 21:19 -!- hpardis has joined #hardfought 21:35 !tell K2 pushed stuff 21:35 Will do, FIQ! 21:38 FIQhack updated (us and eu) 21:38 K2: Message from FIQ at 2017-12-11 00:35 EST: pushed stuff 21:38 again 21:38 sorry, typo 21:38 just woke up, should perhaps wait fixing stuff until fully awake 21:39 [11hdf-us] [05dyn] kupopo (Tou Hum Fem Neu), 394 points, T:2611, killed by a pony 21:43 FIQhack updated (us and eu) 21:47 [11hdf-us] [05dyn] kupopo (Tou Hum Fem Neu), 211 points, T:377, killed by a hobbit 21:55 morning for real now :) 21:55 hi K2 21:55 does the bot work on eu now? 21:58 whereis works 21:58 game reporting not so much yet 21:58 ok 21:59 players/who works too 22:00 [11hdf-us] [05dyn] kupopo (Tou Hum Fem Neu), 524 points, T:1583, killed by a giant bat 22:01 ahh 22:09 -!- StatueSurfer has joined #hardfought 22:13 [11hdf-us] [07nd] Raisse (Hea Gno Fem Neu) rejected atheism with a prayer, on T:4599 22:14 -!- deadnoob has joined #hardfought 22:17 -!- NeroOneTrueKing has quit [Ping timeout: 246 seconds] 22:27 -!- hpardis has quit [Ping timeout: 240 seconds] 22:33 [11hdf-us] [06nh4] NobbsVal (Nobbs) (Val Hum Fem Law), 31112 points, T:927, killed by a wererat 22:44 [11hdf-us] [06nh4] NobbsVal (Nobbs) (Val Hum Fem Law), 24316 points, T:742, killed by a gnome king 22:45 -!- noty has quit [Quit: WeeChat 1.9.1] 22:52 -!- LarienTelrunya has joined #hardfought 22:59 . 22:59 LarienTelrunya: Message from K2 at 2017-12-10 06:51 EST: you should look into adding whereis capability for slex. bundlebundlewhateverbleh 22:59 !tell K2 how does whereis even work? also I'd probably have to add like a ton of special cases for slex's nasty traps so players can't make the game leak information :D 22:59 Will do, LarienTelrunya! 23:00 !tell K2 well I mean "how does it even work code-wise", i.e. is there a commit that enables it? 23:00 Will do, LarienTelrunya! 23:00 !setmintc 23:00 Tangles: Min reported turncount for tangles removed. 23:01 Hello Tangles, welcome to SlashEMExtended! You are a chaotic male skeleton YSexymate.--More-- 23:01 oboy... 23:01 Tangles: wow, you're playing slex? :) 23:02 probably for debugging 23:04 LarienTelrunya: abandon ye hope all who enter here 23:05 FIQ: haha, where? 23:05 should be a welcome message for slex 23:05 :D 23:11 -!- hpardis has joined #hardfought 23:13 the +0 dented pot named Never is a Promise (unpaid, 5 zorkmids) {4} 23:14 Tangles: out of curiosity, do you happen to know about in-game item descriptions? hit an item's inventory letter in inventory view :) 23:14 pretty sure that dented pot is a fake artifact 23:15 a "fake artifact"? 23:15 the RNG helmet looks interesting. 23:15 what kind of hellish place is slex anyway 23:15 RNG helmet is a randomized appearance that actually has an effect; we don't know what kind of helmet it really is though 23:15 "Very rarely, the RNG will make ebad stuff happen..." 23:16 > very rarely 23:16 Does it very rarely also make good stuff happen also? 23:16 seems unbalanced, and not truly random otherwise :P 23:16 i don't think you spelled frequently correctly in the description 23:16 theoretically some of the "bad stuff" might be useful, i.e. one of the effects is to become confused, which can be beneficial when you have certain scroll types 23:17 hmm... 23:17 also it's -1 but gives 4 AC points. 23:17 StatueSurfer: FIQ summed it up pretty well with his "abandon hope, all ye who enter here" comment :D 23:17 so 23:17 the rng helmet is like a cursed unihorn? 23:17 if you applied said unihorn every so often 23:17 so otherwise quite good, except the random bad stuff :/ 23:17 Tangles: that struck me as weird too; most of the high-base-AC helmets autocurse but apparently this one does not 23:18 might want to read a scroll of standard id to identify it :) 23:18 StatueSurfer: the RNG helmet can also randomly disintegrate your armor or weapon or turn you to stone or other more dangerous stuff 23:18 sounds not worth it 23:19 * LarienTelrunya sourcedives to find out the exact odds 23:19 at least until late game 23:19 i don't care about odds 23:19 1 in 100000 chance of bad stuff happening per turn 23:19 i can't walk around knowing that death could literally happen if i'm in a hermetically sealed room with no enemies or traps around 23:20 StatueSurfer: slex has an amulet of premature death, which has a 1 in 10000 chance per turn to say "You suddenly die." And then you die. 23:20 does disintegration resistance protect your stuff in slex 23:20 yes; the resistance makes you 99% disintegration resistant, and if the outermost armor piece itself is disintegration resistant then you're 100% resistant. 23:23 btw Tangles: since you probably can't pay the shopkeeper, you're gonna have to steal the items, and the shopkeeper is hard to kill. But you can try the phase door #technique or scrolls, hoping that it will teleport you out, and then make a run for it. :) 23:23 what pets can't steal anymore 23:23 in slex 23:23 they can, but Tangles put on some of the stuff and it's cursed, and seems to have too little money to pay for it 23:24 oof 23:24 why would you put on unID'd items in a shop 23:24 unless you pet-tested it first 23:24 and even then this is slex where apparently everything autocurses 23:24 haha :D well, at least the elongation cloak would have autocursed 23:30 [12hdf-eu] [12slex] Tangles (Sex Ske Fem Cha), 898 points, T:1495, killed by a monster (Mr. Iskenderun, the shopkeeper) 23:31 figures 23:31 ok... so the point of that little adventure 23:31 also is there a comprehensive list of all slex items anyway 23:31 *anywhere 23:31 beholder announcements are now working on the eu server. 23:32 Tangles: yay! :) 23:32 StatueSurfer: your best bet is the source, either objects.c or invent.c 23:32 :[ 23:32 okay 23:32 also StatueSurfer: play slex! *bundlebundlebundle* ♥ 23:32 i haven't even ascended in vanilla yet 23:32 i came very close recently 23:32 but not quite 23:33 if you play slex for a while, vanilla will feel like Disneyland by comparison :) 23:33 ^true 23:33 anyway, slex items: https://raw.githubusercontent.com/SLASHEM-Extended/SLASHEM-Extended/master/src/invent.c - scroll to the bottom, but be warned, there are a *lot* of items in the game :D 23:34 yeah i got that 23:34 i figure that's why no comprehensive list has yet been created 23:34 we once tried to put a complete monster list on the nethackwiki and things, well, kinda broke due to its sheer size :/ 23:35 they had to revert my update with 15000 monsters because it used up too much cpu 23:37 > unfair attack cloak 23:37 because the rng isn't quite against you enough already 23:37 @le?fucking troll 23:37 fucking troll ~3~ flying troll (07,01T) | Lvl: 7 | Diff: 9 | Spd: 12 | Res: none | Confers: nothing | MR: 0 | Generates: special | AC: 4 | Attacks: 4d2 weapon physical, 4d2 claw physical, 2d6 bite physical | Alignment: -3 | Flags: genocidable, carnivore, flies, regenerates, stalker, infravisible 23:38 heh, unfair attack cloak means that any monster attack may randomly use any damage type, including touch of death and similar stuff 23:38 @le?nasty troll 23:38 nasty troll (04,01T) | Lvl: 17 | Diff: 22 | Spd: 12 | Res: none | Confers: nothing | MR: 0 | Generates: special | AC: -4 | Attacks: 3d6 weapon physical, 3d8 claw physical, 3d6 bite physical, 0d0 touch item steal | Alignment: -7 | Flags: genocidable, carnivore, regenerates, stalker, infravisible 23:40 @le?morgoth 23:40 Morgoth (14,01&) | Lvl: 100 | Diff: 75 | Spd: 30 | Res: fire sleep disintegrate shock poison acid petrification magic drain | Confers: nothing | MR: 120 | Generates: unique | AC: -40 | Attacks: 8d10 weapon shred, 8d10 weapon shred, 10d4 weapon poison-sting, 1d1 touch disenchant, 10d10 cast spell, 15d15 breath random breath | Alignment: -20 | Flags: flies, 23:40 tunnels, regenerates, seeinvis, poisonous, nopoly, demon, stalker, covetous, infravisible 23:40 @le?sauron 23:40 sauron ~2~ auror (08,01A) | Lvl: 12 | Diff: 22 | Spd: 18 | Res: magic | Confers: nothing | MR: 90 | Generates: special | AC: -5 | Attacks: 3d4 cast spell, 3d4 cast magic missile, 2d6 cast clerical | Alignment: 15 | Flags: flies, seeinvis, stalker, infravisible 23:40 @le?sauron the sorcerer 23:40 No such monster. 23:40 @le?gothmog 23:40 gothmog ~3~ hot dog (05,01%) | Lvl: 7 | Diff: 9 | Spd: 12 | Res: fire | Confers: fire | MR: 20 | Generates: special | AC: 4 | Attacks: 2d6 bite physical, 2d6 breath fire | Alignment: -5 | Flags: genocidable, breathless, mindless, infravisible 23:41 @le?floorgrue 23:41 floorgrue ~1~ floor grue (00,01.) | Lvl: 0 | Diff: 2 | Spd: 4 | Res: none | Confers: nothing | MR: 0 | Generates: special | AC: 10 | Attacks: 1d2 bite physical, 1d2 passive tickle, 1d1 gaze remove-light | Alignment: -5 | Flags: genocidable, swims, breathless, mindless, oviparous, vegan 23:41 !players 23:41 Tangles: [11hdf-us] Dieonce [06nh4] Raisse [07nd] 23:41 Tangles: [12hdf-eu] No current players 23:42 @le?@le?azathoth 23:42 No such monster. 23:42 @le?azathoth 23:42 No such monster. 23:42 @le?Nyarlathotep 23:42 No such monster. 23:42 @le?Nyarlathotep, the Crawling Chaos 23:42 Nyarlathotep, the Crawling Chaos (05,01&) | Lvl: 93 | Diff: 75 | Spd: 24 | Res: fire sleep disintegrate poison acid petrification drain | Confers: nothing | MR: 100 | Generates: unique | AC: -10 | Attacks: 4d30 hug drain con, 4d30 hug drain str, 1d50 gaze drain int, 1d50 gaze wisdom, 12d12 cast spell, 10d10 gaze masterblaster | Alignment: -12 | Flags: omnivore, 23:42 phases, regenerates, nopoly, demon, stalker 23:57 -!- elenmirie_ has joined #hardfought 23:57 -!- elenmirie has quit [Read error: Connection reset by peer] 23:57 -!- elenmirie_ is now known as elenmirie