PIGEON 1.1.2  -  Leader to Leader Comms, Synced callouts and pins. 
INSTALL
 
 1. Prerequisite Addons : Libslash, MapMonster (+MiniMapMonster),
    Warband Lead Helper.
 2. Put this Pigeon folder in Interface\AddOns.
 
 

HOW IT WORKS: THE PARROT
 You lead your warband with Warband Lead Helper exactly as before. Every message a WLH button says to
 your warband (/wb) is repeated, in short form, to the other leaders on your roster. They see it in the
 Pigeon window as "Name: Attack the BO [AT] at Festenplatz". Hold/defend orders carry your position; attack and move orders carry a place only if you picked a Target using Right Click pins in the game's map. (WLH's own text already names the destination). Place-related orders (attack,
 defend, move tags) also carry your position, and become a temporary map pin for them if MapMonster is installed.
 Countdown ticks, announcements and other channels are not repeated. If Pigeon loads before WLH it hooks in a
 few seconds later.
 
A leader can press nothing but WLH buttons; Pigeon needs no typing in play.

HOW WLH MESSAGES LOOK TO OTHER LEADERS
 Pigeon shortens WLH's wording to a label per voice tag (ATTACK, HOLD - DO NOT ENGAGE, TAKE BO,
 FALL BACK ...) and colours the window line like WLH does: red attack, yellow hold, green move, blue regroup, gold
 place, grey details. BO, zone and countdown messages keep their own text if no place could be matched.
 Under every order a grey "map:" line says whether a pin was placed or why not.
 /pg colour on/off if you ever see raw <LINK ...> text in the window. 

IF SOMETHING DOES NOT WORK: type /pg debug and paste what it prints into a comment on the forum post and I'll see what i can do to fix it.

 It shows the channel, the last line sent, what the
 Warband Lead Helper hook saw (the channel WLH used, the tag, and whether a place was found) and the last map pin result.
 Left clicks go to /wb only while you are in a warband, right clicks use /1 and are not repeated (the usual WBLH stuff). BO and place names in WLH's text are matched for your zone to put a pin on the map, so no Target click is needed for those.

THE CONTROLS (a strip at the top of the Pigeon window.)
  + Player      : add the friendly player you have targeted to your leader roster.
 N waiting     : leaders waiting to link with you (strangers who posted in the channel, leaders announcing they are
                 leading, leaders suggested by a linked leader). With someone waiting it reads "+ Name":
                 LEFT click = add them, RIGHT click = dismiss them (not offered again for 30 minutes).
 Places for orders: a WLH BO call finds its position from WLH's zone data; attack/move/hold use where you stand;
 anything else can be placed with the map's right-click menu. Linking two leaders: both are in the channel, so A sees
 "+ B" appear when B's Pigeon posts; click it. Or target B and click + Player.
 If a message could not be sent to the other leaders, the window says "chat: NOT sent" and why. Again print the /pg debug text and upload it if this occurs. 

THE SHARED CHANNEL (on by default)
 A player can only be in ONE custom chat channel, so Pigeon uses the leaders channel "Command": on first run it
 sends /channeljoin Command once (channels persist across logouts) and posts to it with /9. 

If you were already in another custom channel the join fails (leave it with /channelleave <name>, then /channeljoin Command); 

Pigeon warns after 30 seconds if its own lines never come
 back. 

 * Anybody in the channel can post, so nothing is trusted until you click Add for that leader (yellow buttons).
   Only added leaders' messages are acted on; and trusted by the addon, to stop spoofing and spamming as much as possible. 

 * Pigeon's lines are readable, so everyone in the channel can follow them; only Pigeon reads the short tail:
     Take Monastery of Morr {pg1 WLH 90829 BO 106 35100 9900}
     HOLD, DO NOT ENGAGE {pg1 WLH 90830 HD 106 35100 9900}
     position: Festenplatz, Nordland {pg1 POS 90831 106 21000 15000}
     is leading a warband {pg1 PRS 90833 1}
 
   Anything people type in the channel without a tail is ordinary chat and is ignored by Pigeon.

FINDING AND KEEPING LEADERS (automatic)
 * When you become a warband leader (in a warband, group leader, not an assistant) Pigeon tells the leaders on your
   roster. When you stop leading it says so, and while you lead it repeats "still leading" only after 10 quiet minutes. Leaders
   who stop leading are skipped for messages and pins and shown as [not leading] in /pg roster, but they stay on
   your list, so nobody has to re-add anyone. Someone not heard from for 25 minutes while marked leading goes inactive.
   If you never lead (for example when testing chat between two characters), nothing is announced and everything
   works as before. /pg presence off turns the announcements off.
 * Becoming a leader also sends a hello to your ONLINE friends (and guildmates the guild list shows online), once
   per name per session, up to 20. Anyone without Pigeon will see a line of coded text, so /pg discover off stops it.
 * /pg accept off|friends|guild|known (default known): a hello from someone on your friends list or in your guild is
   linked automatically. Everyone else is still only "pending" until you type /pg add Name.
 * When two leaders link they tell each other who else they are linked with. Those names appear as suggestions,
   never added by themselves: /pg suggest lists them, /pg add Name or /pg addall accepts.
 * /pg discover fields prints what the friends and guild lists contain (please send me that if discovery
   misses people). /pg discover sends the hellos right now.

FIRST TESTS - This need 2+ players (potentially up to 8)

As this is a networked addon, if you encounter problems, getting some of these commands to test the addon might help me solve them long term. 

 /pg test            offline self test, expect "67 passed, 0 failed"
 /pg status          shows which bridges were found
 /pgwin              opens the window
 A: target B, click + Target   (or /pg add B)     B sees "Add A" on the bar, clicks it   (/pg add A)
 A: /pg say hello    B should see it in the window
 A: press a WLH button (e.g. Attack)   B should see it with the tag and place
 A: /pg order attack at <place> 5m east gate     (/pg places lists names in your zone, needs WARCommander)
 B: /pg board        shows A's order; with MapMonster open the map and look for the pin
 B: /pg relay        repeats the order to B's own warband with the WLH voice tag (only when you type it)

COMMANDS  (/pg or /pigeon) - These are testing commands and won't be present in the real release. 
 add/remove Name, roster, pending, hello, say text, order <word> [at <place>] [5m] [; note],
 addtarget, verbs, board, channel /command|off, parrot on|off, presence on|off, accept <mode>, discover [on|off|fields], suggest, addall, pos, track on|off, places, zone, relay [name], pins on|off, status,
 rate <sec>, dry on|off (shows whispers instead of sending), probe on|off, test

NOT VERIFIED IN THE REAL CLIENT: control bar layout and clicks, the WLH hook (wbLeadHelper.chat wrapper), window layout, Enter key, whisper sender name format, channel sending and receiving (CHAT_TEXT_ARRIVED),
 leader detection (IsWarBandActive / isGroupLeader), the friends and guild list fields, MapMonster pin creation on 1.4.8, WLH relay, Report what you see.


BO names (TAKE BO)
------------------
For BO / hold / attack / move orders Pigeon reads the battlefield objective name from Warband Lead
Helper's own data for the zone WLH says you are in, so the other leaders see "TAKE BO - <name>".
The name is then matched (ignoring case, punctuation and a leading "The") against WARCommander's
place list to attach a map position. Objectives WLH lists with a zone prefix (e.g. "TC - Monastery
of Morr", which belongs to the neighbouring zone) are shown by name without a pin. The grey "map:"
line and /pg debug say what matched.


Map pins and map orders
-----------------------
WLH buttons: every place-type button (attack, hold, move, regroup, take BO...) now drops a pin on YOUR map,
and on every other leader's map, where you were standing when you pressed it. If the message names a BO
(from WLH's zone data) or you picked a place with the "@" button, the pin goes there instead. The pin shows
in the Pigeon window with a grey "map:" line saying what happened. Other leaders' orders also become a
MapMonster Navigator waypoint (/pg waypoints off to stop that).

Manual pins: right-click the world map or the minimap. Pigeon adds items to the menu (to WARCommander's own
menu if you have it, otherwise a menu of its own): Attack / Hold / Move / Regroup / Take BO here, "marker
for me only", and a switch "also tell my warband" (sends the order through WLH to your warband too).
Orders say "near <place>" when WARCommander knows a place close to the click.

Checks: /pg map  (status + last click),  /pg map test  (marker where you stand),  /pg show  (flash newest pin).

Named places: Pigeon now carries its own list of BOs, keeps and warcamps per zone (data from WARCommander's
PointsOfInterest.lua by Flimgoblin, MIT licence), used when WARCommander's list isn't loaded. This is what lets
"Go to BO - Kurlov's Armory" from WLH become a pin on the map without needing WARCommander.

Credits and licences: see CREDITS.txt (includes the MIT licence for the place data taken from WARCommander).

Clicking coordinates, pins, arrows, channel scan (this version)
---------------------------------------------------------------
* Click an order line in the Pigeon window (any coloured text that has a place): the world map opens on it with
  a temporary pin, which is removed when you close the map. Arrow lines open on the arrow's end point.
* Each leader can have up to 5 pins on your map at once (orders and arrows; oldest drop off first), plus one
  position pin. Pins are twice the normal MapMonster size: /pg pinsize 0.875 for normal, /pg pinsize 1.75 default.
* Attack arrows: right-click the map > "Arrow starts here", then right-click the end > "Attack arrow to here"
  (or "Move arrow"). Everyone gets a green arrow: a stem of four pins in a line and a chevron ">" of five pins
  at the head. Nine pins that count as ONE object: delete one and all nine go.
* /pg who (and automatically every 15 minutes while you lead, /pg autowho off to stop) runs /channelwho and asks
  the channel who is leading a warband. Green = on your roster, yellow = says it leads a warband and waits for
  your Add (also on the yellow waiting button), grey = in the channel but has not said it leads. Friends/guild
  are added automatically (/pg accept). Leadership is each player's own claim; the game cannot show whether a
  player in another warband leads it.


Leader rows, history and icons (this version)
---------------------------------------------
* The Pigeon window now shows one row per APPROVED leader (you first), each with their latest order in its
  colour and how long ago. Left click a row: the map opens on that order with its pins until you close the map.
  Right click: their last five orders (orders and arrows); pick one to show its pins the same way.
  The area underneath is only for system messages and problems ("chat: NOT sent ...", "map: no pin ..."). Orders no
  longer scroll there; /pg verbose on also prints a "map:" note for every order.
* The control "Relay WB (green = on, red = off)" (was "Parrot") controls whether what you tell YOUR warband with WLH is relayed to
  the other leaders. It does not send anything to your own warband.
* Pins have an icon per order type (sword = attack, shield = hold, waypoint = move, shout = other, flag =
  leader), using the same MapMonster icons WARCommander uses: /pg icons varied|classic.
* A new order from another leader pulses on the map (MapMonster's own highlight) if the world map is already open
  on that zone. It never opens the map by itself. /pg flash off to stop it.
* /pg accept leaders : automatically approve anyone in the channel who announces they lead a warband. Convenient,
  but anyone can make that claim, so the default stays "known" (friends and guildmates).

Command channel note
--------------------
Pigeon assumes the "Command" channel is your /9 slot (the first custom channel).
The window header line shows "Command /9 (unverified)" until one of your
own lines has come back through it, then "Command /9". If your slot
differs, use /pg channel /8 (or whichever number) - and tell your leaders.

If your position is wrong on the map
------------------------------------
MapMonster sometimes places the player wrongly in a zone. Stand still, open the world
map, right-click your own arrow and pick "I am standing here (fix my position)".
Pigeon remembers the difference for that zone and uses it for every "my position" order.
/pg map fix reset clears it. /pg where shows what MapMonster reports.

Zones
-----
Pigeon's named places cover 62 zones. MapMonster's own data is missing for Ellyrion (zone 207): its zone file lists 207
twice and the second entry ("Garden of Qu'aph", marked bad) cancels Ellyrion. To fix it, open
Interface/AddOns/MapMonster/Source/MapMonster_ZoneData.lua, delete the line
    MapMonster.ZoneInfo[207] = { badZone = true } -- Garden of Qu'aph
and /reloadui. For any other zone whose position comes out wrong, calibrate it (see above).

Relay and typing (shelved for now)
----------------------------------
Relaying your WLH warband messages to the other leaders is always ON when the game starts (the Relay WB button is
gone). /pg parrot off still switches it off until the next reload. The text box and Send button are gone too:
the window is for reading orders and clicking leaders; everything is sent with WLH's buttons or the map menu.

Position shift (test)
---------------------
MapMonster's player position came out about 3500 units off on the map in Praag, so Pigeon adds 5500,4500 to
"my position" for every zone by default. /pg shift X Y sets the amount for the zone you are in (zones differ: Praag looked like ~3500,3500 earlier, 5500,4500 later), /pg shift all X Y sets it for zones without their own, /pg shift off removes it, /pg shift
reset / reset all restore the default (5500,4500, tuned in game). A zone calibrated with "I am standing here" ignores the shift.

"Clear pins" button removes only the pins and arrows you placed yourself, not other leaders'.

Resizing: drag the small square in the window's bottom-right corner; the size is remembered.

Position memory: MapMonster only knows where you are after you move (after a reload or zone change it knows nothing).
Pigeon now remembers your last position in the zone, so a WLH press while standing still still pins correctly.

Latest changes
--------------
* Layout editor: the Pigeon window can be moved and resized from the game's layout editor like other windows (our own
  resize square is hidden when the layout editor is available). The waiting window can be moved there too.
* Waiting list: the button now says "N waiting" (yellow when someone is waiting) and opens a sidebar window beside
  Pigeon. Left click a name to add that player as a leader, right click to dismiss.
* Only a warband leader can send orders: orders, WLH repeats, arrows and positions are refused unless you are the
  leader of an active warband, and you get a "NOT sent" line saying why. /pg test on lifts this for solo testing
  (/pg test off restores it). Note: Pigeon cannot check what other people send; trust is still your roster.
* Arrow pins are back to the normal MapMonster size (/pg arrowsize 0.875; bigger numbers = bigger).
* Receiving: orders (and WLH repeats, arrows, positions) are only accepted from someone who has announced they lead a
  warband. If one arrives before the announcement, Pigeon says it ignored it and asks the channel who is leading, so
  their next press goes through. /pg test on accepts anyone (for testing).
* Looking at an old order from a leader row no longer hides the newest pins: current pins sit above the temporary ones.
* Layout editor resizing now keeps the text size: when you let go of the resize handle, the scale change is turned into a
  real window size change (text stays the same, the frame gets bigger).
* Leader rows show activity: a leader you have not heard from this session (or for 25 minutes) is greyed out with a dimmer
  bar and "offline? ..." text; leaders announcing they lead show green. The age ("now", "5m") has its own spot at the
  right edge so it is never cut off.

* /pg shift X Y now applies to the zone you are standing in only; /pg shift all X Y changes the default for every other zone.

Map right-click menu (grouped)
------------------------------
Orders:    Attack / Hold / Move / Regroup / Take BO here
Groups:    Group 1 - move here ... Group 4 (WARCommander's icons: fist, moon, shield, sun)
Sightings: Warband spotted here (flag), Group spotted here (shout), Conflict here (orange shout)
Then: Marker for me only, the arrow items, "I am standing here", and "Also tell my warband".
These go to the other leaders like any order and are pinned with their icon on everyone's map.

MapMonster zone-change bug (repaired by Pigeon)
-----------------------------------------------
If the zone you just left has no MapMonster data (flying through an unmapped zone, a city...), MapMonster's zone-change
handler errors out and keeps using the OLD zone for your position until you reload. That gives wrong or missing player
positions after travelling, and "/mm new" failing with a zone error. Pigeon now repairs this automatically; /pg where
says when it had to. (If it still happens, /reloadui fixes it for MapMonster itself.)

Player position when MapMonster has none
----------------------------------------
In some zones MapMonster's POIs and pins work but it never reports where YOU are. Pigeon now listens to the same
game position event itself and, when MapMonster gives no position, works your zone coordinates out from the world
position minus MapMonster's own offset for the zone (the same sum MapMonster does). Your per-zone corrections
(/pg map fix, /pg shift) still apply on top. /pg where says "position worked out by Pigeon" when this is in use.

Built-in per-zone position shifts
---------------------------------
The shifts measured in game for 26 zones are now built in (LK.ZONE_SHIFT in PigeonLinks.lua), so the player pin and
"on my position" orders land correctly without any setup. Your own /pg shift for a zone still overrides the built-in
value; /pg shift reset puts it back. Zones not in the list (Keep zones, Ellyrion, scenarios) use the default 5500,4500.

/pg where in zones MapMonster cannot handle
-------------------------------------------
In a zone MapMonster has flagged unusable (Ellyrion), MapMonster's own GetPlayerPosition throws an error. /pg where
now catches that and reports it, together with what MapMonster knows about the zone, instead of showing a Lua error.

Icon sizes and clipping
-----------------------
Every pin icon is a rectangle cut from a big shared picture sheet. A pin window bigger than its icon shows the
neighbouring pictures from the sheet (stray bits next to the icon), and a smaller one cuts the icon off. Pigeon now sizes
each pin window to exactly its icon (LK.SLICE_BASE in PigeonLinks.lua holds how big each picture is), with no spare room.
- MapMonster's own editor, pin list and tooltips get the normal icon size; Pigeon draws the real size on the map itself.
- Sizes: Move 0.75, Regroup (cyan orb, own icon) 0.95, Warband spotted 0.85, Group spotted (green flag) 0.5, Conflict 1.2,
  all relative to the standard Pigeon pin size. /pg pinsize still scales them all together.


Privacy and safety 
-------------------
- The "Command" channel has no security: anyone on your faction can join it and read it. Everything Pigeon posts there
  (your callouts, the place you press them at, whether you lead a warband) is visible to every member of the channel.
- Pigeon only ACTS on lines from leaders on your roster, and orders only count from someone who has announced that they
  lead a warband. Strangers appear in the "waiting" list; nothing happens until you click Add.
- /pg accept leaders adds anyone in the channel who claims to lead a warband. That claim cannot be checked, so only use it
  among people you trust; the default only links friends and guildmates.
- Pigeon reads: your zone and position (from MapMonster), your warband leader status, and the Warband Lead Helper
  messages you send to /wb. It sends: short lines to the Command channel (/9 by default). 
  It never sends anything to say, guild or party chat. 


/pg who now asks the game "/channelwho 9" (the slot number of the Command channel); a plain /channelwho does not list it.

Version 1.1.2
-------------
* The "Command /9 (unverified)" text is now a "Trusted (N)" button at the left of the control strip. It opens a Trusted
  window beside Pigeon (like the waiting list; only one of the two is open at a time) showing the channel state, and each
  trusted leader with their activity (green = active). /pg remove Name removes one.
* The Pigeon window title shows game icon 8117 on both sides of the word "Pigeon" (/pg titleicon <id> | tex <texture name> | off | size <px> | reset to tune it).
* /pg who asks the game "/channelwho 9" and only reads the member names listed under the "Channel #9 (Command)" header, so
  other channels' names and system messages ("X has logged on.") are no longer shown as people.
* Trusted window v2: it lists EVERY trusted leader (12 per page, "More >" turns the page) with only online/offline. The main
  window shows you, the leaders who are online, and any leader you pinned: click a name in the Trusted window to pin or
  unpin it (pinned stay in the main window even when offline). Offline leaders you have not pinned no longer take up rows, so a
  long trusted list never crowds out the 8 rows. The "Trusted N" button counts everyone you trust.
* Layout: the top strip now holds just two wide buttons, "Trusted N" and "N waiting". "Clear pins" is a long button along the
  bottom edge of the window. "+ Player" is the small icon at the far left of the title bar (hover for its tip; click with a
  friendly player targeted). It uses game icon 66, a tile of four pictures, showing one quarter: /pg addicon quarter <1-4>,
  /pg addicon <id>, /pg addicon qsize <px> (size of one picture in the tile, default 32), /pg addicon size <px> (on screen).
  The title icon beside the word "Pigeon" is switched off for now (/pg titleicon <id> turns one on).

Layout fix (1.1.2): Trusted/Waiting sit side by side along the top, Clear pins runs along the bottom edge; their positions are computed from the window size. The "+ Player" icon sits in the title bar, vertically centred, 16px from the left. Nudge it with /pg addicon x <px>.

Spam guard: the game mutes anyone who types more than 6 lines in 5 seconds. Pigeon now sends at most 4 lines in any 5 seconds (leaving room for your own typing), holds the rest in its queue, and flashes a red "STOP SPAMMING" in the centre of the screen while it is holding lines back. /pg spam shows the count of holds; /pg spam <1-6> changes the limit.

Spam warning position: by default (auto) "STOP SPAMMING" appears over the world map if it is open, otherwise over the Pigeon window, otherwise the middle of the screen. /pg spam where auto|map|pigeon|screen|free chooses. To put it anywhere you like: /pg spam move, drag the text, then /pg spam lock (the position is remembered). /pg spam test previews it.

Spam guard v2: Pigeon now counts EVERY chat line leaving your client (your own typing as well as Pigeon's) and flashes STOP SPAMMING on the 5th line within 5 seconds, before the game's limit of 6 is passed. Pigeon's own sends also wait if you have already used 4 of the 5-second allowance. Buttons are dark gold and their labels no longer clip; the + Player icon sits further left and a little lower.

Docked sidebars: the Trusted window sits against the right edge of the Pigeon window at the same height; the Waiting window sits directly under it at the same width and half the height. Both follow the Pigeon window when it is moved or resized and cannot be dragged away. Waiting shows 5 names at a time (the hint says how many more). Buttons: Trusted dark green, Waiting dark gold (same darkness), Clear pins black.

/pg dock off unlocks the Trusted and Waiting windows so you can drag them anywhere (they keep their size and the position is remembered). /pg dock on snaps them back to the Pigeon window. /pg dock shows the current state.

The Trusted window now docks on the LEFT of the Pigeon window and only shows the tip "Click a name to pin / unpin it." (channel status is still in the Trusted button's tooltip and in /pg debug).

Top buttons now read "N Trusted" and "N Waiting" (numbers first); the buttons are near-black and the text carries the colour (green for Trusted, gold for Waiting).

Message strip: the dark band above Clear pins is now a single line showing the latest message. Click it to open the Messages window (movable, position remembered): the full message log (coloured coordinates still click through to the map), a box to type a reply to your leaders (Enter or Send), an Add button / "+Name" to add a player by name, and a Copy button that copies the recent messages for debugging (if the game cannot copy, the last message is put in the box so you can press Ctrl+A, Ctrl+C).

"X also works with Y" messages: Y's name is now a gold link in the Messages window; click it to add them as a trusted leader (only names Pigeon itself suggested; suggestions expire after 15 minutes, after which /pg add <name> still works).

Message strip clicks: LEFT click adds the player named in the latest message when it is an "X also works with Y" suggestion (the strip turns gold when that is possible); on any other message (errors etc.) left click does nothing. RIGHT click opens the Messages window (the full log, reply box, Add and Copy). The strip has no button colour of its own; it shows the window's colour.

Message strip, quieter: it is blank when there is nothing to say, shows the newest message in a small thin font, and clears itself after 30 seconds (60 if a name can be added). The Messages window no longer sends chat; its box adds a player by name (Enter or Add). Everything stays in the full log (right click the strip).

The Messages window no longer has a typing box or an Add button: it is the full log plus one Copy button. If the game cannot copy to the clipboard, Copy writes the recent messages into your chat window instead. Players are added by the Trusted/Waiting windows, the + Player icon, the strip's gold name (left click) or /pg add.

The Messages window is now just a plain text box holding the recent log (newest first, up to 100 lines) with no buttons. Highlight with the mouse (or click in it and press Ctrl+A) and copy with Ctrl+C; it cannot be edited (typing is undone). Orders and coordinates are still clickable in the Pigeon window's leader rows.

/pg arrowtest [angle] shows the new three-arrow picture in a small window and reports whether this client can rotate pictures (needed for the single stretchable map arrow). /pg arrowtest off closes it.

Map arrows (code in PigeonArrow.lua; if that file fails to load Pigeon falls back to the old dotted arrows): an attack line is now ONE arrow picture (a tail ring, a stretched stem and a head, cut from textures/arrows_white_triple.tga) drawn on the world map and turned to point the right way, plus one small green dot at its tip (that dot keeps the label, expiry, right-click delete and the minimap marker; when it goes, the arrow goes). /pg arrow demo draws one from you towards the north-east so you can check it. If it points the wrong way: /pg arrow flip. If it sits slightly off: /pg arrow fix <dx> <dy> (default 11 11). Thickness: /pg arrow width <0.4-4>. /pg arrow reset undoes these.
/pg arrow status prints what the arrow code can see (use it with the world map open if no arrow appears).

ARROWS (build arrow5)
The game does not turn pictures, so the arrow (your picture: tail, stem, head) is drawn from textures/arrows_turned.tga,
which holds those three parts already turned to 72 directions. The stem is repeated to stretch the arrow.
/pg arrow width <0.4-4> changes thickness; /pg arrow fix <dx> <dy> nudges it.

TITLE LOGO (build logo1)
The carrier pigeon (textures/Carrier_Pigeon.tga) sits either side of the word "Pigeon", the right one mirrored so both
face away from the word. textures/pigeon_logo_pair.tga holds both. /pg titleicon size <px> resizes, off hides, <id> uses a game icon, reset returns to the pigeons.

ARROWS (build arrow6): yellow; the tip dot is hidden (/pg arrow dot shows it again); the stem is built from 7-pixel pieces
turned to 1-degree steps, head and tail to 3-degree steps, so long arrows stay straight.

MAP MENU AND DRAG ARROW (build drag1)
The right-click menu now holds only orders, groups, spotted/conflict and "Marker for me only". Removed: "I am standing here",
"Also tell my warband" (still /pg map wb on|off) and the two-step attack/move arrows.
Arrow: HOLD the LEFT button on the world map for about 0.5 s, drag at least 40 pixels, and let go. A hint appears in the
strip, a preview arrow follows the mouse, and releasing sends a Move arrow to the other leaders. An ordinary click does
nothing extra; releasing off the map cancels. Only leaders (or /pg test on) can. The right-click menu opens on press as before.
/pg map shows whether the handlers are installed.
Troubleshooting the drag arrow: /pg map shows how many left-button presses/releases Pigeon has seen; /pg map debug traces
each drag ([drag] lines: what the mouse was over, hold time, distance). Non-leaders now also see the preview but cannot send.
