MCPcopy Create free account
hub / github.com/bfbbdecomp/bfbb / HangableSetup

Function HangableSetup

src/SB/Game/zEntHangable.cpp:31–68  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

29}
30
31static void HangableSetup(zEntHangable* ent, xEntAsset* asset)
32{
33 xEntHangableAsset* hangAsset = (xEntHangableAsset *)(&asset[1]);
34 xVec3* center;
35 xMat3x3 hackMat;
36
37 ent->pflags = 0;
38 ent->chkby = 0;
39 ent->penby = 0;
40 ent->update = (xEntUpdateCallback)zEntHangable_Update;
41 ent->move = NULL;
42 ent->eventFunc = zEntHangableEventCB;
43 ent->hangInfo = hangAsset;
44 center = &ent->asset->pos;
45 ent->pivot.x = center[0].x;
46 ent->pivot.y = center[0].y + hangAsset->pivotOffset;
47 ent->pivot.z = center[0].z;
48 ent->endpos.x = center[0].x;
49 ent->endpos.y = ent->pivot.y - hangAsset->leverArm;
50 ent->endpos.z = center[0].z;
51 ent->vel.x = 0.0f;
52 ent->vel.y = 0.0f;
53 ent->vel.z = 0.0f;
54 ent->grabTimer = 0.0f;
55 ent->spin = 0.0f;
56 ent->state = 0;
57 ent->shaggy = NULL;
58 ent->follow = NULL;
59 ent->enabled = 1;
60 ent->moving = 0;
61 ent->candle_timer = 3.0f;
62 ent->candle_state = 0;
63 center = &ent->asset->ang;
64 xMat3x3Euler(&hackMat, center[0].x, center[0].y, center[0].z);
65 ent->swingplane.x = hackMat.right.x;
66 ent->swingplane.y = hackMat.right.y;
67 ent->swingplane.z = hackMat.right.z;
68}
69
70void zEntHangable_Init(void* a, void* b)
71{

Callers 2

zEntHangable_InitFunction · 0.70
zEntHangable_ResetFunction · 0.70

Calls 1

xMat3x3EulerFunction · 0.85

Tested by

no test coverage detected