MCPcopy Create free account
hub / github.com/DescentDevelopers/Descent3 / MultiSendPermissionToFire

Function MultiSendPermissionToFire

Descent3/multi.cpp:8679–8728  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8677}
8678
8679void MultiSendPermissionToFire(int pnum) {
8680 MULTI_ASSERT_NOMESSAGE(Netgame.local_role == LR_SERVER);
8681
8682 object *obj = &Objects[Players[pnum].objnum];
8683
8684 int count = 0;
8685 uint8_t data[MAX_GAME_DATA_SIZE];
8686 int size_offset;
8687 size_offset = START_DATA(MP_PERMISSION_TO_FIRE, data, &count);
8688 MultiAddByte(pnum, data, &count);
8689 MultiAddUbyte(Player_fire_packet[pnum].wb_index, data, &count);
8690 MultiAddUbyte(Player_fire_packet[pnum].fire_mask, data, &count);
8691 MultiAddUbyte(Player_fire_packet[pnum].damage_scalar, data, &count);
8692
8693 // Do position
8694 // memcpy (&data[count],&obj->pos,sizeof(vector));
8695 // count+=sizeof(vector);
8696 MultiAddVector(obj->pos, data, &count);
8697
8698 // Do orientation
8699 angvec angs;
8700 vm_ExtractAnglesFromMatrix(&angs, &obj->orient);
8701
8702 MultiAddShort(angs.p, data, &count);
8703 MultiAddShort(angs.h, data, &count);
8704 MultiAddShort(angs.b, data, &count);
8705
8706 // Do roomnumber and terrain flag
8707 MultiAddShort(CELLNUM(obj->roomnum), data, &count);
8708
8709 // Fill flags
8710 if (OBJECT_OUTSIDE(obj))
8711 MultiAddByte(1, data, &count);
8712 else
8713 MultiAddByte(0, data, &count);
8714
8715 END_DATA(count, data, size_offset);
8716
8717#ifdef RELIABLE_SECONDARIES
8718 if ((Player_fire_packet[pnum].wb_index >= SECONDARY_INDEX) && (Player_fire_packet[pnum].wb_index != FLARE_INDEX)) {
8719 // send reliably
8720 // mprintf(0,"PCS: SENDING RELIABLE FIRE FOR %d\n",pnum);
8721 MultiSendReliablyToAllExcept(Player_num, data, count, NETSEQ_PLAYING, true);
8722 } else
8723#endif
8724 {
8725 MultiSendToAllExcept(Player_num, data, count, NETSEQ_PLAYING);
8726 }
8727 MultiDoPermissionToFire(data);
8728}
8729
8730// A client is asking for permission to fire
8731void MultiDoRequestToFire(uint8_t *data) {

Callers 1

MultiDoRequestToFireFunction · 0.85

Calls 10

START_DATAFunction · 0.85
MultiAddByteFunction · 0.85
MultiAddUbyteFunction · 0.85
MultiAddVectorFunction · 0.85
MultiAddShortFunction · 0.85
END_DATAFunction · 0.85
MultiSendToAllExceptFunction · 0.85
MultiDoPermissionToFireFunction · 0.85

Tested by

no test coverage detected