ID:2880508
 
Applies to:Dream Maker
Status: Open

Issue hasn't been assigned a status value.
right-click = true
This allows you to pop up a context menu

right-click = false
This prohibits you to pop up a context menu

right-click = SOMETHING
This 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