| 606 | |
| 607 | static xAnimTable* Anim_ATBL_getTable(xAnimTable* (*constructor)()); |
| 608 | static void* ATBL_Read(void*, U32, void* indata, U32 param_4, U32* outsize) |
| 609 | { |
| 610 | U32 i; |
| 611 | U32 j; |
| 612 | U32 debugNum = 0; |
| 613 | U32 tmpsize; |
| 614 | |
| 615 | xAnimTable* table; |
| 616 | xAnimState* astate; |
| 617 | xAnimTransition* atran; |
| 618 | U8* zaBytes; |
| 619 | |
| 620 | xAnimAssetTable* zaTbl = (xAnimAssetTable*)indata; |
| 621 | void** zaRaw = (void**)(zaTbl + 1); |
| 622 | xAnimAssetFile* zaFile = (xAnimAssetFile*)(zaRaw + zaTbl->NumRaw); |
| 623 | xAnimAssetState* zaState = |
| 624 | (xAnimAssetState*)((U32)zaFile + zaTbl->NumFiles * sizeof(xAnimAssetFile)); |
| 625 | |
| 626 | for (i = 0; i < zaTbl->NumRaw; ++i) |
| 627 | { |
| 628 | zaRaw[i] = xSTFindAsset(*(U32*)&zaRaw[i], &tmpsize); |
| 629 | } |
| 630 | |
| 631 | for (i = 0; i < zaTbl->NumRaw; ++i) |
| 632 | { |
| 633 | if (zaRaw[i] == NULL) |
| 634 | { |
| 635 | for (j = 0; j < zaTbl->NumRaw; ++j) |
| 636 | { |
| 637 | if (zaRaw[j] != NULL) |
| 638 | { |
| 639 | zaRaw[i] = zaRaw[j]; |
| 640 | break; |
| 641 | } |
| 642 | } |
| 643 | } |
| 644 | } |
| 645 | |
| 646 | for (i = 0; i < zaTbl->NumRaw; ++i) |
| 647 | { |
| 648 | if (*(U32*)zaRaw[i] == 'QSPM') |
| 649 | { |
| 650 | xMorphSeqSetup(zaRaw[i], FindAssetCB); |
| 651 | } |
| 652 | } |
| 653 | |
| 654 | for (i = 0; i < zaTbl->NumFiles; ++i) |
| 655 | { |
| 656 | zaFile[i].RawData = (void**)((U32)zaFile[i].RawData + (U32)zaTbl); |
| 657 | for (S32 k = 0; k < zaFile[i].NumAnims[0] * zaFile[i].NumAnims[1]; ++k) |
| 658 | { |
| 659 | zaFile[i].RawData[k] = zaRaw[(U32)zaFile[i].RawData[k]]; |
| 660 | } |
| 661 | } |
| 662 | |
| 663 | xAnimFile** fList = (xAnimFile**)zaFile; |
| 664 | for (i = 0; i < zaTbl->NumFiles; ++i) |
| 665 | { |
nothing calls this directly
no test coverage detected