right-click = trueThis allows you to pop up a context menu
right-click = falseThis prohibits you to pop up a context menu
right-click = SOMETHINGThis is mixed version of top above (the thing I'd like to request)
Behavior:
* It will catch the atoms that'll be displayed in your context menu (gather information from your client side first)
* It doesn't send caught items to the context menu. It directly sends the result to the client proc. (Don't pop up context menu)
* typically, "right-click=false" calls `client/MouseDown()`. but with SOMETHING value, It calls another client proc instead it.
* MouseContextRecieved(list/context_result, location, controls, params)
---------------
For example, If you have 3 items on your cursor, and you do right-click
* true: It pops up a context menu telling 3 items
* false: the client calls MouseDown(object,location,control,params) proc, and only the most top item (by sprite capture on your cursor) will be sent to the first parameter (object)
* SOMETHING: the client calls MouseContextRecieved(list/context_result, location, controls, params). All items that a cursor can capture on its point will be sent to the first parameter.
let's say there are 2 items on a turf.
right-click=true will catch 3 atoms, all of them.
right-click=false will call MouseDown() proc with a single atom.
right-click=SOMETHING will catch 3 atoms, all of them. (same as true)
right-click=SOMETHING will call MouseContextRecieved() proc with caught atoms.
-- Syntax example
window "mapwindow"
elem "map"
...
right-click = SOMETHING
/client/MouseContextRecieved(list/context_result, location, controls, params)
. = ..()
client.make_context_menu(context_result.Copy()) // client custom proc
/client/MouseDown(object,location,control,params)
. = ..()
// Your game will not call this proc because 'right-clic=SOMETHING' prioritizes calling MouseContextRecieved()
-- the usage I expect from this feature
You don't have to rely on the hardcorded context menu. Although a coder should build their own context menu, that will work fine as the caught item list is the actual thing we want to have.
---------------
This post has been made after talking with Lummox that the feature request I made is not feasible.
https://www.byond.com/forum/post/2864343