| 7008 | } |
| 7009 | |
| 7010 | void MultiSendRobotFireSound(int16_t soundidx, uint16_t objnum) { |
| 7011 | int size; |
| 7012 | int count = 0; |
| 7013 | uint8_t data[MAX_GAME_DATA_SIZE]; |
| 7014 | // mprintf(0,"&");//KBTEST |
| 7015 | MULTI_ASSERT_NOMESSAGE(Netgame.local_role == LR_SERVER); |
| 7016 | // mprintf(0,"Sending Robot %d fire sound.\n",objnum); |
| 7017 | object *obj = &Objects[objnum]; |
| 7018 | |
| 7019 | ASSERT(obj->flags & OF_CLIENT_KNOWS); |
| 7020 | |
| 7021 | size = START_DATA(MP_ROBOT_FIRE_SOUND, data, &count); |
| 7022 | MultiAddUshort(objnum, data, &count); |
| 7023 | |
| 7024 | MultiAddShort(soundidx, data, &count); |
| 7025 | |
| 7026 | END_DATA(count, data, size); |
| 7027 | |
| 7028 | // Add it to the outgoing queue. The MultiSendRobotFireSound() function will actually send it |
| 7029 | for (int i = 0; i < MAX_NET_PLAYERS; i++) { |
| 7030 | if (i == Player_num) |
| 7031 | continue; |
| 7032 | |
| 7033 | if ((NetPlayers[i].flags & NPF_CONNECTED) && (NetPlayers[i].sequence == NETSEQ_PLAYING)) { |
| 7034 | if (Multi_send_size[i] + count >= MAX_GAME_DATA_SIZE) |
| 7035 | MultiSendFullPacket(i, 0); |
| 7036 | |
| 7037 | memcpy(&Multi_send_buffer[i][Multi_send_size[i]], data, count); |
| 7038 | Multi_send_size[i] += count; |
| 7039 | MultiSendFullPacket(i, 0); |
| 7040 | } |
| 7041 | } |
| 7042 | } |
| 7043 | |
| 7044 | void MultiDoRobotFireSound(uint8_t *data) { |
| 7045 | int objnum; |
no test coverage detected