public AMS_AME_RUNTIME_WORK_LINE(AppMain.AMS_AME_RUNTIME_WORK rtm_work) { this.rtm_work_ = rtm_work; this.st_ = new AppMain.Vector4D_Quat(rtm_work.rotate); this.inside_color_ = new AppMain.AMS_RGBA8888_Buf(rtm_work.dummy, 0); this.outside_color_ = new AppMain.AMS_RGBA8888_Buf(rtm_work.dummy, AppMain.AMS_RGBA8888_Buf.SizeBytes); }
public AMS_AME_RUNTIME_WORK_SIMPLE_SPRITE(AppMain.AMS_AME_RUNTIME_WORK rtm_work) { this.rtm_work_ = rtm_work; this.st_ = new AppMain.Vector4D_Quat(rtm_work.rotate); this.size_ = new AppMain.Vector4D_Buf(rtm_work.dummy, 0); this.color_ = new AppMain.AMS_RGBA8888_Buf(rtm_work.dummy, AppMain.Vector4D_Buf.SizeBytes); }
public AMS_AME_RUNTIME_WORK_MODEL(AppMain.AMS_AME_RUNTIME_WORK rtm_work) { this.rtm_work_ = rtm_work; this.rotate_axis_ = new AppMain.Vector4D_Buf(rtm_work.dummy, 0); this.scale_ = new AppMain.Vector4D_Buf(rtm_work.dummy, AppMain.Vector4D_Buf.SizeBytes); this.color_ = new AppMain.AMS_RGBA8888_Buf(rtm_work.dummy, AppMain.Vector4D_Buf.SizeBytes + AppMain.Vector4D_Buf.SizeBytes); }
public static void _amApplyVortex( AppMain.AMS_AME_ECB ecb, AppMain.AMS_AME_NODE node, AppMain.AMS_AME_RUNTIME_WORK work) { AppMain.AMS_AME_NODE_VORTEX amsAmeNodeVortex = (AppMain.AMS_AME_NODE_VORTEX)node; AppMain.NNS_VECTOR4D nnsVectoR4D1 = new AppMain.NNS_VECTOR4D(); AppMain.NNS_VECTOR4D nnsVectoR4D2 = new AppMain.NNS_VECTOR4D(); AppMain.NNS_VECTOR4D nnsVectoR4D3 = new AppMain.NNS_VECTOR4D(); AppMain.NNS_VECTOR4D nnsVectoR4D4 = new AppMain.NNS_VECTOR4D(); AppMain.amVectorCopy(nnsVectoR4D1, amsAmeNodeVortex.position); AppMain.amVectorCopy(nnsVectoR4D3, amsAmeNodeVortex.axis); if (((int)amsAmeNodeVortex.flag & 1) != 0) { AppMain.amVectorAdd(nnsVectoR4D1, ecb.translate); } if (((int)amsAmeNodeVortex.flag & 2) != 0) { AppMain.amQuatMultiVector(nnsVectoR4D3, nnsVectoR4D3, ref ecb.rotate, null); } AppMain.amVectorSub(nnsVectoR4D2, work.position, nnsVectoR4D1); AppMain.amVectorOuterProduct(nnsVectoR4D4, nnsVectoR4D3, nnsVectoR4D2); AppMain.amVectorScale(nnsVectoR4D2, nnsVectoR4D4, AppMain._am_unit_time); AppMain.amVectorAdd(work.velocity, nnsVectoR4D2); AppMain.amVectorOuterProduct(nnsVectoR4D4, nnsVectoR4D3, nnsVectoR4D4); AppMain.amVectorScale(nnsVectoR4D2, nnsVectoR4D4, AppMain._am_unit_time); AppMain.amVectorAdd(work.velocity, nnsVectoR4D2); //AppMain.GlobalPool<AppMain.NNS_VECTOR4D>.Release(nnsVectoR4D1); //AppMain.GlobalPool<AppMain.NNS_VECTOR4D>.Release(nnsVectoR4D2); //AppMain.GlobalPool<AppMain.NNS_VECTOR4D>.Release(nnsVectoR4D3); //AppMain.GlobalPool<AppMain.NNS_VECTOR4D>.Release(nnsVectoR4D4); }
public static void amEffectSetTranslate(AppMain.AMS_AME_ECB ecb, AppMain.NNS_VECTOR4D translate) { AppMain.amVectorCopy(ecb.translate, translate); for (AppMain.AMS_AME_ENTRY amsAmeEntry = ecb.entry_head; amsAmeEntry != null; amsAmeEntry = (AppMain.AMS_AME_ENTRY)amsAmeEntry.next) { AppMain.AMS_AME_RUNTIME runtime = amsAmeEntry.runtime; if ((runtime.state & 8192) != 0 && ((int)runtime.node.flag & 67108864) == 0) { if (runtime.work != null) { AppMain.amVectorAdd(runtime.work.position, ((AppMain.AMS_AME_NODE_TR_ROT)runtime.node).translate, translate); } if ((int)runtime.work_num + (int)runtime.active_num != 0) { AppMain.AMS_AME_RUNTIME_WORK next1 = (AppMain.AMS_AME_RUNTIME_WORK)runtime.work_head.next; for (AppMain.AMS_AME_RUNTIME_WORK workTail = (AppMain.AMS_AME_RUNTIME_WORK)runtime.work_tail; next1 != workTail; next1 = (AppMain.AMS_AME_RUNTIME_WORK)next1.next) { AppMain.amVectorAdd(next1.position, ((AppMain.AMS_AME_NODE_TR_ROT)runtime.node).translate, translate); } AppMain.AMS_AME_RUNTIME_WORK next2 = (AppMain.AMS_AME_RUNTIME_WORK)runtime.active_head.next; for (AppMain.AMS_AME_RUNTIME_WORK activeTail = (AppMain.AMS_AME_RUNTIME_WORK)runtime.active_tail; next2 != activeTail; next2 = (AppMain.AMS_AME_RUNTIME_WORK)next2.next) { AppMain.amVectorAdd(next2.position, ((AppMain.AMS_AME_NODE_TR_ROT)runtime.node).translate, translate); } } } } }
public static void _amApplyDrag( AppMain.AMS_AME_ECB ecb, AppMain.AMS_AME_NODE node, AppMain.AMS_AME_RUNTIME_WORK work) { AppMain.AMS_AME_NODE_DRAG amsAmeNodeDrag = (AppMain.AMS_AME_NODE_DRAG)node; float amUnitTime = AppMain._am_unit_time; AppMain.NNS_VECTOR4D nnsVectoR4D1 = new AppMain.NNS_VECTOR4D(); AppMain.NNS_VECTOR4D nnsVectoR4D2 = new AppMain.NNS_VECTOR4D(); AppMain.NNS_VECTOR4D nnsVectoR4D3 = new AppMain.NNS_VECTOR4D(); AppMain.amVectorCopy(nnsVectoR4D3, amsAmeNodeDrag.position); if (((int)amsAmeNodeDrag.flag & 1) != 0) { AppMain.amVectorAdd(nnsVectoR4D3, ecb.translate); } AppMain.amVectorSub(nnsVectoR4D2, work.position, nnsVectoR4D3); double num = (double)AppMain.amVectorUnit(nnsVectoR4D2); AppMain.amVectorScale(nnsVectoR4D1, nnsVectoR4D2, (float)((double)amsAmeNodeDrag.magnitude * (double)amUnitTime * (double)amUnitTime * 0.5)); AppMain.amVectorAdd(work.position, nnsVectoR4D1); AppMain.amVectorScale(nnsVectoR4D1, nnsVectoR4D2, amsAmeNodeDrag.magnitude * amUnitTime); AppMain.amVectorAdd(work.velocity, nnsVectoR4D1); //AppMain.GlobalPool<AppMain.NNS_VECTOR4D>.Release(nnsVectoR4D1); //AppMain.GlobalPool<AppMain.NNS_VECTOR4D>.Release(nnsVectoR4D2); //AppMain.GlobalPool<AppMain.NNS_VECTOR4D>.Release(nnsVectoR4D3); }
public static void amEffectFreeRuntimeWork(AppMain.AMS_AME_RUNTIME_WORK work) { AppMain._am_work_ref[AppMain._am_work_free] = work; ++AppMain._am_work_free; if (AppMain._am_work_free < 1024) { return; } AppMain._am_work_free = 0; }
public void Clear() { this.ecb = (AppMain.AMS_AME_ECB)null; this.runtime = (AppMain.AMS_AME_RUNTIME)null; this.node = (AppMain.AMS_AME_NODE)null; this.work = (AppMain.AMS_AME_RUNTIME_WORK)null; this.position = default; this.velocity = default; this.parent_position = default; this.parent_velocity = default; }
public static AppMain.AMS_AME_RUNTIME_WORK _amAllocRuntimeWork() { AppMain.AMS_AME_RUNTIME_WORK amsAmeRuntimeWork = AppMain._am_work_ref[AppMain._am_work_alloc]; ++AppMain._am_work_alloc; if (AppMain._am_work_alloc >= 1024) { AppMain._am_work_alloc = 0; } amsAmeRuntimeWork.Clear(); return(amsAmeRuntimeWork); }
public static void amEffectSetRotate( AppMain.AMS_AME_ECB ecb, ref AppMain.NNS_QUATERNION q, int offset) { ecb.rotate = q; for (AppMain.AMS_AME_ENTRY amsAmeEntry = ecb.entry_head; amsAmeEntry != null; amsAmeEntry = (AppMain.AMS_AME_ENTRY)amsAmeEntry.next) { AppMain.AMS_AME_RUNTIME runtime = amsAmeEntry.runtime; if ((runtime.state & 8192) != 0 && ((int)runtime.node.flag & 134217728) == 0) { if (runtime.work != null) { if (offset != 0) { AppMain.amQuatMulti(ref runtime.work.rotate[0], ref ((AppMain.AMS_AME_NODE_TR_ROT)runtime.node).rotate, ref q); } else { runtime.work.rotate[0] = q; } } if ((int)runtime.work_num + (int)runtime.active_num != 0) { AppMain.AMS_AME_RUNTIME_WORK next1 = (AppMain.AMS_AME_RUNTIME_WORK)runtime.work_head.next; for (AppMain.AMS_AME_RUNTIME_WORK workTail = (AppMain.AMS_AME_RUNTIME_WORK)runtime.work_tail; next1 != workTail; next1 = (AppMain.AMS_AME_RUNTIME_WORK)next1.next) { if (offset != 0) { AppMain.amQuatMulti(ref next1.rotate[0], ref ((AppMain.AMS_AME_NODE_TR_ROT)runtime.node).rotate, ref q); } else { next1.rotate[0] = q; } } AppMain.AMS_AME_RUNTIME_WORK next2 = (AppMain.AMS_AME_RUNTIME_WORK)runtime.active_head.next; for (AppMain.AMS_AME_RUNTIME_WORK activeTail = (AppMain.AMS_AME_RUNTIME_WORK)runtime.active_tail; next2 != activeTail; next2 = (AppMain.AMS_AME_RUNTIME_WORK)next2.next) { if (offset != 0) { AppMain.amQuatMulti(ref next2.rotate[0], ref ((AppMain.AMS_AME_NODE_TR_ROT)runtime.node).rotate, ref q); } else { next2.rotate[0] = q; } } } } } }
public static void _amApplyNoise( AppMain.AMS_AME_ECB ecb, AppMain.AMS_AME_NODE node, AppMain.AMS_AME_RUNTIME_WORK work) { AppMain.AMS_AME_NODE_NOISE amsAmeNodeNoise = (AppMain.AMS_AME_NODE_NOISE)node; float num = amsAmeNodeNoise.magnitude * AppMain._am_unit_time; AppMain.SNNS_VECTOR4D pSrc; pSrc.x = (AppMain.nnRandom() - 0.5f) * num * amsAmeNodeNoise.axis.x; pSrc.y = (AppMain.nnRandom() - 0.5f) * num * amsAmeNodeNoise.axis.y; pSrc.z = (AppMain.nnRandom() - 0.5f) * num * amsAmeNodeNoise.axis.z; pSrc.w = 1f; AppMain.amVectorAdd(work.position, ref pSrc); }
public static void _amApplyUniform( AppMain.AMS_AME_ECB ecb, AppMain.AMS_AME_NODE node, AppMain.AMS_AME_RUNTIME_WORK work) { AppMain.AMS_AME_NODE_UNIFORM amsAmeNodeUniform = (AppMain.AMS_AME_NODE_UNIFORM)node; float amUnitTime = AppMain._am_unit_time; AppMain.NNS_VECTOR4D nnsVectoR4D = new AppMain.NNS_VECTOR4D(); AppMain.amVectorScale(nnsVectoR4D, amsAmeNodeUniform.direction, amsAmeNodeUniform.magnitude * amUnitTime); if (((int)amsAmeNodeUniform.flag & 2) != 0) { AppMain.amQuatMultiVector(nnsVectoR4D, nnsVectoR4D, ref ecb.rotate, null); } AppMain.amVectorAdd(work.position, nnsVectoR4D); //AppMain.GlobalPool<AppMain.NNS_VECTOR4D>.Release(nnsVectoR4D); }
public static void _amApplyGravity( AppMain.AMS_AME_ECB ecb, AppMain.AMS_AME_NODE node, AppMain.AMS_AME_RUNTIME_WORK work) { AppMain.AMS_AME_NODE_GRAVITY amsAmeNodeGravity = (AppMain.AMS_AME_NODE_GRAVITY)node; float amUnitTime = AppMain._am_unit_time; AppMain.NNS_VECTOR4D nnsVectoR4D1 = new AppMain.NNS_VECTOR4D(); AppMain.NNS_VECTOR4D nnsVectoR4D2 = new AppMain.NNS_VECTOR4D(); AppMain.amVectorCopy(nnsVectoR4D2, amsAmeNodeGravity.direction); if (((int)amsAmeNodeGravity.flag & 2) != 0) { AppMain.amQuatMultiVector(nnsVectoR4D2, nnsVectoR4D2, ref ecb.rotate, null); } AppMain.amVectorScale(nnsVectoR4D1, nnsVectoR4D2, (float)((double)amsAmeNodeGravity.magnitude * (double)amUnitTime * (double)amUnitTime * 0.5)); AppMain.amVectorAdd(work.position, nnsVectoR4D1); AppMain.amVectorScale(nnsVectoR4D1, nnsVectoR4D2, amsAmeNodeGravity.magnitude * amUnitTime); AppMain.amVectorAdd(work.velocity, nnsVectoR4D1); //AppMain.GlobalPool<AppMain.NNS_VECTOR4D>.Release(nnsVectoR4D1); //AppMain.GlobalPool<AppMain.NNS_VECTOR4D>.Release(nnsVectoR4D2); }
public static void _amApplyRadial( AppMain.AMS_AME_ECB ecb, AppMain.AMS_AME_NODE node, AppMain.AMS_AME_RUNTIME_WORK work) { AppMain.AMS_AME_NODE_RADIAL amsAmeNodeRadial = (AppMain.AMS_AME_NODE_RADIAL)node; float amUnitTime = AppMain._am_unit_time; AppMain.NNS_VECTOR4D nnsVectoR4D1 = new AppMain.NNS_VECTOR4D(); AppMain.NNS_VECTOR4D nnsVectoR4D2 = new AppMain.NNS_VECTOR4D(); AppMain.amVectorCopy(nnsVectoR4D2, amsAmeNodeRadial.position); if (((int)amsAmeNodeRadial.flag & 1) != 0) { AppMain.amVectorAdd(nnsVectoR4D2, ecb.translate); } AppMain.amVectorSub(nnsVectoR4D1, work.position, nnsVectoR4D2); float num1 = 1f / (float)Math.Pow((double)AppMain.amVectorScalor(nnsVectoR4D1), (double)amsAmeNodeRadial.attenuation); double num2 = (double)AppMain.amVectorScaleUnit(nnsVectoR4D1, nnsVectoR4D1, amsAmeNodeRadial.magnitude * num1 * amUnitTime); AppMain.amVectorAdd(work.position, nnsVectoR4D1); //AppMain.GlobalPool<AppMain.NNS_VECTOR4D>.Release(nnsVectoR4D1); //AppMain.GlobalPool<AppMain.NNS_VECTOR4D>.Release(nnsVectoR4D2); }
public new void Clear() { this.next = (AppMain.AMS_AME_LIST)null; this.prev = (AppMain.AMS_AME_LIST)null; this.state = 0; this.amount = 0.0f; this.count = 0U; this.ecb = (AppMain.AMS_AME_ECB)null; this.node = (AppMain.AMS_AME_NODE)null; this.parent_runtime = (AppMain.AMS_AME_RUNTIME)null; this.spawn_runtime = (AppMain.AMS_AME_RUNTIME)null; this.work = (AppMain.AMS_AME_RUNTIME_WORK)null; this.child_head.Clear(); this.child_tail.Clear(); this.child_num = 0; this.work_head.Clear(); this.work_tail.Clear(); this.active_head.Clear(); this.active_tail.Clear(); this.work_num = (short)0; this.active_num = (short)0; this.texlist = (AppMain.NNS_TEXLIST)null; }
private void amEffectRotate(AppMain.AMS_AME_ECB ecb, ref AppMain.NNS_QUATERNION q) { AppMain.amQuatMulti(ref ecb.rotate, ref ecb.rotate, ref q); for (AppMain.AMS_AME_ENTRY amsAmeEntry = ecb.entry_head; amsAmeEntry != null; amsAmeEntry = (AppMain.AMS_AME_ENTRY)amsAmeEntry.next) { AppMain.AMS_AME_RUNTIME runtime = amsAmeEntry.runtime; if ((runtime.state & 8192) != 0 && ((int)runtime.node.flag & 134217728) == 0) { if (runtime.work != null) { AppMain.amQuatMulti(ref runtime.work.rotate[0], ref runtime.work.rotate[0], ref q); } if ((int)runtime.work_num + (int)runtime.active_num != 0) { AppMain.AMS_AME_LIST next1 = runtime.work_head.next; for (AppMain.AMS_AME_LIST workTail = runtime.work_tail; next1 != workTail; next1 = next1.next) { AppMain.AMS_AME_RUNTIME_WORK amsAmeRuntimeWork = (AppMain.AMS_AME_RUNTIME_WORK)next1; if (runtime.work != null) { AppMain.amQuatMulti(ref amsAmeRuntimeWork.rotate[0], ref runtime.work.rotate[0], ref q); } } AppMain.AMS_AME_LIST next2 = runtime.active_head.next; for (AppMain.AMS_AME_LIST activeTail = runtime.active_tail; next2 != activeTail; next2 = next2.next) { AppMain.AMS_AME_RUNTIME_WORK amsAmeRuntimeWork = (AppMain.AMS_AME_RUNTIME_WORK)next2; if (runtime.work != null) { AppMain.amQuatMulti(ref amsAmeRuntimeWork.rotate[0], ref runtime.work.rotate[0], ref q); } } } } } }
public static void _amFreeRuntime(AppMain.AMS_AME_RUNTIME runtime) { if (runtime.work != null) { AppMain.amEffectFreeRuntimeWork(runtime.work); } AppMain.AMS_AME_RUNTIME_WORK next1 = (AppMain.AMS_AME_RUNTIME_WORK)runtime.work_head.next; for (AppMain.AMS_AME_RUNTIME_WORK workTail = (AppMain.AMS_AME_RUNTIME_WORK)runtime.work_tail; next1 != workTail; next1 = (AppMain.AMS_AME_RUNTIME_WORK)next1.next) { AppMain.amEffectFreeRuntimeWork(next1); } AppMain.AMS_AME_RUNTIME_WORK next2 = (AppMain.AMS_AME_RUNTIME_WORK)runtime.active_head.next; for (AppMain.AMS_AME_RUNTIME_WORK activeTail = (AppMain.AMS_AME_RUNTIME_WORK)runtime.active_tail; next2 != activeTail; next2 = (AppMain.AMS_AME_RUNTIME_WORK)next2.next) { AppMain.amEffectFreeRuntimeWork(next2); } AppMain._am_runtime_ref[AppMain._am_runtime_free] = runtime; ++AppMain._am_runtime_free; if (AppMain._am_runtime_free < 512) { return; } AppMain._am_runtime_free = 0; }
public static void _amCreateSpawnParticle( AppMain.AMS_AME_RUNTIME runtime, AppMain.AMS_AME_RUNTIME_WORK work) { AppMain.NNS_VECTOR4D pVec = new AppMain.NNS_VECTOR4D(); AppMain.amVectorInit(pVec); AppMain.AMS_AME_CREATE_PARAM amsAmeCreateParam = AppMain.GlobalPool <AppMain.AMS_AME_CREATE_PARAM> .Alloc(); amsAmeCreateParam.ecb = runtime.ecb; amsAmeCreateParam.runtime = runtime.spawn_runtime; amsAmeCreateParam.node = runtime.spawn_runtime.node; amsAmeCreateParam.position = pVec; amsAmeCreateParam.velocity = pVec; amsAmeCreateParam.parent_position = work.position; amsAmeCreateParam.parent_velocity = work.velocity; if ((runtime.state & 8192) != 0) { runtime.spawn_runtime.state |= 8192; } AppMain._amCreateParticle(amsAmeCreateParam); if (AppMain.AMD_AME_NODE_TYPE(runtime.node) == AppMain.AMD_AME_NODE_TYPE(amsAmeCreateParam.node)) { AppMain.AMS_AME_NODE node1 = runtime.node; AppMain.AMS_AME_NODE node2 = amsAmeCreateParam.node; switch (AppMain.AMD_AME_NODE_TYPE(amsAmeCreateParam.node)) { case 512: AppMain.AMS_AME_RUNTIME_WORK_SIMPLE_SPRITE workSimpleSprite = (AppMain.AMS_AME_RUNTIME_WORK_SIMPLE_SPRITE)work; AppMain.AMS_AME_RUNTIME_WORK_SIMPLE_SPRITE work1 = (AppMain.AMS_AME_RUNTIME_WORK_SIMPLE_SPRITE)amsAmeCreateParam.work; if (((int)node1.flag & (int)node2.flag & 131072) != 0 && (((int)workSimpleSprite.flag ^ (int)work1.flag) & 8) != 0) { work1.flag ^= 8U; work1.set_st(work1.st.z, work1.st.y, work1.st.x, work1.st.w); } if (((int)node1.flag & (int)node2.flag & 262144) != 0 && (((int)workSimpleSprite.flag ^ (int)work1.flag) & 16) != 0) { work1.flag ^= 16U; work1.set_st(work1.st.x, work1.st.w, work1.st.z, work1.st.y); break; } break; case 513: AppMain.AMS_AME_RUNTIME_WORK_SPRITE runtimeWorkSprite = (AppMain.AMS_AME_RUNTIME_WORK_SPRITE)work; AppMain.AMS_AME_RUNTIME_WORK_SPRITE work2 = (AppMain.AMS_AME_RUNTIME_WORK_SPRITE)amsAmeCreateParam.work; if (((int)node1.flag & (int)node2.flag & 4) != 0) { if (((int)runtimeWorkSprite.flag & 4) != 0) { work2.flag |= 4U; } else { work2.flag &= 4294967291U; } } if (((int)node1.flag & (int)node2.flag & 131072) != 0 && (((int)runtimeWorkSprite.flag ^ (int)work2.flag) & 8) != 0) { work2.flag ^= 8U; work2.set_st(work2.st.z, work2.st.y, work2.st.x, work2.st.w); } if (((int)node1.flag & (int)node2.flag & 262144) != 0 && (((int)runtimeWorkSprite.flag ^ (int)work2.flag) & 16) != 0) { work2.flag ^= 16U; work2.set_st(work2.st.x, work2.st.w, work2.st.z, work2.st.y); break; } break; case 514: AppMain.AMS_AME_RUNTIME_WORK_LINE ameRuntimeWorkLine = (AppMain.AMS_AME_RUNTIME_WORK_LINE)work; AppMain.AMS_AME_RUNTIME_WORK_LINE work3 = (AppMain.AMS_AME_RUNTIME_WORK_LINE)amsAmeCreateParam.work; if (((int)node1.flag & (int)node2.flag & 131072) != 0 && (((int)ameRuntimeWorkLine.flag ^ (int)work3.flag) & 8) != 0) { work3.flag ^= 8U; work3.set_st(work3.st.z, work3.st.y, work3.st.x, work3.st.w); } if (((int)node1.flag & (int)node2.flag & 262144) != 0 && (((int)ameRuntimeWorkLine.flag ^ (int)work3.flag) & 16) != 0) { work3.flag ^= 16U; work3.set_st(work3.st.x, work3.st.w, work3.st.z, work3.st.y); break; } break; case 515: AppMain.AMS_AME_RUNTIME_WORK_PLANE runtimeWorkPlane = (AppMain.AMS_AME_RUNTIME_WORK_PLANE)work; AppMain.AMS_AME_RUNTIME_WORK_PLANE work4 = (AppMain.AMS_AME_RUNTIME_WORK_PLANE)amsAmeCreateParam.work; if (((int)node1.flag & (int)node2.flag & 131072) != 0 && (((int)runtimeWorkPlane.flag ^ (int)work4.flag) & 8) != 0) { work4.flag ^= 8U; work4.set_st(work4.st.z, work4.st.y, work4.st.x, work4.st.w); } if (((int)node1.flag & (int)node2.flag & 262144) != 0 && (((int)runtimeWorkPlane.flag ^ (int)work4.flag) & 16) != 0) { work4.flag ^= 16U; work4.set_st(work4.st.x, work4.st.w, work4.st.z, work4.st.y); break; } break; } } AppMain.GlobalPool <AppMain.AMS_AME_CREATE_PARAM> .Release(amsAmeCreateParam); //AppMain.GlobalPool<AppMain.NNS_VECTOR4D>.Release(pVec); }
public AMS_AME_RUNTIME_WORK_DIRECTIONAL(AppMain.AMS_AME_RUNTIME_WORK rtm_work) { this.rtm_work_ = rtm_work; }
public AMS_AME_RUNTIME_WORK_SURFACE(AppMain.AMS_AME_RUNTIME_WORK rtm_work) { this.rtm_work_ = rtm_work; }
public AMS_AME_RUNTIME_WORK_OMNI(AppMain.AMS_AME_RUNTIME_WORK rtm_work) { this.rtm_work_ = rtm_work; }
public static void amEffectUpdate(AppMain.AMS_AME_ECB ecb) { if (ecb.entry_num <= 0) { return; } if (ecb.skip_update != 0) { ecb.skip_update = 0; } for (AppMain.AMS_AME_ENTRY amsAmeEntry = ecb.entry_head; amsAmeEntry != null; amsAmeEntry = (AppMain.AMS_AME_ENTRY)amsAmeEntry.next) { AppMain.AMS_AME_RUNTIME runtime = amsAmeEntry.runtime; AppMain.AMS_AME_NODE node1 = runtime.node; int num1 = AppMain.AMD_AME_NODE_TYPE(node1); if ((runtime.state & 16384) != 0 && (int)runtime.work_num + (int)runtime.active_num == 0) { if (runtime.spawn_runtime != null) { runtime.spawn_runtime.state |= 16384; } runtime.state |= 32768; } else { switch (num1 & 65280) { case 256: if (runtime.work != null) { AppMain.AmeDelegateFunc ameDelegateFunc = AppMain._am_emitter_func[((num1 & (int)byte.MaxValue) << 2) + 1]; if (runtime.work != null) { if (ameDelegateFunc((object)runtime) != 0) { runtime.state |= 32768; AppMain.AMS_AME_LIST next = runtime.child_head.next; for (AppMain.AMS_AME_LIST childTail = runtime.child_tail; next != childTail; next = next.next) { ((AppMain.AMS_AME_RUNTIME)next).state |= 16384; } if (runtime.parent_runtime != null) { AppMain.amEffectDisconnectLink((AppMain.AMS_AME_LIST)runtime); --runtime.parent_runtime.work_num; continue; } continue; } for (AppMain.AMS_AME_NODE node2 = node1.child; node2 != null; node2 = node2.sibling) { if (AppMain.AMD_AME_IS_FIELD(node2)) { AppMain._am_field_func[AppMain.AMD_AME_NODE_TYPE(node2) & (int)byte.MaxValue](runtime.ecb, node2, runtime.work); } } continue; } continue; } continue; case 512: if (runtime.work_num != (short)0) { AppMain.AMS_AME_RUNTIME_WORK next = (AppMain.AMS_AME_RUNTIME_WORK)runtime.work_head.next; AppMain.AMS_AME_RUNTIME_WORK workTail = (AppMain.AMS_AME_RUNTIME_WORK)runtime.work_tail; while (next != workTail) { AppMain.AMS_AME_RUNTIME_WORK amsAmeRuntimeWork = next; next = (AppMain.AMS_AME_RUNTIME_WORK)next.next; amsAmeRuntimeWork.time += AppMain._am_unit_frame; if ((double)amsAmeRuntimeWork.time > 0.0) { amsAmeRuntimeWork.time -= AppMain._am_unit_frame; AppMain.amEffectDisconnectLink((AppMain.AMS_AME_LIST)amsAmeRuntimeWork); AppMain._amConnectLinkToTail(runtime.active_tail, (AppMain.AMS_AME_LIST)amsAmeRuntimeWork); --runtime.work_num; ++runtime.active_num; } } } int num2 = AppMain._am_particle_func[((num1 & (int)byte.MaxValue) << 2) + 1]((object)runtime); AppMain.AMS_AME_RUNTIME_WORK next1 = (AppMain.AMS_AME_RUNTIME_WORK)runtime.active_head.next; AppMain.AMS_AME_LIST activeTail = runtime.active_tail; AppMain.AMS_AME_RUNTIME_WORK work; for (AppMain.AMS_AME_LIST next2 = runtime.active_head.next; next2 != activeTail; next2 = work.next) { work = (AppMain.AMS_AME_RUNTIME_WORK)next2; for (AppMain.AMS_AME_NODE node2 = node1.child; node2 != null; node2 = node2.sibling) { if (AppMain.AMD_AME_IS_FIELD(node2)) { AppMain._am_field_func[AppMain.AMD_AME_NODE_TYPE(node2) & (int)byte.MaxValue](runtime.ecb, node2, work); } } } continue; default: continue; } } } for (AppMain.AMS_AME_ENTRY entry = ecb.entry_head; entry != null; entry = (AppMain.AMS_AME_ENTRY)entry.next) { if ((entry.runtime.state & 32768) != 0) { AppMain._amFreeRuntime(entry.runtime); AppMain._amDelEntry(ecb, entry); } } if (ecb.entry_num != 0) { return; } AppMain.amEffectDelete(ecb); }