| 8461 | } |
| 8462 | |
| 8463 | void 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 | |
| 8499 | void MultiSendAttachRad(object *parent, char parent_ap, object *child, float rad) { |
| 8500 | int count = 0; |
no test coverage detected