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

Function zAnimListInit

src/SB/Game/zAnimList.cpp:27–98  ·  view source on GitHub ↗

Equivalent Mostly an issue of scheduling.

Source from the content-addressed store, hash-verified

25// Equivalent
26// Mostly an issue of scheduling.
27void zAnimListInit()
28{
29 // ALST = Animation list https://battlepedia.org/ALST
30 nals = xSTAssetCountByType('ALST'); // 0x414C5354
31 if (nals == 0)
32 {
33 return;
34 }
35
36 // << 2 is the same as multiplying by 4
37 // so it's just allocating size in bytes
38 aids = (U32*)xMemAllocSize(nals * sizeof(S32));
39 atbls = (xAnimTable**)xMemAllocSize(nals * sizeof(S32));
40 anused = (S32*)xMemAllocSize(nals * sizeof(S32));
41
42 for (S32 i = 0; i < nals; i++)
43 {
44 U32 size;
45 zAnimListAsset* zala = (zAnimListAsset*)xSTFindAssetByType('ALST', i, &size);
46 st_PKR_ASSET_TOCINFO ainfo;
47 xSTGetAssetInfoByType('ALST', i, &ainfo);
48 xAnimTable* atbl = xAnimTableNew("", NULL, 0);
49
50 aids[i] = ainfo.aid;
51 atbls[i] = atbl;
52 anused[i] = 0;
53
54 void* buf0 = xSTFindAsset(zala->ids[0], &size);
55 if (buf0)
56 {
57 xAnimFile* afile = xAnimFileNew(buf0, "", 0, NULL);
58 xAnimTableNewState(atbl, "idle", 0x10, 0, 1.0f, NULL, NULL, 0.0f, NULL, NULL,
59 xAnimDefaultBeforeEnter, NULL, NULL);
60 xAnimTableAddFile(atbl, afile, "idle");
61 anused[i]++;
62 }
63
64 for (S32 j = 1; j < 10; j++)
65 {
66 if (zala->ids[j] == 0)
67 {
68 continue;
69 }
70
71 void* buf = xSTFindAsset(zala->ids[j], &size);
72 if (!buf)
73 {
74 continue;
75 }
76
77 xAnimFile* afile = xAnimFileNew(buf, "", 0, NULL);
78 if ((S32)buf0)
79 {
80 xAnimTableNewState(atbl, astnames[0][j], 0x20, 0, 1.0f, NULL, NULL, 0.0f, NULL,
81 NULL, xAnimDefaultBeforeEnter, NULL, NULL);
82 xAnimTableNewTransition(atbl, astnames[0][j], "idle", AlwaysConditional, NULL, 0x10,
83 0, 0.0f, 0.0f, 0, 0, 0.0f, 0);
84 }

Callers 1

zSceneInitFunction · 0.70

Calls 9

xAnimFileNewFunction · 0.85
xSTAssetCountByTypeFunction · 0.50
xSTFindAssetByTypeFunction · 0.50
xSTGetAssetInfoByTypeFunction · 0.50
xAnimTableNewFunction · 0.50
xSTFindAssetFunction · 0.50
xAnimTableNewStateFunction · 0.50
xAnimTableAddFileFunction · 0.50
xAnimTableNewTransitionFunction · 0.50

Tested by

no test coverage detected