Очистка всего enum
#1

Каким образом можно очистить весь enim, который содержит также двухмерные массивы, не называя их?
Reply
#2

pawn Код:
enum ePlayers {
    a,
    c,
    Float:d[3]
}
new playerData[MAX_PLAYERS][ePlayers];

new defaultPlayerInfo[ePlayers] = {
    0,
    0,
    {0.0, 0.0, 0.0},
};

//очистка
playerData[5] = defaultPlayerInfo;
Reply
#3

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
pawn Код:
enum ePlayers {
    a,
    c,
    Float:d[3]
}
new playerData[MAX_PLAYERS][ePlayers];

new defaultPlayerInfo[ePlayers] = {
    0,
    0,
    {0.0, 0.0, 0.0},
};

//очистка
playerData[5] = defaultPlayerInfo;
Несколько не то, тут при добавлении новой переменной в enum, придется добавлять ее и в defaulPlayerInfo.
А мне нужно чтобы было одной функцией, что то вроде этого:
playerdata[5][ePlayers] = 0;

или:

playerdata[5][5] = 0; // на крайняк
Reply
#4

Только так как я показал и никак иначе.
А пропустить изменение defaulPlayerInfo вы не сможете, при компиляции будет ошибка.
Да и вообще как-то странно, enum значит меняешь, пишешь код для новой ячейки, а добавить пару символов в массив для тебя тяжело?!
Reply
#5

PHP код:
stock memset aArray[], iValueiSize sizeof aArray ) )
{
    new 
iAddress
    
#emit LOAD.S.pri 12
    #emit STOR.S.pri iAddress 
    
iSize *= 4
    while ( 
iSize )
    {
        if (
iSize >= 4096)
        {
            
#emit LOAD.S.alt iAddress 
            #emit LOAD.S.pri iValue
            #emit FILL 4096
            
iSize -= 4096;
            
iAddress += 4096;
        }
        else if ( 
iSize >= 1024 )
        {
            
#emit LOAD.S.alt iAddress
            #emit LOAD.S.pri iValue
            #emit FILL 1024
            
iSize -= 1024;
            
iAddress += 1024;
        }
        else if ( 
iSize >= 256 )
        {
            
#emit LOAD.S.alt iAddress
            #emit LOAD.S.pri iValue
            #emit FILL 256
            
iSize -= 256;
            
iAddress += 256;
        }
        else if ( 
iSize >= 64 )
        {
            
#emit LOAD.S.alt iAddress
            #emit LOAD.S.pri iValue
            #emit FILL 64
            
iSize -= 64;
            
iAddress += 64;
        }
        else if ( 
iSize >= 16 )
        {
            
#emit LOAD.S.alt iAddress
            #emit LOAD.S.pri iValue
            #emit FILL 16
            
iSize -= 16;
            
iAddress += 16;
        }
        else
        {
            
#emit LOAD.S.alt iAddress
            #emit LOAD.S.pri iValue
            #emit FILL 4
            
iSize -= 4;
            
iAddress += 4;
        }
    }
    
#pragma unused aArray

Использование
PHP код:
enum _player {
         var
}
new 
PLAYER MAX_PLAYERS ] [ _player ] ;

//

memset PLAYER playerid ], 0_:_player ) ; 
Взята с этого форума, автор не помню кто.
Reply
#6

омайгод, с такими костылями и пожеланиями лучше в си* перейти.
Кстати, для "с этого форума, автор не помню кто" есть такая вещь как "Поиск", и автор там Oscar Broman (Slice).
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)