X-Git-Url: http://git.shiar.net/sheet.git/blobdiff_plain/bc82153494759a00aa278b2039e240ca673957c6..1a31f360dede26675fce9b4f36ed856eb7fbf70f:/nethack.plp
diff --git a/nethack.plp b/nethack.plp
index 0a5a4be..447ad27 100644
--- a/nethack.plp
+++ b/nethack.plp
@@ -1,153 +1,48 @@
-<:
-use utf8;
-use strict;
-use warnings;
-no warnings 'qw'; # you know what you doing
-no warnings 'uninitialized'; # save some useless checks for more legible code
-
-our $VERSION = '1.0';
-
-our $ascii = 0;
-if (exists $get{ascii}) {
- $ascii = $get{ascii} ne '0'; # manual override
-} elsif (defined $ENV{HTTP_ACCEPT_CHARSET}) {
- $ascii = 1;
- for (split q{,}, $ENV{HTTP_ACCEPT_CHARSET}) {
- $ascii = 0, last if $_ eq '*' or m{utf-?8}i;
- }
-}
-
-my $charset = $ascii ? 'us-ascii' : 'utf-8';
-my $ctype = "text/html; charset=$charset";
-$header{content_type} = $ctype;
+<(common.inc.plp)><:
+
+Html({
+ title => 'nethack cheat sheet',
+ version => '1.1',
+ description => [
+ "Keyboard overview sheet for the Nethack console RPG game,",
+ "describing the default controls.",
+ ],
+ keywords => [qw'
+ nethack rogue game control controls sheet reference overview keyboard
+ '],
+ stylesheet => [qw'light dark circus mono red terse'],
+ keys => 1,
+});
-:>
-
-
-
-nethack cheat sheet
-
-
-
-<:
- my %styles = map {$_ => $_} qw(dark circus mono red terse);
- our $style = exists $get{style} && $styles{$get{style}} || 'light';
- printf(qq{\n},
- $_ eq $style ? 'stylesheet' : 'alternate stylesheet', "$_.css", $_
- ) for keys %styles;
-
- our $showkeys = exists $get{keys} && $get{keys} ne '0';
- print "\n" unless $showkeys;
- print "\n"
- if $showkeys and $get{keys} eq 'ghost';
:>
-
-
-
-
-
NetHack cheat sheet
normal gameplay
-
-
--
-
-
-
<:
-our %sign = (
- arg => $ascii ? '.' : '·', # described as 'dot'
- argi => $ascii ? ':' : ':',
- motion => $ascii ? '|' : 'â',
- alias => $ascii ? 'see: ' : '»',
- up => $ascii ? 'up' : 'â²',
- right => $ascii ? 'right' : 'â¶',
- down => $ascii ? 'down' : 'â¼',
- left => $ascii ? 'left' : 'â',
- sep => $ascii ? '*' : 'â¢',
- _ => exists $get{ascii} && !$ascii ? "\x{200b}" : '',
- # use the correct ZWNJ only when unicode is forced on
- # default to use unofficial html for best support
-);
-
-use Shiar_Sheet::Keyboard;
-my $keys = Shiar_Sheet::Keyboard->new({do 'nethack.inc.pl'});
+use Shiar_Sheet::Keyboard 2;
+my $info = do 'nethack.eng.inc.pl' or die $@;
+$info->{def} = do 'nethack.inc.pl';
+my $keys = Shiar_Sheet::Keyboard->new($info);
+$_->{"\e"} = ['me mode'] for values %{ $info->{def} };
+ # static reset button, even though it's not (officially) in the game
$keys->map($get{map}) or undef $get{map};
-$keys->print_rows($get{static});
+$keys->print_rows($get{rows} || '4321-421', [3,2,1,0]);
:>
-
-
- -
-
-
-
- direction
-
- Direction to move to or target a command (<:= $sign{motion} :>).
-
- move
-
- Other character movement.
-
- act
-
- Direct action command: takes a turn.
-
- info
-
- Informational command: shows/does something without ending the turn.
-
- invertory
-
- Display invertory menu.
-
- menu
-
- Enters some other menu.
-
-
-
-
-
+<: $keys->print_legend('legend-types', ['g2' .. 'g4', 'g6' .. 'g8']) :>
-
- - key<:= $sign{arg} :>
-
- Commands with a dot need at least one argument afterwards.
-
- key<:= $sign{motion} :>
-
- Requires a direction afterwards.
-
- key<:= $sign{argi} :>
-
- Asks for an inventory item.
-
+<: $keys->print_legend('legend-options', [qw( arg argi argm )]) :>
- keyboard map is
<:= $get{map} ? 'set to ' : '' :><:= $keys->{map} :>
-
- ascii mode is
- <:= exists $get{ascii} && 'forced ' :><:=
- $ascii ? 'on' : 'off' :>
- keys are
<:= $showkeys ? 'always shown' : 'hidden if unassigned' :><:=
!exists $get{keys} && ' by default' :>
@@ -157,16 +52,3 @@ $keys->print_rows($get{static});
-
-
-