diff SpriteObject.cpp @ 619:574cc56e05e9

ParticleEngine crash in temple
author Nomad
date Fri, 08 Mar 2013 17:08:08 +0200
parents cb0ad52d6a26
children d5473972234d
line wrap: on
line diff
--- a/SpriteObject.cpp	Fri Mar 08 16:06:49 2013 +0200
+++ b/SpriteObject.cpp	Fri Mar 08 17:08:08 2013 +0200
@@ -221,7 +221,7 @@
   int v49; // [sp+Ch] [bp-9Ch]@52
   int v50; // [sp+10h] [bp-98h]@52
   Vec3_int_ v51; // [sp+14h] [bp-94h]@11
-  Particle_ Dst; // [sp+20h] [bp-88h]@45
+  Particle_sw Dst; // [sp+20h] [bp-88h]@45
   unsigned int uLayingItemID_; // [sp+88h] [bp-20h]@1
   int v54; // [sp+8Ch] [bp-1Ch]@1
   int v55; // [sp+90h] [bp-18h]@1
@@ -324,8 +324,8 @@
     Dst.flt_18 = 0.0;
     if ( HIBYTE(v23) & 2 )
     {
-      Dst.bFree = 1036;
-      Dst.uDiffuse = 16727070;
+      Dst.type = ParticleType_Bitmap | ParticleType_Rotating | ParticleType_8;
+      Dst.uDiffuse = 0xFF3C1E;
       v24 = rand();
       v48 = (TEXTURE_TYPE)0;
 LABEL_83:
@@ -335,7 +335,7 @@
     {
       if ( HIBYTE(v23) & 4 )
       {
-        Dst.bFree = 512;
+        Dst.type = ParticleType_Line;
         Dst.uDiffuse = rand();
         Dst.timeToLive = 64;
         Dst.uTextureID = 0;
@@ -344,7 +344,7 @@
         pGame->pParticleEngine->AddParticle(&Dst);
         return;
       }
-      Dst.bFree = 1032;
+      Dst.type = ParticleType_Bitmap | ParticleType_8;
       Dst.uDiffuse = rand();
       v24 = rand();
       v48 = (TEXTURE_TYPE)0;
@@ -464,22 +464,22 @@
         Dst.flt_18 = 0.0;
         if ( HIBYTE(v45) & 2 )
         {
-          Dst.bFree = 1036;
-          Dst.uDiffuse = 16727070;
+          Dst.type = ParticleType_Bitmap | ParticleType_Rotating | ParticleType_8;
+          Dst.uDiffuse = 0xFF3C1E;
           v24 = rand();
           v48 = (TEXTURE_TYPE)0;
           goto LABEL_83;
         }
         if ( HIBYTE(v45) & 4 )
         {
-          Dst.bFree = 512;
+          Dst.type = ParticleType_Line;
           v46 = rand();
           Dst.uTextureID = 0;
           Dst.uDiffuse = v46;
           Dst.timeToLive = 64;
           goto LABEL_89;
         }
-        Dst.bFree = 1032;
+        Dst.type = ParticleType_Bitmap | ParticleType_8;
         Dst.uDiffuse = rand();
         v24 = rand();
         v48 = (TEXTURE_TYPE)0;
@@ -628,7 +628,7 @@
   const char *v32; // [sp-8h] [bp-98h]@68
   enum TEXTURE_TYPE v33; // [sp-4h] [bp-94h]@19
   enum TEXTURE_TYPE v34; // [sp-4h] [bp-94h]@68
-  Particle_ Dst; // [sp+Ch] [bp-84h]@18
+  Particle_sw Dst; // [sp+Ch] [bp-84h]@18
   unsigned int uLayingItemID_; // [sp+74h] [bp-1Ch]@1
   ObjectDesc *v37; // [sp+78h] [bp-18h]@1
   unsigned int uFaceID; // [sp+7Ch] [bp-14h]@4
@@ -749,8 +749,8 @@
         Dst.flt_18 = 0.0;
         if ( v29 & 0x200 )
         {
-          Dst.bFree = 1036;
-          Dst.uDiffuse = 0xFF3C1Eu;
+          Dst.type = ParticleType_Bitmap | ParticleType_Rotating | ParticleType_8;
+          Dst.uDiffuse = 0xFF3C1E;
           v30 = rand();
           v34 = (TEXTURE_TYPE)v8;
           v32 = "effpar01";
@@ -759,7 +759,7 @@
         {
           if ( v29 & 0x400 )
             goto LABEL_70;
-          Dst.bFree = 1032;
+          Dst.type = ParticleType_Bitmap | ParticleType_8;
           Dst.uDiffuse = rand();
           v30 = rand();
           v34 = (TEXTURE_TYPE)v8;
@@ -925,8 +925,8 @@
       Dst.flt_18 = 0.0;
       if ( v10 & 0x200 )
       {
-        Dst.bFree = 1036;
-        Dst.uDiffuse = 0xFF3C1Eu;
+        Dst.type = ParticleType_Bitmap | ParticleType_Rotating | ParticleType_8;
+        Dst.uDiffuse = 0xFF3C1E;
         Dst.flt_28 = 1.0;
         v11 = rand();
         v33 = (TEXTURE_TYPE)v8;
@@ -937,7 +937,7 @@
         if ( v10 & 0x400 )
         {
 LABEL_70:
-          Dst.bFree = 512;
+          Dst.type = ParticleType_Line;
           Dst.uDiffuse = rand();
           Dst.timeToLive = 64;
           Dst.uTextureID = v8;
@@ -945,7 +945,7 @@
           Dst.flt_28 = 1.0;
           goto LABEL_72;
         }
-        Dst.bFree = 1032;
+        Dst.type = ParticleType_Bitmap | ParticleType_8;
         Dst.uDiffuse = rand();
         Dst.flt_28 = 1.0;
         v11 = rand();