mirror of
https://github.com/alliedmodders/sourcemod.git
synced 2025-12-06 18:08:36 +00:00
Compare commits
8 Commits
6f8d7788f7
...
dcd4444e54
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dcd4444e54 | ||
|
|
c4d5235217 | ||
|
|
8e52ad356f | ||
|
|
0af17b5565 | ||
|
|
8c22a306cc | ||
|
|
dc95eab890 | ||
|
|
658771545b | ||
|
|
9e1d2ae26a |
@ -342,7 +342,7 @@ static cell_t sm_SortStrings(IPluginContext *pContext, const cell_t *params)
|
||||
struct sort_info
|
||||
{
|
||||
IPluginFunction *pFunc;
|
||||
Handle_t hndl;
|
||||
cell_t data;
|
||||
cell_t array_addr;
|
||||
cell_t *array_base;
|
||||
cell_t *array_remap;
|
||||
@ -364,7 +364,7 @@ int sort1d_amx_custom(const void *elem1, const void *elem2)
|
||||
pf->PushCell(c1);
|
||||
pf->PushCell(c2);
|
||||
pf->PushCell(g_SortInfo.array_addr);
|
||||
pf->PushCell(g_SortInfo.hndl);
|
||||
pf->PushCell(g_SortInfo.data);
|
||||
pf->Invoke(&result);
|
||||
|
||||
return result;
|
||||
@ -386,7 +386,7 @@ static cell_t sm_SortCustom1D(IPluginContext *pContext, const cell_t *params)
|
||||
sort_info oldinfo = g_SortInfo;
|
||||
|
||||
DetectExceptions eh(pContext);
|
||||
g_SortInfo.hndl = params[4];
|
||||
g_SortInfo.data = params[4];
|
||||
g_SortInfo.array_addr = params[1];
|
||||
g_SortInfo.array_remap = NULL;
|
||||
g_SortInfo.array_base = NULL;
|
||||
@ -419,7 +419,7 @@ static int sort2d_amx_custom_legacy(const void *elem1, const void *elem2)
|
||||
g_SortInfo.pFunc->PushCell(c1_addr);
|
||||
g_SortInfo.pFunc->PushCell(c2_addr);
|
||||
g_SortInfo.pFunc->PushCell(g_SortInfo.array_addr);
|
||||
g_SortInfo.pFunc->PushCell(g_SortInfo.hndl);
|
||||
g_SortInfo.pFunc->PushCell(g_SortInfo.data);
|
||||
g_SortInfo.pFunc->Invoke(&result);
|
||||
|
||||
return result;
|
||||
@ -451,7 +451,7 @@ static cell_t sm_SortCustom2D_Legacy(IPluginContext *pContext, const cell_t *par
|
||||
|
||||
DetectExceptions eh(pContext);
|
||||
g_SortInfo.pFunc = pFunction;
|
||||
g_SortInfo.hndl = params[4];
|
||||
g_SortInfo.data = params[4];
|
||||
g_SortInfo.array_addr = params[1];
|
||||
g_SortInfo.eh = &eh;
|
||||
|
||||
@ -495,7 +495,7 @@ static int sort2d_amx_custom(const void *elem1, const void *elem2)
|
||||
g_SortInfo.pFunc->PushCell(iv1);
|
||||
g_SortInfo.pFunc->PushCell(iv2);
|
||||
g_SortInfo.pFunc->PushCell(g_SortInfo.array_addr);
|
||||
g_SortInfo.pFunc->PushCell(g_SortInfo.hndl);
|
||||
g_SortInfo.pFunc->PushCell(g_SortInfo.data);
|
||||
g_SortInfo.pFunc->Invoke(&result);
|
||||
|
||||
return result;
|
||||
@ -522,7 +522,7 @@ static cell_t sm_SortCustom2D(IPluginContext *pContext, const cell_t *params)
|
||||
|
||||
DetectExceptions eh(pContext);
|
||||
g_SortInfo.pFunc = pFunction;
|
||||
g_SortInfo.hndl = params[4];
|
||||
g_SortInfo.data = params[4];
|
||||
g_SortInfo.array_addr = params[1];
|
||||
g_SortInfo.eh = &eh;
|
||||
|
||||
@ -630,7 +630,7 @@ struct sort_infoADT
|
||||
cell_t *array_base;
|
||||
cell_t array_bsize;
|
||||
Handle_t array_hndl;
|
||||
Handle_t hndl;
|
||||
cell_t data;
|
||||
ExceptionHandler *eh;
|
||||
};
|
||||
|
||||
@ -646,7 +646,7 @@ int sort_adtarray_custom(const void *elem1, const void *elem2)
|
||||
pf->PushCell(((cell_t) ((cell_t *) elem1 - g_SortInfoADT.array_base)) / g_SortInfoADT.array_bsize);
|
||||
pf->PushCell(((cell_t) ((cell_t *) elem2 - g_SortInfoADT.array_base)) / g_SortInfoADT.array_bsize);
|
||||
pf->PushCell(g_SortInfoADT.array_hndl);
|
||||
pf->PushCell(g_SortInfoADT.hndl);
|
||||
pf->PushCell(g_SortInfoADT.data);
|
||||
pf->Invoke(&result);
|
||||
|
||||
return result;
|
||||
@ -681,7 +681,7 @@ static cell_t sm_SortADTArrayCustom(IPluginContext *pContext, const cell_t *para
|
||||
g_SortInfoADT.array_base = array;
|
||||
g_SortInfoADT.array_bsize = (cell_t) blocksize;
|
||||
g_SortInfoADT.array_hndl = params[1];
|
||||
g_SortInfoADT.hndl = params[3];
|
||||
g_SortInfoADT.data = params[3];
|
||||
g_SortInfoADT.eh = &eh;
|
||||
|
||||
qsort(array, arraysize, blocksize * sizeof(cell_t), sort_adtarray_custom);
|
||||
|
||||
@ -121,6 +121,13 @@
|
||||
"linux" "259"
|
||||
"linux64" "259"
|
||||
}
|
||||
"GetAttachment"
|
||||
{
|
||||
"windows" "211"
|
||||
"windows64" "211"
|
||||
"linux" "212"
|
||||
"linux64" "212"
|
||||
}
|
||||
}
|
||||
|
||||
"Keys"
|
||||
|
||||
@ -239,8 +239,8 @@ methodmap ArrayList < Handle {
|
||||
// Custom sorts an ADT Array. You must pass in a comparison function.
|
||||
//
|
||||
// @param sortfunc Sort comparison function to use
|
||||
// @param hndl Optional Handle to pass through the comparison calls.
|
||||
public native void SortCustom(SortFuncADTArray sortfunc, Handle hndl=INVALID_HANDLE);
|
||||
// @param data Optional data to pass through the comparison calls.
|
||||
public native void SortCustom(SortFuncADTArray sortfunc, any data=0);
|
||||
|
||||
// Retrieve the size of the array.
|
||||
property int Length {
|
||||
|
||||
@ -90,12 +90,16 @@ native void SortStrings(char[][] array, int array_size, SortOrder order = Sort_A
|
||||
* @param elem1 First element to compare.
|
||||
* @param elem2 Second element to compare.
|
||||
* @param array Array that is being sorted (order is undefined).
|
||||
* @param hndl Handle optionally passed in while sorting.
|
||||
* @param data Data optionally passed in while sorting.
|
||||
* @return -1 if first should go before second
|
||||
* 0 if first is equal to second
|
||||
* 1 if first should go after second
|
||||
*/
|
||||
typedef SortFunc1D = function int (int elem1, int elem2, const int[] array, Handle hndl);
|
||||
typeset SortFunc1D
|
||||
{
|
||||
function int (any elem1, any elem2, const any[] array);
|
||||
function int (any elem1, any elem2, const any[] array, any data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sorts a custom 1D array. You must pass in a comparison function.
|
||||
@ -103,9 +107,9 @@ typedef SortFunc1D = function int (int elem1, int elem2, const int[] array, Hand
|
||||
* @param array Array to sort.
|
||||
* @param array_size Size of the array to sort.
|
||||
* @param sortfunc Sort function.
|
||||
* @param hndl Optional Handle to pass through the comparison calls.
|
||||
* @param data Optional data to pass through the comparison calls.
|
||||
*/
|
||||
native void SortCustom1D(int[] array, int array_size, SortFunc1D sortfunc, Handle hndl=INVALID_HANDLE);
|
||||
native void SortCustom1D(any[] array, int array_size, SortFunc1D sortfunc, any data=0);
|
||||
|
||||
/**
|
||||
* Sort comparison function for 2D array elements (sub-arrays).
|
||||
@ -114,15 +118,17 @@ native void SortCustom1D(int[] array, int array_size, SortFunc1D sortfunc, Handl
|
||||
* @param elem1 First array to compare.
|
||||
* @param elem2 Second array to compare.
|
||||
* @param array Array that is being sorted (order is undefined).
|
||||
* @param hndl Handle optionally passed in while sorting.
|
||||
* @param data Data optionally passed in while sorting.
|
||||
* @return -1 if first should go before second
|
||||
* 0 if first is equal to second
|
||||
* 1 if first should go after second
|
||||
*/
|
||||
typeset SortFunc2D
|
||||
{
|
||||
function int (int[] elem1, int[] elem2, const int[][] array, Handle hndl);
|
||||
function int (char[] elem1, char[] elem2, const char[][] array, Handle hndl);
|
||||
function int (any[] elem1, any[] elem2, const any[][] array);
|
||||
function int (any[] elem1, any[] elem2, const any[][] array, any data);
|
||||
function int (char[] elem1, char[] elem2, const char[][] array);
|
||||
function int (char[] elem1, char[] elem2, const char[][] array, any data);
|
||||
};
|
||||
|
||||
/**
|
||||
@ -131,9 +137,9 @@ typeset SortFunc2D
|
||||
* @param array Array to sort.
|
||||
* @param array_size Size of the major array to sort (first index, outermost).
|
||||
* @param sortfunc Sort comparison function to use.
|
||||
* @param hndl Optional Handle to pass through the comparison calls.
|
||||
* @param data Optional data to pass through the comparison calls.
|
||||
*/
|
||||
native void SortCustom2D(any[][] array, int array_size, SortFunc2D sortfunc, Handle hndl=INVALID_HANDLE);
|
||||
native void SortCustom2D(any[][] array, int array_size, SortFunc2D sortfunc, any data=0);
|
||||
|
||||
/**
|
||||
* Sort an ADT Array. Specify the type as Integer, Float, or String.
|
||||
@ -152,12 +158,16 @@ native void SortADTArray(Handle array, SortOrder order, SortType type);
|
||||
* @param index1 First index to compare.
|
||||
* @param index2 Second index to compare.
|
||||
* @param array Array that is being sorted (order is undefined).
|
||||
* @param hndl Handle optionally passed in while sorting.
|
||||
* @param data Data optionally passed in while sorting.
|
||||
* @return -1 if first should go before second
|
||||
* 0 if first is equal to second
|
||||
* 1 if first should go after second
|
||||
*/
|
||||
typedef SortFuncADTArray = function int (int index1, int index2, Handle array, Handle hndl);
|
||||
typeset SortFuncADTArray
|
||||
{
|
||||
function int (int index1, int index2, ArrayList array);
|
||||
function int (int index1, int index2, ArrayList array, any data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Custom sorts an ADT Array. You must pass in a comparison function.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user