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

Function MultiStuffGuidedInfo

Descent3/multi.cpp:5498–5542  ·  view source on GitHub ↗

Stuff info for a guided missile

Source from the content-addressed store, hash-verified

5496
5497// Stuff info for a guided missile
5498int MultiStuffGuidedInfo(int slot, uint8_t *data) {
5499 int count = 0;
5500 int size_offset;
5501 object *obj = Players[slot].guided_obj;
5502
5503 if (Players[slot].guided_obj == NULL)
5504 return 0;
5505
5506 size_offset = START_DATA(MP_GUIDED_INFO, data, &count);
5507
5508 MultiAddByte(slot, data, &count);
5509 MultiAddByte(0, data, &count);
5510
5511 // Do position
5512 MultiAddPositionData(&obj->pos, data, &count);
5513
5514 // Do orientation
5515 angvec angs;
5516 vm_ExtractAnglesFromMatrix(&angs, &obj->orient);
5517
5518 MultiAddShort(angs.p, data, &count);
5519 MultiAddShort(angs.h, data, &count);
5520 MultiAddShort(angs.b, data, &count);
5521
5522 // Do roomnumber and terrain flag
5523
5524 MultiAddShort(CELLNUM(obj->roomnum), data, &count);
5525
5526 if (OBJECT_OUTSIDE(obj))
5527 MultiAddByte(1, data, &count);
5528 else
5529 MultiAddByte(0, data, &count);
5530
5531 // Do velocity
5532 vector *vel = &obj->mtype.phys_info.velocity;
5533 vector *rotvel = &obj->mtype.phys_info.rotvel;
5534
5535 MultiAddShort(vel->x * 128.0, data, &count);
5536 MultiAddShort(vel->y * 128.0, data, &count);
5537 MultiAddShort(vel->z * 128.0, data, &count);
5538
5539 END_DATA(count, data, size_offset);
5540
5541 return count;
5542}
5543
5544// Guided missile release
5545void MultiDoMissileRelease(int slot, uint8_t *data) {

Callers 2

MultiDoClientFrameFunction · 0.85

Calls 6

START_DATAFunction · 0.85
MultiAddByteFunction · 0.85
MultiAddPositionDataFunction · 0.85
MultiAddShortFunction · 0.85
END_DATAFunction · 0.85

Tested by

no test coverage detected