MCPcopy Create free account
hub / github.com/assaultcube/AC / sendf

Function sendf

source/src/server.cpp:678–740  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

676}
677
678void sendf(int cn, int chan, const char *format, ...)
679{
680 int exclude = -1;
681 bool reliable = false;
682 if(*format=='r') { reliable = true; ++format; }
683 packetbuf p(MAXTRANS, reliable ? ENET_PACKET_FLAG_RELIABLE : 0);
684 va_list args;
685 va_start(args, format);
686 while(*format) switch(*format++)
687 {
688 case 'x': // exclude client from getting this message
689 exclude = va_arg(args, int);
690 ASSERT(cn == -1);
691 break;
692
693 case 'v': // integer array of variable length
694 {
695 int n = va_arg(args, int);
696 int *v = va_arg(args, int *);
697 loopi(n) putint(p, v[i]);
698 break;
699 }
700
701 case 'k': // 32 bytes (uchar)
702 p.put(va_arg(args, uchar *), 32);
703 break;
704
705 case 'i': // one to nine integer arguments
706 {
707 int n = isdigit(*format) ? *format++-'0' : 1;
708 loopi(n) putint(p, va_arg(args, int));
709 break;
710 }
711
712 case 'a': // one to nine mostly positive integer arguments
713 {
714 int n = isdigit(*format) ? *format++-'0' : 1;
715 loopi(n) putaint(p, va_arg(args, int));
716 break;
717 }
718
719 case 'u': // unsigned integer argument
720 putuint(p, va_arg(args, int));
721 break;
722
723 case 'I': // IPv4 address argument
724 putip4(p, va_arg(args, enet_uint32));
725 break;
726
727 case 's': // string
728 sendstring(va_arg(args, const char *), p);
729 break;
730
731 case 'm': // raw message block
732 {
733 int n = va_arg(args, int);
734 p.put(va_arg(args, uchar *), n);
735 break;

Callers 15

performMethod · 0.85
sendservermodeFunction · 0.85
setpausemodeFunction · 0.85
sendservmsgFunction · 0.85
sendservmsgverboseFunction · 0.85
sendspawnFunction · 0.85
enddemoplaybackFunction · 0.85
setupdemoplaybackFunction · 0.85
flagmessageFunction · 0.85
flagactionFunction · 0.85
arenacheckFunction · 0.85

Calls 7

putintFunction · 0.85
putuintFunction · 0.85
putip4Function · 0.85
sendpacketFunction · 0.85
finalizeMethod · 0.80
loopiFunction · 0.70
putMethod · 0.45

Tested by

no test coverage detected