menusys: add MenuShufflePerClient native (#1073)
* Implement per-client randomized menus with MenuShufflePerClient native. * Add MenuSetClientMapping native. * fix remaining issues * fix build issues from rebase * Update MenuStyle_Base.cpp Co-authored-by: Kyle Sanderson <[email protected]>
This commit is contained in:
@@ -307,9 +307,23 @@ methodmap Menu < Handle
|
||||
// @param style By-reference variable to store drawing flags.
|
||||
// @param dispBuf Display buffer.
|
||||
// @param dispBufLen Maximum length of the display buffer.
|
||||
// @param client Client index. Must be specified if menu is per-client random shuffled, -1 to ignore.
|
||||
// @return True on success, false if position is invalid.
|
||||
public native bool GetItem(int position, char[] infoBuf, int infoBufLen,
|
||||
int &style=0, char[] dispBuf="", int dispBufLen=0);
|
||||
int &style=0, char[] dispBuf="", int dispBufLen=0, int client=0);
|
||||
|
||||
// Generates a per-client random mapping for the current vote options.
|
||||
//
|
||||
// @param start Menu item index to start randomizing from.
|
||||
// @param stop Menu item index to stop randomizing at. -1 = infinite
|
||||
public native void ShufflePerClient(int start=0, int stop=-1);
|
||||
|
||||
// Fills the client vote option mapping with user supplied values.
|
||||
//
|
||||
// @param client Client index.
|
||||
// @param array Integer array with mapping.
|
||||
// @param length Length of array.
|
||||
public native void SetClientMapping(int client, int[] array, int length);
|
||||
|
||||
// Sets the menu's default title/instruction message.
|
||||
//
|
||||
@@ -537,6 +551,7 @@ native void RemoveAllMenuItems(Handle menu);
|
||||
* @param style By-reference variable to store drawing flags.
|
||||
* @param dispBuf Display buffer.
|
||||
* @param dispBufLen Maximum length of the display buffer.
|
||||
* @param client Client index. Must be specified if menu is per-client random shuffled, -1 to ignore.
|
||||
* @return True on success, false if position is invalid.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
@@ -546,7 +561,27 @@ native bool GetMenuItem(Handle menu,
|
||||
int infoBufLen,
|
||||
int &style=0,
|
||||
char[] dispBuf="",
|
||||
int dispBufLen=0);
|
||||
int dispBufLen=0,
|
||||
int client=0);
|
||||
|
||||
/**
|
||||
* Generates a per-client random mapping for the current vote options.
|
||||
*
|
||||
* @param menu Menu Handle.
|
||||
* @param start Menu item index to start randomizing from.
|
||||
* @param stop Menu item index to stop randomizing at. -1 = infinite
|
||||
*/
|
||||
native void MenuShufflePerClient(Handle menu, int start=0, int stop=-1);
|
||||
|
||||
/*
|
||||
* Fills the client vote option mapping with user supplied values.
|
||||
*
|
||||
* @param menu Menu Handle.
|
||||
* @param client Client index.
|
||||
* @param array Integer array with mapping.
|
||||
* @param length Length of array.
|
||||
*/
|
||||
native void MenuSetClientMapping(Handle menu, int client, int[] array, int length);
|
||||
|
||||
/**
|
||||
* Returns the first item on the page of a currently selected menu.
|
||||
|
||||
Reference in New Issue
Block a user