| 6979 | } |
| 6980 | |
| 6981 | void MultiPlay3dSound(int16_t soundidx, uint16_t objnum, int priority) { |
| 6982 | uint8_t data[MAX_GAME_DATA_SIZE]; |
| 6983 | int count = 0; |
| 6984 | int size = 0; |
| 6985 | MULTI_ASSERT_NOMESSAGE(Netgame.local_role == LR_SERVER); |
| 6986 | ASSERT(Objects[objnum].flags & OF_CLIENT_KNOWS); |
| 6987 | // mprintf(0,"^");//KBTEST |
| 6988 | size = START_DATA(MP_PLAY_3D_SOUND_FROM_OBJ, data, &count); |
| 6989 | MultiAddUshort(objnum, data, &count); |
| 6990 | MultiAddShort(soundidx, data, &count); |
| 6991 | MultiAddByte(priority, data, &count); |
| 6992 | END_DATA(count, data, size); |
| 6993 | |
| 6994 | // Add it to the outgoing queue. The MultiSendRobotFireSound() function will actually send it |
| 6995 | for (int i = 0; i < MAX_NET_PLAYERS; i++) { |
| 6996 | if (i == Player_num) |
| 6997 | continue; |
| 6998 | |
| 6999 | if ((NetPlayers[i].flags & NPF_CONNECTED) && (NetPlayers[i].sequence == NETSEQ_PLAYING)) { |
| 7000 | if (Multi_send_size[i] + count >= MAX_GAME_DATA_SIZE) |
| 7001 | MultiSendFullPacket(i, 0); |
| 7002 | |
| 7003 | memcpy(&Multi_send_buffer[i][Multi_send_size[i]], data, count); |
| 7004 | Multi_send_size[i] += count; |
| 7005 | MultiSendFullPacket(i, 0); |
| 7006 | } |
| 7007 | } |
| 7008 | } |
| 7009 | |
| 7010 | void MultiSendRobotFireSound(int16_t soundidx, uint16_t objnum) { |
| 7011 | int size; |
no test coverage detected