Thread: Crash Issue
View Single Post
  #11  
Old 10-20-2011, 01:50 PM
Derision
Developer
 
Join Date: Feb 2004
Location: UK
Posts: 1,540
Default

Looking at your call stack, and looking at the source code, I could see this crash happening if you had an item with no innate focus effect, but that item has an aug which does have
a focus effect.

Not sure if that code has been altered recently, but this patch may fix it (totally untested):
Code:
Index: spell_effects.cpp
===================================================================
--- spell_effects.cpp   (revision 2034)
+++ spell_effects.cpp   (working copy)
@@ -4110,20 +4110,20 @@
                                                focus_max = CalcFocusEffect(type, TempItemAug->Focus.Effect, spell_id, true);
                                                if (focus_max > 0 && focus_max_real >= 0 && focus_max > focus_max_real) {
                                                        focus_max_real = focus_max;
-                                                       UsedItem = TempItem;
+                                                       UsedItem = TempItemAug;
                                                } else if (focus_max < 0 && focus_max < focus_max_real) {
                                                        focus_max_real = focus_max;
-                                                       UsedItem = TempItem;
+                                                       UsedItem = TempItemAug;
                                                }
                                        }
                                        else {
                                                Total = CalcFocusEffect(type, TempItemAug->Focus.Effect, spell_id);
                                                if (Total > 0 && realTotal >= 0 && Total > realTotal) {
                                                        realTotal = Total;
-                                                       UsedItem = TempItem;
+                                                       UsedItem = TempItemAug;
                                                } else if (Total < 0 && Total < realTotal) {
                                                        realTotal = Total;
-                                                       UsedItem = TempItem;
+                                                       UsedItem = TempItemAug;
                                                }
                                        }
Reply With Quote