From b7c56bf4481a41c5c762b0081f32b05858f0d52a Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Tue, 15 Dec 2009 19:59:34 +0000 Subject: [PATCH] where-vessels: use icons for lock state --- yarrg/icons/t.xbm | 5 ----- yarrg/where-vessels | 51 +++++++++++++++++++++++++++------------------ 2 files changed, 31 insertions(+), 25 deletions(-) delete mode 100644 yarrg/icons/t.xbm diff --git a/yarrg/icons/t.xbm b/yarrg/icons/t.xbm deleted file mode 100644 index 78329ef..0000000 --- a/yarrg/icons/t.xbm +++ /dev/null @@ -1,5 +0,0 @@ -#define noname_width 11 -#define noname_height 9 -static char noname_bits[] = { - 0x00,0x00,0x0e,0x00,0xd1,0x03,0x51,0x02,0x5f,0x02,0x5f,0x02,0xdb,0x03,0x1f, - 0x01,0x1f,0x00}; diff --git a/yarrg/where-vessels b/yarrg/where-vessels index 8d6de95..a99917e 100755 --- a/yarrg/where-vessels +++ b/yarrg/where-vessels @@ -275,17 +275,37 @@ proc vesselclasses-init {} { load-icon query load-icon ours load-icon dot + foreach a {battle borrow dot} { + foreach b {ours dot query} { + load-icon-combine $a $b + } + } } proc load-icon {icon} { image create bitmap icon/$icon -file icons/$icon.xbm } -proc code2abbrev-lock {lockown} { +proc load-icon-combine {args} { + set cmd {} + set delim "pnmcat -lr " + foreach icon $args { + append cmd $delim " <(xbmtopbm icons/$icon.xbm)" + set delim " <(pbmmake -white 1 1)" + } + append cmd " | pbmtoxbm" + debug "load-icon-combine $cmd" + image create bitmap icon/[join $args +] -data [exec bash -c $cmd] +} + +proc code-lockown2icon {lockown} { manyset [split $lockown ""] lock notown - append abbrev [lindex {x u .} $lock] - append abbrev [lindex {m . ?} [regsub {\D} $notown 2]] -} + return icon/[ + lindex {battle borrow dot} $lock + ]+[ + lindex {ours dot query} $notown + ] +} proc canvas-horiz-stack {xvar xoff y bind type args} { upvar 1 $xvar x @@ -329,15 +349,9 @@ proc code2canvas {code canvas x yvar qty qtylen bind} { $subclass } - manyset [split $lockown ""] lock notown - - incr stackx - canvas-horiz-stack stackx 0 $imy $bind \ - image -anchor nw -image icon/[lindex {battle borrow dot} $lock] incr stackx canvas-horiz-stack stackx 0 $imy $bind \ - image -anchor nw -image icon/[lindex {ours dot query} \ - [regsub {\D} $notown 2]] + image -anchor nw -image [code-lockown2icon $lockown] incr stackx if {[string length $xabbrev]} { @@ -380,8 +394,7 @@ proc show-report-decode {code} { switch -exact $notown { 0 { report-set own "Yours" } 1 { report-set own "Other pirate's" } - U { report-set own "Owner not known" } - M { report-set own "Missing from notes" } + 2 { report-set own "Owner not specified in notes" } default { report-set own "?? $notown" } } @@ -410,19 +423,18 @@ proc filter-says-yes/size {codel} { proc filter-values/lockown {} { foreach lv {0 1 2} { - foreach ov {0 1 X} { + foreach ov {0 1 2} { lappend vals "$lv$ov" } } return $vals } -proc filter-map/lockown {lockown} { return [code2abbrev-lock $lockown] } +proc filter-icon/lockown {lockown} { return [code-lockown2icon $lockown] } proc filter-default/lockown {lockown} { return [regexp {^[01]|^2[^1]} $lockown] } proc filter-says-yes/lockown {codel} { set lockown [lindex $codel 3] - regsub -all {\D} $lockown X lockown upvar #0 filter_lockown($lockown) yes return $yes } @@ -590,13 +602,13 @@ proc vessel {vin} { set notown 1 } } else { - set notown U + set notown 2 } append abbrev $xabbrev set notes_used($vid) 1 } else { - set notown M + set notown 2 lappend note_missings [list $island $realname $vid] } @@ -1063,9 +1075,8 @@ proc invoke_notes {} { #---------- main program ---------- -vesselclasses-init - parseargs +vesselclasses-init argdefaults httpclientsetup where-vessels load-chart -- 2.30.2