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

Function EffectSingleStart

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

Source from the content-addressed store, hash-verified

1227}
1228
1229static void EffectSingleStart(xAnimSingle* single)
1230{
1231 xAnimEffect* effect = single->State->Effects;
1232 xAnimActiveEffect tempActive;
1233 F32 time = single->Time;
1234 U32 flags;
1235
1236 while (effect && effect->StartTime < time)
1237 {
1238 flags = effect->Flags;
1239
1240 if (flags & 0x1)
1241 {
1242 if (flags & 0x4)
1243 {
1244 tempActive.Effect = effect;
1245 tempActive.Handle = effect->Callback(1, &tempActive, single, single->Play->Object);
1246
1247 flags = effect->Flags;
1248
1249 if (flags & 0x2)
1250 {
1251 if (effect->EndTime <= time)
1252 {
1253 effect->Callback(3, &tempActive, single, single->Play->Object);
1254 }
1255 else
1256 {
1257 EffectActiveInsert(single, &tempActive);
1258 }
1259 }
1260 else if (flags & 0x20)
1261 {
1262 EffectActiveInsert(single, &tempActive);
1263 }
1264 }
1265 else if ((flags & 0x2) && !(flags & 0x10) && effect->EndTime > time)
1266 {
1267 tempActive.Effect = effect;
1268 tempActive.Handle = effect->Callback(1, &tempActive, single, single->Play->Object);
1269
1270 EffectActiveInsert(single, &tempActive);
1271 }
1272 }
1273
1274 effect = effect->Next;
1275 }
1276
1277 single->Effect = effect;
1278}
1279
1280static void EffectSingleDuration(xAnimSingle* single)
1281{

Callers 2

SingleUpdateFunction · 0.70
xAnimPlayStartTransitionFunction · 0.70

Calls 1

EffectActiveInsertFunction · 0.85

Tested by

no test coverage detected