MCPcopy Create free account
hub / github.com/TorqueGameEngines/Torque3D / onNewDataBlock

Method onNewDataBlock

Engine/source/afx/afxEffectron.cpp:315–356  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

313// STANDARD OVERLOADED METHODS //
314
315bool afxEffectron::onNewDataBlock(GameBaseData* dptr, bool reload)
316{
317 datablock = dynamic_cast<afxEffectronData*>(dptr);
318 if (!datablock || !Parent::onNewDataBlock(dptr, reload))
319 return false;
320
321 if (isServerObject() && started_with_newop)
322 {
323 // copy dynamic fields from the datablock but
324 // don't replace fields with a value
325 assignDynamicFieldsFrom(dptr, arcaneFX::sParameterFieldPrefix, true);
326 }
327
328 exeblock = datablock;
329
330 if (isClientObject())
331 {
332 // make a temp datablock clone if there are substitutions
333 if (datablock->getSubstitutionCount() > 0)
334 {
335 afxEffectronData* orig_db = datablock;
336 datablock = new afxEffectronData(*orig_db, true);
337 exeblock = orig_db;
338 // Don't perform substitutions yet, the effectrons's dynamic fields haven't
339 // arrived yet and the substitutions may refer to them. Hold off and do
340 // in in the onAdd() method.
341 }
342 }
343 else if (started_with_newop)
344 {
345 // make a temp datablock clone if there are substitutions
346 if (datablock->getSubstitutionCount() > 0)
347 {
348 afxEffectronData* orig_db = datablock;
349 datablock = new afxEffectronData(*orig_db, true);
350 exeblock = orig_db;
351 orig_db->performSubstitutions(datablock, this, ranking);
352 }
353 }
354
355 return true;
356}
357
358void afxEffectron::processTick(const Move* m)
359{

Callers

nothing calls this directly

Calls 2

getSubstitutionCountMethod · 0.80
performSubstitutionsMethod · 0.80

Tested by

no test coverage detected