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

Function MultiSendMSafeFunction

Descent3/multisafe_server.cpp:510–1122  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

508}
509
510void MultiSendMSafeFunction(uint8_t type, msafe_struct *mstruct) {
511 int sequence = -1;
512 int to_slot = -1;
513 uint32_t to_bitmask = 0xFFFFFFFF;
514
515 ASSERT((Demo_flags == DF_RECORDING) || (Netgame.local_role == LR_SERVER));
516
517 uint8_t data[MAX_GAME_DATA_SIZE];
518 int count = 0;
519 int size_offset;
520
521 size_offset = START_DATA(MP_MSAFE_FUNCTION, data, &count);
522
523 MultiAddUbyte(type, data, &count);
524
525 switch (type) {
526 case MSAFE_WEATHER_RAIN:
527 sequence = NETSEQ_WORLD;
528 MultiAddByte(mstruct->state, data, &count);
529 MultiAddFloat(mstruct->scalar, data, &count);
530 break;
531 case MSAFE_WEATHER_SNOW:
532 sequence = NETSEQ_WORLD;
533 MultiAddByte(mstruct->state, data, &count);
534 MultiAddFloat(mstruct->scalar, data, &count);
535 break;
536 case MSAFE_WEATHER_LIGHTNING:
537 sequence = NETSEQ_WORLD;
538 MultiAddByte(mstruct->state, data, &count);
539 MultiAddUbyte(mstruct->randval, data, &count);
540 MultiAddFloat(mstruct->scalar, data, &count);
541 break;
542 case MSAFE_WEATHER_LIGHTNING_BOLT:
543 sequence = NETSEQ_WORLD;
544 MultiAddInt(mstruct->roomnum, data, &count);
545 MultiAddUshort(mstruct->objhandle & HANDLE_OBJNUM_MASK, data, &count);
546
547 MultiAddFloat(mstruct->pos.x, data, &count);
548 MultiAddFloat(mstruct->pos.y, data, &count);
549 MultiAddFloat(mstruct->pos.z, data, &count);
550
551 MultiAddFloat(mstruct->lifetime, data, &count);
552
553 MultiAddFloat(mstruct->pos2.x, data, &count);
554 MultiAddFloat(mstruct->pos2.y, data, &count);
555 MultiAddFloat(mstruct->pos2.z, data, &count);
556
557 MultiAddString(GameTextures[mstruct->texnum].name, data, &count);
558 MultiAddUshort(mstruct->color, data, &count);
559 MultiAddByte(mstruct->size, data, &count);
560 MultiAddByte(mstruct->state, data, &count);
561 MultiAddByte(mstruct->count, data, &count);
562 MultiAddFloat(mstruct->interval, data, &count);
563 MultiAddByte(mstruct->index, data, &count);
564
565 if (mstruct->flags) // Do attached lightning effect
566 {
567 MultiAddByte(1, data, &count);

Callers 1

msafe_CallFunctionFunction · 0.85

Calls 15

START_DATAFunction · 0.85
MultiAddUbyteFunction · 0.85
MultiAddByteFunction · 0.85
MultiAddFloatFunction · 0.85
MultiAddIntFunction · 0.85
MultiAddUshortFunction · 0.85
MultiAddStringFunction · 0.85
MultiAddShortFunction · 0.85
ObjGetFunction · 0.85
MultiAddUintFunction · 0.85
MultiAddTypeIDFunction · 0.85
END_DATAFunction · 0.85

Tested by

no test coverage detected