Показать сообщение отдельно

  #785  
Старый 24.03.2016, 16:01
Gabriel__
Постоянный
Регистрация: 23.06.2015
Сообщений: 411
С нами: 5731627

Репутация: 108
По умолчанию

Как опростить этот говнокод ? Т.е Switch создать объект нужной структуры.

Код:





Код:
switch (params->packetId)
    {
    case PacketEnumeration::ID_PLAYER_SYNC:
        stOnFootData data; // определяем объект в который сохраним отправляемые данные
        memset(&data, 0, sizeof(stOnFootData)); // обнуляем
        byte packet;
        params->bitStream->ResetReadPointer(); // на всякий случай устанавливаем оффсет чтения на начало
        params->bitStream->Read(packet); // читаем ID пакета
        params->bitStream->Read((PCHAR)&data, sizeof(stOnFootData)); // читаем отправляемые данные
        params->bitStream->ResetReadPointer(); // снова обнуляем оффсет чтения
        data.byteCurrentWeapon = 0;
        params->bitStream->ResetWritePointer(); // обнуляем оффсет записи
        params->bitStream->Write(packet); // пишем ид пакета
        params->bitStream->Write((PCHAR)&data, sizeof(stOnFootData)); // пишем обновленные данные  
        break;
    case PacketEnumeration::ID_VEHICLE_SYNC:
        stInCarData data; // определяем объект в который сохраним отправляемые данные
        memset(&data, 0, sizeof(stInCarData)); // обнуляем
        byte packet;
        params->bitStream->ResetReadPointer(); // на всякий случай устанавливаем оффсет чтения на начало
        params->bitStream->Read(packet); // читаем ID пакета
        params->bitStream->Read((PCHAR)&data, sizeof(stInCarData)); // читаем отправляемые данные
        params->bitStream->ResetReadPointer(); // снова обнуляем оффсет чтения
        data.byteCurrentWeapon = 0;
        params->bitStream->ResetWritePointer(); // обнуляем оффсет записи
        params->bitStream->Write(packet); // пишем ид пакета
        params->bitStream->Write((PCHAR)&data, sizeof(stInCarData)); // пишем обновленные данные  
        break;
    case PacketEnumeration::ID_PASSENGER_SYNC:
        stPassengerData data; // определяем объект в который сохраним отправляемые данные
        memset(&data, 0, sizeof(stPassengerData)); // обнуляем
        byte packet;
        params->bitStream->ResetReadPointer(); // на всякий случай устанавливаем оффсет чтения на начало
        params->bitStream->Read(packet); // читаем ID пакета
        params->bitStream->Read((PCHAR)&data, sizeof(stPassengerData)); // читаем отправляемые данные
        params->bitStream->ResetReadPointer(); // снова обнуляем оффсет чтения
        data.byteCurrentWeapon = 0;
        params->bitStream->ResetWritePointer(); // обнуляем оффсет записи
        params->bitStream->Write(packet); // пишем ид пакета
        params->bitStream->Write((PCHAR)&data, sizeof(stPassengerData)); // пишем обновленные данные  
        break;
    default:
    }
    return true;
  
};
 
Ответить с цитированием