Difference between revisions of "Talk:NetHack 3.0.0"

From NetHackWiki
Jump to navigation Jump to search
(key history!)
(3.0.0 information on articles: new section)
 
(2 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
Y'all have probably noticed that I haven't written up a new version in a while.  The easiest thing to do is usually to copy the page for version N and modify it to be correct for version N+1.  But 3.0.0 is such a quantum leap over 2.3e that there's a lot of possibility of error, which could then propagate into succeeding writeups and then I have to go back and correct them all.  So I want to review this one with a fine-toothed comb and be sure I have it right before I write up 3.0.1.[[User:Ray Chason|Ray Chason]] 03:33, 29 July 2006 (UTC)
 
Y'all have probably noticed that I haven't written up a new version in a while.  The easiest thing to do is usually to copy the page for version N and modify it to be correct for version N+1.  But 3.0.0 is such a quantum leap over 2.3e that there's a lot of possibility of error, which could then propagate into succeeding writeups and then I have to go back and correct them all.  So I want to review this one with a fine-toothed comb and be sure I have it right before I write up 3.0.1.[[User:Ray Chason|Ray Chason]] 03:33, 29 July 2006 (UTC)
 
:''Keys have shapes that fit specific locks'' - this is interesting. Could you explain how this worked? Possibly in a History section on [[Unlocking tools]]. --[[User:Jayt|Jayt]] 10:19, 29 July 2006 (UTC)
 
:''Keys have shapes that fit specific locks'' - this is interesting. Could you explain how this worked? Possibly in a History section on [[Unlocking tools]]. --[[User:Jayt|Jayt]] 10:19, 29 July 2006 (UTC)
 +
::Diving into the 3.0.0 source, I find this bit of code in src/objnam.c (which no longer exists in 3.4.3):
 +
<pre>
 +
/* We want the player to be able to learn what key goes in what lock.  */
 +
const char *keystr[N_LOX] = { "round", "square", "triangular", "oval",
 +
    "octagonal", "hexagonal", "cylindrical",
 +
    "irregular", "conical", "wedge-shaped" },
 +
  *lockstr[N_LOX] = { "round", "square", "triangular", "oval",
 +
    "octagonal", "hexagonal", "wide",
 +
    "notched", "large round", "large square" };
 +
</pre>
 +
::You could use a round key to open a chest with a round keyhole, but it wouldn't fit a square keyhole.  Keys had the appearances noted above in keystr; chests and large boxes had the appearances in lockstr.  I haven't figured out how this works for doors.  It furthermore appears to be quicker to use the "right" key than a skeleton key. --[[User:Ray Chason|Ray Chason]] 16:05, 29 July 2006 (UTC)
 +
 +
::OK, I figured out how the shaped keys work with doors:  they don't.  Shaped keys can't open doors at all.  Quoth [[NetHack 3.0.10]] lock.c, lines 293-310:
 +
 +
<pre>
 +
    switch(picktyp) {
 +
case CREDIT_CARD:
 +
    ch = 2*ACURR(A_DEX)+(20*(pl_character[0] == 'R'));
 +
    break;
 +
case LOCK_PICK:
 +
    ch = 3*ACURR(A_DEX)+(30*(pl_character[0] == 'R'));
 +
    break;
 +
case SKELETON_KEY:
 +
    ch = 70 + ACURR(A_DEX);
 +
    break;
 +
case KEY:
 +
    pline("The %s won't fit the door.", xname(pick));
 +
    return(1);
 +
default:    ch = 0;
 +
    }
 +
</pre>
 +
:: One history section coming up. -- [[User:Ray Chason|Ray Chason]] 18:50, 6 August 2006 (UTC)
 +
 +
== 3.0.0 information on articles ==
 +
 +
I noticed this a while ago, but I'm bringing it up more formally - there's not a lot of mention about the fact that 3.0.0 introduced much of the current bestiary and object list ("treasury"...?) for current versions of NetHack. We've got a detailed history of [[Wizard of Yendor|Rodney's dwellings]], though - and we should, of course - so why not elaborate similarly on historical notes for other monsters, as I've been trying to do (and have done/helped with in cases like [[Medusa]] and [[Medusa's Island|her dwelling]])? Anyone have any input for this? --[[User:Umbire the Phantom|Umbire the Phantom]] ([[User talk:Umbire the Phantom|talk]]) 13:37, 13 May 2021 (UTC)

Latest revision as of 13:37, 13 May 2021

Y'all have probably noticed that I haven't written up a new version in a while. The easiest thing to do is usually to copy the page for version N and modify it to be correct for version N+1. But 3.0.0 is such a quantum leap over 2.3e that there's a lot of possibility of error, which could then propagate into succeeding writeups and then I have to go back and correct them all. So I want to review this one with a fine-toothed comb and be sure I have it right before I write up 3.0.1.Ray Chason 03:33, 29 July 2006 (UTC)

Keys have shapes that fit specific locks - this is interesting. Could you explain how this worked? Possibly in a History section on Unlocking tools. --Jayt 10:19, 29 July 2006 (UTC)
Diving into the 3.0.0 source, I find this bit of code in src/objnam.c (which no longer exists in 3.4.3):
/*	We want the player to be able to learn what key goes in what lock.  */
const char *keystr[N_LOX] = { "round", "square", "triangular", "oval",
			    "octagonal", "hexagonal", "cylindrical",
			    "irregular", "conical", "wedge-shaped" },
	   *lockstr[N_LOX] = { "round", "square", "triangular", "oval",
			    "octagonal", "hexagonal", "wide",
			    "notched", "large round", "large square" };
You could use a round key to open a chest with a round keyhole, but it wouldn't fit a square keyhole. Keys had the appearances noted above in keystr; chests and large boxes had the appearances in lockstr. I haven't figured out how this works for doors. It furthermore appears to be quicker to use the "right" key than a skeleton key. --Ray Chason 16:05, 29 July 2006 (UTC)
OK, I figured out how the shaped keys work with doors: they don't. Shaped keys can't open doors at all. Quoth NetHack 3.0.10 lock.c, lines 293-310:
		    switch(picktyp) {
			case CREDIT_CARD:
			    ch = 2*ACURR(A_DEX)+(20*(pl_character[0] == 'R'));
			    break;
			case LOCK_PICK:
			    ch = 3*ACURR(A_DEX)+(30*(pl_character[0] == 'R'));
			    break;
			case SKELETON_KEY:
			    ch = 70 + ACURR(A_DEX);
			    break;
			case KEY:
			    pline("The %s won't fit the door.", xname(pick));
			    return(1);
			default:    ch = 0;
		    }
One history section coming up. -- Ray Chason 18:50, 6 August 2006 (UTC)

3.0.0 information on articles

I noticed this a while ago, but I'm bringing it up more formally - there's not a lot of mention about the fact that 3.0.0 introduced much of the current bestiary and object list ("treasury"...?) for current versions of NetHack. We've got a detailed history of Rodney's dwellings, though - and we should, of course - so why not elaborate similarly on historical notes for other monsters, as I've been trying to do (and have done/helped with in cases like Medusa and her dwelling)? Anyone have any input for this? --Umbire the Phantom (talk) 13:37, 13 May 2021 (UTC)