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

Function zSceneInitFunc_DefaultEnt

src/SB/Game/zScene.cpp:379–417  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

377static S32 nidbps = -1;
378
379static U32 zSceneInitFunc_DefaultEnt(zScene* s, zSceneObjectInstanceDesc* desc, U32 base_idx)
380{
381 U8* block;
382 S32 count;
383 U32 assetSize, offset;
384 xBase* b;
385
386 block = NULL;
387 assetSize = 0;
388 offset = desc->sizeRuntime;
389 count = s->baseCount[desc->baseType];
390
391 if (count)
392 {
393 block = (U8*)xMemAllocSize(count * offset);
394
395 s->baseList[desc->baseType] = (xBase*)block;
396 }
397
398 for (S32 i = 0; i < count; i++)
399 {
400 void* asset = xSTFindAssetByType(desc->assetType, i, &assetSize);
401 b = (xBase*)(block + i * offset);
402
403 zSceneSet(b, base_idx);
404
405 if (desc->objectInitFunc)
406 {
407 desc->objectInitFunc(b, asset);
408 }
409
410 xSceneAddEnt(s, s->ents[base_idx]);
411 zSceneObjHashtableAdd(b->id, b);
412
413 base_idx++;
414 }
415
416 return base_idx;
417}
418
419static U32 zSceneInitFunc_Default(zScene* s, zSceneObjectInstanceDesc* desc, U32 base_idx)
420{

Callers

nothing calls this directly

Calls 4

zSceneSetFunction · 0.85
xSceneAddEntFunction · 0.85
zSceneObjHashtableAddFunction · 0.70
xSTFindAssetByTypeFunction · 0.50

Tested by

no test coverage detected