From 134fc00a1906793184ede7ec4351afbf2d204569 Mon Sep 17 00:00:00 2001
From: Kenpachi Developer <Kenpachi.Developer@gmx.de>
Date: Tue, 21 Apr 2020 07:42:04 +0200
Subject: Add pc_autocast_clear_current() function

---
 src/map/pc.c | 20 ++++++++++++++++++++
 src/map/pc.h |  1 +
 2 files changed, 21 insertions(+)

diff --git a/src/map/pc.c b/src/map/pc.c
index 9c1342836..56a4b938d 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -5333,6 +5333,25 @@ static int pc_useitem(struct map_session_data *sd, int n)
 	return 1;
 }
 
+/**
+ * Unsets a character's currently processed auto-cast skill data.
+ *
+ * @param sd The character.
+ *
+ **/
+static void pc_autocast_clear_current(struct map_session_data *sd)
+{
+	nullpo_retv(sd);
+
+	sd->auto_cast_current.type = AUTOCAST_NONE;
+	sd->auto_cast_current.skill_id = 0;
+	sd->auto_cast_current.skill_lv = 0;
+	sd->auto_cast_current.itemskill_conditions_checked = false;
+	sd->auto_cast_current.itemskill_check_conditions = true;
+	sd->auto_cast_current.itemskill_instant_cast = false;
+	sd->auto_cast_current.itemskill_cast_on_self = false;
+}
+
 /**
  * Unsets a character's auto-cast related data.
  *
@@ -12935,6 +12954,7 @@ void pc_defaults(void)
 	pc->unequipitem_pos = pc_unequipitem_pos;
 	pc->checkitem = pc_checkitem;
 	pc->useitem = pc_useitem;
+	pc->autocast_clear_current = pc_autocast_clear_current;
 	pc->autocast_clear = pc_autocast_clear;
 	pc->autocast_set_current = pc_autocast_set_current;
 	pc->autocast_remove = pc_autocast_remove;
diff --git a/src/map/pc.h b/src/map/pc.h
index 9012a67cb..eff317847 100644
--- a/src/map/pc.h
+++ b/src/map/pc.h
@@ -1033,6 +1033,7 @@ END_ZEROED_BLOCK; /* End */
 	void (*unequipitem_pos) (struct map_session_data *sd, int n, int pos);
 	int (*checkitem) (struct map_session_data *sd);
 	int (*useitem) (struct map_session_data *sd,int n);
+	void (*autocast_clear_current) (struct map_session_data *sd);
 	int (*autocast_clear) (struct map_session_data *sd);
 	void (*autocast_set_current) (struct map_session_data *sd, int skill_id);
 	void (*autocast_remove) (struct map_session_data *sd, enum autocast_type type, int skill_id, int skill_lv);
-- 
cgit v1.2.3-70-g09d2