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

Function xAnimPlayChooseTransition

src/SB/Core/x/xAnim.cpp:1822–1866  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1820}
1821
1822void xAnimPlayChooseTransition(xAnimPlay* play)
1823{
1824 U32 i;
1825 void* object = play->Object;
1826 xAnimTransition** list = (xAnimTransition**)giAnimScratch;
1827 xAnimTransition** found;
1828 xAnimTransitionList* curr;
1829
1830 memset(list, 0, play->NumSingle * sizeof(xAnimTransition*));
1831
1832 for (i = 0; i < play->NumSingle; i++)
1833 {
1834 if (play->Single[i].State)
1835 {
1836 curr = play->Single[i].State->List;
1837
1838 if (curr && curr->T->Conditional)
1839 {
1840 while (curr)
1841 {
1842 if (curr->T->Conditional(curr->T, &play->Single[i], object))
1843 {
1844 found = &list[curr->T->Dest->Flags & 0xF];
1845
1846 if (!*found || curr->T->Priority > (*found)->Priority)
1847 {
1848 *found = curr->T;
1849 }
1850 }
1851
1852 curr = curr->Next;
1853 }
1854 }
1855 }
1856 }
1857
1858 for (i = 0; i < play->NumSingle; i++)
1859 {
1860 if (list[i] &&
1861 (!play->Single[i].Sync || list[i]->Priority > play->Single[i].Sync->QueuePriority))
1862 {
1863 xAnimPlayStartTransition(play, list[i]);
1864 }
1865 }
1866}
1867
1868void xAnimPlayStartTransition(xAnimPlay* play, xAnimTransition* transition)
1869{

Callers 1

xModelUpdateFunction · 0.70

Calls 2

memsetFunction · 0.85
xAnimPlayStartTransitionFunction · 0.70

Tested by

no test coverage detected