
24.03.2016, 16:01
|
|
Постоянный
Регистрация: 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;
};
|
|
|