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

Function MultiDoAttach

Descent3/multi.cpp:8463–8497  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8461}
8462
8463void MultiDoAttach(uint8_t *data) {
8464
8465 object *parent;
8466 char parent_ap;
8467 object *child;
8468 char child_ap;
8469 bool f_aligned;
8470
8471 int count = 0;
8472 SKIP_HEADER(data, &count);
8473
8474 uint16_t parent_num = Server_object_list[MultiGetUshort(data, &count)];
8475 parent_ap = MultiGetByte(data, &count);
8476 parent = &Objects[parent_num];
8477 uint16_t child_num = Server_object_list[MultiGetUshort(data, &count)];
8478 child_ap = MultiGetByte(data, &count);
8479 child = &Objects[child_num];
8480 f_aligned = MultiGetByte(data, &count) ? true : false;
8481
8482 if (parent_num == 65535) {
8483 mprintf(0, "Client/Server object lists don't match! (Server num %d)\n", parent_num);
8484 Int3();
8485 return;
8486 }
8487 if (child_num == 65535) {
8488 mprintf(0, "Client/Server object lists don't match! (Server num %d)\n", child_num);
8489 Int3();
8490 return;
8491 }
8492
8493 ASSERT(child >= Objects && parent >= Objects);
8494 ASSERT(child->type != OBJ_NONE && parent->type != OBJ_NONE);
8495
8496 AttachObject(parent, parent_ap, child, child_ap, f_aligned);
8497}
8498
8499void MultiSendAttachRad(object *parent, char parent_ap, object *child, float rad) {
8500 int count = 0;

Callers 1

MultiProcessDataFunction · 0.85

Calls 4

SKIP_HEADERFunction · 0.85
MultiGetUshortFunction · 0.85
MultiGetByteFunction · 0.85
AttachObjectFunction · 0.85

Tested by

no test coverage detected