Native map text
Link support should be do-able, although it does somewhat conflict with existing map click messages.
Links would work exactly like links in the text control. When sent an http:// link, the behavior of those should be (and I just confirmed) to open in the user's default browser.
mob/Login() var/thisLink="http://www.BYOND.com" var/textBody="<a href=[thisLink] target=_blank>Normal Link</a>" textBody+="<p>" textBody+="<a href=?src=\ref[src];action=link;link=[thisLink]>Topic Link</a>" src<<browse(textBody,"window=new")mob/Topic(href,href_list) if(href_list["action"]=="link") src<<link(href_list["link"]) return ..()
That's great news! What happens when you click a link which is occupying the same tile as something else which is clickable? Will mouse_opacity be able to effect which object gets click priority?
Would it not be possible for BYOND to have some sort of built-in link processing?
Well, I haven't thought that far ahead but I figured it'd just process the tile first and any text links after. Or we could do something with mouse-opacity. Seems like a lot for the dev to worry about!
Say clicking on a link does nothing, but while holding some button (chosen by the dev) the links are enabled. You'd do something like hold Ctrl while clicking a link to open the link in your browser.
Covering necessary parts of the screen with text doesn't seem like the best design, regardless of if that text can be interacted with or not.
I don't see why links would need any special consideration. Clicking a link should click the link. Clicking plain text should just act as if the text wasn't there.
By definition you have to cover a section of the screen with map text. That's the whole point, putting the text on the map.
Probably for the first run the easiest thing would be to just ignore links if a Click() goes through; that is, just do one or the other.
If I need to be shooting somebody in the bottom left of my screen, then its probably not the best idea to have a giant chat box covering that area.
Having Click() be aware of any links occupying the same tile would probably be best. If it were like that developers could decide on their own how they wanted to handle the click. Something like I listed earlier with the toggle button would work just fine.
Maybe we could have the default ..() action for atom/Click() be to continue processing links.
A toggle for links could be supplied on the object displaying the text.