sub table { my ($tab,$opt) = @_; my $attributes = get_attributes($opt,['id','class','style']); my $open = 'table'.$attributes; line($tab,qq(<$open>)); line($tab + 1,qq($opt->{caption})) if $opt->{caption}; cols($tab + 1, $_) if $opt->{cols}; for my $rowgroup (@{$opt->{rows}) { my $type = $rowgroup->[0]; my @rows = @{$rowgroup->[1]; my $attributes = $rowgroup->[2]; for my $row (@rows) { if ($type eq 'header') { row($tab + 1, $type , $row); } else { row($tab + 1, $type , $_) for @$row; } } } line($tab,q()); } #### # From ArmorClass.pm my $table_id = idify($table_name); table($tab,{ id => $table_id, class => 'player_character armor_class', caption => $table_name, rows => [ ['header',[' ',map(ucfirst $_,qw(unarmored armored))]], ['whead',\@rows], ['header',[['Armor', { colspan => 3 }]]], # This & next have a condition. ['data',[[['list', { class => "info", colspan => 3, list => ['u',$armor] }]]]] ] }); # From Psionics.pm my $table_id = idify($table_name); table($tab, { id => "$table_id", class => 'player_character psionics', caption => $table_name, rows => [ ['header',[' ','Amount']], ['whead',\@rows] ] }); # From RogueSkills.pm my $table_id = idify($table_name); table($tab, { id => "$table_id", class => 'player_character rogue_skills', caption => $table_name, rows => [ ['header',['Skill','%']], ['whead',\@rows], ['header',[['Other', { colspan => 2 }]]], ['data',[[['list', { class => "info", list => ['u',$other_skills] }]]]] ] }); # From SavingThrows.pm my $table_id = idify($table_name); table($tab, { id => "$table_id", class => 'player_character saving_throws', caption => $table_name, rows => [ ['header',['Save','Throw']], ['whead',\@rows], ['header',[['Modifiers', { colspan => 2}]]], # This & next have a condition. ['data',[[['list', { class => "info", colspan => 2, list => ['u',$modifiers] }]]]] ] }); #From SpellProgression.pm my $table_id = idify($table_name); table($tab, { id => "$table_id", class => 'player_character spell_progression', caption => $table_name, rows => [ ['header',\@headings], ['whead',\@rows], ['header',[['Spellbook', { colspan => $colspan }]]], # This & next have a condition. ['data',[[[qq($name\'s Spellbook), { colspan => $colspan }]]]] ] }); # From THAC0.pm my $table_id = idify($table_name); table($tab, { id => "$table_id", class => 'player_character THAC0', rows => [ ['header',\@headings], ['whead',\@rows], ['header',[['Weapons', { colspan => $colspan }]]], # This & next have a condition. ['data',[[['list', { class => 'info', colspan => $colspan, list => ['u',$weapons, { class => 'two' }] }]]]] ] });