Неверные данные в массиве после сортировки

MIRDOBRO

Пользователь
Регистрация
25 Фев 2018
Сообщения
3
Симпатии
0
Здравствуйте!
Подскажите, пожалуйста, почему после сортировки в массиве на всех картах одинаковое значение?
Логи до сортировки:
Код:
cs_assault - 5
de_dust2_2x2 - 10
de_nuke - 5
de_train - 3
de_dust2 - 7
Логи после сортировки:
Код:
1. de_dust2_2x2 - 7
2. de_dust2 - 7
3. cs_assault - 7
4. de_nuke - 7
5. de_train - 7
Вот исходник:
Код:
#include mylibr

enum _:STRUCT {
    MAP[ 32 ],
    COUNT
}

new const MAPS[ ][ STRUCT ] = {
    {    "cs_assault",    5    },
    {    "de_dust2_2x2",    10    },
    {    "de_nuke",        5    },
    {    "de_train",        3    },
    {    "de_dust2",        7    },
};

new Array:g_aMaps;
new g_eMapsData[ STRUCT ];

public plugin_init( ) {
    g_aMaps = ArrayCreate( STRUCT );
    
    for( new i; i < sizeof( MAPS ); i++ ) {
    copy(g_eMapsData[MAP], charsmax(g_eMapsData[MAP]), MAPS[i][MAP]);
    g_eMapsData[COUNT] = MAPS[i][COUNT];
        
    set_log("", _, "test_maps", false, "%s - %d", g_eMapsData[MAP], g_eMapsData[COUNT]);
    ArrayPushArray(g_aMaps, g_eMapsData);
}
    
    ArraySort(g_aMaps, "callback_arraysort" );

    new iSize = ArraySize(g_aMaps);
    for(new i; i < iSize; i++) {
    ArrayGetArray(g_aMaps, i, g_eMapsData, cm(g_eMapsData));

    set_log("", _, "test_sortings", false, "%d. %s - %d", i + 1, g_eMapsData[MAP], g_eMapsData[COUNT]);
}
}

public callback_arraysort( Array:array, elem1, elem2 )
{
    new data1[ STRUCT ];
    ArrayGetArray( array, elem1, data1 );
    
    new data2[ STRUCT ];
    ArrayGetArray( array, elem2, data2 );
    
    if( data1[ COUNT ] > data2[ COUNT ] ) {
        return -1;
    } else if( data1[ COUNT ] < data2[ COUNT ] ) {
        return 1;
    } else {
        return 0;
    }
}
 
Сверху Снизу