00:25 -!- Grasshopper has joined #hardfought 00:25 -!- mode/#hardfought [+v Grasshopper] by ChanServ 00:28 -!- Grassy has quit [Ping timeout: 260 seconds] 00:50 -!- raisse has joined #hardfought 00:50 -!- mode/#hardfought [+v raisse] by ChanServ 00:50 -!- elenmirie has quit [Ping timeout: 240 seconds] 01:05 -!- Grasshopper has quit [Read error: Connection reset by peer] 01:05 NetHack Fourk updated 01:05 -!- Grasshopper has joined #hardfought 01:05 -!- mode/#hardfought [+v Grasshopper] by ChanServ 01:11 started pulling down git repo's for all the variants we host to the EU server 01:11 -!- elenmirie has joined #hardfought 01:11 -!- mode/#hardfought [+v elenmirie] by ChanServ 01:11 plan to have EU server up and running like hdf-main by this weekend 01:12 hi elenmirie 01:12 o/ 01:16 hooray europe! 01:17 how in heaven's name would we have video games about coming to someone's house and taking all their stuff, without europe?! 01:23 is the -aus server destined to go permanent as well? 01:25 dunno 01:28 well 01:29 just noticed the EU instance i created for the tournament was only 8GB in size as far as space went 01:29 which was fine for just devnull 3.6.0 and zapm 01:29 but its almost full :) 01:30 increasing the volume size now... 01:34 nice, that was fast and fairly easy 01:34 still some provisioning to do... 01:35 is it an amazon thingy, someone's computer, or...? 01:40 AWS instance 01:40 and re-provisioning complete 01:40 just went from 8GB to 60GB 01:41 and that bit went smooth also 01:42 it's still a trip that nethack takes gigabytes of anything 01:42 wonder how alt.org managed, a decade ago 01:42 its the ttyrecs 01:43 and NAO started offloading ttyrecs to amazon s3 storage awhile ago 01:43 terabytes worth 01:43 dtype has the details surrounding that endeavour 01:44 i had been letting ttyrecs on hardfought stay in original state since the beginning, then realized just recently how much space they were consuming 01:45 compressing them all bought back about 55GB worth of space, did this yesterday 01:45 and dgl will do it for any new ttyrecs 01:45 although it's not 100% reliable (and I have a cronjob setup to catch any that dgl misses) 01:50 55! 01:50 that's almost a hdfeuworth 01:51 heh 01:51 eventually i'll have to upgrade the ssd in hdf-main 01:52 but at least i can hold off for a few years instead of having to plan it for next spring 01:55 -!- LarienTelrunya has joined #hardfought 01:55 hi LarienTelrunya 01:56 morning FIQ! 01:56 LarienTelrunya: Message from K2 at 2017-12-03 21:05 EST: using !players or !who works for slex now 01:56 !who 01:56 FIQ: Raisse [nd] 01:56 ok 01:58 K2: yay! I'm excited :) 02:01 -!- noty has quit [Quit: WeeChat 1.9.1] 02:04 FIQ you increased the tendency of randomly generated items to be not +0, right? got a d1 kobold throwing a stack of +5 darts, not sure whether intended 02:04 K2: how's the progress on world domination? :) 02:04 shpingrlde: no 02:04 variant paranoia 02:05 I increased the chance of *rings* to not be +0 02:05 ah, that was it 02:05 well it's a wizmode game anyways, just thought I'd check 02:05 ok 02:06 shpingrlde: one thing that will bug me regarding a formal release 02:06 is that I will have no idea how many bother 02:06 if at all 02:06 host the download on a site that tracks # of downloads? 02:06 I like server play for that reason :P 02:06 being able to see activity 02:07 (I like server play in general... it's Yet Another Reason) 02:07 shpingrlde: meh 02:07 doesn't tell me how many bothers with it 02:08 I only play locally in order to make fewer commits named 'bugfix' ;) 02:08 besides "let's try this thing out once" 02:08 hah 02:09 https://stackoverflow.com/questions/4338358/github-can-i-see-the-number-of-downloads-for-a-repo#4339085 02:11 -!- Grasshopper has quit [Remote host closed the connection] 02:11 -!- Grasshopper has joined #hardfought 02:11 -!- mode/#hardfought [+v Grasshopper] by ChanServ 02:17 -!- Grasshopper has quit [Read error: Connection reset by peer] 02:18 aosdict: "If the player wants to play a chaotic good rogue, they are able to go back and kill the Master Assassin, after which the Master Assassin will give you the Master Key." pretty sure one of those would actually be Master of Thieves 02:26 -!- Grasshopper has joined #hardfought 02:26 -!- mode/#hardfought [+v Grasshopper] by ChanServ 02:31 FIQ: would you recommend me to fix the curses memory leak too? 02:50 YASI: paper should be edible; after all, it is in RL. It's not necessarily a good idea to do so, but humans can definitely digest it :) 02:57 EPI: every wand has a 1 in 100000 chance per turn to transform into a wand of cancellation. If any such wand is in a bag of holding at that time, well... 02:59 LarienTelrunya: yes, i would recommend it 02:59 ok :) 03:02 EPI: if one of your stats is at its maximum and something tries to increase it, it wraps around to 3 (the lowest possible value). Makes blessed potions of gain ability rather dangerous :D 03:02 FIQ why is there a minus sign in "skill == -P_DART" for the multishot calculations in dothrow.c 03:03 because projectiles use -skill as identifier to say that it's a projectile 03:03 ammo_and_launcher is normal, p_dagger is normal, but p_dart and p_shuriken are preceded by - 03:03 this is the 80s, we can't afford to waste memory space 03:03 oh, I see 03:03 whacky 03:04 EPI: put a digdug branch into the regular game, but it's 100 levels long, has a kill screen on the 100th level, and if you somehow manage to survive that kill screen and complete level 100, the stair to Vlad's Tower is unlocked. Fail to complete Digdug and the game is unwinnable. 03:05 Hey 03:05 Hello Tangles, Welcome to #hardfought 03:06 Hi Tangles and welcome to #hardfought. Enjoy your stay! 03:06 shpingrlde: The au server will probably come down in the next day or 2. 03:06 poor Tangles :( 03:06 I don't think there's really demand for it at this stage. 03:06 ##crawl-aus 03:07 oops 03:07 meant to /join, also that's the wrong chan name 03:07 rip 03:08 Tangles: make a group effort with some other rouelike with a small AU audience :P 03:08 *roguelike 03:08 I actually know nothing about crawl :P 03:09 long story short, there's an enthusiastic dcss-aus community 03:09 they have a server and a discord; they may have deleted the irc room 03:10 they *probably* would be interested to know about a non-laggy nethack server, though the fact it's coming down in a couple days would be a damper 03:10 but my thinking is, I'd rather deal with 150ms of lag and play on a busy server, than play on a quick server all by myself. Might as well just play local. 03:10 yeah, I don't enjoy how bones-sparse some variants are already 03:10 but hdf should do bones sharing 03:10 ^ 03:11 https://crawl.project357.org/ if you want to get in touch with them; chequers is the admin 03:11 and spec-sharing (lowprio, but would be cool to see working) 03:11 heck, he might be willing to take over hosting if you give him the stuff 03:11 Yeah, so that's the other side of it. IF we come up with a good workable way to share bones, I'll run run a server in Aus for sure. 03:11 hearse can do it with a ton of users 03:11 should be possible to do similar with just 3-5 servers 03:12 Yeah I'd need to look more closely at how hearse works. 03:13 but how hard can it be to just rsync/whatever the bones folders 03:13 Also spec-sharing. I've been thinking of writing a little daemon that can be queried for a list of active games, or for a live stream. Then a client to aggregate them all. 03:13 cron jobbing bones automagically sounds risky 03:14 FIQ: I think there's a problem to solve around getting multiple copies of the same bones. 03:14 Perhaps not... just need to think it through. 03:15 that is an issue you will run into no matter what 03:15 I think I'd personally not care in the rare event where that happens, but meh 03:16 huh. elves autohit orcs with throw/fire? 03:16 nfs-mount the bones folders :P 03:17 oh, guaranteed_hit is a separate "if" 03:18 I have considered that also. It's a bit complex because of how bones files are distributed through everything. 03:20 probably a cron/rsync type solution would be ok, as long as we can determine when the bones are created/deatroyed, and push the action the right way. 03:21 EPI: overflowing Nethack's turn counter causes a kill screen. Not sure about the specifics, but it would definitely make the game unwinnable. Maybe by automatically spawning a hostile archon on every tile, once per turn? 03:23 that is not unwinnable 03:23 [nd] ShivanHunter (Wiz Elf Mal Cha) had Magicbane bestowed upon him by Anhur, on T:5999 03:24 is the damage dealt by thrown/slung gold defined in dothrow.c, or somewhere else? I'm not seeing it, but that doesn't mean it's not in here somewhere... 03:25 gold doesn't deal any damage when thrown 03:25 -!- aoei has joined #hardfought 03:26 FIQ: Challenge accepted? 03:26 Tangles: you can even abuse it with enexto 03:26 to warp arbitrariyl 03:26 *arbitrarily 03:27 I suppose it could also be argued, you've had MAXINT turns to prepare yourself, so you should be ready for a few archons. 03:28 yes 03:28 you can burrp them 03:28 and "move" that way 03:28 lol that could work. 03:32 heh, will glitchhack be born so that FIQ can try to complete it? ;) 03:32 that reminds me: the speed bug version of Nethack Fourk wasn't ascended :( 03:33 -!- aoei has quit [Quit: Leaving] 03:38 -!- aoei has joined #hardfought 03:49 [nd] ShivanHunter (Wiz Elf Mal Cha) acquired the luckstone from Mines' End, on T:7745 04:01 -!- aoei has quit [Quit: Leaving] 04:13 -!- Mandevil\splat is now known as Mandevil 04:23 -!- ais523 has joined #hardfought 04:24 -!- Grasshopper_ has joined #hardfought 04:28 [nd] ShivanHunter (Wiz Elf Mal Cha) had Sting bestowed upon him by Anhur, on T:9314 04:34 -!- ais523 has quit [Quit: sorry for my connection] 04:35 -!- ais523 has joined #hardfought 04:36 -!- ais523 has quit [Remote host closed the connection] 04:36 -!- ais523 has joined #hardfought 04:47 -!- ais523 has quit [Remote host closed the connection] 04:49 -!- ais523 has joined #hardfought 04:50 -!- elenmirie has quit [Read error: Connection reset by peer] 04:50 -!- elenmirie has joined #hardfought 04:50 -!- mode/#hardfought [+v elenmirie] by ChanServ 04:58 [nd] ShivanHunter (Wiz Elf Mal Cha) polymorphed his first object, on T:13937 04:59 -!- Webmant has quit [Ping timeout: 268 seconds] 05:02 [nd] ShivanHunter (Wiz Elf Mal Cha) completed Sokoban, on T:14386 05:46 -!- raisse has quit [Ping timeout: 255 seconds] 06:07 [nd] ShivanHunter (Wiz Elf Mal Cha) was chosen to steal souls for the Glory of Anhur, on T:20772 06:25 [nd] ShivanHunter (Wiz Elf Mal Cha) killed the Dark One, on T:22808 06:26 [nd] ShivanHunter (Wiz Elf Mal Cha) acquired the Bell of Opening, on T:22814 06:42 [nd] ShivanHunter (Wiz Elf Mal Cha) killed Medusa, on T:23017 07:12 YANI: Well, unicorns can somehow teleport, right? Why don't their corpses convey teleportitis then? That definitely ought to be changed. 07:19 similarly, players polymorphed into nymphs should have infinite carrying capacity 07:19 with ais523's antigold method they can actually do so :D 07:23 what's that? 07:29 a method to overflow the gold counter and get a stack of negative gold, with a negative weight; having that in open inventory essentially makes your weight limit infinite 07:30 illustrated here: http://nethack4.org/latest/nethack-tas-tools/turnbyturn.txt 07:30 (scroll down to turn 630) 07:40 it's not my method, I stole it from Berry 07:44 hi ais523! what was the ring that the xorn ate at T:685? 07:45 no idae 07:45 *idea 07:45 it'd be possible to find out but it'd take a lot of effort, we'd probably have to go into santa mode and get there first 07:47 oh, the message really just says "the xorn eats a ring", I hoped it would say "the xorn eats a marble ring" or something similar 07:47 it's not dknown 07:51 by the way, what are the hundreds of rocks for? the TAS never reaches the point where they're used :/ 07:53 we're planning to stone-to-flesh them into comestibles then polypile them into eggs 07:54 ahh, so that's how you set up the "egg bomb" 07:55 someone set you up the bomb? 07:55 hothraxxa: it's "somebody set up us the bomb", not "somebody set us up the bomb" 07:56 it is? well now i know 07:57 !gt pedant 07:57 well it's meaningless either way, so… 07:57 it's early here 07:58 just to be clear, i would have doen the same to you 07:58 in case you think i was offended or something 07:59 You see a cockatrice egg here. It explodes! 07:59 typical slex 07:59 that can actually happen in vanilla :D 08:00 (black light, obviously) 08:00 in slex it always happens 08:00 hothraxxa: do you want to play slex? it was updated recently, and among other things the character selection menu works in curses mode now (thanks FIQ)! 08:00 oh now you want me to have slex? 08:01 hothraxxa: LarienTelrunya always wants everyone to play slex 08:01 what have you done? 08:01 :D 08:01 ais523: she's just after my shoes 08:02 well, the truth is that I feed on the suffering when seeing players trigger my interface screw traps :P 08:02 slexy 08:03 i think you just want to watch 08:03 yeah, that too 08:03 if you were a variant developer, wouldn't you also want to watch others play your creations? 08:03 omg I knew that all about you both 08:05 i am waiting for the first annual slex tournament 08:05 LarienTelrunya: me too 08:05 LarienTelrunya: unlike some people, I don't usually create variants for the purpose of inflicting them on others 08:05 hahaha :D 08:05 (the Evil Variant is possibly an exception, but I don't think anyone's played it apart from a few wizmode playtests I did) 08:05 hothraxxa I am imagining the clan names 08:06 Grasshopper_: well, I'm planning to play mostly (only?) slex during next junethack, turning it into a bit of a slex tournament for me ;) 08:06 which would be a weaker steed: a flying zruty, or a couatl? 08:06 when I change NetHack it's mostly in an attempt to let more people partake in the joy of NetHack by removing things that might repel them 08:06 LarienTelrunya I'm looking forward to someone ascending slex (that isn't you!) 08:06 so I'm encouraging participation 08:07 Grasshopper_: your challenge is accepted, be the first one, I know you can do it! ready set go :D 08:07 !lotg Grasshopper_ 08:07 May the Luck of the Grasshopper be with you always, Grasshopper_! 08:07 Grasshopper_: the problem is that slex becomes more difficult at a faster rate than people learn it 08:07 (as evidenced by the mandatory 100-floor dungeon LarienTelrunya is planning to add…) 08:07 LarienTelrunya lol, I have an aversion to death so may play under an alias 08:08 Grasshopper_: I thought you already had several accounts, one "Grasshopper" for streaks and one "Grassy" for testing and stuff 08:08 grassy is just an alternate IRC login name 08:08 ais523: heh, that dungeon exists in the development version, but the code to make it mandatory isn't in place yet ;) 08:09 as my connections drop a lot 08:09 and BTW LarienTelrunya - get rid of penalising people for hangups and I'll come test it for you (promise!) 08:10 well, sadly hangup cheating is a thing :( 08:10 not from me! 08:11 LarienTelrunya: clearly you shuld port over NH4's save system :-P 08:11 I've even let a boh blow instead og hanging up, because some think it is cheating 08:11 or even 3.6.0's hangup system 08:11 which is less robust but should defeat most forms of cheating 08:12 ais523: hmm. If you can give me the code to change the 3.4.3 hangup system into the 3.6.0 one, I'd test whether it's applicable for slex and if so, I could really remove the penalty. 08:12 it's unlikely to apply directly, but the general principles should work 08:12 \o/ 08:12 -!- raisse has joined #hardfought 08:12 -!- mode/#hardfought [+v raisse] by ChanServ 08:12 the idea is that at each time you ask for user input, "hangup" is a possible input 08:12 and you should interpret that as a default input 08:13 tfw grasshoppers become full citizens of the nethack world 08:13 normally "cancel" / "don't confirm", if that's possible 08:13 then finally when you get back to the main "what action do you want to take?" mode, you enter save as the input 08:13 NH4 uses this system to handle hangups when it's in the user interface (rather than in-game), I think 3.6 uses it for everything 08:13 ais523: you mean that if you e.g. hang up at a "whoops I put all my stuff into the BOH!" prompt, it will first process it so that your BOH actually blows up, and only save after the fact? 08:13 LarienTelrunya: right 08:14 not only that, but it'll let the monsters have a turn too, if it was their turn after the BoH manipulatino 08:14 *manipulation 08:14 that would sound like exactly the thing slex needs, but how is it done? 08:14 it should be impossible to cheat like that because everything you can do with a hangup you can do without, too 08:14 i.e. where in the code is the change that does so? 08:14 you ideally have to change every single call of a function that takes user input 08:15 but you can approximate it by changing getpos(), getlin(), and friends to interpret hangup as esc 08:15 -!- Grasshopper_ has quit [Quit: If you can't laugh at yourself, make fun of other people.] 08:15 this works in most cases but not all (e.g. it doesn't work at acehack's spellcasting prompt); it may well be that it works in every case in slex though 08:16 well, it's got to be in 3.6.0, so I guess I should look at 3.6.0's getpos/getlin/etc. code? 08:16 yep 08:16 I don't know how exactly 3.6.0 implemented it but I'm guessing it was in getpos and friends 08:16 as that's only a small surface area to change 08:18 LarienTelrunya: looks like in 3.6.0 it's a windowport feature 08:18 ah, so I'd have to change it for both tty and curses, respectively 08:19 but this code is really spaghetti 08:19 it's mentioned occasionally in the core too 08:20 is it safe to assume that in order to find the changes I just need to grep for program_state.done_hup? 08:21 actually I'm not sure it's implemented for tty 08:21 LarienTelrunya: I'm grepping for SAFERHANGUP too 08:21 but I can't follow this at all 08:21 hmm, I guess I should test what happens when I hang up in 3.6.0 08:22 in some other window ports it seems to just unconditionally return ESC from a key request though 08:22 OK, yes, I think what it's doing is to delay end_of_input() until the allmain main loop 08:22 and then doing a regular hangup save 08:23 just tested on the esm server: I dropped my entire inventory, but hanged up at the --More-- after two items had been dropped, and then restored; in the restored save all the items are on the floor 08:23 so it definitely processed stuff first and then hangup saved 08:24 tested with SLASH'EM 0.07: only one item is on the floor and the remaining stuff is still in my inventory 08:24 so 3.6.0 does it right and if I somehow manage to port that over to slex then we can say bye-bye to the penalty 08:25 ais523: so I guess grep for SAFERHANGUP and program_state.done_hup? 08:25 right 08:25 maybe even SIGHUP itself 08:26 okay, will try to fix that when I get home; there is hope that I can eliminate the hangup penalty and then all players can rejoice! :) 08:26 aha, src/cmd.c, in the hangup() function, seems to have the core of the hangup implementation 08:27 huh, somehow slex doesn't have that function in cmd.c, it must be new to 3.6.0 08:27 done_hup behaviour appears very suspicious to me in the new code; maybe it's correct but it's bizarre 08:29 ais523: isn't 3.6.0's robust enough to handle everything too? 08:29 oh, haha, AFAICT it's not handling the hangup at all in the tty input code 08:29 cheat-wise I mean, it obviously can't handle process kills, but that shouldn't be a problem for server play 08:29 it's attempting to read from the closed terminal, getting EOF, then interpreting it as ESC (!) 08:30 oh wait, you can actually kill your own process at will 08:30 using dgamelaunch 08:30 I forgot about that 08:30 then the done_hup flag is used to exit when it gets back to the main loop 08:30 "if (sym == EOF)" <--- is "EOF" what is sent to the game when you hang up? 08:30 ais523: so the 3.6.0 method will not work on dgl 08:30 LarienTelrunya: EOF's what you get if you try to read from a closed stream 08:30 closing the stream is what normally /causes/ the hangup 08:30 although if someone sent SIGHUP by hand the stream would still be open 08:30 actually hmm 08:30 thinking about it 08:30 I don't think there's a way to remotely cause a hangup without closing the stream over telnet/ssh; there might be using dgamelaunch 08:31 yeah I'm hanging up by closing the putty window; the game is still there if I immediately log back in, but terminates after a few seconds 08:31 this should work 08:31 if there's an exploit here, it involves waiting for the game to get stuck at --More-- 08:31 because LarienTelrunya wants to detect HUP cheats 08:31 then opening up a second connection to dgamelaunch and using it to kill the original game 08:31 and if she keeps those cheats around 08:31 er 08:32 *anticheat measures 08:32 but add the 3.6.0 HUP behaviour 08:32 it should treat people with bad connections properly 08:32 since afaik, a broken pipe sends a HUP 08:32 FIQ: the correct thing to do, I think, is to trigger the anticheating measures only if a hangup save happened, for some reason, outside the main loop 08:32 FIQ: ? why would I keep the anticheat penalty if you cannot cheat anymore? 08:32 and no, a broken pipe sends SIGPIPE 08:33 LarienTelrunya: what I am saying is 08:33 the 3.6.0 measures 08:33 will *not* prevent sigkill cheating 08:33 the 3.6.0 measures could easily be made to handle sigterm, at least 08:33 but how do you send a sigkill when playing online? 08:33 what signal does dgl use? 08:33 which you can trigger by opening 2 processes 08:33 LarienTelrunya: open a second dgl process and attempt to load a game that's already runing 08:33 LarienTelrunya: you do this 08:33 *running 08:33 yeah 08:33 that 08:33 beat me to it :P 08:33 dgl will send a kill signal to the first /without/ closing its output stream 08:33 that sends a SIGKILL?! 08:34 but I'm not sure which one 08:34 the correct option would be either SIGTERM or SIGHUP, but neither will work against the 3.6.0 code 08:34 however, that doesn't mean that I can't change the code for 3.6.1 08:34 I believe dgl sends SIGTERM by default, but it was changed on hdf because it meant K2 had to intervene if a process entered an infinite loop 08:34 to work in this case 08:34 which dnethack tended to do occasionally for a while 08:34 FIQ: by the way, libuncursed will interpret SIGTERM and SIGHUP the same way, translating them into KEY_HANGUP on input 08:35 so now it will first try to SIGTERM 08:35 well, I just tested on esm, it says "There are some stale nethack processes, will recover in 10 seconds." and then I got back into the game and my command did get executed despite the hangup 08:35 and failing that 08:35 SIGKILL 08:35 which is something that you have to handle manually (in this case probably by translating to ESC) 08:35 ais523: thanks, good to know 08:35 LarienTelrunya: so it works? I'm mildly surprised but this code isn't so messy I wouldn't be utterly surprised by more or less any sane result 08:35 but ESC will not be able to save and quit, will it? 08:36 FIQ: no, so you need a separate hangup response in rhack 08:36 (assuming we're talking about vanilla-ish variants here) 08:36 what is rhack? 08:36 ais523: yeah 08:36 FIQ: the function that handles inputting your command when it's your turn to move 08:36 tested on both esm and hdf, I get the stale process thing and then it recovers and it did in fact drop everything despite the hangup 08:36 outside special circumstances like occupations 08:37 ah 08:37 it's infamous for doing things like using multi, one of the most fundamental variables in the game, as a temporary 08:37 so the 3.6.0 method is at least good enough to not be cheatable by a noob, I guess it would take a coding expert to find a way to still hangup cheat there :D 08:38 (technically speaking, the fact that rhack() is running in the first place means that multi must be 0, so it's safe, but it's bizarre) 08:40 unixconf.h: /* * Define SAFERHANGUP to delay hangup processing until the main command * loop. 'safer' because it avoids certain cheats and also avoids losing * objects being thrown when the hangup occurs. All unix windowports * support SAFERHANGUP (couldn't define it here otherwise). */ 08:40 ais523: touching rhack means messing with the engine D: 08:41 FIQ: is there a way to tell you're in rhack without messing with the engine, I wonder? 08:41 hmm 08:41 NH4 started introducing a general scheme of "the reason the engine is asking for input" in order to allow windowports to do this sort of thing without messing with the engine 08:43 I wonder if menu_requested will be TRUE in *all* cases where "Sy" doesn't work 08:43 iflags.menu_requested that is 08:44 so I could just spam escape until menu_requested is FALSE, then queue 'y' and press S 08:44 this is awkward but does avoid touching engine code 08:45 hm 08:45 or can I invoke the SIGHUP handler of the engine in some way I wonder? 08:47 okay, time for me to go; wish me luck in my quest to get rid of the hangup penalty! :) 08:47 -!- LarienTelrunya has quit [Quit: Page closed] 08:47 ais523: would catching KEY_HANGUP and spam escape until iflags.menu_requested is FALSE, then hangup(1) be erasonable? 08:47 *be reasonnable 08:47 **be reasonable 08:49 oh whoops, the Rogue should definitely not kill the Master Assassin and then have him give you the Master Key 08:50 hmm 08:50 curses_nhggetch() only runs in a "safe" spot I think 08:50 so that is where I should hangup(1) upon sighup 08:51 *curses_nhgetch 08:52 FIQ: what does iflags.menu_requested do? it doesn't sound like "this is a command argument" to me 08:53 ais523: nvm, it was for something unrelated 08:53 it's TRUE if you do "," 08:53 and doesn't seem to ever be true otherwise 08:55 to be honest, an iflags.in_rhack / iflags.in_save_confirm_prompt would be trivial to add and would solve this problem very neatly 09:07 [nd] Raisse (Arc Dwa Fem Law) had Demonbane bestowed upon her by Quetzalcoatl, on T:3758 09:07 -!- Grassy has joined #hardfought 09:07 -!- mode/#hardfought [+v Grassy] by ChanServ 09:10 hmm 09:11 I wonder why 3.6.x deprecated NHW_STATUS 09:11 -!- Grasshopper has quit [Ping timeout: 258 seconds] 09:11 for "draw stuff in the status window" 09:12 maybe to give the windowports more freedom in what to draw there 09:17 jonadab: I found this page linked from nethack.org: http://www.tomsarazac.com/tom/Fun/nethack.html 09:17 I might want to convert this into a 1-bit tileset at some point, if there's any demand for such a thing. 09:22 -!- ais523 has quit [Quit: quit] 09:25 Are you using some sort of tool to work on the pixel art in your tileset? I understand it's not done by actually editing images. 09:31 aosdict: I'm using tiletool, yes. 09:32 -!- StinkyGreene has quit [Ping timeout: 248 seconds] 09:32 https://github.com/tsadok/nhfourk/blob/master/tilesets/util/tiletool.pl 09:32 (Exception: if the tileset has more than 8-bit color, then I use Gimp.) 09:34 And it looks like some of the tileset maps are in win/share/objects.txt? 09:34 win/share/*.txt, I guess. 09:34 [dyn] Zxkuqyb (Wiz Elf Mal Cha), 1825 points, T:1996, killed by an arrow 09:35 They're all 16x16? Does vanilla ship with a 32x32 or 24x24 version? 09:36 aosdict: There's code for 32x32, but I haven't found those tiles in the vanilla source repo; they might be supplied by some specific windowports. 09:37 aosdict: In NH4, all the tiles stuff is in its own top-level directory tree, tilesets 09:37 (And tiletool is designed on this assumption, and uses the catalogs to know which files pertain to which tileset.) 09:37 (If the catalogues exist in 3.x, I'm not aware of it.) 09:39 OK, I'm looking at Fourk's dawnlike-16 and it seems like the syntax is the same. 09:39 Yes. 09:39 However, look at slashem-32 also. 09:41 Also note that NH4's (and thus Fourk's) versions of the tilesets are derived from Slash'EM, not from vanilla. Slash'EM had added features, and I think transparency might be one of those features. 09:42 Ah, so it seems like tiletool.pl won't work out of the box in a non-nethack4 environment 09:44 Right, it would need some adjustments. 09:44 It _probably_ wouldn't be very hard to make it work on 3.x, I just didn't have any reason to do so. 09:45 ...now is probably not the best time for me to have to learn perl. 09:45 Heh. 09:45 Well, most of the changes it would need, I suspect, would be in terms of changing filepaths. 09:45 What is a catalogue in NH4 terms? 09:46 List of involved files? 09:46 Basically. It also says what the x and y sizes are. 09:46 See tilesets/dat/catalogues 09:47 First line is the x and y sizes, separated by a space. Second line is the name of the tileset. 09:47 The rest of the lines are the names of the .txt files that define the tiles. 09:55 -!- Grasshopper has joined #hardfought 09:55 -!- mode/#hardfought [+v Grasshopper] by ChanServ 09:57 -!- Grassy has quit [Ping timeout: 258 seconds] 10:12 -!- Webmant has joined #hardfought 10:35 -!- raisse has quit [Ping timeout: 240 seconds] 10:35 -!- noty has joined #hardfought 10:46 -!- Grasshopper has quit [Ping timeout: 260 seconds] 11:13 -!- raisse has joined #hardfought 11:13 -!- mode/#hardfought [+v raisse] by ChanServ 11:36 jonadab: after clumsily hacking out pieces of tiletool.pl, it's complaining that the brace in /^\s+([A-Z0-9_\$]{$dimx})$/ is unescaped and this is deprecated. 11:37 Perhaps more significantly, it's not recognizing the . symbol as a valid one, which NH uses as the default background. 11:40 -!- StinkyGreene has joined #hardfought 11:45 -!- realinari has joined #hardfought 11:45 -!- StinkyGreene has quit [Ping timeout: 260 seconds] 11:45 -!- deadnoob has quit [Ping timeout: 248 seconds] 11:50 aosdict: Adding . to the character class is relatively easy. [A-Z0-9._\$] 11:51 Right, did that. 11:51 Not sure what you are doing with {$dimx} 11:51 Oh, wait. 11:51 I see. 11:51 Yes, I do know. 11:51 You want that many characters, from that set, right. 11:51 Now trying to figure out why " ................" doesn't get matched by /^\s+([A-Z0-9\._\$]{$dimx})$/ 11:52 What's $dimx set to? 11:52 Since I hardcoded dimx to 16. 11:52 That should be correct then. 11:53 It's complaining about those braces 11:53 saying it'll be fatal in perl 5.30 11:53 Huh. 11:53 Let me just check something. 11:54 stackoverflow says use {} for matching a certain amount of times, but that's all from 2010 11:54 -!- raisse has quit [Quit: Raisse suddenly disappears!] 11:54 -!- raisse has joined #hardfought 11:54 -!- mode/#hardfought [+v raisse] by ChanServ 11:55 aosdict: The following works for me here: perl -e ' my $string = " ................"; if ($string =~ m/^\s+([A-Z0-9\._\$]{16})$/) { print "works for me here\n"; } ' 11:56 This is Perl 5.10.1 11:56 Hang on, let me check on alpaca, it probably has the newest Perl I've got. 11:56 I have 5.26.1 11:56 Hmm, alpaca has 5.20.2 and it's fine. 11:57 It's very strange that they'd break this syntax in a newer Perl. 11:57 Try {16,16} instead of just {16} 11:57 If that doesn't work, I'll have to do some research. 11:58 I just tried adding my $dimx = 16 and putting 16 in the braces, that worked too. 11:58 Does the m before the first / have anything to do with it? 12:10 -!- realinari has quit [Quit: realinari] 12:10 -!- raisse has quit [Ping timeout: 276 seconds] 12:11 -!- elenmirie_ has joined #hardfought 12:23 aosdict: The m before the first / is technically unnecessary when using =~ and / but would be required e.g. if you replaced the / with some other character. 12:23 It stands for "match" 12:23 But what it really does in this context is tells you that the next character is the opening quote for a regex. 12:24 The / is the most frequently used character for that, but others are possible. Because the / is the most common and doesn't conflict with other things that can be in this context, it makes the m optional. 12:26 Still not sure why it's matching in a plain perl -e command but not in the script. 12:26 It does match in the script on my systems. 12:27 Although, maybe you should pastebin the script with your changes for me to look at. 12:28 Hang on, currently furiously writing down AI ideas from ##nethack-variants. 12:28 Ok. 12:29 Hmm, another thing to try is to replace {$dimx} with {${dimx}}. That is definitely not required in the versions of Perl I have used, but it will _work_ in them. 12:35 Still no. 12:35 I mean, no difference. 12:36 Wait, dimx is "" 12:36 Uh, maybe I just don't know how to do a double assignment in perl? 12:38 Okay, made the dimx, dimy hardcode into two lines and now it matches 12:38 time to reset everything 12:39 [nd] firemonkey (Wiz Elf Mal Cha), 141099 points, T:18573, killed by Croesus 12:40 Neat, works now. 12:47 -!- NeroOneTrueKing has joined #hardfought 12:47 . 12:49 aosdict: Oh. $dimx needs to be numeric, yes. 12:50 That explains it. 12:50 My ($dimx, $dimy) = (16, 16) should work. 12:50 Err *my 12:50 Without the parentheses you get scalar-mode behavior from the comma, which isn't what you want. 12:51 (Honestly, I'd like to see the scalar-context behavior of comma removed, and make comma create list context automatically. Scalar comma isn't actually useful in modern Perl, IMO. But backward compatibility blah blah.) 12:52 -!- NeroOneTrueKing has quit [Remote host closed the connection] 12:53 -!- NeroOneTrueKing has joined #hardfought 13:01 -!- raisse has joined #hardfought 13:01 -!- mode/#hardfought [+v raisse] by ChanServ 13:05 -!- elenmirie_ has quit [Quit: Going offline, see ya! (www.adiirc.com)] 13:08 [nd] APic (Wiz Elf Mal Cha) genocided class R, on T:45310 13:14 okay so since this was designed as a font it means the source is 16x24 and I only have 16x16 to work with... unless NetHack would support tiles of 16x24 size? 13:14 No such luck, I think. 13:17 aosdict: NH4 will support 16x24 no problem. 13:17 Not so sure about 3.x 13:17 However, consider making them 24x24, you could use _most_ of them and would just have to redesign or scale certain ones (e.g., terrain, very large monsters maybe). 13:22 Does 3.x support 24x24? It seems like the default tileset just assumes everything's 16x16. 13:22 Oh, hmm, not sure. 13:22 The default tileset is 16x16, yes. 13:23 And all the tiles in any given tileset do HAVE to be the same size, for reasons that should be obvious. 13:23 Do you know if any other tilesets like dawnhack have 24x24 versions for vanilla? 13:24 FMOB is 24x24, but it's not entirely complete for vanilla (it's complete for Fourk, but is missing some things that Fourk removes, e.g., about three quarters of the polearms.) 13:24 geoduck is a non-square size. 13:24 And works with vanilla I _think_. 13:24 But it's distributed as a .png 13:25 See http://www.geoduckthings.net/nhack/nhack.html 13:25 Any idea where I could find 3.x versions of these tilesets? (nethack4 will of course contain the size information by default.) 13:27 Oh, heh, I misremembered, geoduck isn't distributed as a .png. It's distributed as a .bmp 13:27 Here is the 3.6 version: http://www.geoduckthings.net/nhack/geoduck25x15-2017.bmp 13:31 Hmm, but I have no idea how I'd compile that into my x11 build. 13:32 I think you don't have to compile it in, I think you can actually set options somewhere to tell it which tileset file to use and the sizes. 13:32 However, if your goal is to get it merged into vanilla, you probably want to go with source format. 13:32 Because that will work with all the different ports (that use tiles). 13:33 This isn't to get it merged into vanilla necessarily. But by source format you mean fixed 16x16/ 13:33 ? 13:33 Although, the tileset compiler that ships with NH4 can probably do the conversion from .png to source format pretty automatically, given a map file (that is, a list of what order the tiles are in) and tile dimensions. 13:33 aosdict: By source format I mean the .txt files. 13:34 So that each tile is independent of the others, and they work in version control, etc. 13:34 Source format isn't tied to 16x16 inherently, I don't _think_. 13:34 [fh] PewDYWYPIE (Luxidream) (Tou Gno Fem Neu) wished for "blessed fixed greased +2 gray dragon scale mail", on T:2876 13:34 Mhm. Just not sure if that's fixed 16x16, or if there's some way to specify sizes. 13:34 I know NH4 and Slash'EM both support other sizes. 13:38 Ah, looks like TILE_X and TILE_Y are relevant. 13:39 tile2bmp.c has support for 32x32 13:39 Explicitly. 13:40 [nd] APic (Wiz Elf Mal Cha) killed the Wizard of Yendor, on T:46538 13:40 It's possible that other windowports don't need to be explicit about that, they can just support any size depending on how TILE_X and TILE_Y are defined? 13:40 [nd] APic (Wiz Elf Mal Cha) acquired the Book of the Dead, on T:46539 13:40 It does look like making the game compile multiple tilesets at different sizes might require some actual work. 13:41 [nd] APic (Wiz Elf Mal Cha) killed the Wizard of Yendor, on T:46592 13:41 Ah, see also win/share/tile.doc 13:43 Huh? What part of tile.doc? Don't see anything about sizes. 13:43 I'm still reading it. 13:43 Also, heh, they haven't updated the information about .gif support since the patent expired. 13:45 Ah, right, it doesn't say much about sizes. 13:45 [nd] APic (Wiz Elf Mal Cha) performed the invocation, on T:46716 13:46 Anyway, I think if you had a tileset that was a size other than 16x16, it would be worth testing it by changing the definitions of TILE_X and TILE_Y to see if it works. But this would only allow you to replace the default tileset with the new one. 13:46 If you want to support compiling multiple tilesets at build time as NH4 does, that would likely be more work, it looks like. 13:47 Maybe will just make the 16x24 for now, since I have no idea if anyone would want a 1-bit tileset anyway. 13:48 -!- raisse has quit [Ping timeout: 260 seconds] 13:56 [fh] PewDYWYPIE (Luxidream) (Tou Gno Fem Neu), 34757 points, T:5493, drained of life by a vampire lady 14:02 -!- raisse has joined #hardfought 14:02 -!- mode/#hardfought [+v raisse] by ChanServ 14:40 [nd] firemonkey (Wiz Hum Mal Neu), 620 points, T:1488, killed by Mr. Kabalebo; the shopkeeper 14:46 [nd] firemonkey (Pri Hum Mal Law), 503 points, T:617, killed by a gnome 15:13 [nd] firemonkey (Val Dwa Fem Law) had Excalibur thrown at her by some watery tart, on T:2985 15:34 [nd] firemonkey (Val Dwa Fem Law) completed Sokoban, on T:5501 15:46 [nd] pugilist (Mon Hum Mal Cha) completed Sokoban, on T:11261 15:46 -!- tacco\unfoog has joined #hardfought 15:54 -!- hpardis has joined #hardfought 15:57 -!- NeroOneTrueKing has quit [Quit: Leaving] 16:06 -!- NeroOneTrueKing has joined #hardfought 16:22 -!- Tarmunora__ has joined #hardfought 16:26 -!- Tarmunora_ has quit [Ping timeout: 248 seconds] 16:33 -!- raisse has quit [Ping timeout: 240 seconds] 17:17 -!- Grasshopper has joined #hardfought 17:17 -!- mode/#hardfought [+v Grasshopper] by ChanServ 17:42 -!- Webmant has quit [Ping timeout: 255 seconds] 18:05 [nd] pugilist (Mon Hum Mal Cha) acquired the luckstone from Mines' End, on T:15268 18:09 -!- Tarmunora_ has joined #hardfought 18:12 -!- Tarmunora__ has quit [Ping timeout: 240 seconds] 19:04 !players 19:04 K2: Eleven [nd] k2 [zapm] 19:06 -!- elenmirie has quit [Quit: Going offline, see ya! (www.adiirc.com)] 19:08 -!- elenmirie has joined #hardfought 19:08 -!- mode/#hardfought [+v elenmirie] by ChanServ 19:12 -!- Announcy has quit [Remote host closed the connection] 19:21 -!- bhaak has quit [Ping timeout: 240 seconds] 19:24 [nd] Eleven (Bar Hum Fem Neu), 20385 points, T:16970, killed by a giant spider 19:49 [nd] Eleven (Pri Hum Fem Neu), 442 points, T:2284, killed by a wererat 20:07 [nd] Eleven (Wiz Hum Fem Neu), 238 points, T:1268, killed by a water demon 20:15 [fh] 0utrosp3ctive (Luxidream) (Pri Hum Mal Cha) wished for "blessed fixed greased +2 cloak of magic resistance", on T:1664 20:25 [dnh] Twomunora (Con Orc Mal Cha) killed Illurien of the Myriad Glimpses, on T:39013 20:27 [nd] Kontroller (Wiz Hum Mal Neu), 3410 points, T:4246, killed by a soldier ant 20:31 [nd] Kontroller (Val Hum Fem Law), 94 points, T:391, killed by a large mimic 20:31 -!- Webmant has joined #hardfought 20:36 This is weird, some of these tiles in this font don't have the full 16x24 size. 20:38 -!- Webmant has quit [Ping timeout: 268 seconds] 20:44 jonadab: do you have any idea how 3.x associates tiles with the actual in-game symbol? 20:45 [fh] 0utrosp3ctive (Luxidream) (Pri Hum Mal Cha) were chosen to steal souls for the glory of Anshar, on T:8419 20:46 Because the IDs don't seem to matter, each separate .txt file starts with ID 0. 20:48 -!- Grasshopper has quit [Remote host closed the connection] 20:48 -!- Grasshopper has joined #hardfought 20:48 -!- mode/#hardfought [+v Grasshopper] by ChanServ 20:49 Moreover, the font only provides one image per object class and monster class for the most part, so I think I might have to replicate each one the exact number of times... 20:50 [nd] Kontroller (Val Hum Fem Law) had Excalibur thrown at her by some watery tart, on T:2081 20:56 -!- tacco\unfoog has quit [Ping timeout: 276 seconds] 20:56 -!- tacco\unfoog has joined #hardfought 20:57 -!- rikersan has joined #hardfought 21:00 [dnh] Twomunora (Con Orc Mal Cha) was given the Limb of the Black Tree, on T:42098 21:02 that's not a bad gift for a convict I guess 21:04 -!- Grasshopper has quit [Remote host closed the connection] 21:04 -!- Grasshopper has joined #hardfought 21:04 -!- mode/#hardfought [+v Grasshopper] by ChanServ 21:05 -!- tacco\unfoog has quit [] 21:08 aosdict: I don't know all the details, but I'm pretty sure the part in parentheses after the tile number is relevant. 21:13 aosdict: Maybe look at what read_txttile() does? 21:14 [nd] Kontroller (Val Hum Fem Law) completed Sokoban, on T:5011 21:16 aosdict: Actually, look at tilemap.c 21:18 Yep, tilemap.c is where that's at. 21:24 Ah, so it actually requires separate specific monsters.txt, objects.txt, and other.txt. 21:27 [nd] Kontroller (Val Hum Fem Law) eschewed atheism, by dropping a banana on an altar, on T:6205 21:27 [dnh] Twomunora (Con Orc Mal Cha) destroyed the invisible Center of All, on T:43755 21:29 -!- StinkyGreene has joined #hardfought 21:32 aosdict: Looks like. 21:32 [nd] Eleven (Mon Hum Fem Neu) eschewed atheism, by dropping a scroll of identify on an altar, on T:5951 21:32 I would not have guessed that. 21:32 THe order may matter as well, within each. 21:32 The NH4 system is way less particular. 21:37 uggggghhhh 21:38 so if I were going to make this tileset for NH4, how would I square the fact that this is a font and only used one glyph for each letter? 21:38 Would I still have to copy everything everywhere? 21:41 [dnh] Twomunora (Con Orc Mal Cha) killed Great Cthulhu, on T:44332 21:41 is the server being buggy and not showing games again? 21:41 !whereis twomunora 21:41 rikersan: Twomunora [dnh]: (Con Orc Mal Cha) T:44112 The Lost Cities level: 33 21:42 is Tarmunora winning or is that just the beginning of dnh 21:42 well 21:42 he's likely pretty far since he killed cthulu 21:42 but no that's not even in gehennom yet 21:42 I know he's done teh quest (I'm pretty certain) though 21:44 [dnh] Twomunora (Con Orc Mal Cha) averted death, on T:44419 21:44 what's the IP for the west coast hdf server? 21:44 [nd] Eleven (Mon Hum Fem Neu) hit with a wielded weapon for the first time, on T:7038 21:44 I don't think there is one 21:44 e6.alt.org was west coast, devnull only, hosted by NAO 21:44 ah ok 21:45 so is there another sever than main and eu? 21:45 there is/was an aus server 21:45 doomed to die 21:45 dcss has an arizona server, that's almost west coast 21:45 shpringrdle: no no no, there's 9 for those doomed to die 21:45 also, nah, I'm talking about tarmuonra 21:45 it's likely just a bug then 21:46 which is a pity because I'd love to see a sucessful convict run 21:49 !who 21:49 shpingrlde: Eleven [nd] Twomunora [dnh] arnibald [gh] 21:50 got tarmunora to reload, it's working now 21:50 I always name my Nazgul rings "N for Mortal Men Doomed to Die". Never got a complete set yet. 21:51 I've seen you do that with 1-3 iirc 21:51 the tourist asc 21:51 unrelated, but I played War of the Ring for the first time yesterday and it was pretty awesome 21:51 (it's a board game not a video game) 21:53 that's the 2 player one where you rotate the board 45 degrees? 21:54 no, it's a LOTR themed wargame 21:54 you basically get to write an alternate-history LOTR through your gameplay 21:54 oh. I like the 2 player one :D 21:54 don't know nothin about WotR 21:56 there are two win conditions for each side: either side can win a military victory, the Good side can bring the Ring to the Cracks of Doom, or the Evil side can sufficiently corrupt the Ring-bearer. 21:57 -!- Kontroll1r has joined #hardfought 21:59 hidden movement for the ring barer? 22:00 yes, the Fellowship gets to exist in a quantum uncertainty state of being some distance away from their last known position 22:00 evil can "discover" them in several ways 22:00 -!- Kontroller has quit [Ping timeout: 260 seconds] 22:01 aosdict: I believe you can specify more than one name for the same glyph? 22:01 Using semicolons maybe? 22:01 That would help. 22:01 Or make a .png of it and use a .map file, which definitely lets you do that (see how rltiles is done). 22:01 That's for NH4 though right? 22:01 Yes, that's for NH4. 22:01 I don't know that 3 lets you do that. 22:02 THough I don't know that it _doesn't_, either. 22:02 But likely not. 22:02 Well, I think I'm going to shelve this project then. 22:02 Unless someone actually decides they want a 1-bit tileset. 22:08 -!- Menche has joined #hardfought 22:24 [gh] arnibald (Pri Hum Mal Neu), 3467 points, T:2950, killed by a jaguar 22:28 rip 22:28 -!- Webmant has joined #hardfought 22:30 [nd] Eleven (Mon Hum Fem Neu), 8906 points, T:10345, killed by a mumak 22:30 !gt q 22:32 -!- rikersan has quit [Quit: Lost terminal] 22:38 -!- rikersan has joined #hardfought 22:42 [dnh] Twomunora (Con Orc Mal Cha) killed Axus, on T:48606 22:43 -!- Menche has quit [Remote host closed the connection] 22:43 -!- Menche has joined #hardfought 22:50 [nd] Kontroller (Val Hum Fem Law) changed form for the first time, becoming a black unicorn, on T:7455 22:50 -!- bhaak has joined #hardfought 22:53 [nd] pugilist (Mon Hum Mal Cha) hit with a wielded weapon for the first time, on T:17440 22:53 [gh] arnibald (Pri Hum Mal Neu), 1838 points, T:2298, killed by a giant spider 23:00 [gh] arnibald (Pri Hum Mal Neu), 270 points, T:455, killed by a gnomish wererat 23:01 [dnh] Twomunora (Con Orc Mal Cha) killed Oona, on T:50890 23:03 [dnh] Twomunora (Con Orc Mal Cha) destroyed the Arsenal, on T:51159 23:06 [gh] arnibald (Pri Hum Mal Neu), 211 points, T:530, killed by a gnomish werejackal 23:08 [nd] Kontroller (Val Hum Fem Law), 25081 points, T:9214, choked on a stone giant corpse 23:17 -!- deadnoob has joined #hardfought 23:24 -!- rikersan has quit [Quit: Lost terminal] 23:28 [gh] arnibald (Pri Hum Mal Neu), 587 points, T:923, killed by a coyote 23:46 -!- bhaak has quit [Ping timeout: 248 seconds] 23:49 -!- hpardis has quit [Remote host closed the connection] 23:49 -!- hpardis has joined #hardfought 23:50 [gh] arnibald (Pri Hum Mal Neu) had mace bestowed upon him by Crom, on T:2487 23:52 had a mace bestowed on him or had Mace bestowed upon him 23:52 pepper spray would be useful