summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt7
-rw-r--r--src/map/status.c3
2 files changed, 10 insertions, 0 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 0b160bfbe..3ef72b78c 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -4,6 +4,13 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2006/08/15
+ * Added a crash-fix on status_calc_bl_sub_homun to abort in case the homun
+ has no master (need to clean up this function later) [Skotlex]
+ * Tested char-txt load/save, it seems to be working fine, but you should
+ STILL backup, as I only launched the server (read old character format),
+ closed it down (saved into the new format) and relaunch it (read the new
+ format) and it didn't give problems (but there's still the possibility of
+ some field being read in the incorrect offset or such). [Skotlex]
* Updated the char save structure for char-TXT servers so that the homun id
will be saved, now also the map info (last point, save point, memo maps)
are now saved using the mapindex rather than the string. BACKUP BEFORE
diff --git a/src/map/status.c b/src/map/status.c
index 4022565e0..4b4609fa5 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -2537,6 +2537,9 @@ void status_calc_bl_sub_hom(struct homun_data *hd, unsigned long flag) //[orn]
struct status_data *status = &hd->battle_status, *b_status = &hd->base_status;
int skill = 0;
+ if (!hd->master)
+ return; //Don't do anything if there isn't a master...
+
if(flag&(SCB_MAXHP|SCB_VIT))
{
flag|=SCB_MAXHP; //Ensures client-side refresh