Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void C_OP_RenderBlobs::Render(IMatRenderContext *param_1,CParticleCollection *param_2, Vector4D *param_3,void *param_4)
- {
- int iVar1;
- undefined4 uVar2;
- undefined4 uVar3;
- int iVar4;
- uint uVar5;
- void *pvVar6;
- undefined4 uVar7;
- ImpTiler *pIVar8;
- IMaterial *pIVar9;
- undefined8 *extraout_EAX;
- undefined8 *puVar10;
- int iVar11;
- ImpParticle *pIVar12;
- int iVar13;
- int iVar14;
- ImpTiler *pIStack108;
- int iStack100;
- int iStack96;
- int local_5c [2];
- ParticleRenderData_t *local_54;
- uint local_50;
- float local_4c;
- float local_48;
- float local_44;
- float local_40;
- float local_3c;
- float local_38;
- float local_34;
- float local_30;
- float local_2c;
- undefined4 uStack40;
- pIVar8 = ?getTiler@ImpTilerFactory@@QAEPAVImpTiler@@XZ(factory);
- if (*(char *)((int)param_4 + 8) != '\0') {
- SetupParticleVisibility
- (param_2,(CParticleVisibilityData *)param_4,(CParticleVisibilityInputs *)(this +0x58)
- ,(int *)((int)param_4 + 0xc),param_1);
- }
- if ((
- _?$S7@?4??Render@C_OP_RenderBlobs@@EBEXPAVIMatRenderContext@@PAVCParticleCollection@@ABVVector4D@@PAX@Z@4IA
- & 1) == 0) {
- _?$S7@?4??Render@C_OP_RenderBlobs@@EBEXPAVIMatRenderContext@@PAVCParticleCollection@@ABVVector4D@@PAX@Z@4IA
- =
- _?$S7@?4??Render@C_OP_RenderBlobs@@EBEXPAVIMatRenderContext@@PAVCParticleCollection@@ABVVector4D@@PAX@Z@4IA
- | 1;
- DAT_00002124 = 0;
- _DAT_00002128 = 0x10;
- _imp_particles_sa = _malloc(0x200);
- _atexit(`dynamic_atexit_destructor_for_'imp_particles_sa'');
- }
- ?setCubeWidth@SweepRenderer@@SAXM@Z(*(float *)(this + 0x8c));
- ?setRenderR@SweepRenderer@@SAXM@Z(*(float *)(this + 0x94));
- ?setCutoffR@SweepRenderer@@SAXM@Z(*(float *)(this + 0x90));
- ?setCalcSignFunc@SweepRenderer@@SAXP6A_NEEEMMMPAVProjectingParticleCache@@@Z@Z(calcSign);
- ?setCalcSign2Func@SweepRenderer@@SAXP6AXEEEMMMQAUCornerInfo@@PAVProjectingParticleCache@@@Z@Z
- (calcSign2);
- ?setCalcCornerFunc@SweepRenderer@@SAXHP6AXEEEMMMQAUCornerInfo@@PAVProjectingParticleCache@@@Z@Z
- (0x20,calcCornerNormal);
- ?setCalcVertexFunc@SweepRenderer@@SAXP6AXMMMHPBUCornerInfo@@0PAVIndexTriVertexBuffer@@@Z@Z
- (calcVertexNormalDebugColor);
- pIVar9 = ?GetMaterial@CParticleSystemDefinition@@QAEPAVIMaterial@@XZ
- (*(CParticleSystemDefinition **)(param_2 + 0x48));
- local_54 =
- ?GetRenderList@CParticleCollection@@QAEPBUParticleRenderData_t@@PAVIMatRenderContext@@_NPAHPAUCParticleVisibilityData@@@Z
- (param_2,param_1,false,local_5c,(CParticleVisibilityData *)param_4);
- iVar4 = *(int *)(param_2 + 0xe0);
- local_50 = *(uint *)(param_2 + 0x140) >> 2;
- ?GetBounds@CParticleCollection@@QAEXPAVVector@@0@Z
- (param_2,(Vector *)&local_34,(Vector *)&local_40);
- local_4c = (local_40 + local_34) * __real@3f000000;
- local_48 = (local_3c + local_30) * __real@3f000000;
- local_44 = (local_38 + local_2c) * __real@3f000000;
- (**(code **)(**(int **)(g_pParticleSystemMgr + 0xf0) + 100))(&local_4c);
- (**(code **)(*(int *)param_1 + 0x24))(pIVar9,&local_50);
- local_34 = 0.00000000;
- local_30 = 0.00000000;
- local_2c = 0.00000000;
- uStack40 = 0;
- ?beginFrame@ImpTiler@@QAEXAAVPoint3D@@PAX_N@Z(pIStack108,(Point3D *)&local_34,¶m_1,true);
- while (DAT_00002124 < (int)pIVar8) {
- ??0ImpParticle@@QAE@XZ((ImpParticle *)&local_34);
- if (_DAT_00002128 <= DAT_00002124) {
- _DAT_00002128 = DAT_00002124 * 2 + 2;
- _imp_particles_sa = _realloc(_imp_particles_sa,_DAT_00002128 * 0x20);
- }
- puVar10 = (undefined8 *)(DAT_00002124 * 0x20 + (int)_imp_particles_sa);
- *puVar10 = *extraout_EAX;
- puVar10[1] = extraout_EAX[1];
- puVar10[2] = extraout_EAX[2];
- puVar10[3] = extraout_EAX[3];
- DAT_00002124 = DAT_00002124 + 1;
- }
- iVar13 = 0;
- iStack100 = 0;
- if (0 < (int)pIVar8) {
- iVar14 = iStack96 + 4;
- do {
- uVar7 = __real@3f800000;
- pvVar6 = _imp_particles_sa;
- uVar5 = *(uint *)(iVar14 + -0x10);
- iVar14 = iVar14 + -0x10;
- iVar11 = ((int)(uVar5 + ((int)uVar5 >> 0x1f & 3U)) >> 2) * local_5c[0];
- iVar1 = (uVar5 & 3) + iVar11 * 4;
- uVar2 = *(undefined4 *)(iVar4 + 0x10 + iVar1 * 4);
- uVar3 = *(undefined4 *)(iVar4 + ((uVar5 & 3) + 8 + iVar11 * 4) * 4);
- *(undefined4 *)((int)_imp_particles_sa + iVar13) = *(undefined4 *)(iVar4 + iVar1 * 4);
- pIVar12 = (ImpParticle *)((int)pvVar6 + iVar13);
- *(undefined4 *)(pIVar12 + 4) = uVar2;
- *(undefined4 *)(pIVar12 + 8) = uVar3;
- *(undefined4 *)(pIVar12 + 0x14) = uVar7;
- *(undefined4 *)(pIVar12 + 0x10) = uVar7;
- ?insertParticle@ImpTiler@@QAEXPAVImpParticle@@@Z(pIStack108,pIVar12);
- iStack100 = iStack100 + 1;
- iVar13 = iVar13 + 0x20;
- } while (iStack100 < (int)pIVar8);
- }
- ?drawSurface@ImpTiler@@QAEXXZ(pIStack108);
- ?endFrame@ImpTiler@@QAEXXZ(pIStack108);
- ?returnTiler@ImpTilerFactory@@QAEXPAVImpTiler@@@Z(factory,pIStack108);
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement