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