… | |
… | |
936 | sub make_pickup_cfg_window { |
936 | sub make_pickup_cfg_window { |
937 | $PICKUP_CFG = new CFClient::UI::FancyFrame |
937 | $PICKUP_CFG = new CFClient::UI::FancyFrame |
938 | title => "Autopickup configuration", |
938 | title => "Autopickup configuration", |
939 | x => "center", |
939 | x => "center", |
940 | y => "center", |
940 | y => "center", |
941 | force_w => $WIDTH * 3/10, |
941 | force_w => $WIDTH * 6/10, |
942 | force_h => $HEIGHT * 9/10; |
942 | force_h => $HEIGHT * 9/10; |
943 | |
943 | |
|
|
944 | |
|
|
945 | $PICKUP_CFG->add (my $vb = new CFClient::UI::VBox); |
|
|
946 | $vb->add (my $gen_tbl = new CFClient::UI::Table expand => 1); |
|
|
947 | $vb->add (my $hb = new CFClient::UI::HBox expand => 1); |
944 | my $tbl = new CFClient::UI::Table; |
948 | $hb->add (my $ltbl = new CFClient::UI::Table expand => 1); |
|
|
949 | $hb->add (my $rtbl = new CFClient::UI::Table expand => 1); |
|
|
950 | |
|
|
951 | my $tbl = 0; |
945 | my $tblrow = 0; |
952 | my $tblrow = 0; |
946 | |
953 | |
947 | $PICKUP_CFG->add (my $sw = new CFClient::UI::ScrolledWindow scrolled => $tbl, expand => 1); |
|
|
948 | |
|
|
949 | for ( |
954 | for ( |
|
|
955 | ["General", $gen_tbl], |
950 | ["Enable (new) autopickup" => CFClient::Pickup::PU_NEWMODE], |
956 | ["Enable autopickup" => CFClient::Pickup::PU_NEWMODE], |
951 | ["Inhibit autopickup" => CFClient::Pickup::PU_INHIBIT], |
957 | ["Inhibit autopickup" => CFClient::Pickup::PU_INHIBIT], |
952 | ["Stop before pickup" => CFClient::Pickup::PU_STOP], |
958 | ["Stop before pickup" => CFClient::Pickup::PU_STOP], |
953 | ["Debug autopickup" => CFClient::Pickup::PU_DEBUG], |
959 | ["Debug autopickup" => CFClient::Pickup::PU_DEBUG], |
954 | ["Weapons"], |
960 | ["Weapons", $ltbl], |
955 | ["All weapons" => CFClient::Pickup::PU_ALLWEAPON], |
961 | ["All weapons" => CFClient::Pickup::PU_ALLWEAPON], |
956 | ["Missile weapons" => CFClient::Pickup::PU_MISSILEWEAPON], |
962 | ["Missile weapons" => CFClient::Pickup::PU_MISSILEWEAPON], |
957 | ["Bows" => CFClient::Pickup::PU_BOW], |
963 | ["Bows" => CFClient::Pickup::PU_BOW], |
958 | ["Arrows" => CFClient::Pickup::PU_ARROW], |
964 | ["Arrows" => CFClient::Pickup::PU_ARROW], |
959 | ["Armour"], |
965 | ["Armour"], |
… | |
… | |
961 | ["Shields" => CFClient::Pickup::PU_SHIELD], |
967 | ["Shields" => CFClient::Pickup::PU_SHIELD], |
962 | ["Body Armour" => CFClient::Pickup::PU_ARMOUR], |
968 | ["Body Armour" => CFClient::Pickup::PU_ARMOUR], |
963 | ["Boots" => CFClient::Pickup::PU_BOOTS], |
969 | ["Boots" => CFClient::Pickup::PU_BOOTS], |
964 | ["Gloves" => CFClient::Pickup::PU_GLOVES], |
970 | ["Gloves" => CFClient::Pickup::PU_GLOVES], |
965 | ["Cloaks" => CFClient::Pickup::PU_CLOAK], |
971 | ["Cloaks" => CFClient::Pickup::PU_CLOAK], |
966 | ["Readables"], |
972 | ["Readables", $rtbl], |
967 | ["Spellbooks" => CFClient::Pickup::PU_SPELLBOOK], |
973 | ["Spellbooks" => CFClient::Pickup::PU_SPELLBOOK], |
968 | ["Skillscrolls" => CFClient::Pickup::PU_SKILLSCROLL], |
974 | ["Skillscrolls" => CFClient::Pickup::PU_SKILLSCROLL], |
969 | ["Normal Books/Scrolls" => CFClient::Pickup::PU_READABLES], |
975 | ["Normal Books/Scrolls" => CFClient::Pickup::PU_READABLES], |
970 | ["Misc"], |
976 | ["Misc"], |
971 | ["Food" => CFClient::Pickup::PU_FOOD], |
977 | ["Food" => CFClient::Pickup::PU_FOOD], |
… | |
… | |
977 | ["Magic Devices" => CFClient::Pickup::PU_MAGIC_DEVICE], |
983 | ["Magic Devices" => CFClient::Pickup::PU_MAGIC_DEVICE], |
978 | ["Ignore cursed" => CFClient::Pickup::PU_NOT_CURSED], |
984 | ["Ignore cursed" => CFClient::Pickup::PU_NOT_CURSED], |
979 | ["Jewelery" => CFClient::Pickup::PU_JEWELS], |
985 | ["Jewelery" => CFClient::Pickup::PU_JEWELS], |
980 | ) |
986 | ) |
981 | { |
987 | { |
982 | unless (defined $_->[1]) { |
988 | if (ref $_->[1]) { |
|
|
989 | $tbl = $_->[1]; |
|
|
990 | $tblrow = 0; |
983 | $tbl->add (0, $tblrow++, new CFClient::UI::Label text => $_->[0], align => 0); |
991 | $tbl->add (0, $tblrow++, new CFClient::UI::Label text => $_->[0], align => -1); |
|
|
992 | } elsif (not defined $_->[1]) { |
|
|
993 | $tbl->add (0, $tblrow++, new CFClient::UI::Label text => $_->[0], align => -1); |
984 | } else { |
994 | } else { |
985 | my $mask = $_->[1]; |
995 | my $mask = $_->[1]; |
986 | $tbl->add (0, $tblrow, new CFClient::UI::Label text => $_->[0], align => -1); |
996 | $tbl->add (0, $tblrow, new CFClient::UI::Label text => $_->[0], align => 1, expand => 1); |
987 | $tbl->add (1, $tblrow++, new CFClient::UI::CheckBox |
997 | $tbl->add (1, $tblrow++, new CFClient::UI::CheckBox |
988 | state => $CFG->{pickup} & $mask, |
998 | state => $CFG->{pickup} & $mask, |
989 | on_changed => sub { |
999 | on_changed => sub { |
990 | my ($box, $value) = @_; |
1000 | my ($box, $value) = @_; |
991 | if ($value) { |
1001 | if ($value) { |
992 | $CFG->{pickup} |= $mask; |
1002 | $::CFG->{pickup} |= $mask; |
993 | } else { |
1003 | } else { |
994 | $CFG->{pickup} = $CFG->{pickup} & ~$mask; |
1004 | $::CFG->{pickup} = $::CFG->{pickup} & ~$mask; |
995 | } |
1005 | } |
996 | $::CONN->send (sprintf "command pickup %u", $CFG->{pickup}); |
1006 | $::CONN->send (sprintf "command pickup %u", $::CFG->{pickup}) |
|
|
1007 | if defined $::CONN; |
997 | }); |
1008 | }); |
998 | } |
1009 | } |
999 | } |
1010 | } |
1000 | |
1011 | |
1001 | $PICKUP_CFG |
1012 | $PICKUP_CFG |