diff options
316 files changed, 2146 insertions, 1672 deletions
diff --git a/configure.ac b/configure.ac index d1ec818ac99..bd2b492ebeb 100644 --- a/configure.ac +++ b/configure.ac @@ -183,39 +183,6 @@ Debugging options: ]) AC_MSG_RESULT($TRINITYD_DEBUG_INFO) - -# Enable CLI console? -AC_MSG_CHECKING(whether cli console is enabled) -TRINITYD_ENABLE_CLI=no -AC_ARG_ENABLE(cli, -[ --enable-cli Turn on command console system], -[ - if test "$enableval" = "yes" ; then - CFLAGS="-DENABLE_CLI $CFLAGS" - CXXFLAGS="-DENABLE_CLI $CXXFLAGS" - TRINITYD_ENABLE_CLI=yes - elif test "$withval" != "no" ; then - AC_MSG_ERROR(Please choose yes or no) - fi -]) -AC_MSG_RESULT($TRINITYD_ENABLE_CLI) - -# Enable remote console? -AC_MSG_CHECKING(whether remote console is enabled) -TRINITYD_ENABLE_RA=no -AC_ARG_ENABLE(ra, -[ --enable-ra Turn on remote console system], -[ - if test "$enableval" = "yes" ; then - CFLAGS="-DENABLE_RA $CFLAGS" - CXXFLAGS="-DENABLE_RA $CXXFLAGS" - TRINITYD_ENABLE_RA=yes - elif test "$withval" != "no" ; then - AC_MSG_ERROR(Please choose yes or no) - fi -]) -AC_MSG_RESULT($TRINITYD_ENABLE_RA) - # Enable large cells? AC_MSG_CHECKING(whether we use large cells) TRINITYD_ENABLE_LC=no @@ -263,10 +230,8 @@ AC_CHECK_HEADERS([zlib.h]) AC_HEADER_STDBOOL AC_C_CONST AC_C_INLINE -AC_TYPE_SIZE_T AC_HEADER_TIME AC_STRUCT_TM -AC_TYPE_UINT64_T AC_C_VOLATILE AC_CHECK_TYPES([ptrdiff_t]) @@ -324,8 +289,6 @@ TRINI_LIBS="$POSTGRE_LIBS $MYSQL_LIBS $ZLIB $COMPATLIB $SSLLIB $TRINI_LIBS" ## Export defined variables AC_SUBST(DOXYGEN) AC_SUBST(TRINITYD_DEBUG_INFO) -AC_SUBST(TRINITYD_ENABLE_CLI) -AC_SUBST(TRINITYD_ENABLE_RA) ## Additional CPPFLAGS and LDFLAGS. AC_SUBST(TRINI_INCLUDES) diff --git a/contrib/mysql_to_pgsql/src/defines.h b/contrib/mysql_to_pgsql/src/defines.h index 662a7aab2fd..ed151bf5fae 100644 --- a/contrib/mysql_to_pgsql/src/defines.h +++ b/contrib/mysql_to_pgsql/src/defines.h @@ -89,9 +89,20 @@ string ConvertNativeType(enum_field_types mysqlType, uint32 length) case FIELD_TYPE_INT24: return "integer"; case FIELD_TYPE_LONGLONG: - return "int8"; case FIELD_TYPE_LONG: - return "bigint"; + { + string temp; + char str[10]; + temp = "numeric"; + if (length) + { + temp.append("("); + sprintf(str,"%d",length); + temp.append(str); + temp.append(")"); + } + return temp; + } case FIELD_TYPE_DECIMAL: case FIELD_TYPE_FLOAT: case FIELD_TYPE_DOUBLE: diff --git a/contrib/vmap_extractor_v2/stormlib/StormPort.h b/contrib/vmap_extractor_v2/stormlib/StormPort.h index 4cb8d84bd57..6254f84e725 100644 --- a/contrib/vmap_extractor_v2/stormlib/StormPort.h +++ b/contrib/vmap_extractor_v2/stormlib/StormPort.h @@ -20,7 +20,7 @@ /* 12.11.03 1.02 Dan Macintosh compatibility */ /* 24.07.04 1.03 Sam Mac OS X compatibility */ /* 22.11.06 1.04 Sam Mac OS X compatibility (for StormLib 6.0) */ -/* 31.12.06 1.05 XPinguin Full GNU/Linux compatibility */ +/* 31.12.06 1.05 XPinguin Full GNU/Linux compatibility */ /*****************************************************************************/ #ifndef __STORMPORT_H__ diff --git a/contrib/vmap_extractor_v2/stormlib/StormPortLinux.cpp b/contrib/vmap_extractor_v2/stormlib/StormPortLinux.cpp index 0cd827fde9f..afbbd985a7f 100644 --- a/contrib/vmap_extractor_v2/stormlib/StormPortLinux.cpp +++ b/contrib/vmap_extractor_v2/stormlib/StormPortLinux.cpp @@ -2,7 +2,7 @@ * * Description: implementation for StormLib - linux port * intended to be used in GLdiablo -* +* * ----> StormLib was originally developed for Windows by * Ladislav Zezula (www.zezula.net), and he did * a _great_ job! Thanks Ladislav! @@ -17,9 +17,9 @@ * * Author: Marko Friedemann <marko.friedemann@bmx-chemnitz.de> * Created at: Mon Jan 29 19:01:37 CEST 2001 -* Computer: whiplash.flachland-chemnitz.de +* Computer: whiplash.flachland-chemnitz.de * System: Linux 2.4.0 on i686 -* +* * Copyright (c) 2001 BMX-Chemnitz.DE All rights reserved. * ********************************************************************/ @@ -163,6 +163,6 @@ BOOL DeleteFile(const char *lpFileName) BOOL MoveFile(const char *lpExistingFileName, const char *lpNewFileName) { return rename(lpExistingFileName, lpNewFileName); -} +} #endif diff --git a/contrib/vmap_extractor_v2/stormlib/bzip2/blocksort.c b/contrib/vmap_extractor_v2/stormlib/bzip2/blocksort.c index 33ec9f5dcb0..906124b97e6 100644 --- a/contrib/vmap_extractor_v2/stormlib/bzip2/blocksort.c +++ b/contrib/vmap_extractor_v2/stormlib/bzip2/blocksort.c @@ -17,16 +17,16 @@ 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - 2. The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product + 2. The origin of this software must not be misrepresented; you must + not claim that you wrote the original software. If you use this + software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 3. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. - 4. The name of the author may not be used to endorse or promote - products derived from this software without specific prior written + 4. The name of the author may not be used to endorse or promote + products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS @@ -57,8 +57,8 @@ For more information on these sources, see the manual. - To get some idea how the block sorting algorithms in this file - work, read my paper + To get some idea how the block sorting algorithms in this file + work, read my paper On the Performance of BWT Sorting Algorithms in Proceedings of the IEEE Data Compression Conference 2000, Snowbird, Utah, USA, 27-30 March 2000. The main sort in this @@ -321,7 +321,7 @@ void fallbackSort ( UInt32* fmap, r = -1; while (1) { - /*-- find the next non-singleton bucket --*/ + /*-- find the next non-singleton bucket --*/ k = r + 1; while (ISSET_BH(k) && UNALIGNED_BH(k)) k++; if (ISSET_BH(k)) { diff --git a/contrib/vmap_extractor_v2/stormlib/bzip2/bzlib.c b/contrib/vmap_extractor_v2/stormlib/bzip2/bzlib.c index 195f51a7840..3d405f9322a 100644 --- a/contrib/vmap_extractor_v2/stormlib/bzip2/bzlib.c +++ b/contrib/vmap_extractor_v2/stormlib/bzip2/bzlib.c @@ -471,7 +471,7 @@ int BZ_API(BZ2_bzCompress) ( bz_stream *strm, int action ) return progress ? BZ_RUN_OK : BZ_PARAM_ERROR; } else - if (action == BZ_FLUSH) { + if (action == BZ_FLUSH) { s->avail_in_expect = strm->avail_in; s->mode = BZ_M_FLUSHING; goto preswitch; diff --git a/contrib/vmap_extractor_v2/stormlib/bzip2/compress.c b/contrib/vmap_extractor_v2/stormlib/bzip2/compress.c index 7e0c29155ab..156056fb376 100644 --- a/contrib/vmap_extractor_v2/stormlib/bzip2/compress.c +++ b/contrib/vmap_extractor_v2/stormlib/bzip2/compress.c @@ -373,14 +373,14 @@ void sendMTFValues ( EState* s ) /*--- Set up an auxiliary length table which is used to fast-track - the common case (nGroups == 6). + the common case (nGroups == 6). ---*/ if (nGroups == 6) { for (v = 0; v < alphaSize; v++) { s->len_pack[v][0] = (s->len[1][v] << 16) | s->len[0][v]; s->len_pack[v][1] = (s->len[3][v] << 16) | s->len[2][v]; s->len_pack[v][2] = (s->len[5][v] << 16) | s->len[4][v]; - } + } } nSelectors = 0; @@ -429,14 +429,14 @@ void sendMTFValues ( EState* s ) cost[4] = cost45 & 0xffff; cost[5] = cost45 >> 16; } else { - /*--- slow version which correctly handles all situations ---*/ - for (i = gs; i <= ge; i++) { + /*--- slow version which correctly handles all situations ---*/ + for (i = gs; i <= ge; i++) { UInt16 icv = mtfv[i]; for (t = 0; t < nGroups; t++) cost[t] += s->len[t][icv]; } } - - /*-- + + /*-- Find the coding table which is best for this group, and record its identity in the selector table. --*/ @@ -470,7 +470,7 @@ void sendMTFValues ( EState* s ) # undef BZ_ITUR } else { - /*--- slow version which correctly handles all situations ---*/ + /*--- slow version which correctly handles all situations ---*/ for (i = gs; i <= ge; i++) s->rfreq[bt][ mtfv[i] ]++; } @@ -623,15 +623,14 @@ void sendMTFValues ( EState* s ) # undef BZ_ITAH } else { - /*--- slow version which correctly handles all situations ---*/ + /*--- slow version which correctly handles all situations ---*/ for (i = gs; i <= ge; i++) { - bsW ( s, + bsW ( s, s->len [s->selector[selCtr]] [mtfv[i]], s->code [s->selector[selCtr]] [mtfv[i]] ); } } - gs = ge+1; selCtr++; } diff --git a/dep/include/sockets/socket_include.h b/dep/include/sockets/socket_include.h index 31960ccee05..dcfd4acfbd6 100644 --- a/dep/include/sockets/socket_include.h +++ b/dep/include/sockets/socket_include.h @@ -150,14 +150,14 @@ namespace SOCKETS_NAMESPACE { # error FreeBSD versions prior to 400014 does not support ipv6 # endif -#elif defined __NetBSD__ -# if !defined(MSG_NOSIGNAL) -# define MSG_NOSIGNAL 0 -# endif -# include <netinet/in.h> -typedef in_addr_t ipaddr_t; -typedef in_port_t port_t; -#elif defined MACOSX +#elif defined (__NetBSD__) || defined (__OpenBSD__) +# if !defined(MSG_NOSIGNAL) +# define MSG_NOSIGNAL 0 +# endif +# include <netinet/in.h> +typedef in_addr_t ipaddr_t; +typedef in_port_t port_t; +#elif defined MACOSX // ---------------------------------------- // Mac OS X #include <string.h> diff --git a/dep/src/g3dlite/System.cpp b/dep/src/g3dlite/System.cpp index cb7169a4c4d..88fd39b52ca 100644 --- a/dep/src/g3dlite/System.cpp +++ b/dep/src/g3dlite/System.cpp @@ -23,6 +23,10 @@ #include "G3D/debug.h" #include "G3D/format.h" +#if defined(__OpenBSD__) + #include <stdint.h> +#endif + #ifdef G3D_WIN32 #include <conio.h> diff --git a/dep/src/sockets/SocketHandler.cpp b/dep/src/sockets/SocketHandler.cpp index 7ade1e99eb6..48bd1a6f61c 100644 --- a/dep/src/sockets/SocketHandler.cpp +++ b/dep/src/sockets/SocketHandler.cpp @@ -34,6 +34,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #endif #include <stdlib.h> #include <errno.h> +#include <cstdio> #include "SocketHandler.h" #include "UdpSocket.h" diff --git a/dep/src/sockets/StdoutLog.cpp b/dep/src/sockets/StdoutLog.cpp index 054b8489bb3..092e014a68f 100644 --- a/dep/src/sockets/StdoutLog.cpp +++ b/dep/src/sockets/StdoutLog.cpp @@ -30,6 +30,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #ifdef _MSC_VER #pragma warning(disable:4786) #endif + +#include <cstdio> + #include "ISocketHandler.h" #include "Socket.h" #include "StdoutLog.h" diff --git a/dep/src/sockets/TcpSocket.cpp b/dep/src/sockets/TcpSocket.cpp index 9dab541eebe..523b83464bd 100644 --- a/dep/src/sockets/TcpSocket.cpp +++ b/dep/src/sockets/TcpSocket.cpp @@ -44,6 +44,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include <openssl/err.h> #endif #include <map> +#include <cstdio> #include "TcpSocket.h" #include "Utility.h" diff --git a/sql/mangos.sql b/sql/mangos.sql index e8455a0c4ee..346495436d3 100644 --- a/sql/mangos.sql +++ b/sql/mangos.sql @@ -23,7 +23,7 @@ DROP TABLE IF EXISTS `db_version`; CREATE TABLE `db_version` ( `version` varchar(120) default NULL, `creature_ai_version` varchar(120) default NULL, - `required_7908_03_mangos_creature_template_addon` bit(1) default NULL + `required_7945_01_mangos_quest_template` bit(1) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes'; -- @@ -13264,12 +13264,20 @@ CREATE TABLE `quest_template` ( `DetailsEmote2` smallint(5) unsigned NOT NULL default '0', `DetailsEmote3` smallint(5) unsigned NOT NULL default '0', `DetailsEmote4` smallint(5) unsigned NOT NULL default '0', + `DetailsEmoteDelay1` int(11) unsigned NOT NULL default '0', + `DetailsEmoteDelay2` int(11) unsigned NOT NULL default '0', + `DetailsEmoteDelay3` int(11) unsigned NOT NULL default '0', + `DetailsEmoteDelay4` int(11) unsigned NOT NULL default '0', `IncompleteEmote` smallint(5) unsigned NOT NULL default '0', `CompleteEmote` smallint(5) unsigned NOT NULL default '0', `OfferRewardEmote1` smallint(5) unsigned NOT NULL default '0', `OfferRewardEmote2` smallint(5) unsigned NOT NULL default '0', `OfferRewardEmote3` smallint(5) unsigned NOT NULL default '0', `OfferRewardEmote4` smallint(5) unsigned NOT NULL default '0', + `OfferRewardEmoteDelay1` int(11) unsigned NOT NULL default '0', + `OfferRewardEmoteDelay2` int(11) unsigned NOT NULL default '0', + `OfferRewardEmoteDelay3` int(11) unsigned NOT NULL default '0', + `OfferRewardEmoteDelay4` int(11) unsigned NOT NULL default '0', `StartScript` mediumint(8) unsigned NOT NULL default '0', `CompleteScript` mediumint(8) unsigned NOT NULL default '0', PRIMARY KEY (`entry`) diff --git a/sql/realmd.sql b/sql/realmd.sql index fcd7d166359..f9d49de526c 100644 --- a/sql/realmd.sql +++ b/sql/realmd.sql @@ -15,13 +15,33 @@ /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; +/* +-- +-- Table structure for table `realmd_db_version` +-- + +DROP TABLE IF EXISTS `realmd_db_version`; +CREATE TABLE `realmd_db_version` ( + `required_7938_01_realmd_account` bit(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Last applied sql update to DB'; + +-- +-- Dumping data for table `realmd_db_version` +-- + +LOCK TABLES `realmd_db_version` WRITE; +INSERT INTO `realmd_db_version` VALUES +(NULL); +UNLOCK TABLES; +*/ + -- -- Table structure for table `account` -- DROP TABLE IF EXISTS `account`; CREATE TABLE `account` ( - `id` bigint(20) unsigned NOT NULL auto_increment COMMENT 'Identifier', + `id` int(11) unsigned NOT NULL auto_increment COMMENT 'Identifier', `username` varchar(32) NOT NULL default '', `sha_pass_hash` varchar(40) NOT NULL default '', `gmlevel` tinyint(3) unsigned NOT NULL default '0', diff --git a/sql/updates/3649_world.sql b/sql/updates/3649_world.sql index a75ebe7b158..4d1948c753e 100644 --- a/sql/updates/3649_world.sql +++ b/sql/updates/3649_world.sql @@ -3,4 +3,4 @@ UPDATE `gameobject_template` SET `ScriptName` = 'go_ethereum_stasis' WHERE `entr UPDATE `gameobject_template` SET `ScriptName` = 'go_ethereum_stasis' WHERE `entry` = 184595; UPDATE `gameobject_template` SET `ScriptName` = 'go_ethereum_stasis' WHERE `entry` BETWEEN 185461 AND 185464; -UPDATE `creature_template` SET `ScriptName` = 'npc_engineering_tele_trinket' WHERE `entry` IN (14742, 14743, 21493, 21494); +UPDATE `creature_template` SET `ScriptName` = 'npc_engineering_tele_trinket' WHERE `entry` IN (14742, 14743, 21493, 21494);
\ No newline at end of file diff --git a/sql/updates/TC1_1534_world.sql b/sql/updates/3689_TC1_1534_world.sql index cd80a785278..774e0f7ec1b 100644 --- a/sql/updates/TC1_1534_world.sql +++ b/sql/updates/3689_TC1_1534_world.sql @@ -1,3 +1,2 @@ UPDATE `creature_template` SET `ScriptName` = 'mob_ethereal_apprentice' WHERE `entry` = 18430; - -DELETE FROM `creature` WHERE `id` = 18431; +DELETE FROM `creature` WHERE `id` = 18431;
\ No newline at end of file diff --git a/sql/updates/3691_TC1_919_world.sql b/sql/updates/3691_TC1_919_world.sql new file mode 100644 index 00000000000..02e35d5a423 --- /dev/null +++ b/sql/updates/3691_TC1_919_world.sql @@ -0,0 +1,2 @@ +ALTER TABLE version + ADD `core_revision` varchar(120) AFTER `core_version`;
\ No newline at end of file diff --git a/sql/updates/7932_01_characters_character_pet.sql b/sql/updates/3715_mangos_7932_01_characters_character_pet.sql index f797a79774c..7f272c92004 100644 --- a/sql/updates/7932_01_characters_character_pet.sql +++ b/sql/updates/3715_mangos_7932_01_characters_character_pet.sql @@ -1,9 +1,8 @@ --- ALTER TABLE character_db_version CHANGE COLUMN required_7903_01_characters_character_pet required_7932_01_characters_character_pet bit; +/*ALTER TABLE character_db_version CHANGE COLUMN required_7903_01_characters_character_pet required_7932_01_characters_character_pet bit;*/ UPDATE character_pet SET abdata = CONCAT(REPLACE(TRIM(abdata),' ',' '),' '); UPDATE character_pet SET abdata = SUBSTRING_INDEX(SUBSTRING_INDEX(abdata,' ',(10-3)*2),' ',-(10-3-3)*2) - WHERE length(SUBSTRING_INDEX(abdata, ' ', 20)) < length(abdata) and length(SUBSTRING_INDEX(abdata, ' ', 21)) >= length(abdata); - + WHERE length(SUBSTRING_INDEX(abdata, ' ', 20)) < length(abdata) and length(SUBSTRING_INDEX(abdata, ' ', 21)) >= length(abdata);
\ No newline at end of file diff --git a/sql/updates/3724_world.sql b/sql/updates/3724_world.sql index 1269925e0ee..36c8a75c3d1 100644 --- a/sql/updates/3724_world.sql +++ b/sql/updates/3724_world.sql @@ -7,4 +7,4 @@ UPDATE creature_template SET `ScriptName`='npc_ros_dark_rider' WHERE `entry`=287 -- Spellclick spell to mount deathcharger DELETE FROM npc_spellclick_spells WHERE `npc_entry`=28782; INSERT INTO npc_spellclick_spells (`npc_entry`, `spell_id`, `quest_id`, `quest_status`, `cast_flags`) VALUES -(28782, 52280, 12687, 3, 1); +(28782, 52280, 12687, 3, 1);
\ No newline at end of file diff --git a/sql/updates/3729_mangos_7938_01_realmd_account.sql b/sql/updates/3729_mangos_7938_01_realmd_account.sql new file mode 100644 index 00000000000..01c16d0b0bb --- /dev/null +++ b/sql/updates/3729_mangos_7938_01_realmd_account.sql @@ -0,0 +1,4 @@ +/*ALTER TABLE realmd_db_version CHANGE COLUMN required_7867_01_realmd_account required_7938_01_realmd_account bit;*/ + +ALTER TABLE account + CHANGE id id int(11) unsigned NOT NULL auto_increment COMMENT 'Identifier';
\ No newline at end of file diff --git a/sql/updates/3736_world_spell_(dk).sql b/sql/updates/3736_world_spell_(dk).sql new file mode 100644 index 00000000000..4aa0c6b557c --- /dev/null +++ b/sql/updates/3736_world_spell_(dk).sql @@ -0,0 +1,3 @@ +DELETE FROM spell_area WHERE spell = 52693; +INSERT INTO spell_area (`spell`, `area`, `quest_start`, `quest_start_active`, `quest_end`, `aura_spell`, `racemask`, `gender`, `autocast`) VALUES +(52693, 4298, 12687, 1, 12687, 0, 0, 0, 1);
\ No newline at end of file diff --git a/sql/updates/3747_mangos_7945_01_quest_template.sql b/sql/updates/3747_mangos_7945_01_quest_template.sql new file mode 100644 index 00000000000..ab28ccd50f3 --- /dev/null +++ b/sql/updates/3747_mangos_7945_01_quest_template.sql @@ -0,0 +1,9 @@ +ALTER TABLE quest_template + ADD COLUMN `DetailsEmoteDelay1` int(11) unsigned NOT NULL default '0' AFTER `DetailsEmote4`, + ADD COLUMN `DetailsEmoteDelay2` int(11) unsigned NOT NULL default '0' AFTER `DetailsEmoteDelay1`, + ADD COLUMN `DetailsEmoteDelay3` int(11) unsigned NOT NULL default '0' AFTER `DetailsEmoteDelay2`, + ADD COLUMN `DetailsEmoteDelay4` int(11) unsigned NOT NULL default '0' AFTER `DetailsEmoteDelay3`, + ADD COLUMN `OfferRewardEmoteDelay1` int(11) unsigned NOT NULL default '0' AFTER `OfferRewardEmote4`, + ADD COLUMN `OfferRewardEmoteDelay2` int(11) unsigned NOT NULL default '0' AFTER `OfferRewardEmoteDelay1`, + ADD COLUMN `OfferRewardEmoteDelay3` int(11) unsigned NOT NULL default '0' AFTER `OfferRewardEmoteDelay2`, + ADD COLUMN `OfferRewardEmoteDelay4` int(11) unsigned NOT NULL default '0' AFTER `OfferRewardEmoteDelay3`; diff --git a/sql/updates/919_world.sql b/sql/updates/919_world.sql deleted file mode 100644 index 7aa9fa363e6..00000000000 --- a/sql/updates/919_world.sql +++ /dev/null @@ -1,3 +0,0 @@ -ALTER TABLE version - ADD `core_revision` varchar(120) AFTER `core_version`; - diff --git a/src/bindings/scripts/include/sc_creature.cpp b/src/bindings/scripts/include/sc_creature.cpp index b0ff9d48584..a1736689522 100644 --- a/src/bindings/scripts/include/sc_creature.cpp +++ b/src/bindings/scripts/include/sc_creature.cpp @@ -70,7 +70,7 @@ void SummonList::DespawnAll() { erase(begin()); summon->SetVisibility(VISIBILITY_OFF); - if(summon->HasSummonMask(SUMMON_MASK_SUMMON) && !summon->isPet()) + if(summon->isSummon() && !summon->isPet()) ((TempSummon*)summon)->UnSummon(); else summon->setDeathState(JUST_DIED); @@ -491,7 +491,7 @@ void ScriptedAI::DoTeleportPlayer(Unit* pUnit, float x, float y, float z, float return; } - ((Player*)pUnit)->TeleportTo(pUnit->GetMapId(), x, y, z, o, TELE_TO_NOT_LEAVE_COMBAT); + CAST_PLR(pUnit)->TeleportTo(pUnit->GetMapId(), x, y, z, o, TELE_TO_NOT_LEAVE_COMBAT); } void ScriptedAI::DoTeleportAll(float x, float y, float z, float o) @@ -712,7 +712,7 @@ void LoadOverridenDBCData() SpellEntry *spellInfo; for(uint32 i = 0; i < GetSpellStore()->GetNumRows(); ++i) { - spellInfo = (SpellEntry*)GetSpellStore()->LookupEntry(i); + spellInfo = GET_SPELL(i); if(!spellInfo) continue; diff --git a/src/bindings/scripts/include/sc_creature.h b/src/bindings/scripts/include/sc_creature.h index 3eef1db1947..6e6a16a9f13 100644 --- a/src/bindings/scripts/include/sc_creature.h +++ b/src/bindings/scripts/include/sc_creature.h @@ -13,6 +13,19 @@ #include "CreatureAIImpl.h" #include "InstanceData.h" +#define USE_DYNAMIC_CAST +#ifdef USE_DYNAMIC_CAST +#define CAST_PLR(a) (dynamic_cast<Player*>(a)) +#define CAST_CRE(a) (dynamic_cast<Creature*>(a)) +#define CAST_AI(a,b) (dynamic_cast<a*>(b)) +#else +#define CAST_PLR(a) (static_cast<Player*>(a)) +#define CAST_CRE(a) (static_cast<Creature*>(a)) +#define CAST_AI(a,b) (static_cast<a*>(b)) +#endif + +#define GET_SPELL(a) (const_cast<SpellEntry*>(GetSpellStore()->LookupEntry(a))) + class ScriptedInstance; class SummonList : private std::list<uint64> @@ -57,10 +70,10 @@ struct TRINITY_DLL_DECL ScriptedAI : public CreatureAI void UpdateAI(const uint32); //Called at creature death - void JustDied(Unit*){} + void JustDied(Unit* who){} //Called at creature killing another unit - void KilledUnit(Unit*){} + void KilledUnit(Unit* who){} // Called when the creature summon successfully other creature void JustSummoned(Creature* ) {} @@ -100,7 +113,7 @@ struct TRINITY_DLL_DECL ScriptedAI : public CreatureAI void Reset() {} //Called at creature aggro either by MoveInLOS or Attack Start - void EnterCombat(Unit*) {} + void EnterCombat(Unit* who) {} //************* //AI Helper Functions @@ -188,10 +201,10 @@ struct TRINITY_DLL_DECL Scripted_NoMovementAI : public ScriptedAI Scripted_NoMovementAI(Creature* creature) : ScriptedAI(creature) {} //Called if IsVisible(Unit *who) is true at each *who move - //void MoveInLineOfSight(Unit *); + //void MoveInLineOfSight(Unit* who); //Called at each attack of m_creature by any victim - void AttackStart(Unit *); + void AttackStart(Unit* who); }; struct TRINITY_DLL_DECL BossAI : public ScriptedAI diff --git a/src/bindings/scripts/include/sc_instance.h b/src/bindings/scripts/include/sc_instance.h index 0620e89af07..25593e05300 100644 --- a/src/bindings/scripts/include/sc_instance.h +++ b/src/bindings/scripts/include/sc_instance.h @@ -14,11 +14,7 @@ #define OUT_LOAD_INST_DATA_COMPLETE debug_log("TSCR: Instance Data Load for Instance %s (Map %d, Instance Id: %d) is complete.",instance->GetMapName(), instance->GetId(), instance->GetInstanceId()) #define OUT_LOAD_INST_DATA_FAIL error_log("TSCR: Unable to load Instance Data for Instance %s (Map %d, Instance Id: %d).",instance->GetMapName(), instance->GetId(), instance->GetInstanceId()) -class TRINITY_DLL_DECL ScriptedInstance : public InstanceData -{ - public: - ScriptedInstance(Map *map) : InstanceData(map) {} -}; +#define ScriptedInstance InstanceData #endif diff --git a/src/bindings/scripts/scripts/boss/boss_taerar.cpp b/src/bindings/scripts/scripts/boss/boss_taerar.cpp index 73ca89fbcc8..d402a274cb6 100644 --- a/src/bindings/scripts/scripts/boss/boss_taerar.cpp +++ b/src/bindings/scripts/scripts/boss/boss_taerar.cpp @@ -98,7 +98,7 @@ struct TRINITY_DLL_DECL boss_taerarAI : public ScriptedAI Rand = 0; Summoned = DoSpawnCreature(15302, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(victim); + (Summoned->AI())->AttackStart(victim); } void UpdateAI(const uint32 diff) diff --git a/src/bindings/scripts/scripts/boss/boss_ysondre.cpp b/src/bindings/scripts/scripts/boss/boss_ysondre.cpp index 0ec6d31ca05..baa31bb6a25 100644 --- a/src/bindings/scripts/scripts/boss/boss_ysondre.cpp +++ b/src/bindings/scripts/scripts/boss/boss_ysondre.cpp @@ -88,7 +88,7 @@ struct TRINITY_DLL_DECL boss_ysondreAI : public ScriptedAI Rand = 0; Summoned = DoSpawnCreature(15260, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(victim); + (Summoned->AI())->AttackStart(victim); } void UpdateAI(const uint32 diff) diff --git a/src/bindings/scripts/scripts/examples/example_escort.cpp b/src/bindings/scripts/scripts/examples/example_escort.cpp index 4d701ed0fdf..334a85be954 100644 --- a/src/bindings/scripts/scripts/examples/example_escort.cpp +++ b/src/bindings/scripts/scripts/examples/example_escort.cpp @@ -165,7 +165,7 @@ CreatureAI* GetAI_example_escort(Creature *_Creature) testAI->AddWaypoint(3, 1231, -4419, 23, 5000); testAI->AddWaypoint(4, 1208, -4392, 23, 5000); - return (CreatureAI*)testAI; + return testAI; } bool GossipHello_example_escort(Player *player, Creature *_Creature) @@ -186,7 +186,7 @@ bool GossipSelect_example_escort(Player *player, Creature *_Creature, uint32 sen if (action == GOSSIP_ACTION_INFO_DEF+1) { player->CLOSE_GOSSIP_MENU(); - ((npc_escortAI*)(_Creature->AI()))->Start(true, true, true, player->GetGUID()); + CAST_AI(npc_escortAI, (_Creature->AI()))->Start(true, true, true, player->GetGUID()); return true; // prevent mangos core handling } @@ -194,7 +194,7 @@ bool GossipSelect_example_escort(Player *player, Creature *_Creature, uint32 sen if (action == GOSSIP_ACTION_INFO_DEF+2) { player->CLOSE_GOSSIP_MENU(); - ((npc_escortAI*)(_Creature->AI()))->Start(false, false, false, player->GetGUID()); + CAST_AI(npc_escortAI, (_Creature->AI()))->Start(false, false, false, player->GetGUID()); return true; // prevent mangos core handling } @@ -202,7 +202,7 @@ bool GossipSelect_example_escort(Player *player, Creature *_Creature, uint32 sen if (action == GOSSIP_ACTION_INFO_DEF+3) { player->CLOSE_GOSSIP_MENU(); - ((npc_escortAI*)(_Creature->AI()))->Start(false, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (_Creature->AI()))->Start(false, true, false, player->GetGUID()); return true; // prevent mangos core handling } diff --git a/src/bindings/scripts/scripts/item/item_scripts.cpp b/src/bindings/scripts/scripts/item/item_scripts.cpp index 4e1b1096ab8..f577d0fed9c 100644 --- a/src/bindings/scripts/scripts/item/item_scripts.cpp +++ b/src/bindings/scripts/scripts/item/item_scripts.cpp @@ -107,7 +107,7 @@ bool ItemUse_item_attuned_crystal_cores(Player *player, Item* _Item, SpellCastTa targets.getUnitTarget()->GetEntry() == 24972 && targets.getUnitTarget()->isDead() && (player->GetQuestStatus(11524) == QUEST_STATUS_INCOMPLETE || player->GetQuestStatus(11525) == QUEST_STATUS_INCOMPLETE) ) { - ((Creature*)targets.getUnitTarget())->RemoveCorpse(); + CAST_CRE(targets.getUnitTarget())->RemoveCorpse(); return false; } @@ -191,7 +191,7 @@ bool ItemUse_item_nether_wraith_beacon(Player *player, Item* _Item, SpellCastTar Nether = player->SummonCreature(22408,player->GetPositionX() ,player->GetPositionY()+20, player->GetPositionZ(), 0,TEMPSUMMON_TIMED_DESPAWN,180000); Nether = player->SummonCreature(22408,player->GetPositionX() ,player->GetPositionY()-20, player->GetPositionZ(), 0,TEMPSUMMON_TIMED_DESPAWN,180000); if (Nether) - ((CreatureAI*)Nether->AI())->AttackStart(player); + (Nether->AI())->AttackStart(player); } return false; } @@ -276,7 +276,7 @@ bool ItemUse_item_muiseks_vessel(Player *player, Item* _Item, SpellCastTargets c if( uTarget && uTarget->GetTypeId()==TYPEID_UNIT && uTarget->isDead() && (uTarget->GetEntry()==cEntry || uTarget->GetEntry()==cEntry2 || uTarget->GetEntry()==cEntry3 || uTarget->GetEntry()==cEntry4) ) { - ((Creature*)uTarget)->RemoveCorpse(); + CAST_CRE(uTarget)->RemoveCorpse(); return false; } } @@ -463,7 +463,7 @@ bool ItemUse_item_yehkinyas_bramble(Player *player, Item* _Item, SpellCastTarget // cast only on corpse 5307 or 5308 (unit_target->GetEntry()==5307 || unit_target->GetEntry()==5308) ) { - ((Creature*)unit_target)->RemoveCorpse(); // remove corpse for cancelling second use + CAST_CRE(unit_target)->RemoveCorpse(); // remove corpse for cancelling second use return false; // all ok } } diff --git a/src/bindings/scripts/scripts/npc/npc_escortAI.h b/src/bindings/scripts/scripts/npc/npc_escortAI.h index 6defa4413e1..3431e84c6f8 100644 --- a/src/bindings/scripts/scripts/npc/npc_escortAI.h +++ b/src/bindings/scripts/scripts/npc/npc_escortAI.h @@ -38,9 +38,9 @@ struct TRINITY_DLL_DECL npc_escortAI : public ScriptedAI npc_escortAI(Creature *c) : ScriptedAI(c), IsBeingEscorted(false), PlayerTimer(1000), MaxPlayerDistance(DEFAULT_MAX_PLAYER_DISTANCE), CanMelee(true), DespawnAtEnd(true), DespawnAtFar(true) {} - void AttackStart(Unit*); + void AttackStart(Unit* who); - void MoveInLineOfSight(Unit*); + void MoveInLineOfSight(Unit* who); void JustRespawned(); diff --git a/src/bindings/scripts/scripts/npc/npcs_special.cpp b/src/bindings/scripts/scripts/npc/npcs_special.cpp index 3a5b4d67bdf..3c0429ee4f3 100644 --- a/src/bindings/scripts/scripts/npc/npcs_special.cpp +++ b/src/bindings/scripts/scripts/npc/npcs_special.cpp @@ -118,7 +118,7 @@ CreatureAI* GetAI_npc_chicken_cluck(Creature *_Creature) bool QuestAccept_npc_chicken_cluck(Player *player, Creature *_Creature, const Quest *_Quest ) { if(_Quest->GetQuestId() == QUEST_CLUCK) - ((npc_chicken_cluckAI*)_Creature->AI())->Reset(); + CAST_AI(npc_chicken_cluckAI, _Creature->AI())->Reset(); return true; } @@ -126,7 +126,7 @@ bool QuestAccept_npc_chicken_cluck(Player *player, Creature *_Creature, const Qu bool QuestComplete_npc_chicken_cluck(Player *player, Creature *_Creature, const Quest *_Quest) { if(_Quest->GetQuestId() == QUEST_CLUCK) - ((npc_chicken_cluckAI*)_Creature->AI())->Reset(); + CAST_AI(npc_chicken_cluckAI, _Creature->AI())->Reset(); return true; } @@ -361,12 +361,12 @@ struct TRINITY_DLL_DECL npc_injured_patientAI : public ScriptedAI { if (caster->GetTypeId() == TYPEID_PLAYER && m_creature->isAlive() && spell->Id == 20804) { - if((((Player*)caster)->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE) || (((Player*)caster)->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE)) + if((CAST_PLR(caster)->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE) || (CAST_PLR(caster)->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE)) { if (Doctorguid) { if(Creature* Doctor = Unit::GetCreature(*m_creature, Doctorguid)) - ((npc_doctorAI*)Doctor->AI())->PatientSaved(m_creature, ((Player*)caster), Coord); + CAST_AI(npc_doctorAI, Doctor->AI())->PatientSaved(m_creature, CAST_PLR(caster), Coord); } } @@ -424,7 +424,7 @@ struct TRINITY_DLL_DECL npc_injured_patientAI : public ScriptedAI if (Doctorguid) { if(Creature* Doctor = Unit::GetCreature((*m_creature), Doctorguid)) - ((npc_doctorAI*)Doctor->AI())->PatientDied(Coord); + CAST_AI(npc_doctorAI, Doctor->AI())->PatientDied(Coord); } } } @@ -561,10 +561,10 @@ void npc_doctorAI::UpdateAI(const uint32 diff) Patient->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE); Patients.push_back(Patient->GetGUID()); - ((npc_injured_patientAI*)Patient->AI())->Doctorguid = m_creature->GetGUID(); + CAST_AI(npc_injured_patientAI, Patient->AI())->Doctorguid = m_creature->GetGUID(); if (Point) - ((npc_injured_patientAI*)Patient->AI())->Coord = Point; + CAST_AI(npc_injured_patientAI, Patient->AI())->Coord = Point; Coordinates.erase(itr); } @@ -577,7 +577,7 @@ void npc_doctorAI::UpdateAI(const uint32 diff) bool QuestAccept_npc_doctor(Player *player, Creature *creature, Quest const *quest ) { if ((quest->GetQuestId() == 6624) || (quest->GetQuestId() == 6622)) - ((npc_doctorAI*)creature->AI())->BeginEvent(player); + CAST_AI(npc_doctorAI, creature->AI())->BeginEvent(player); return true; } @@ -667,7 +667,7 @@ struct TRINITY_DLL_DECL npc_garments_of_questsAI : public npc_escortAI switch(m_creature->GetEntry()) { case ENTRY_SHAYA: - if (((Player*)pCaster)->GetQuestStatus(QUEST_MOON) == QUEST_STATUS_INCOMPLETE) + if (CAST_PLR(pCaster)->GetQuestStatus(QUEST_MOON) == QUEST_STATUS_INCOMPLETE) { if (bIsHealed && !bCanRun && Spell->Id == SPELL_FORTITUDE_R1) { @@ -684,7 +684,7 @@ struct TRINITY_DLL_DECL npc_garments_of_questsAI : public npc_escortAI } break; case ENTRY_ROBERTS: - if (((Player*)pCaster)->GetQuestStatus(QUEST_LIGHT_1) == QUEST_STATUS_INCOMPLETE) + if (CAST_PLR(pCaster)->GetQuestStatus(QUEST_LIGHT_1) == QUEST_STATUS_INCOMPLETE) { if (bIsHealed && !bCanRun && Spell->Id == SPELL_FORTITUDE_R1) { @@ -701,7 +701,7 @@ struct TRINITY_DLL_DECL npc_garments_of_questsAI : public npc_escortAI } break; case ENTRY_DOLF: - if (((Player*)pCaster)->GetQuestStatus(QUEST_LIGHT_2) == QUEST_STATUS_INCOMPLETE) + if (CAST_PLR(pCaster)->GetQuestStatus(QUEST_LIGHT_2) == QUEST_STATUS_INCOMPLETE) { if (bIsHealed && !bCanRun && Spell->Id == SPELL_FORTITUDE_R1) { @@ -718,7 +718,7 @@ struct TRINITY_DLL_DECL npc_garments_of_questsAI : public npc_escortAI } break; case ENTRY_KORJA: - if (((Player*)pCaster)->GetQuestStatus(QUEST_SPIRIT) == QUEST_STATUS_INCOMPLETE) + if (CAST_PLR(pCaster)->GetQuestStatus(QUEST_SPIRIT) == QUEST_STATUS_INCOMPLETE) { if (bIsHealed && !bCanRun && Spell->Id == SPELL_FORTITUDE_R1) { @@ -735,7 +735,7 @@ struct TRINITY_DLL_DECL npc_garments_of_questsAI : public npc_escortAI } break; case ENTRY_DG_KEL: - if (((Player*)pCaster)->GetQuestStatus(QUEST_DARKNESS) == QUEST_STATUS_INCOMPLETE) + if (CAST_PLR(pCaster)->GetQuestStatus(QUEST_DARKNESS) == QUEST_STATUS_INCOMPLETE) { if (bIsHealed && !bCanRun && Spell->Id == SPELL_FORTITUDE_R1) { @@ -755,7 +755,7 @@ struct TRINITY_DLL_DECL npc_garments_of_questsAI : public npc_escortAI //give quest credit, not expect any special quest objectives if (bCanRun) - ((Player*)pCaster)->TalkedToCreature(m_creature->GetEntry(),m_creature->GetGUID()); + CAST_PLR(pCaster)->TalkedToCreature(m_creature->GetEntry(),m_creature->GetGUID()); } } } @@ -800,7 +800,7 @@ CreatureAI* GetAI_npc_garments_of_quests(Creature* pCreature) tempAI->FillPointMovementListForCreature(); - return (CreatureAI*)tempAI; + return tempAI; } /*###### diff --git a/src/bindings/scripts/scripts/zone/alterac_mountains/alterac_mountains.cpp b/src/bindings/scripts/scripts/zone/alterac_mountains/alterac_mountains.cpp index c404f0b7fd0..128583163ae 100644 --- a/src/bindings/scripts/scripts/zone/alterac_mountains/alterac_mountains.cpp +++ b/src/bindings/scripts/scripts/zone/alterac_mountains/alterac_mountains.cpp @@ -40,8 +40,8 @@ struct TRINITY_DLL_DECL npc_ravenholdtAI : public ScriptedAI void MoveInLineOfSight(Unit *who) { if( who->GetTypeId() == TYPEID_PLAYER ) - if( ((Player*)who)->GetQuestStatus(6681) == QUEST_STATUS_INCOMPLETE ) - ((Player*)who)->KilledMonster(m_creature->GetEntry(),m_creature->GetGUID() ); + if( CAST_PLR(who)->GetQuestStatus(6681) == QUEST_STATUS_INCOMPLETE ) + CAST_PLR(who)->KilledMonster(m_creature->GetEntry(),m_creature->GetGUID() ); } void EnterCombat(Unit* who) { } diff --git a/src/bindings/scripts/scripts/zone/arathi_highlands/arathi_highlands.cpp b/src/bindings/scripts/scripts/zone/arathi_highlands/arathi_highlands.cpp index ba3b6aa8e9a..2e80e6e4c6e 100644 --- a/src/bindings/scripts/scripts/zone/arathi_highlands/arathi_highlands.cpp +++ b/src/bindings/scripts/scripts/zone/arathi_highlands/arathi_highlands.cpp @@ -75,7 +75,7 @@ struct TRINITY_DLL_DECL npc_professor_phizzlethorpeAI : public npc_escortAI DoScriptText(SAY_PROGRESS_9, m_creature, player); Completed = true; if(player) - ((Player*)player)->GroupEventHappens(QUEST_SUNKEN_TREASURE, m_creature); + CAST_PLR(player)->GroupEventHappens(QUEST_SUNKEN_TREASURE, m_creature); break; } } @@ -102,7 +102,7 @@ struct TRINITY_DLL_DECL npc_professor_phizzlethorpeAI : public npc_escortAI { Player* player = Unit::GetPlayer(PlayerGUID); if (player) - ((Player*)player)->FailQuest(QUEST_SUNKEN_TREASURE); + CAST_PLR(player)->FailQuest(QUEST_SUNKEN_TREASURE); } } @@ -117,7 +117,7 @@ bool QuestAccept_npc_professor_phizzlethorpe(Player* player, Creature* creature, if (quest->GetQuestId() == QUEST_SUNKEN_TREASURE) { DoScriptText(SAY_PROGRESS_1, creature, player); - ((npc_escortAI*)(creature->AI()))->Start(false, false, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(false, false, false, player->GetGUID()); creature->setFaction(113); } return true; @@ -129,7 +129,7 @@ CreatureAI* GetAI_npc_professor_phizzlethorpeAI(Creature *_Creature) professor_phizzlethorpeAI->FillPointMovementListForCreature(); - return (CreatureAI*)professor_phizzlethorpeAI; + return professor_phizzlethorpeAI; } void AddSC_arathi_highlands() diff --git a/src/bindings/scripts/scripts/zone/ashenvale_forest/ashenvale.cpp b/src/bindings/scripts/scripts/zone/ashenvale_forest/ashenvale.cpp index 76fdba757d2..73e89f8c7ca 100644 --- a/src/bindings/scripts/scripts/zone/ashenvale_forest/ashenvale.cpp +++ b/src/bindings/scripts/scripts/zone/ashenvale_forest/ashenvale.cpp @@ -82,7 +82,7 @@ struct TRINITY_DLL_DECL npc_torekAI : public npc_escortAI DoScriptText(SAY_WIN, m_creature, player); Completed = true; if (player && player->GetTypeId() == TYPEID_PLAYER) - ((Player*)player)->GroupEventHappens(QUEST_TOREK_ASSULT,m_creature); + CAST_PLR(player)->GroupEventHappens(QUEST_TOREK_ASSULT,m_creature); break; case 21: DoScriptText(SAY_END, m_creature, player); @@ -114,7 +114,7 @@ struct TRINITY_DLL_DECL npc_torekAI : public npc_escortAI if (PlayerGUID && !Completed) { if (Player* player = Unit::GetPlayer(PlayerGUID)) - ((Player*)player)->FailQuest(QUEST_TOREK_ASSULT); + CAST_PLR(player)->FailQuest(QUEST_TOREK_ASSULT); } } @@ -144,7 +144,7 @@ bool QuestAccept_npc_torek(Player* player, Creature* creature, Quest const* ques if (quest->GetQuestId() == QUEST_TOREK_ASSULT) { //TODO: find companions, make them follow Torek, at any time (possibly done by mangos/database in future?) - ((npc_escortAI*)(creature->AI()))->Start(true, true, true, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, true, player->GetGUID()); DoScriptText(SAY_READY, creature, player); creature->setFaction(113); } @@ -158,7 +158,7 @@ CreatureAI* GetAI_npc_torek(Creature* pCreature) thisAI->FillPointMovementListForCreature(); - return (CreatureAI*)thisAI; + return thisAI; } /*#### @@ -200,7 +200,7 @@ struct TRINITY_DLL_DECL npc_ruul_snowhoofAI : public npc_escortAI case 21:{ if (player && player->GetTypeId() == TYPEID_PLAYER) - ((Player*)player)->GroupEventHappens(QUEST_FREEDOM_TO_RUUL,m_creature); + CAST_PLR(player)->GroupEventHappens(QUEST_FREEDOM_TO_RUUL,m_creature); break; } } @@ -229,7 +229,7 @@ struct TRINITY_DLL_DECL npc_ruul_snowhoofAI : public npc_escortAI { Player* player = Unit::GetPlayer(PlayerGUID); if (player) - ((Player*)player)->FailQuest(QUEST_FREEDOM_TO_RUUL); + CAST_PLR(player)->FailQuest(QUEST_FREEDOM_TO_RUUL); } } @@ -244,7 +244,7 @@ bool QuestAccept_npc_ruul_snowhoof(Player* player, Creature* creature, Quest con if (quest->GetQuestId() == QUEST_FREEDOM_TO_RUUL) { creature->setFaction(113); - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); } return true; } @@ -255,7 +255,7 @@ CreatureAI* GetAI_npc_ruul_snowhoofAI(Creature *_Creature) ruul_snowhoofAI->FillPointMovementListForCreature(); - return (CreatureAI*)ruul_snowhoofAI; + return ruul_snowhoofAI; } void AddSC_ashenvale() diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/auchenai_crypts/boss_exarch_maladaar.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/auchenai_crypts/boss_exarch_maladaar.cpp index fb81cde9f6b..68a3f60a197 100644 --- a/src/bindings/scripts/scripts/zone/aunchindoun/auchenai_crypts/boss_exarch_maladaar.cpp +++ b/src/bindings/scripts/scripts/zone/aunchindoun/auchenai_crypts/boss_exarch_maladaar.cpp @@ -206,7 +206,7 @@ struct TRINITY_DLL_DECL boss_exarch_maladaarAI : public ScriptedAI if (Unit *target = Unit::GetUnit(*m_creature,soulholder)) { - ((mob_stolen_soulAI*)summoned->AI())->SetMyClass(soulclass); + CAST_AI(mob_stolen_soulAI, summoned->AI())->SetMyClass(soulclass); summoned->AI()->AttackStart(target); } } diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_nexusprince_shaffar.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_nexusprince_shaffar.cpp index d85dd7a5887..0869a6e72cd 100644 --- a/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_nexusprince_shaffar.cpp +++ b/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_nexusprince_shaffar.cpp @@ -279,7 +279,7 @@ struct TRINITY_DLL_DECL mob_ethereal_beaconAI : public ScriptedAI return; } if(!Shaffar->isInCombat()) - ((Creature*)Shaffar)->AI()->AttackStart(who); + CAST_CRE(Shaffar)->AI()->AttackStart(who); } void JustSummoned(Creature *summoned) @@ -291,7 +291,7 @@ struct TRINITY_DLL_DECL mob_ethereal_beaconAI : public ScriptedAI { Unit *Shaffar = me->FindNearestCreature(ENTRY_SHAFFAR, 100); if(Shaffar) - ((boss_nexusprince_shaffarAI*)(((Creature*)Shaffar)->AI()))->RemoveBeaconFromList(m_creature); + CAST_AI(boss_nexusprince_shaffarAI, (CAST_CRE(Shaffar)->AI()))->RemoveBeaconFromList(m_creature); } void UpdateAI(const uint32 diff) @@ -322,8 +322,6 @@ struct TRINITY_DLL_DECL mob_ethereal_beaconAI : public ScriptedAI m_creature->InterruptNonMeleeSpells(true); m_creature->CastSpell(m_creature,SPELL_ETHEREAL_APPRENTICE,true); - if( m_creature->isPet() ) - ((Pet*)m_creature)->SetDuration(0); KillSelf(); return; }else Apprentice_Timer -= diff; diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_tailonking_ikiss.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_tailonking_ikiss.cpp index 28079c7a604..61758b12e6e 100644 --- a/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_tailonking_ikiss.cpp +++ b/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_tailonking_ikiss.cpp @@ -54,7 +54,7 @@ struct TRINITY_DLL_DECL boss_talon_king_ikissAI : public ScriptedAI { boss_talon_king_ikissAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_ambassador_hellmaw.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_ambassador_hellmaw.cpp index 06a78c423da..324524c0b71 100644 --- a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_ambassador_hellmaw.cpp +++ b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_ambassador_hellmaw.cpp @@ -46,7 +46,7 @@ struct TRINITY_DLL_DECL boss_ambassador_hellmawAI : public ScriptedAI { boss_ambassador_hellmawAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_blackheart_the_inciter.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_blackheart_the_inciter.cpp index 6d683c09764..ebabd317940 100644 --- a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_blackheart_the_inciter.cpp +++ b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_blackheart_the_inciter.cpp @@ -55,7 +55,7 @@ struct TRINITY_DLL_DECL boss_blackheart_the_inciterAI : public ScriptedAI { boss_blackheart_the_inciterAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp index 52e5a3e8915..f99f9a130aa 100644 --- a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp +++ b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp @@ -92,7 +92,7 @@ struct TRINITY_DLL_DECL mob_voidtravelerAI : public ScriptedAI { if(sacrificed) { - SpellEntry *spell = (SpellEntry *)GetSpellStore()->LookupEntry(HeroicMode?H_SPELL_EMPOWERING_SHADOWS:SPELL_EMPOWERING_SHADOWS); + SpellEntry *spell = GET_SPELL(HeroicMode?H_SPELL_EMPOWERING_SHADOWS:SPELL_EMPOWERING_SHADOWS); if( spell ) Vorpil->AddAura(new Aura(spell, 1, NULL, Vorpil, m_creature)); Vorpil->SetHealth(Vorpil->GetHealth()+Vorpil->GetMaxHealth()/25); @@ -126,7 +126,7 @@ struct TRINITY_DLL_DECL boss_grandmaster_vorpilAI : public ScriptedAI { boss_grandmaster_vorpilAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); Intro = false; } @@ -203,7 +203,7 @@ struct TRINITY_DLL_DECL boss_grandmaster_vorpilAI : public ScriptedAI void JustSummoned(Creature *summoned) { if (summoned && summoned->GetEntry() == MOB_VOID_TRAVELER) - ((mob_voidtravelerAI*)summoned->AI())->Vorpil = m_creature; + CAST_AI(mob_voidtravelerAI, summoned->AI())->Vorpil = m_creature; } void KilledUnit(Unit *victim) diff --git a/src/bindings/scripts/scripts/zone/azjol_nerub/ahnkahet/boss_elder_nadox.cpp b/src/bindings/scripts/scripts/zone/azjol_nerub/ahnkahet/boss_elder_nadox.cpp index f2c21be08c5..5f0d4bf03ff 100644 --- a/src/bindings/scripts/scripts/zone/azjol_nerub/ahnkahet/boss_elder_nadox.cpp +++ b/src/bindings/scripts/scripts/zone/azjol_nerub/ahnkahet/boss_elder_nadox.cpp @@ -50,7 +50,7 @@ struct TRINITY_DLL_DECL boss_elder_nadoxAI : public ScriptedAI { boss_elder_nadoxAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = c->GetMap()->IsHeroic(); } @@ -182,7 +182,7 @@ struct TRINITY_DLL_DECL mob_ahnkahar_nerubianAI : public ScriptedAI { mob_ahnkahar_nerubianAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); Reset(); } diff --git a/src/bindings/scripts/scripts/zone/azshara/azshara.cpp b/src/bindings/scripts/scripts/zone/azshara/azshara.cpp index f6e0b263043..5223b6d93c3 100644 --- a/src/bindings/scripts/scripts/zone/azshara/azshara.cpp +++ b/src/bindings/scripts/scripts/zone/azshara/azshara.cpp @@ -55,7 +55,7 @@ struct TRINITY_DLL_DECL mobs_spitelashesAI : public ScriptedAI { if( !spellhit && Hitter->GetTypeId() == TYPEID_PLAYER && - ((Player*)Hitter)->GetQuestStatus(9364) == QUEST_STATUS_INCOMPLETE && + CAST_PLR(Hitter)->GetQuestStatus(9364) == QUEST_STATUS_INCOMPLETE && (Spellkind->Id==118 || Spellkind->Id== 12824 || Spellkind->Id== 12825 || Spellkind->Id== 12826) ) { spellhit=true; @@ -328,7 +328,7 @@ struct TRINITY_DLL_DECL mob_rizzle_sprysprocketAI : public ScriptedAI if(Grenade_Timer < diff) { - Player *player = (Player *)Unit::GetUnit((*m_creature), PlayerGUID); + Player *player = Unit::GetPlayer(PlayerGUID); if(player) { DoScriptText(SAY_RIZZLE_GRENADE, m_creature, player); @@ -339,7 +339,7 @@ struct TRINITY_DLL_DECL mob_rizzle_sprysprocketAI : public ScriptedAI if(Check_Timer < diff) { - Player *player = (Player *)Unit::GetUnit((*m_creature), PlayerGUID); + Player *player = Unit::GetPlayer(PlayerGUID); if(!player) { Despawn(); @@ -374,7 +374,7 @@ struct TRINITY_DLL_DECL mob_rizzle_sprysprocketAI : public ScriptedAI if (!who || PlayerGUID) return; - if(who->GetTypeId() == TYPEID_PLAYER && ((Player *)who)->GetQuestStatus(10994) == QUEST_STATUS_INCOMPLETE) + if(who->GetTypeId() == TYPEID_PLAYER && CAST_PLR(who)->GetQuestStatus(10994) == QUEST_STATUS_INCOMPLETE) { PlayerGUID = who->GetGUID(); DoScriptText(SAY_RIZZLE_START, m_creature); @@ -417,8 +417,8 @@ bool GossipSelect_mob_rizzle_sprysprocket(Player *player, Creature *_Creature, u { player->CLOSE_GOSSIP_MENU(); _Creature->CastSpell(player, SPELL_GIVE_SOUTHFURY_MOONSTONE, true); - ((mob_rizzle_sprysprocketAI*)_Creature->AI())->Must_Die_Timer = 3000; - ((mob_rizzle_sprysprocketAI*)_Creature->AI())->Must_Die = true; + CAST_AI(mob_rizzle_sprysprocketAI, _Creature->AI())->Must_Die_Timer = 3000; + CAST_AI(mob_rizzle_sprysprocketAI, _Creature->AI())->Must_Die = true; } return true; } diff --git a/src/bindings/scripts/scripts/zone/azuremyst_isle/azuremyst_isle.cpp b/src/bindings/scripts/scripts/zone/azuremyst_isle/azuremyst_isle.cpp index 5df22182c1f..320a1610827 100644 --- a/src/bindings/scripts/scripts/zone/azuremyst_isle/azuremyst_isle.cpp +++ b/src/bindings/scripts/scripts/zone/azuremyst_isle/azuremyst_isle.cpp @@ -280,7 +280,7 @@ bool GossipSelect_npc_engineer_spark_overgrind(Player *player, Creature *_Creatu { player->CLOSE_GOSSIP_MENU(); _Creature->setFaction(FACTION_HOSTILE); - ((npc_engineer_spark_overgrindAI*)_Creature->AI())->AttackStart(player); + CAST_AI(npc_engineer_spark_overgrindAI, _Creature->AI())->AttackStart(player); } return true; } @@ -401,7 +401,7 @@ bool QuestAccept_npc_magwin(Player* player, Creature* creature, Quest const* que if (quest->GetQuestId() == QUEST_A_CRY_FOR_SAY_HELP) { creature->setFaction(113); - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); } return true; } @@ -412,7 +412,7 @@ CreatureAI* GetAI_npc_magwinAI(Creature* pCreature) magwinAI->FillPointMovementListForCreature(); - return (CreatureAI*)magwinAI; + return magwinAI; } /*###### diff --git a/src/bindings/scripts/scripts/zone/barrens/the_barrens.cpp b/src/bindings/scripts/scripts/zone/barrens/the_barrens.cpp index 4ae561d483c..f8b92d4f077 100644 --- a/src/bindings/scripts/scripts/zone/barrens/the_barrens.cpp +++ b/src/bindings/scripts/scripts/zone/barrens/the_barrens.cpp @@ -240,7 +240,7 @@ struct TRINITY_DLL_DECL npc_twiggy_flatheadAI : public ScriptedAI { if(!who || (!who->isAlive())) return; - if (m_creature->IsWithinDistInMap(who, 10.0f) && (who->GetTypeId() == TYPEID_PLAYER) && ((Player*)who)->GetQuestStatus(1719) == QUEST_STATUS_INCOMPLETE && !EventInProgress) + if (m_creature->IsWithinDistInMap(who, 10.0f) && (who->GetTypeId() == TYPEID_PLAYER) && CAST_PLR(who)->GetQuestStatus(1719) == QUEST_STATUS_INCOMPLETE && !EventInProgress) { PlayerGUID = who->GetGUID(); EventInProgress = true; @@ -353,7 +353,7 @@ struct TRINITY_DLL_DECL npc_twiggy_flatheadAI : public ScriptedAI pCreature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); pCreature->HandleEmoteCommand(EMOTE_ONESHOT_ROAR); pCreature->setFaction(14); - ((CreatureAI*)pCreature->AI())->AttackStart(pWarrior); + (pCreature->AI())->AttackStart(pWarrior); ++Wave; Wave_Timer = 20000; } @@ -447,7 +447,7 @@ struct TRINITY_DLL_DECL npc_wizzlecrank_shredderAI : public npc_escortAI if(Mercenary) { DoScriptText(SAY_MERCENARY_4, Mercenary); - ((Creature*)Mercenary)->AI()->AttackStart(m_creature); + CAST_CRE(Mercenary)->AI()->AttackStart(m_creature); AttackStart(Mercenary); } }break; @@ -499,7 +499,7 @@ bool QuestAccept_npc_wizzlecrank_shredder(Player* player, Creature* creature, Qu if (quest->GetQuestId() == QUEST_ESCAPE) { creature->setFaction(FACTION_RATCHET); - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); } return true; } @@ -541,7 +541,7 @@ CreatureAI* GetAI_npc_wizzlecrank_shredderAI(Creature *_Creature) thisAI->AddWaypoint(30, 1091.28, -2985.82, 91.74, 7000); thisAI->AddWaypoint(31, 1091.28, -2985.82, 91.74, 3000); - return (CreatureAI*)thisAI; + return thisAI; } void AddSC_the_barrens() diff --git a/src/bindings/scripts/scripts/zone/black_temple/black_temple.cpp b/src/bindings/scripts/scripts/zone/black_temple/black_temple.cpp index 738c58eab2e..aa390a229b1 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/black_temple.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/black_temple.cpp @@ -37,7 +37,7 @@ EndContentData */ bool GossipHello_npc_spirit_of_olum(Player* player, Creature* _Creature) { - ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData()); + ScriptedInstance* pInstance = (_Creature->GetInstanceData()); if(pInstance && (pInstance->GetData(DATA_SUPREMUSEVENT) >= DONE) && (pInstance->GetData(DATA_HIGHWARLORDNAJENTUSEVENT) >= DONE)) player->ADD_GOSSIP_ITEM(0, GOSSIP_OLUM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_bloodboil.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_bloodboil.cpp index e70f144d460..48405c1190c 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_bloodboil.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_bloodboil.cpp @@ -67,7 +67,7 @@ struct TRINITY_DLL_DECL boss_gurtogg_bloodboilAI : public ScriptedAI { boss_gurtogg_bloodboilAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp index 97410c2b38e..e8b57f78e9c 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp @@ -366,10 +366,10 @@ struct TRINITY_DLL_DECL boss_illidan_stormrageAI : public ScriptedAI { boss_illidan_stormrageAI(Creature* c) : ScriptedAI(c), Summons(m_creature) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); m_creature->CastSpell(m_creature, SPELL_DUAL_WIELD, true); - SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_SHADOWFIEND_PASSIVE); + SpellEntry *TempSpell = GET_SPELL(SPELL_SHADOWFIEND_PASSIVE); if(TempSpell) TempSpell->EffectApplyAuraName[0] = 4; // proc debuff, and summon infinite fiends } @@ -973,7 +973,7 @@ struct TRINITY_DLL_DECL npc_akama_illidanAI : public ScriptedAI { npc_akama_illidanAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -1045,7 +1045,7 @@ struct TRINITY_DLL_DECL npc_akama_illidanAI : public ScriptedAI } void EnterCombat(Unit *who) {} - void MoveInLineOfSight(Unit *) {} + void MoveInLineOfSight(Unit* who) {} void MovementInform(uint32 MovementType, uint32 Data) {Timer = 1;} @@ -1086,8 +1086,8 @@ struct TRINITY_DLL_DECL npc_akama_illidanAI : public ScriptedAI Illidan->SetInFront(m_creature); m_creature->GetMotionMaster()->MoveIdle(); Illidan->GetMotionMaster()->MoveIdle(); - ((boss_illidan_stormrageAI*)Illidan->AI())->AkamaGUID = m_creature->GetGUID(); - ((boss_illidan_stormrageAI*)Illidan->AI())->EnterPhase(PHASE_TALK_SEQUENCE); + CAST_AI(boss_illidan_stormrageAI, Illidan->AI())->AkamaGUID = m_creature->GetGUID(); + CAST_AI(boss_illidan_stormrageAI, Illidan->AI())->EnterPhase(PHASE_TALK_SEQUENCE); } } @@ -1138,7 +1138,7 @@ struct TRINITY_DLL_DECL npc_akama_illidanAI : public ScriptedAI else if(Phase == PHASE_TALK) { if(GETCRE(Illidan, IllidanGUID)) - ((boss_illidan_stormrageAI*)Illidan->AI())->DeleteFromThreatList(m_creature->GetGUID()); + CAST_AI(boss_illidan_stormrageAI, Illidan->AI())->DeleteFromThreatList(m_creature->GetGUID()); EnterEvadeMode(); m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); WalkCount++; @@ -1191,7 +1191,7 @@ struct TRINITY_DLL_DECL npc_akama_illidanAI : public ScriptedAI case 0: if(GETCRE(Illidan, IllidanGUID)) { - ((boss_illidan_stormrageAI*)Illidan->AI())->Timer[EVENT_TAUNT] += 30000; + CAST_AI(boss_illidan_stormrageAI, Illidan->AI())->Timer[EVENT_TAUNT] += 30000; Illidan->MonsterYell(SAY_AKAMA_MINION, LANG_UNIVERSAL, 0); DoPlaySoundToSet(Illidan, SOUND_AKAMA_MINION); } @@ -1481,7 +1481,7 @@ struct TRINITY_DLL_DECL boss_maievAI : public ScriptedAI { if(GETCRE(Illidan, IllidanGUID)) { - Unit* target = ((boss_illidan_stormrageAI*)Illidan->AI())->SelectUnit(SELECT_TARGET_RANDOM, 0); + Unit* target = CAST_AI(boss_illidan_stormrageAI, Illidan->AI())->SelectUnit(SELECT_TARGET_RANDOM, 0); if(!target || !m_creature->IsWithinDistInMap(target, 80) || Illidan->IsWithinDistInMap(target, 20)) { @@ -1560,7 +1560,7 @@ struct TRINITY_DLL_DECL boss_maievAI : public ScriptedAI m_creature->SetVisibility(VISIBILITY_OFF); m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); if(GETCRE(Illidan, IllidanGUID)) - ((boss_illidan_stormrageAI*)Illidan->AI())->DeleteFromThreatList(m_creature->GetGUID()); + CAST_AI(boss_illidan_stormrageAI, Illidan->AI())->DeleteFromThreatList(m_creature->GetGUID()); m_creature->AttackStop(); Timer[EVENT_MAIEV_STEALTH] = 60000; //reappear after 1 minute MaxTimer = 1; @@ -1577,7 +1577,7 @@ bool GossipSelect_npc_akama_at_illidan(Player *player, Creature *_Creature, uint if(action == GOSSIP_ACTION_INFO_DEF) // Time to begin the Event { player->CLOSE_GOSSIP_MENU(); - ((npc_akama_illidanAI*)_Creature->AI())->EnterPhase(PHASE_CHANNEL); + CAST_AI(npc_akama_illidanAI, _Creature->AI())->EnterPhase(PHASE_CHANNEL); } return true; } @@ -1676,7 +1676,7 @@ bool GOHello_cage_trap(Player* plr, GameObject* go) cell_lock->Visit(cell_lock, cSearcher, *(plr->GetMap())); if(trigger) - ((cage_trap_triggerAI*)trigger->AI())->Active = true; + CAST_AI(cage_trap_triggerAI, trigger->AI())->Active = true; go->SetGoState(GO_STATE_ACTIVE); return true; } @@ -1725,7 +1725,7 @@ struct TRINITY_DLL_DECL mob_parasitic_shadowfiendAI : public ScriptedAI { mob_parasitic_shadowfiendAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -1776,7 +1776,7 @@ struct TRINITY_DLL_DECL mob_parasitic_shadowfiendAI : public ScriptedAI if(CheckTimer < diff) { GETUNIT(Illidan, IllidanGUID); - if(!Illidan || ((Creature*)Illidan)->IsInEvadeMode()) + if(!Illidan || CAST_CRE(Illidan)->IsInEvadeMode()) { m_creature->SetVisibility(VISIBILITY_OFF); m_creature->setDeathState(JUST_DIED); @@ -1812,9 +1812,9 @@ void boss_illidan_stormrageAI::Reset() Akama->Respawn(); else { - ((npc_akama_illidanAI*)Akama->AI())->EnterEvadeMode(); + CAST_AI(npc_akama_illidanAI, Akama->AI())->EnterEvadeMode(); Akama->GetMotionMaster()->MoveTargetedHome(); - ((npc_akama_illidanAI*)Akama->AI())->Reset(); + CAST_AI(npc_akama_illidanAI, Akama->AI())->Reset(); } } AkamaGUID = 0; @@ -1877,7 +1877,7 @@ void boss_illidan_stormrageAI::JustSummoned(Creature* summon) summon->SetVisibility(VISIBILITY_OFF); // Leave her invisible until she has to talk summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); MaievGUID = summon->GetGUID(); - ((boss_maievAI*)summon->AI())->GetIllidanGUID(m_creature->GetGUID()); + CAST_AI(boss_maievAI, summon->AI())->GetIllidanGUID(m_creature->GetGUID()); summon->AI()->DoAction(PHASE_TALK_SEQUENCE); }break; case FLAME_OF_AZZINOTH: @@ -1907,7 +1907,7 @@ void boss_illidan_stormrageAI::HandleTalkSequence() { m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE + UNIT_FLAG_NOT_SELECTABLE); m_creature->AddThreat(Akama, 100.0f); - ((npc_akama_illidanAI*)Akama->AI())->EnterPhase(PHASE_FIGHT_ILLIDAN); + CAST_AI(npc_akama_illidanAI, Akama->AI())->EnterPhase(PHASE_FIGHT_ILLIDAN); EnterPhase(PHASE_NORMAL); } break; @@ -2026,7 +2026,7 @@ void boss_illidan_stormrageAI::SummonFlamesOfAzzinoth() Flame->setFaction(m_creature->getFaction()); // Just in case the database has it as a different faction Flame->SetMeleeDamageSchool(SPELL_SCHOOL_FIRE); FlameGUID[i] = Flame->GetGUID(); // Record GUID in order to check if they're dead later on to move to the next phase - ((flame_of_azzinothAI*)Flame->AI())->SetGlaiveGUID(GlaiveGUID[i]); + CAST_AI(flame_of_azzinothAI, Flame->AI())->SetGlaiveGUID(GlaiveGUID[i]); Glaive->CastSpell(Flame, SPELL_AZZINOTH_CHANNEL, false); // Glaives do some random Beam type channel on it. } } diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_mother_shahraz.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_mother_shahraz.cpp index 0321ea6d9ad..ba3d5316e76 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_mother_shahraz.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_mother_shahraz.cpp @@ -80,7 +80,7 @@ struct TRINITY_DLL_DECL boss_shahrazAI : public ScriptedAI { boss_shahrazAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_reliquary_of_souls.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_reliquary_of_souls.cpp index 6bd777405ea..0c11e2a4106 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_reliquary_of_souls.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_reliquary_of_souls.cpp @@ -120,7 +120,7 @@ struct TRINITY_DLL_DECL boss_reliquary_of_soulsAI : public ScriptedAI { boss_reliquary_of_soulsAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); EssenceGUID = 0; } @@ -178,7 +178,7 @@ struct TRINITY_DLL_DECL boss_reliquary_of_soulsAI : public ScriptedAI if(!Soul) return false; if(Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0)) { - ((npc_enslaved_soulAI*)Soul->AI())->ReliquaryGUID = m_creature->GetGUID(); + CAST_AI(npc_enslaved_soulAI, Soul->AI())->ReliquaryGUID = m_creature->GetGUID(); Soul->AI()->AttackStart(target); }else EnterEvadeMode(); return true; @@ -629,7 +629,7 @@ void npc_enslaved_soulAI::JustDied(Unit *killer) { Creature* Reliquary = (Unit::GetCreature((*m_creature), ReliquaryGUID)); if(Reliquary) - ((boss_reliquary_of_soulsAI*)Reliquary->AI())->SoulDeathCount++; + CAST_AI(boss_reliquary_of_soulsAI, Reliquary->AI())->SoulDeathCount++; } DoCast(m_creature, SPELL_SOUL_RELEASE, true); } diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_shade_of_akama.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_shade_of_akama.cpp index ec876e4c7ac..587d9934a51 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_shade_of_akama.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_shade_of_akama.cpp @@ -167,7 +167,7 @@ struct TRINITY_DLL_DECL boss_shade_of_akamaAI : public ScriptedAI { boss_shade_of_akamaAI(Creature* c) : ScriptedAI(c), summons(m_creature) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); AkamaGUID = pInstance ? pInstance->GetData64(DATA_AKAMA_SHADE) : 0; m_creature->setActive(true);//if view distance is too low m_creature->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_TAUNT, true); @@ -309,7 +309,7 @@ struct TRINITY_DLL_DECL boss_shade_of_akamaAI : public ScriptedAI Creature* Sorcerer = m_creature->SummonCreature(CREATURE_SORCERER, X, Y, Z_SPAWN, 0, TEMPSUMMON_DEAD_DESPAWN, 0); if(Sorcerer) { - ((mob_ashtongue_sorcererAI*)Sorcerer->AI())->ShadeGUID = m_creature->GetGUID(); + CAST_AI(mob_ashtongue_sorcererAI, Sorcerer->AI())->ShadeGUID = m_creature->GetGUID(); Sorcerer->RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE); Sorcerer->GetMotionMaster()->MovePoint(0, m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ()); Sorcerer->SetUInt64Value(UNIT_FIELD_TARGET, m_creature->GetGUID()); @@ -354,7 +354,7 @@ struct TRINITY_DLL_DECL boss_shade_of_akamaAI : public ScriptedAI { for(std::list<Creature*>::iterator itr = ChannelerList.begin(); itr != ChannelerList.end(); ++itr) { - ((mob_ashtongue_channelerAI*)(*itr)->AI())->ShadeGUID = m_creature->GetGUID(); + CAST_AI(mob_ashtongue_channelerAI, (*itr)->AI())->ShadeGUID = m_creature->GetGUID(); Channelers.push_back((*itr)->GetGUID()); debug_log("TSCR: Shade of Akama Grid Search found channeler %u. Adding to list", (*itr)->GetGUID()); } @@ -489,7 +489,7 @@ void mob_ashtongue_channelerAI::JustDied(Unit* killer) { Creature* Shade = (Unit::GetCreature((*m_creature), ShadeGUID)); if(Shade && Shade->isAlive()) - ((boss_shade_of_akamaAI*)Shade->AI())->IncrementDeathCount(); + CAST_AI(boss_shade_of_akamaAI, Shade->AI())->IncrementDeathCount(); else error_log("SD2 ERROR: Channeler dead but unable to increment DeathCount for Shade of Akama."); } @@ -497,7 +497,7 @@ void mob_ashtongue_sorcererAI::JustDied(Unit* killer) { Creature* Shade = (Unit::GetCreature((*m_creature), ShadeGUID)); if(Shade && Shade->isAlive()) - ((boss_shade_of_akamaAI*)Shade->AI())->IncrementDeathCount(m_creature->GetGUID()); + CAST_AI(boss_shade_of_akamaAI, Shade->AI())->IncrementDeathCount(m_creature->GetGUID()); else error_log("SD2 ERROR: Sorcerer dead but unable to increment DeathCount for Shade of Akama."); } @@ -507,7 +507,7 @@ struct TRINITY_DLL_DECL npc_akamaAI : public ScriptedAI { ShadeHasDied = false; StartCombat = false; - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); ShadeGUID = pInstance ? pInstance->GetData64(DATA_SHADEOFAKAMA) : NOT_STARTED; m_creature->setActive(true); EventBegun = false; @@ -572,8 +572,8 @@ struct TRINITY_DLL_DECL npc_akamaAI : public ScriptedAI pInstance->SetData(DATA_SHADEOFAKAMAEVENT, IN_PROGRESS); // Prevent players from trying to restart event m_creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); - ((boss_shade_of_akamaAI*)Shade->AI())->SetAkamaGUID(m_creature->GetGUID()); - ((boss_shade_of_akamaAI*)Shade->AI())->SetSelectableChannelers(); + CAST_AI(boss_shade_of_akamaAI, Shade->AI())->SetAkamaGUID(m_creature->GetGUID()); + CAST_AI(boss_shade_of_akamaAI, Shade->AI())->SetSelectableChannelers(); Shade->AddThreat(m_creature, 1000000.0f); m_creature->CombatStart(Shade); Shade->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE); @@ -621,7 +621,7 @@ struct TRINITY_DLL_DECL npc_akamaAI : public ScriptedAI HasYelledOnce = false; Creature* Shade = Unit::GetCreature((*m_creature), ShadeGUID); if(Shade && Shade->isAlive()) - ((boss_shade_of_akamaAI*)Shade->AI())->HasKilledAkama = true; + CAST_AI(boss_shade_of_akamaAI, Shade->AI())->HasKilledAkama = true; } void UpdateAI(const uint32 diff) @@ -640,7 +640,7 @@ struct TRINITY_DLL_DECL npc_akamaAI : public ScriptedAI Creature* Shade = (Unit::GetCreature((*m_creature), ShadeGUID)); if(Shade && Shade->isAlive()) { - if(((boss_shade_of_akamaAI*)Shade->AI())->IsBanished) + if(CAST_AI(boss_shade_of_akamaAI, Shade->AI())->IsBanished) { if(CastSoulRetrieveTimer < diff) { @@ -816,7 +816,7 @@ bool GossipSelect_npc_akama(Player *player, Creature *_Creature, uint32 sender, if (action == GOSSIP_ACTION_INFO_DEF + 1) //Fight time { player->CLOSE_GOSSIP_MENU(); - ((npc_akamaAI*)_Creature->AI())->BeginEvent(player); + CAST_AI(npc_akamaAI, _Creature->AI())->BeginEvent(player); } return true; diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_supremus.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_supremus.cpp index 1994d580b8d..a5841cf86a6 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_supremus.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_supremus.cpp @@ -67,7 +67,7 @@ struct TRINITY_DLL_DECL boss_supremusAI : public ScriptedAI { boss_supremusAI(Creature *c) : ScriptedAI(c), summons(m_creature) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_teron_gorefiend.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_teron_gorefiend.cpp index 6c2a738647d..b79abe5e393 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_teron_gorefiend.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_teron_gorefiend.cpp @@ -197,7 +197,7 @@ struct TRINITY_DLL_DECL boss_teron_gorefiendAI : public ScriptedAI { boss_teron_gorefiendAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -338,7 +338,7 @@ struct TRINITY_DLL_DECL boss_teron_gorefiendAI : public ScriptedAI Creature* control = m_creature->SummonCreature(CREATURE_GHOST, x, y, z, 0, TEMPSUMMON_TIMED_DESAWN, 30000); if(control) { - ((Player*)Ghost)->Possess(control); + CAST_PLR(Ghost)->Possess(control); Ghost->DealDamage(Ghost, Ghost->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); }*/ @@ -352,7 +352,7 @@ struct TRINITY_DLL_DECL boss_teron_gorefiendAI : public ScriptedAI { Construct->CastSpell(Construct, SPELL_PASSIVE_SHADOWFORM, true); SetThreatList(Construct); // Use same function as Doom Blossom to set Threat List. - ((mob_shadowy_constructAI*)Construct->AI())->GhostGUID = GhostGUID; + CAST_AI(mob_shadowy_constructAI, Construct->AI())->GhostGUID = GhostGUID; Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 1); if(!target) // someone's trying to solo. target = m_creature->getVictim(); @@ -430,7 +430,7 @@ struct TRINITY_DLL_DECL boss_teron_gorefiendAI : public ScriptedAI DoomBlossom->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); DoomBlossom->setFaction(m_creature->getFaction()); DoomBlossom->AddThreat(target, 1.0f); - ((mob_doom_blossomAI*)DoomBlossom->AI())->SetTeronGUID(m_creature->GetGUID()); + CAST_AI(mob_doom_blossomAI, DoomBlossom->AI())->SetTeronGUID(m_creature->GetGUID()); target->CombatStart(DoomBlossom); SetThreatList(DoomBlossom); SummonDoomBlossomTimer = 35000; diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_warlord_najentus.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_warlord_najentus.cpp index ee3cc90661a..3029231abd9 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_warlord_najentus.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_warlord_najentus.cpp @@ -62,7 +62,7 @@ struct TRINITY_DLL_DECL boss_najentusAI : public ScriptedAI { boss_najentusAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -195,9 +195,9 @@ struct TRINITY_DLL_DECL boss_najentusAI : public ScriptedAI bool GOHello_go_najentus_spine(Player *player, GameObject* _GO) { - if(ScriptedInstance* pInstance = (ScriptedInstance*)_GO->GetInstanceData()) + if(ScriptedInstance* pInstance = _GO->GetInstanceData()) if(Creature* Najentus = Unit::GetCreature(*_GO, pInstance->GetData64(DATA_HIGHWARLORDNAJENTUS))) - if(((boss_najentusAI*)Najentus->AI())->RemoveImpalingSpine()) + if(CAST_AI(boss_najentusAI, Najentus->AI())->RemoveImpalingSpine()) { player->CastSpell(player, SPELL_CREATE_NAJENTUS_SPINE, true); _GO->SetLootState(GO_NOT_READY); diff --git a/src/bindings/scripts/scripts/zone/black_temple/illidari_council.cpp b/src/bindings/scripts/scripts/zone/black_temple/illidari_council.cpp index 7478a235215..0c43ba57041 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/illidari_council.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/illidari_council.cpp @@ -135,7 +135,7 @@ struct TRINITY_DLL_DECL mob_blood_elf_council_voice_triggerAI : public ScriptedA // finds and stores the GUIDs for each Council member using instance data system. void LoadCouncilGUIDs() { - if(ScriptedInstance* pInstance = ((ScriptedInstance*)m_creature->GetInstanceData())) + if(ScriptedInstance* pInstance = (m_creature->GetInstanceData())) { Council[0] = pInstance->GetData64(DATA_GATHIOSTHESHATTERER); Council[1] = pInstance->GetData64(DATA_VERASDARKSHADOW); @@ -192,7 +192,7 @@ struct TRINITY_DLL_DECL mob_illidari_councilAI : public ScriptedAI { mob_illidari_councilAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); for(uint8 i = 0; i < 4; ++i) Council[i] = 0; } @@ -261,8 +261,8 @@ struct TRINITY_DLL_DECL mob_illidari_councilAI : public ScriptedAI // Start the event for the Voice Trigger if(Creature* VoiceTrigger = (Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_BLOOD_ELF_COUNCIL_VOICE)))) { - ((mob_blood_elf_council_voice_triggerAI*)VoiceTrigger->AI())->LoadCouncilGUIDs(); - ((mob_blood_elf_council_voice_triggerAI*)VoiceTrigger->AI())->EventStarted = true; + CAST_AI(mob_blood_elf_council_voice_triggerAI, VoiceTrigger->AI())->LoadCouncilGUIDs(); + CAST_AI(mob_blood_elf_council_voice_triggerAI, VoiceTrigger->AI())->EventStarted = true; } for(uint8 i = 0; i < 4; ++i) @@ -272,7 +272,7 @@ struct TRINITY_DLL_DECL mob_illidari_councilAI : public ScriptedAI { Member = Unit::GetUnit((*m_creature), Council[i]); if(Member && Member->isAlive()) - ((Creature*)Member)->AI()->AttackStart(target); + CAST_CRE(Member)->AI()->AttackStart(target); } } @@ -348,7 +348,7 @@ struct TRINITY_DLL_DECL boss_illidari_councilAI : public ScriptedAI { boss_illidari_councilAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); for(uint8 i = 0; i < 4; ++i) Council[i] = 0; LoadedGUIDs = false; @@ -366,7 +366,7 @@ struct TRINITY_DLL_DECL boss_illidari_councilAI : public ScriptedAI { Creature* Controller = (Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_ILLIDARICOUNCIL))); if(Controller) - ((mob_illidari_councilAI*)Controller->AI())->StartEvent(who); + CAST_AI(mob_illidari_councilAI, Controller->AI())->StartEvent(who); } else { diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/blackrock_depths.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/blackrock_depths.cpp index dc8235f646e..135f63bc08c 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_depths/blackrock_depths.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_depths/blackrock_depths.cpp @@ -67,7 +67,7 @@ uint32 RingBoss[]= bool AreaTrigger_at_ring_of_law(Player *player, AreaTriggerEntry *at) { - ScriptedInstance* pInstance = ((ScriptedInstance*)player->GetInstanceData()); + ScriptedInstance* pInstance = (player->GetInstanceData()); if (pInstance) { @@ -91,7 +91,7 @@ struct TRINITY_DLL_DECL npc_grimstoneAI : public npc_escortAI { npc_grimstoneAI(Creature *c) : npc_escortAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); MobSpawnId = rand()%6; } @@ -310,7 +310,7 @@ CreatureAI* GetAI_npc_grimstone(Creature *_Creature) Grimstone_AI->FillPointMovementListForCreature(); - return (CreatureAI*)Grimstone_AI; + return Grimstone_AI; } /*###### @@ -577,7 +577,7 @@ CreatureAI* GetAI_npc_dughal_stormwing(Creature *_Creature) dughal_stormwingAI->AddWaypoint(1, 287.64,-87.01, -76.79,0); dughal_stormwingAI->AddWaypoint(2, 354.63,-64.95, -67.53,0); - return (CreatureAI*)dughal_stormwingAI; + return dughal_stormwingAI; } bool GossipHello_npc_dughal_stormwing(Player *player, Creature *_Creature) { @@ -594,7 +594,7 @@ bool GossipSelect_npc_dughal_stormwing(Player *player, Creature *_Creature, uint if (action == GOSSIP_ACTION_INFO_DEF + 1) { player->CLOSE_GOSSIP_MENU(); - ((npc_escortAI*)(_Creature->AI()))->Start(false, false, true, player->GetGUID()); + CAST_AI(npc_escortAI, (_Creature->AI()))->Start(false, false, true, player->GetGUID()); _Creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); pInstance->SetData(DATA_QUEST_JAIL_BREAK,ENCOUNTER_STATE_IN_PROGRESS); } @@ -622,7 +622,7 @@ struct TRINITY_DLL_DECL npc_marshal_windsorAI : public npc_escortAI { npc_marshal_windsorAI(Creature *c) : npc_escortAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } void WaypointReached(uint32 i) @@ -742,7 +742,7 @@ CreatureAI* GetAI_npc_marshal_windsor(Creature *_Creature) marshal_windsorAI->AddWaypoint(18, 403.61,-51.71, -63.92,1000); marshal_windsorAI->AddWaypoint(19, 403.61,-51.71, -63.92,0); - return (CreatureAI*)marshal_windsorAI; + return marshal_windsorAI; } bool QuestAccept_npc_marshal_windsor(Player *player, Creature *creature, Quest const *quest ) @@ -751,7 +751,7 @@ bool QuestAccept_npc_marshal_windsor(Player *player, Creature *creature, Quest c {PlayerStart = player; if( pInstance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_NOT_STARTED ) { - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); pInstance->SetData(DATA_QUEST_JAIL_BREAK,ENCOUNTER_STATE_IN_PROGRESS); creature->setFaction(11); } @@ -854,13 +854,13 @@ struct TRINITY_DLL_DECL npc_marshal_reginald_windsorAI : public npc_escortAI if( who->GetTypeId() == TYPEID_PLAYER ) { - if( ((Player*)who)->GetQuestStatus(4322) == QUEST_STATUS_INCOMPLETE ) + if( CAST_PLR(who)->GetQuestStatus(4322) == QUEST_STATUS_INCOMPLETE ) { float Radius = 10.0; if( m_creature->IsWithinDistInMap(who, Radius) ) { IsOnHold = false; - ((npc_escortAI*)(m_creature->AI()))->Start(true, true, false, who->GetGUID()); + Start(true, true, false, who->GetGUID()); } } } @@ -969,7 +969,7 @@ CreatureAI* GetAI_npc_marshal_reginald_windsor(Creature *_Creature) marshal_reginald_windsorAI->AddWaypoint(33, 452.45,29.85, -70.37,10000); marshal_reginald_windsorAI->AddWaypoint(34, 451.27,31.85, -70.07,0); - return (CreatureAI*)marshal_reginald_windsorAI; + return marshal_reginald_windsorAI; } */ /*###### @@ -1041,7 +1041,7 @@ CreatureAI* GetAI_npc_tobias_seecher(Creature *_Creature) tobias_seecherAI->AddWaypoint(3, 519.44, -217.02, -59.34); tobias_seecherAI->AddWaypoint(4, 506.55, -153.49, -62.34); - return (CreatureAI*)tobias_seecherAI; + return tobias_seecherAI; } bool GossipHello_npc_tobias_seecher(Player *player, Creature *_Creature) @@ -1059,7 +1059,7 @@ bool GossipSelect_npc_tobias_seecher(Player *player, Creature *_Creature, uint32 if (action == GOSSIP_ACTION_INFO_DEF + 1) { player->CLOSE_GOSSIP_MENU(); - ((npc_escortAI*)(_Creature->AI()))->Start(false, false, true, player->GetGUID()); + CAST_AI(npc_escortAI, (_Creature->AI()))->Start(false, false, true, player->GetGUID()); _Creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); pInstance->SetData(DATA_TOBIAS,ENCOUNTER_STATE_IN_PROGRESS); } @@ -1079,7 +1079,7 @@ struct TRINITY_DLL_DECL npc_rocknotAI : public npc_escortAI { npc_rocknotAI(Creature *c) : npc_escortAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -1172,12 +1172,12 @@ CreatureAI* GetAI_npc_rocknot(Creature *_Creature) Rocknot_AI->FillPointMovementListForCreature(); - return (CreatureAI*)Rocknot_AI; + return Rocknot_AI; } bool ChooseReward_npc_rocknot(Player *player, Creature *_Creature, const Quest *_Quest, uint32 item) { - ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData()); + ScriptedInstance* pInstance = (_Creature->GetInstanceData()); if (!pInstance) return true; @@ -1197,7 +1197,7 @@ bool ChooseReward_npc_rocknot(Player *player, Creature *_Creature, const Quest * { DoScriptText(SAY_GOT_BEER, _Creature); _Creature->CastSpell(_Creature,SPELL_DRUNKEN_RAGE,false); - ((npc_escortAI*)(_Creature->AI()))->Start(false, false, false); + CAST_AI(npc_escortAI, (_Creature->AI()))->Start(false, false, false); } } diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_ambassador_flamelash.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_ambassador_flamelash.cpp index 28f2e6935e2..d08cbb06b98 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_ambassador_flamelash.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_ambassador_flamelash.cpp @@ -61,7 +61,7 @@ struct TRINITY_DLL_DECL boss_ambassador_flamelashAI : public ScriptedAI } Summoned = DoSpawnCreature(9178, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 60000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(victim); + (Summoned->AI())->AttackStart(victim); } void UpdateAI(const uint32 diff) diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_general_angerforge.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_general_angerforge.cpp index 98e1e959314..5d47241a5d9 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_general_angerforge.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_general_angerforge.cpp @@ -76,7 +76,7 @@ struct TRINITY_DLL_DECL boss_general_angerforgeAI : public ScriptedAI Rand1 = 0; SummonedAdds = DoSpawnCreature(8901, Rand1X, Rand1Y, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000); if(SummonedAdds) - ((CreatureAI*)SummonedAdds->AI())->AttackStart(victim); + (SummonedAdds->AI())->AttackStart(victim); } void SummonMedics(Unit* victim) @@ -97,7 +97,7 @@ struct TRINITY_DLL_DECL boss_general_angerforgeAI : public ScriptedAI Rand2 = 0; SummonedMedics = DoSpawnCreature(8894, Rand2X, Rand2Y, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000); if(SummonedMedics) - ((CreatureAI*)SummonedMedics->AI())->AttackStart(victim); + (SummonedMedics->AI())->AttackStart(victim); } void UpdateAI(const uint32 diff) diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_tomb_of_seven.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_tomb_of_seven.cpp index 3768422e323..ff02f60f7a2 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_tomb_of_seven.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_tomb_of_seven.cpp @@ -515,7 +515,7 @@ struct TRINITY_DLL_DECL boss_doomrelAI : public ScriptedAI Rand = 0; Summoned = DoSpawnCreature(16119, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(victim); + (Summoned->AI())->AttackStart(victim); } void UpdateAI(const uint32 diff) diff --git a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_overlord_wyrmthalak.cpp b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_overlord_wyrmthalak.cpp index cdb038588bf..98ed58f0b3a 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_overlord_wyrmthalak.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_overlord_wyrmthalak.cpp @@ -104,10 +104,10 @@ struct TRINITY_DLL_DECL boss_overlordwyrmthalakAI : public ScriptedAI SummonedCreature = m_creature->SummonCreature(9216,ADD_1X,ADD_1Y,ADD_1Z,ADD_1O,TEMPSUMMON_TIMED_DESPAWN,300000); if(SummonedCreature) - ((CreatureAI*)SummonedCreature->AI())->AttackStart(target); + (SummonedCreature->AI())->AttackStart(target); SummonedCreature = m_creature->SummonCreature(9268,ADD_2X,ADD_2Y,ADD_2Z,ADD_2O,TEMPSUMMON_TIMED_DESPAWN,300000); if(SummonedCreature) - ((CreatureAI*)SummonedCreature->AI())->AttackStart(target); + (SummonedCreature->AI())->AttackStart(target); Summoned = true; } diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_vaelastrasz.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_vaelastrasz.cpp index b11ac370804..ffba0ac8ef7 100644 --- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_vaelastrasz.cpp +++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_vaelastrasz.cpp @@ -223,7 +223,7 @@ void SendDefaultMenu_boss_vael(Player *player, Creature *_Creature, uint32 actio if (action == GOSSIP_ACTION_INFO_DEF + 1) //Fight time { player->CLOSE_GOSSIP_MENU(); - ((boss_vaelAI*)_Creature->AI())->BeginSpeach((Unit*)player); + CAST_AI(boss_vaelAI, _Creature->AI())->BeginSpeach(player); } } diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_victor_nefarius.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_victor_nefarius.cpp index b3aee0035df..4b8a8b6ff23 100644 --- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_victor_nefarius.cpp +++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_victor_nefarius.cpp @@ -373,7 +373,7 @@ bool GossipSelect_boss_victor_nefarius(Player *player, Creature *_Creature, uint case GOSSIP_ACTION_INFO_DEF+3: player->CLOSE_GOSSIP_MENU(); DoScriptText(SAY_GAMESBEGIN_1, _Creature); - ((boss_victor_nefariusAI*)_Creature->AI())->BeginEvent(player); + CAST_AI(boss_victor_nefariusAI, _Creature->AI())->BeginEvent(player); break; } return true; diff --git a/src/bindings/scripts/scripts/zone/blades_edge_mountains/blades_edge_mountains.cpp b/src/bindings/scripts/scripts/zone/blades_edge_mountains/blades_edge_mountains.cpp index c47ab0aceff..263bdf67143 100644 --- a/src/bindings/scripts/scripts/zone/blades_edge_mountains/blades_edge_mountains.cpp +++ b/src/bindings/scripts/scripts/zone/blades_edge_mountains/blades_edge_mountains.cpp @@ -61,7 +61,7 @@ struct TRINITY_DLL_DECL mobs_bladespire_ogreAI : public ScriptedAI void JustDied(Unit* Killer) { if (Killer->GetTypeId() == TYPEID_PLAYER) - ((Player*)Killer)->KilledMonster(19995, m_creature->GetGUID()); + CAST_PLR(Killer)->KilledMonster(19995, m_creature->GetGUID()); } }; CreatureAI* GetAI_mobs_bladespire_ogre(Creature *_Creature) @@ -261,8 +261,8 @@ struct TRINITY_DLL_DECL npc_daranelleAI : public ScriptedAI { DoScriptText(SAY_SPELL_INFLUENCE, m_creature, who); //TODO: Move the below to updateAI and run if this statement == true - ((Player*)who)->KilledMonster(21511, m_creature->GetGUID()); - ((Player*)who)->RemoveAurasDueToSpell(36904); + CAST_PLR(who)->KilledMonster(21511, m_creature->GetGUID()); + CAST_PLR(who)->RemoveAurasDueToSpell(36904); } } diff --git a/src/bindings/scripts/scripts/zone/blasted_lands/boss_kruul.cpp b/src/bindings/scripts/scripts/zone/blasted_lands/boss_kruul.cpp index 062efcb1c4e..525570e37e2 100644 --- a/src/bindings/scripts/scripts/zone/blasted_lands/boss_kruul.cpp +++ b/src/bindings/scripts/scripts/zone/blasted_lands/boss_kruul.cpp @@ -87,7 +87,7 @@ struct TRINITY_DLL_DECL boss_kruulAI : public ScriptedAI Rand = 0; Summoned = DoSpawnCreature(19207, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(victim); + (Summoned->AI())->AttackStart(victim); } void UpdateAI(const uint32 diff) diff --git a/src/bindings/scripts/scripts/zone/bloodmyst_isle/bloodmyst_isle.cpp b/src/bindings/scripts/scripts/zone/bloodmyst_isle/bloodmyst_isle.cpp index 2dcc84eba80..b9660576097 100644 --- a/src/bindings/scripts/scripts/zone/bloodmyst_isle/bloodmyst_isle.cpp +++ b/src/bindings/scripts/scripts/zone/bloodmyst_isle/bloodmyst_isle.cpp @@ -56,7 +56,7 @@ struct TRINITY_DLL_DECL mob_webbed_creatureAI : public ScriptedAI case 0: spawnCreatureID = 17681; if (Killer->GetTypeId() == TYPEID_PLAYER) - ((Player*)Killer)->KilledMonster(spawnCreatureID, m_creature->GetGUID()); + CAST_PLR(Killer)->KilledMonster(spawnCreatureID, m_creature->GetGUID()); break; case 1: case 2: diff --git a/src/bindings/scripts/scripts/zone/burning_steppes/burning_steppes.cpp b/src/bindings/scripts/scripts/zone/burning_steppes/burning_steppes.cpp index 1bbe33ea415..b66f4217851 100644 --- a/src/bindings/scripts/scripts/zone/burning_steppes/burning_steppes.cpp +++ b/src/bindings/scripts/scripts/zone/burning_steppes/burning_steppes.cpp @@ -57,7 +57,7 @@ struct TRINITY_DLL_DECL npc_ragged_johnAI : public ScriptedAI if( who->GetTypeId() == TYPEID_PLAYER && m_creature->IsWithinDistInMap(who, 15) && who->isInAccessiblePlaceFor(m_creature) ) { DoCast(who,16472); - ((Player*)who)->AreaExploredOrEventHappens(4866); + CAST_PLR(who)->AreaExploredOrEventHappens(4866); } } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_aeonus.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_aeonus.cpp index 872f7b2fcaf..56a99619504 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_aeonus.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_aeonus.cpp @@ -42,7 +42,7 @@ struct TRINITY_DLL_DECL boss_aeonusAI : public ScriptedAI { boss_aeonusAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp index b4a4ffd04f8..7745c0c56c9 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp @@ -42,7 +42,7 @@ struct TRINITY_DLL_DECL boss_chrono_lord_dejaAI : public ScriptedAI { boss_chrono_lord_dejaAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_temporus.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_temporus.cpp index 56b434373bd..74264aef142 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_temporus.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_temporus.cpp @@ -41,7 +41,7 @@ struct TRINITY_DLL_DECL boss_temporusAI : public ScriptedAI { boss_temporusAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/dark_portal.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/dark_portal.cpp index e69973c5fa5..740e3d221f6 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/dark_portal.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/dark_portal.cpp @@ -58,7 +58,7 @@ struct TRINITY_DLL_DECL npc_medivh_bmAI : public ScriptedAI { npc_medivh_bmAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -244,7 +244,7 @@ struct TRINITY_DLL_DECL npc_time_riftAI : public ScriptedAI { npc_time_riftAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_anetheron.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_anetheron.cpp index 13b0c78ebc1..e4016707a99 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_anetheron.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_anetheron.cpp @@ -40,10 +40,10 @@ struct TRINITY_DLL_DECL boss_anetheronAI : public hyjal_trashAI { boss_anetheronAI(Creature *c) : hyjal_trashAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); go = false; pos = 0; - SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_SLEEP); + SpellEntry *TempSpell = GET_SPELL(SPELL_SLEEP); if(TempSpell && TempSpell->EffectImplicitTargetA[0] != 1) { TempSpell->EffectImplicitTargetA[0] = 1; @@ -128,16 +128,16 @@ struct TRINITY_DLL_DECL boss_anetheronAI : public hyjal_trashAI go = true; if(pInstance) { - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(0, 4896.08, -1576.35, 1333.65); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(1, 4898.68, -1615.02, 1329.48); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(2, 4907.12, -1667.08, 1321.00); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(3, 4963.18, -1699.35, 1340.51); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(4, 4989.16, -1716.67, 1335.74); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(5, 5026.27, -1736.89, 1323.02); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(6, 5037.77, -1770.56, 1324.36); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(7, 5067.23, -1789.95, 1321.17); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(0, 4896.08, -1576.35, 1333.65); + AddWaypoint(1, 4898.68, -1615.02, 1329.48); + AddWaypoint(2, 4907.12, -1667.08, 1321.00); + AddWaypoint(3, 4963.18, -1699.35, 1340.51); + AddWaypoint(4, 4989.16, -1716.67, 1335.74); + AddWaypoint(5, 5026.27, -1736.89, 1323.02); + AddWaypoint(6, 5037.77, -1770.56, 1324.36); + AddWaypoint(7, 5067.23, -1789.95, 1321.17); + Start(false, true, true); + SetDespawnAtEnd(false); } } } @@ -225,7 +225,7 @@ struct TRINITY_DLL_DECL mob_towering_infernalAI : public ScriptedAI { mob_towering_infernalAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); if(pInstance) AnetheronGUID = pInstance->GetData64(DATA_ANETHERON); } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp index ca3d8296f35..6b6529b292e 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp @@ -76,7 +76,7 @@ struct mob_ancient_wispAI : public ScriptedAI { mob_ancient_wispAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -206,7 +206,7 @@ struct TRINITY_DLL_DECL boss_archimondeAI : public hyjal_trashAI { boss_archimondeAI(Creature *c) : hyjal_trashAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -282,7 +282,7 @@ struct TRINITY_DLL_DECL boss_archimondeAI : public hyjal_trashAI } if (victim && (victim->GetTypeId() == TYPEID_PLAYER)) - GainSoulCharge(((Player*)victim)); + GainSoulCharge(CAST_PLR(victim)); } void GainSoulCharge(Player* victim) @@ -530,7 +530,7 @@ struct TRINITY_DLL_DECL boss_archimondeAI : public hyjal_trashAI if (Wisp) { Wisp->AI()->AttackStart(m_creature); - ((mob_ancient_wispAI*)Wisp->AI())->ArchimondeGUID = m_creature->GetGUID(); + CAST_AI(mob_ancient_wispAI, Wisp->AI())->ArchimondeGUID = m_creature->GetGUID(); } SummonWispTimer = 1500; ++WispCount; diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_azgalor.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_azgalor.cpp index 33e3d344da2..8ca8ba36575 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_azgalor.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_azgalor.cpp @@ -31,10 +31,10 @@ struct TRINITY_DLL_DECL boss_azgalorAI : public hyjal_trashAI { boss_azgalorAI(Creature *c) : hyjal_trashAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); go = false; pos = 0; - SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_HOWL_OF_AZGALOR); + SpellEntry *TempSpell = GET_SPELL(SPELL_HOWL_OF_AZGALOR); if(TempSpell) TempSpell->EffectRadiusIndex[0] = 12;//100yards instead of 50000?! } @@ -120,16 +120,16 @@ struct TRINITY_DLL_DECL boss_azgalorAI : public hyjal_trashAI go = true; if(pInstance) { - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(0, 5492.91, -2404.61, 1462.63); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(1, 5531.76, -2460.87, 1469.55); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(2, 5554.58, -2514.66, 1476.12); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(3, 5554.16, -2567.23, 1479.90); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(4, 5540.67, -2625.99, 1480.89); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(5, 5508.16, -2659.2, 1480.15); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(6, 5489.62, -2704.05, 1482.18); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(7, 5457.04, -2726.26, 1485.10); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(0, 5492.91, -2404.61, 1462.63); + AddWaypoint(1, 5531.76, -2460.87, 1469.55); + AddWaypoint(2, 5554.58, -2514.66, 1476.12); + AddWaypoint(3, 5554.16, -2567.23, 1479.90); + AddWaypoint(4, 5540.67, -2625.99, 1480.89); + AddWaypoint(5, 5508.16, -2659.2, 1480.15); + AddWaypoint(6, 5489.62, -2704.05, 1482.18); + AddWaypoint(7, 5457.04, -2726.26, 1485.10); + Start(false, true, true); + SetDespawnAtEnd(false); } } } @@ -187,7 +187,7 @@ struct TRINITY_DLL_DECL mob_lesser_doomguardAI : public hyjal_trashAI { mob_lesser_doomguardAI(Creature *c) : hyjal_trashAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); if(pInstance) AzgalorGUID = pInstance->GetData64(DATA_AZGALOR); } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_kazrogal.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_kazrogal.cpp index 630945bcb96..c8e149e6a37 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_kazrogal.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_kazrogal.cpp @@ -28,10 +28,10 @@ struct TRINITY_DLL_DECL boss_kazrogalAI : public hyjal_trashAI { boss_kazrogalAI(Creature *c) : hyjal_trashAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); go = false; pos = 0; - SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_MARK); + SpellEntry *TempSpell = GET_SPELL(SPELL_MARK); if(TempSpell && TempSpell->EffectImplicitTargetA[0] != 1) { TempSpell->EffectImplicitTargetA[0] = 1; @@ -115,16 +115,16 @@ struct TRINITY_DLL_DECL boss_kazrogalAI : public hyjal_trashAI go = true; if(pInstance) { - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(0, 5492.91, -2404.61, 1462.63); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(1, 5531.76, -2460.87, 1469.55); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(2, 5554.58, -2514.66, 1476.12); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(3, 5554.16, -2567.23, 1479.90); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(4, 5540.67, -2625.99, 1480.89); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(5, 5508.16, -2659.2, 1480.15); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(6, 5489.62, -2704.05, 1482.18); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(7, 5457.04, -2726.26, 1485.10); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(0, 5492.91, -2404.61, 1462.63); + AddWaypoint(1, 5531.76, -2460.87, 1469.55); + AddWaypoint(2, 5554.58, -2514.66, 1476.12); + AddWaypoint(3, 5554.16, -2567.23, 1479.90); + AddWaypoint(4, 5540.67, -2625.99, 1480.89); + AddWaypoint(5, 5508.16, -2659.2, 1480.15); + AddWaypoint(6, 5489.62, -2704.05, 1482.18); + AddWaypoint(7, 5457.04, -2726.26, 1485.10); + Start(false, true, true); + SetDespawnAtEnd(false); } } } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_rage_winterchill.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_rage_winterchill.cpp index 3e6b2bc8e98..924652f3d41 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_rage_winterchill.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_rage_winterchill.cpp @@ -34,7 +34,7 @@ struct TRINITY_DLL_DECL boss_rage_winterchillAI : public hyjal_trashAI { boss_rage_winterchillAI(Creature *c) : hyjal_trashAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); go = false; pos = 0; } @@ -112,16 +112,16 @@ struct TRINITY_DLL_DECL boss_rage_winterchillAI : public hyjal_trashAI go = true; if(pInstance) { - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(0, 4896.08, -1576.35, 1333.65); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(1, 4898.68, -1615.02, 1329.48); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(2, 4907.12, -1667.08, 1321.00); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(3, 4963.18, -1699.35, 1340.51); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(4, 4989.16, -1716.67, 1335.74); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(5, 5026.27, -1736.89, 1323.02); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(6, 5037.77, -1770.56, 1324.36); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(7, 5067.23, -1789.95, 1321.17); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(0, 4896.08, -1576.35, 1333.65); + AddWaypoint(1, 4898.68, -1615.02, 1329.48); + AddWaypoint(2, 4907.12, -1667.08, 1321.00); + AddWaypoint(3, 4963.18, -1699.35, 1340.51); + AddWaypoint(4, 4989.16, -1716.67, 1335.74); + AddWaypoint(5, 5026.27, -1736.89, 1323.02); + AddWaypoint(6, 5037.77, -1770.56, 1324.36); + AddWaypoint(7, 5067.23, -1789.95, 1321.17); + Start(false, true, true); + SetDespawnAtEnd(false); } } } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal.cpp index 96a991d6682..5b51a720f8b 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal.cpp @@ -66,7 +66,7 @@ CreatureAI* GetAI_npc_jaina_proudmoore(Creature *_Creature) bool GossipHello_npc_jaina_proudmoore(Player *player, Creature *_Creature) { - hyjalAI* ai = ((hyjalAI*)_Creature->AI()); + hyjalAI* ai = CAST_AI(hyjalAI, _Creature->AI()); if(ai->EventBegun) return false; @@ -88,7 +88,7 @@ bool GossipHello_npc_jaina_proudmoore(Player *player, Creature *_Creature) bool GossipSelect_npc_jaina_proudmoore(Player *player, Creature *_Creature, uint32 sender, uint32 action) { - hyjalAI* ai = ((hyjalAI*)_Creature->AI()); + hyjalAI* ai = CAST_AI(hyjalAI, _Creature->AI()); switch(action) { case GOSSIP_ACTION_INFO_DEF + 1: @@ -130,7 +130,7 @@ CreatureAI* GetAI_npc_thrall(Creature *_Creature) bool GossipHello_npc_thrall(Player *player, Creature *_Creature) { - hyjalAI* ai = ((hyjalAI*)_Creature->AI()); + hyjalAI* ai = CAST_AI(hyjalAI, _Creature->AI()); if (ai->EventBegun) return false; @@ -157,7 +157,7 @@ bool GossipHello_npc_thrall(Player *player, Creature *_Creature) bool GossipSelect_npc_thrall(Player *player, Creature *_Creature, uint32 sender, uint32 action) { - hyjalAI* ai = ((hyjalAI*)_Creature->AI()); + hyjalAI* ai = CAST_AI(hyjalAI, _Creature->AI()); ai->DeSpawnVeins();//despawn the alliance veins switch(action) { @@ -190,7 +190,7 @@ CreatureAI* GetAI_npc_tyrande_whisperwind(Creature *_Creature) bool GossipHello_npc_tyrande_whisperwind(Player* player, Creature* _Creature) { - hyjalAI* ai = ((hyjalAI*)_Creature->AI()); + hyjalAI* ai = CAST_AI(hyjalAI, _Creature->AI()); uint32 AzgalorEvent = ai->GetInstanceData(DATA_AZGALOREVENT); // Only let them get item if Azgalor is dead. @@ -213,7 +213,7 @@ bool GossipSelect_npc_tyrande_whisperwind(Player *player, Creature *_Creature, u player->SendNewItem(item,1,true,false,true); } player->SEND_GOSSIP_MENU(907, _Creature->GetGUID()); - hyjalAI* ai = ((hyjalAI*)_Creature->AI()); + hyjalAI* ai = CAST_AI(hyjalAI, _Creature->AI()); } return true; } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjalAI.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjalAI.cpp index a3d79a28fa3..77ba7fd7ce2 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjalAI.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjalAI.cpp @@ -308,7 +308,7 @@ float HordeFirePos[65][8]=//spawn points for the fire visuals (GO) in the horde hyjalAI::hyjalAI(Creature *c) : npc_escortAI(c), Summons(m_creature) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); VeinsSpawned[0] = false; VeinsSpawned[1] = false; for(uint8 i=0;i<14;i++) @@ -462,7 +462,7 @@ void hyjalAI::SummonCreature(uint32 entry, float Base[4][3]) {//summon at tower pCreature = m_creature->SummonCreature(entry, SpawnPointSpecial[SPAWN_NEAR_TOWER][0]+irand(-20,20), SpawnPointSpecial[SPAWN_NEAR_TOWER][1]+irand(-20,20), SpawnPointSpecial[SPAWN_NEAR_TOWER][2]+irand(-10,10), 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 120000); if(pCreature) - ((hyjal_trashAI*)pCreature->AI())->useFlyPath = true; + CAST_AI(hyjal_trashAI, pCreature->AI())->useFlyPath = true; }else{//summon at gate pCreature = m_creature->SummonCreature(entry, SpawnPointSpecial[SPAWN_GARG_GATE][0]+irand(-10,10), SpawnPointSpecial[SPAWN_GARG_GATE][1]+irand(-10,10), SpawnPointSpecial[SPAWN_GARG_GATE][2]+irand(-10,10), 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 120000); } @@ -474,7 +474,7 @@ void hyjalAI::SummonCreature(uint32 entry, float Base[4][3]) }else{ pCreature = m_creature->SummonCreature(entry, SpawnPointSpecial[SPAWN_NEAR_TOWER][0], SpawnPointSpecial[SPAWN_NEAR_TOWER][1],SpawnPointSpecial[SPAWN_NEAR_TOWER][2], 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 120000); if(pCreature) - ((hyjal_trashAI*)pCreature->AI())->useFlyPath = true; + CAST_AI(hyjal_trashAI, pCreature->AI())->useFlyPath = true; } break; case 17908: //GIANT_INFERNAL @@ -510,7 +510,7 @@ void hyjalAI::SummonCreature(uint32 entry, float Base[4][3]) case ANETHERON: case KAZROGAL: case AZGALOR: - ((hyjal_trashAI*)pCreature->AI())->IsEvent = true; + CAST_AI(hyjal_trashAI, pCreature->AI())->IsEvent = true; break; } if(pInstance) @@ -682,7 +682,7 @@ void hyjalAI::Retreat() if(JainaDummy) { JainaDummy->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); - ((hyjalAI*)JainaDummy->AI())->IsDummy = true; + CAST_AI(hyjalAI, JainaDummy->AI())->IsDummy = true; DummyGuid = JainaDummy->GetGUID(); } AddWaypoint(0,JainaDummySpawn[1][0],JainaDummySpawn[1][1],JainaDummySpawn[1][2]); @@ -728,7 +728,7 @@ void hyjalAI::DeSpawnVeins() { Creature* pUnit=Unit::GetCreature((*m_creature),pInstance->GetData64(DATA_JAINAPROUDMOORE)); if (!pUnit)return; - hyjalAI* ai = ((hyjalAI*)pUnit->AI()); + hyjalAI* ai = CAST_AI(hyjalAI, pUnit->AI()); if(!ai)return; for (uint8 i = 0; i<7; i++) { @@ -740,7 +740,7 @@ void hyjalAI::DeSpawnVeins() { Creature* pUnit=Unit::GetCreature((*m_creature),pInstance->GetData64(DATA_THRALL)); if (!pUnit)return; - hyjalAI* ai = ((hyjalAI*)pUnit->AI()); + hyjalAI* ai = CAST_AI(hyjalAI, pUnit->AI()); if(!ai)return; for (uint8 i = 7; i<14; i++) { @@ -1000,8 +1000,8 @@ void hyjalAI::WaypointReached(uint32 i) Unit* Dummy = Unit::GetUnit((*m_creature),DummyGuid); if(Dummy) { - ((hyjalAI*)((Creature*)Dummy)->AI())->DoMassTeleport = true; - ((hyjalAI*)((Creature*)Dummy)->AI())->MassTeleportTimer = 20000; + CAST_AI(hyjalAI, CAST_CRE(Dummy)->AI())->DoMassTeleport = true; + CAST_AI(hyjalAI, CAST_CRE(Dummy)->AI())->MassTeleportTimer = 20000; Dummy->CastSpell(m_creature,SPELL_MASS_TELEPORT,false); } } @@ -1100,9 +1100,9 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff) Creature* pUnit = m_creature->SummonCreature(GHOUL, AllianceBase[r][0]+irand(-15,15), AllianceBase[r][1]+irand(-15,15), AllianceBase[r][2], 0, TEMPSUMMON_MANUAL_DESPAWN, 2*60*1000); if(pUnit) { - ((hyjal_trashAI*)pUnit->AI())->faction = Faction; - ((hyjal_trashAI*)pUnit->AI())->IsOverrun = true; - ((hyjal_trashAI*)pUnit->AI())->OverrunType = i; + CAST_AI(hyjal_trashAI, pUnit->AI())->faction = Faction; + CAST_AI(hyjal_trashAI, pUnit->AI())->IsOverrun = true; + CAST_AI(hyjal_trashAI, pUnit->AI())->OverrunType = i; pUnit->setActive(true); } } @@ -1112,9 +1112,9 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff) Creature* pUnit = m_creature->SummonCreature(ABOMINATION, AllianceBase[r][0]+irand(-15,15), AllianceBase[r][1]+irand(-15,15), AllianceBase[r][2], 0, TEMPSUMMON_MANUAL_DESPAWN, 2*60*1000); if(pUnit) { - ((hyjal_trashAI*)pUnit->AI())->faction = Faction; - ((hyjal_trashAI*)pUnit->AI())->IsOverrun = true; - ((hyjal_trashAI*)pUnit->AI())->OverrunType = i; + CAST_AI(hyjal_trashAI, pUnit->AI())->faction = Faction; + CAST_AI(hyjal_trashAI, pUnit->AI())->IsOverrun = true; + CAST_AI(hyjal_trashAI, pUnit->AI())->OverrunType = i; pUnit->setActive(true); } } @@ -1124,9 +1124,9 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff) if(pUnit) { pUnit->SetHomePosition(AllianceOverrunGargPos[i][0], AllianceOverrunGargPos[i][1], AllianceOverrunGargPos[i][2], AllianceOverrunGargPos[i][3]); - ((hyjal_trashAI*)pUnit->AI())->faction = Faction; - ((hyjal_trashAI*)pUnit->AI())->IsOverrun = true; - ((hyjal_trashAI*)pUnit->AI())->OverrunType = i; + CAST_AI(hyjal_trashAI, pUnit->AI())->faction = Faction; + CAST_AI(hyjal_trashAI, pUnit->AI())->IsOverrun = true; + CAST_AI(hyjal_trashAI, pUnit->AI())->OverrunType = i; pUnit->setActive(true); } } @@ -1141,9 +1141,9 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff) if(pUnit) { pUnit->SetHomePosition(InfernalSPWP[i][0], InfernalSPWP[i][1], InfernalSPWP[i][2], InfernalSPWP[i][3]); - ((hyjal_trashAI*)pUnit->AI())->faction = Faction; - ((hyjal_trashAI*)pUnit->AI())->IsOverrun = true; - ((hyjal_trashAI*)pUnit->AI())->OverrunType = i; + CAST_AI(hyjal_trashAI, pUnit->AI())->faction = Faction; + CAST_AI(hyjal_trashAI, pUnit->AI())->IsOverrun = true; + CAST_AI(hyjal_trashAI, pUnit->AI())->OverrunType = i; pUnit->setActive(true); } } @@ -1153,9 +1153,9 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff) Creature* pUnit = m_creature->SummonCreature(GHOUL, HordeBase[r][0]+irand(-15,15), HordeBase[r][1]+irand(-15,15), HordeBase[r][2], 0, TEMPSUMMON_MANUAL_DESPAWN, 2*60*1000); if(pUnit) { - ((hyjal_trashAI*)pUnit->AI())->faction = Faction; - ((hyjal_trashAI*)pUnit->AI())->IsOverrun = true; - ((hyjal_trashAI*)pUnit->AI())->OverrunType = i; + CAST_AI(hyjal_trashAI, pUnit->AI())->faction = Faction; + CAST_AI(hyjal_trashAI, pUnit->AI())->IsOverrun = true; + CAST_AI(hyjal_trashAI, pUnit->AI())->OverrunType = i; pUnit->setActive(true); } } @@ -1165,9 +1165,9 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff) Creature* pUnit = m_creature->SummonCreature(ABOMINATION, HordeBase[r][0]+irand(-15,15), HordeBase[r][1]+irand(-15,15), HordeBase[r][2], 0, TEMPSUMMON_MANUAL_DESPAWN, 2*60*1000); if(pUnit) { - ((hyjal_trashAI*)pUnit->AI())->faction = Faction; - ((hyjal_trashAI*)pUnit->AI())->IsOverrun = true; - ((hyjal_trashAI*)pUnit->AI())->OverrunType = i; + CAST_AI(hyjal_trashAI, pUnit->AI())->faction = Faction; + CAST_AI(hyjal_trashAI, pUnit->AI())->IsOverrun = true; + CAST_AI(hyjal_trashAI, pUnit->AI())->OverrunType = i; pUnit->setActive(true); } } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal_trash.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal_trash.cpp index 30f0c14caaf..92cbfdbf3ab 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal_trash.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal_trash.cpp @@ -141,7 +141,7 @@ float HordeOverrunWP[21][3]=//waypoints in the horde base used in the end in the hyjal_trashAI::hyjal_trashAI(Creature *c) : npc_escortAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); IsEvent = false; Delay = 0; LastOverronPos = 0; @@ -156,7 +156,7 @@ hyjal_trashAI::hyjal_trashAI(Creature *c) : npc_escortAI(c) void hyjal_trashAI::DamageTaken(Unit *done_by, uint32 &damage) { - if(done_by->GetTypeId() == TYPEID_PLAYER || (done_by->GetTypeId() == TYPEID_UNIT && ((Creature*)done_by)->isPet())) + if(done_by->GetTypeId() == TYPEID_PLAYER || (done_by->GetTypeId() == TYPEID_UNIT && CAST_CRE(done_by)->isPet())) { damageTaken += damage; if(pInstance) @@ -375,7 +375,7 @@ struct mob_giant_infernalAI : public hyjal_trashAI { mob_giant_infernalAI(Creature* c) : hyjal_trashAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); meteor = false;//call once! CanMove = false; Delay = rand()%30000; @@ -473,9 +473,9 @@ struct mob_giant_infernalAI : public hyjal_trashAI go = true; if(pInstance) { - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(0, HordeWPs[7][0]+irand(-3,3), HordeWPs[7][1]+irand(-3,3), HordeWPs[7][2]);//HordeWPs[7] infront of thrall - ((npc_escortAI*)(m_creature->AI()))->Start(true, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(0, HordeWPs[7][0]+irand(-3,3), HordeWPs[7][1]+irand(-3,3), HordeWPs[7][2]);//HordeWPs[7] infront of thrall + Start(true, true, true); + SetDespawnAtEnd(false); } } } @@ -509,7 +509,7 @@ struct mob_abominationAI : public hyjal_trashAI { mob_abominationAI(Creature* c) : hyjal_trashAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); go = false; pos = 0; Reset(); @@ -566,15 +566,15 @@ struct mob_abominationAI : public hyjal_trashAI if (pInstance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, use horde WPs { for (uint8 i = 0; i < 8; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]); + Start(false, true, true); + SetDespawnAtEnd(false); }else//use alliance WPs { for (uint8 i = 0; i < 8; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]); + Start(false, true, true); + SetDespawnAtEnd(false); } } } @@ -604,7 +604,7 @@ struct mob_ghoulAI : public hyjal_trashAI { mob_ghoulAI(Creature* c) : hyjal_trashAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); go = false; pos = 0; Reset(); @@ -667,15 +667,15 @@ struct mob_ghoulAI : public hyjal_trashAI if (pInstance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, use horde WPs { for (uint8 i = 0; i < 8; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]); + Start(false, true, true); + SetDespawnAtEnd(false); }else//use alliance WPs { for (uint8 i = 0; i < 8; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]); + Start(false, true, true); + SetDespawnAtEnd(false); } } } @@ -707,7 +707,7 @@ struct mob_necromancerAI : public hyjal_trashAI { mob_necromancerAI(Creature* c) : hyjal_trashAI(c), summons(m_creature) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); go = false; pos = 0; Reset(); @@ -786,15 +786,15 @@ struct mob_necromancerAI : public hyjal_trashAI if (pInstance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, use horde WPs { for (uint8 i = 0; i < 8; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(true, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]); + Start(true, true, true); + SetDespawnAtEnd(false); }else//use alliance WPs { for (uint8 i = 0; i < 8; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(true, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]); + Start(true, true, true); + SetDespawnAtEnd(false); } } } @@ -825,7 +825,7 @@ struct mob_bansheeAI : public hyjal_trashAI { mob_bansheeAI(Creature* c) : hyjal_trashAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); go = false; pos = 0; Reset(); @@ -878,15 +878,15 @@ struct mob_bansheeAI : public hyjal_trashAI if (pInstance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, use horde WPs { for (uint8 i = 0; i < 8; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]); + Start(false, true, true); + SetDespawnAtEnd(false); }else//use alliance WPs { for (uint8 i = 0; i < 8; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]); + Start(false, true, true); + SetDespawnAtEnd(false); } } } @@ -924,7 +924,7 @@ struct mob_crypt_fiendAI : public hyjal_trashAI { mob_crypt_fiendAI(Creature* c) : hyjal_trashAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); go = false; pos = 0; Reset(); @@ -973,15 +973,15 @@ struct mob_crypt_fiendAI : public hyjal_trashAI if (pInstance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, use horde WPs { for (uint8 i = 0; i < 8; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]); + Start(false, true, true); + SetDespawnAtEnd(false); }else//use alliance WPs { for (uint8 i = 0; i < 8; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]); + Start(false, true, true); + SetDespawnAtEnd(false); } } @@ -1010,7 +1010,7 @@ struct mob_fel_stalkerAI : public hyjal_trashAI { mob_fel_stalkerAI(Creature* c) : hyjal_trashAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); go = false; pos = 0; Reset(); @@ -1059,15 +1059,15 @@ struct mob_fel_stalkerAI : public hyjal_trashAI if (pInstance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, use horde WPs { for (uint8 i = 0; i < 8; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]); + Start(false, true, true); + SetDespawnAtEnd(false); }else//use alliance WPs { for (uint8 i = 0; i < 8; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]); + Start(false, true, true); + SetDespawnAtEnd(false); } } @@ -1096,7 +1096,7 @@ struct mob_frost_wyrmAI : public hyjal_trashAI { mob_frost_wyrmAI(Creature* c) : hyjal_trashAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); go = false; pos = 0; Reset(); @@ -1147,7 +1147,7 @@ struct mob_frost_wyrmAI : public hyjal_trashAI hyjal_trashAI::UpdateAI(diff); if(IsEvent || IsOverrun) { - ((hyjal_trashAI*)m_creature->AI())->SetCanMelee(false); + CAST_AI(hyjal_trashAI, m_creature->AI())->SetCanMelee(false); npc_escortAI::UpdateAI(diff); } if (IsEvent) @@ -1160,14 +1160,14 @@ struct mob_frost_wyrmAI : public hyjal_trashAI if(!useFlyPath) { for (uint8 i = 0; i < 3; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, FrostWyrmWPs[i][0], FrostWyrmWPs[i][1], FrostWyrmWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, FrostWyrmWPs[i][0], FrostWyrmWPs[i][1], FrostWyrmWPs[i][2]); + Start(false, true, true); + SetDespawnAtEnd(false); }else{//fly path FlyPathWPs for (uint8 i = 0; i < 3; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, FlyPathWPs[i][0]+irand(-10,10), FlyPathWPs[i][1]+irand(-10,10), FlyPathWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, FlyPathWPs[i][0]+irand(-10,10), FlyPathWPs[i][1]+irand(-10,10), FlyPathWPs[i][2]); + Start(false, true, true); + SetDespawnAtEnd(false); } } } @@ -1207,7 +1207,7 @@ struct mob_gargoyleAI : public hyjal_trashAI { mob_gargoyleAI(Creature* c) : hyjal_trashAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); go = false; pos = 0; DummyTarget[0] = 0;DummyTarget[1] = 0;DummyTarget[2] = 0; @@ -1259,7 +1259,7 @@ struct mob_gargoyleAI : public hyjal_trashAI hyjal_trashAI::UpdateAI(diff); if(IsEvent || IsOverrun) { - ((hyjal_trashAI*)m_creature->AI())->SetCanMelee(false); + CAST_AI(hyjal_trashAI, m_creature->AI())->SetCanMelee(false); npc_escortAI::UpdateAI(diff); } if (IsEvent) @@ -1272,14 +1272,14 @@ struct mob_gargoyleAI : public hyjal_trashAI if(!useFlyPath) { for (uint8 i = 0; i < 3; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, GargoyleWPs[i][0]+irand(-10,10), GargoyleWPs[i][1]+irand(-10,10), GargoyleWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, GargoyleWPs[i][0]+irand(-10,10), GargoyleWPs[i][1]+irand(-10,10), GargoyleWPs[i][2]); + Start(false, true, true); + SetDespawnAtEnd(false); }else{//fly path FlyPathWPs for (uint8 i = 0; i < 3; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, FlyPathWPs[i][0]+irand(-10,10), FlyPathWPs[i][1]+irand(-10,10), FlyPathWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, FlyPathWPs[i][0]+irand(-10,10), FlyPathWPs[i][1]+irand(-10,10), FlyPathWPs[i][2]); + Start(false, true, true); + SetDespawnAtEnd(false); } } } @@ -1346,7 +1346,7 @@ struct TRINITY_DLL_DECL alliance_riflemanAI : public Scripted_NoMovementAI uint32 ExplodeTimer; - void JustDied(Unit*) + void JustDied(Unit* who) { } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_captain_skarloc.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_captain_skarloc.cpp index 3eda30963a5..feff5debf3e 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_captain_skarloc.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_captain_skarloc.cpp @@ -42,7 +42,7 @@ struct TRINITY_DLL_DECL boss_captain_skarlocAI : public ScriptedAI { boss_captain_skarlocAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_epoch_hunter.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_epoch_hunter.cpp index c2451dce22d..26e1cb57e1a 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_epoch_hunter.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_epoch_hunter.cpp @@ -44,7 +44,7 @@ struct TRINITY_DLL_DECL boss_epoch_hunterAI : public ScriptedAI { boss_epoch_hunterAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_leutenant_drake.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_leutenant_drake.cpp index ddca1523597..e219c8f72a6 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_leutenant_drake.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_leutenant_drake.cpp @@ -31,7 +31,7 @@ EndScriptData */ bool GOHello_go_barrel_old_hillsbrad(Player *player, GameObject* _GO) { - ScriptedInstance* pInstance = (ScriptedInstance*)_GO->GetInstanceData(); + ScriptedInstance* pInstance = _GO->GetInstanceData(); if (!pInstance) return false; diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp index f149ce50f77..ec01c32b5a3 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp @@ -46,7 +46,7 @@ bool GossipHello_npc_erozion(Player *player, Creature *_Creature) if( _Creature->isQuestGiver() ) player->PrepareQuestMenu( _Creature->GetGUID() ); - ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData()); + ScriptedInstance* pInstance = (_Creature->GetInstanceData()); if( pInstance && pInstance->GetData(TYPE_BARREL_DIVERSION) != DONE && !player->HasItemCount(ITEM_ENTRY_BOMBS,1) ) player->ADD_GOSSIP_ITEM( 0, "I need a pack of Incendiary Bombs.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1); @@ -177,7 +177,7 @@ struct TRINITY_DLL_DECL npc_thrall_old_hillsbradAI : public npc_escortAI { npc_thrall_old_hillsbradAI(Creature *c) : npc_escortAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); m_creature->setActive(true); } @@ -335,7 +335,7 @@ struct TRINITY_DLL_DECL npc_thrall_old_hillsbradAI : public npc_escortAI if (uint64 TarethaGUID = pInstance->GetData64(DATA_TARETHA)) { if (Creature* Taretha = (Unit::GetCreature(*m_creature, TarethaGUID))) - ((npc_escortAI*)(Taretha->AI()))->Start(false, false, true, PlayerGUID); + CAST_AI(npc_escortAI, (Taretha->AI()))->Start(false, false, true, PlayerGUID); } //kill credit creature for quest @@ -486,7 +486,7 @@ CreatureAI* GetAI_npc_thrall_old_hillsbrad(Creature *_Creature) thrall_walkAI->FillPointMovementListForCreature(); - return (CreatureAI*)thrall_walkAI; + return thrall_walkAI; } bool GossipHello_npc_thrall_old_hillsbrad(Player *player, Creature *_Creature) @@ -497,7 +497,7 @@ bool GossipHello_npc_thrall_old_hillsbrad(Player *player, Creature *_Creature) player->SendPreparedQuest(_Creature->GetGUID()); } - ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData()); + ScriptedInstance* pInstance = (_Creature->GetInstanceData()); if( pInstance ) { if (pInstance->GetData(TYPE_BARREL_DIVERSION) == DONE && !pInstance->GetData(TYPE_THRALL_EVENT)) @@ -523,7 +523,7 @@ bool GossipHello_npc_thrall_old_hillsbrad(Player *player, Creature *_Creature) bool GossipSelect_npc_thrall_old_hillsbrad(Player *player, Creature *_Creature, uint32 sender, uint32 action) { - ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData()); + ScriptedInstance* pInstance = (_Creature->GetInstanceData()); switch( action ) { case GOSSIP_ACTION_INFO_DEF+1: @@ -536,10 +536,10 @@ bool GossipSelect_npc_thrall_old_hillsbrad(Player *player, Creature *_Creature, DoScriptText(SAY_TH_START_EVENT_PART1, _Creature); - ((npc_escortAI*)(_Creature->AI()))->Start(true, true, true, player->GetGUID()); - ((npc_escortAI*)(_Creature->AI()))->SetMaxPlayerDistance(100.0f);//not really needed, because it will not despawn if player is too far - ((npc_escortAI*)(_Creature->AI()))->SetDespawnAtEnd(false); - ((npc_escortAI*)(_Creature->AI()))->SetDespawnAtFar(false); + CAST_AI(npc_escortAI, (_Creature->AI()))->Start(true, true, true, player->GetGUID()); + CAST_AI(npc_escortAI, (_Creature->AI()))->SetMaxPlayerDistance(100.0f);//not really needed, because it will not despawn if player is too far + CAST_AI(npc_escortAI, (_Creature->AI()))->SetDespawnAtEnd(false); + CAST_AI(npc_escortAI, (_Creature->AI()))->SetDespawnAtFar(false); break; case GOSSIP_ACTION_INFO_DEF+2: @@ -555,14 +555,14 @@ bool GossipSelect_npc_thrall_old_hillsbrad(Player *player, Creature *_Creature, DoScriptText(SAY_TH_START_EVENT_PART2, _Creature); - ((npc_thrall_old_hillsbradAI*)_Creature->AI())->StartWP(); + CAST_AI(npc_thrall_old_hillsbradAI, _Creature->AI())->StartWP(); break; case GOSSIP_ACTION_INFO_DEF+3: player->CLOSE_GOSSIP_MENU(); if(pInstance) pInstance->SetData(TYPE_THRALL_PART3,IN_PROGRESS); - ((npc_thrall_old_hillsbradAI*)_Creature->AI())->StartWP(); + CAST_AI(npc_thrall_old_hillsbradAI, _Creature->AI())->StartWP(); break; } return true; @@ -581,7 +581,7 @@ struct TRINITY_DLL_DECL npc_tarethaAI : public npc_escortAI { npc_tarethaAI(Creature *c) : npc_escortAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -612,12 +612,12 @@ CreatureAI* GetAI_npc_taretha(Creature *_Creature) taretha_walkAI->FillPointMovementListForCreature(); - return (CreatureAI*)taretha_walkAI; + return taretha_walkAI; } bool GossipHello_npc_taretha(Player *player, Creature *_Creature) { - ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData()); + ScriptedInstance* pInstance = (_Creature->GetInstanceData()); if( pInstance && pInstance->GetData(TYPE_THRALL_PART3) == DONE && pInstance->GetData(TYPE_THRALL_PART4) == NOT_STARTED) { player->ADD_GOSSIP_ITEM( 0, GOSSIP_ITEM_EPOCH1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1); @@ -628,7 +628,7 @@ bool GossipHello_npc_taretha(Player *player, Creature *_Creature) bool GossipSelect_npc_taretha(Player *player, Creature *_Creature, uint32 sender, uint32 action) { - ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData()); + ScriptedInstance* pInstance = (_Creature->GetInstanceData()); if( action == GOSSIP_ACTION_INFO_DEF+1 ) { player->ADD_GOSSIP_ITEM( 0, GOSSIP_ITEM_EPOCH2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2); @@ -649,7 +649,7 @@ bool GossipSelect_npc_taretha(Player *player, Creature *_Creature, uint32 sender { Creature* Thrall = (Unit::GetCreature((*_Creature), ThrallGUID)); if(Thrall) - ((npc_thrall_old_hillsbradAI*)Thrall->AI())->StartWP(); + CAST_AI(npc_thrall_old_hillsbradAI, Thrall->AI())->StartWP(); } } } diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp index cac1d386c62..5e9afdf5c33 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp @@ -95,7 +95,7 @@ struct TRINITY_DLL_DECL boss_fathomlord_karathressAI : public ScriptedAI { boss_fathomlord_karathressAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); Advisors[0] = 0; Advisors[1] = 0; Advisors[2] = 0; @@ -305,7 +305,7 @@ struct TRINITY_DLL_DECL boss_fathomguard_sharkkisAI : public ScriptedAI { boss_fathomguard_sharkkisAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -349,8 +349,8 @@ struct TRINITY_DLL_DECL boss_fathomguard_sharkkisAI : public ScriptedAI Karathress = (Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_KARATHRESS))); if (Karathress) - ((boss_fathomlord_karathressAI*)Karathress->AI())->EventSharkkisDeath(); - ((boss_fathomlord_karathressAI*)Karathress->AI())->EventSharkkisDeath(); + CAST_AI(boss_fathomlord_karathressAI, Karathress->AI())->EventSharkkisDeath(); + CAST_AI(boss_fathomlord_karathressAI, Karathress->AI())->EventSharkkisDeath(); } } @@ -449,7 +449,7 @@ struct TRINITY_DLL_DECL boss_fathomguard_tidalvessAI : public ScriptedAI { boss_fathomguard_tidalvessAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -479,7 +479,7 @@ struct TRINITY_DLL_DECL boss_fathomguard_tidalvessAI : public ScriptedAI if (Karathress) if(!m_creature->isAlive() && Karathress) - ((boss_fathomlord_karathressAI*)Karathress->AI())->EventTidalvessDeath(); + CAST_AI(boss_fathomlord_karathressAI, Karathress->AI())->EventTidalvessDeath(); } } @@ -536,7 +536,7 @@ struct TRINITY_DLL_DECL boss_fathomguard_tidalvessAI : public ScriptedAI Unit *SpitfireTotem = Unit::GetUnit( *m_creature, CREATURE_SPITFIRE_TOTEM ); if( SpitfireTotem ) { - ((Creature*)SpitfireTotem)->AI()->AttackStart( m_creature->getVictim() ); + CAST_CRE(SpitfireTotem)->AI()->AttackStart( m_creature->getVictim() ); } Spitfire_Timer = 60000; }else Spitfire_Timer -= diff; @@ -564,7 +564,7 @@ struct TRINITY_DLL_DECL boss_fathomguard_caribdisAI : public ScriptedAI { boss_fathomguard_caribdisAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -594,7 +594,7 @@ struct TRINITY_DLL_DECL boss_fathomguard_caribdisAI : public ScriptedAI if (Karathress) if(!m_creature->isAlive() && Karathress) - ((boss_fathomlord_karathressAI*)Karathress->AI())->EventCaribdisDeath(); + CAST_AI(boss_fathomlord_karathressAI, Karathress->AI())->EventCaribdisDeath(); } } @@ -655,7 +655,7 @@ struct TRINITY_DLL_DECL boss_fathomguard_caribdisAI : public ScriptedAI Creature *Cyclone = m_creature->SummonCreature(CREATURE_CYCLONE, m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ(), (rand()%5), TEMPSUMMON_TIMED_DESPAWN, 15000); if( Cyclone ) { - ((Creature*)Cyclone)->SetFloatValue(OBJECT_FIELD_SCALE_X, 3.0f); + CAST_CRE(Cyclone)->SetFloatValue(OBJECT_FIELD_SCALE_X, 3.0f); Cyclone->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); Cyclone->setFaction(m_creature->getFaction()); Cyclone->CastSpell(Cyclone, SPELL_CYCLONE_CYCLONE, true); diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp index cb91f063d9f..bd2365336f0 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp @@ -78,7 +78,7 @@ struct TRINITY_DLL_DECL boss_hydross_the_unstableAI : public ScriptedAI { boss_hydross_the_unstableAI(Creature *c) : ScriptedAI(c), Summons(m_creature) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp index beebbc631c0..8e5ed16688c 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp @@ -132,7 +132,7 @@ struct TRINITY_DLL_DECL boss_lady_vashjAI : public ScriptedAI { boss_lady_vashjAI (Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); Intro = false; JustCreated = true; m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); //set it only once on creature create (no need do intro if wiped) @@ -583,14 +583,14 @@ struct TRINITY_DLL_DECL mob_enchanted_elementalAI : public ScriptedAI { mob_enchanted_elementalAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; uint32 move; uint32 phase; float x, y, z; - Unit *Vashj; + Creature *Vashj; void Reset() { @@ -619,7 +619,7 @@ struct TRINITY_DLL_DECL mob_enchanted_elementalAI : public ScriptedAI } } if (pInstance) - Vashj = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_LADYVASHJ)); + Vashj = Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_LADYVASHJ)); } void EnterCombat(Unit *who) { return; } @@ -657,7 +657,7 @@ struct TRINITY_DLL_DECL mob_enchanted_elementalAI : public ScriptedAI m_creature->GetMotionMaster()->MovePoint(0, MIDDLE_X, MIDDLE_Y, MIDDLE_Z); if(m_creature->GetDistance(MIDDLE_X, MIDDLE_Y, MIDDLE_Z) < 3) { - SpellEntry *spell = (SpellEntry *)GetSpellStore()->LookupEntry(SPELL_SURGE); + SpellEntry *spell = GET_SPELL(SPELL_SURGE); if( spell ) { uint8 eff_mask=0; @@ -672,7 +672,7 @@ struct TRINITY_DLL_DECL mob_enchanted_elementalAI : public ScriptedAI m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); } } - if(((boss_lady_vashjAI*)((Creature*)Vashj)->AI())->InCombat == false || ((boss_lady_vashjAI*)((Creature*)Vashj)->AI())->Phase != 2 || Vashj->isDead()) + if(CAST_AI(boss_lady_vashjAI, Vashj->AI())->InCombat == false || CAST_AI(boss_lady_vashjAI, Vashj->AI())->Phase != 2 || Vashj->isDead()) { //call Unsummon() m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); @@ -688,7 +688,7 @@ struct TRINITY_DLL_DECL mob_tainted_elementalAI : public ScriptedAI { mob_tainted_elementalAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -710,7 +710,7 @@ struct TRINITY_DLL_DECL mob_tainted_elementalAI : public ScriptedAI Vashj = (Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_LADYVASHJ))); if(Vashj) - ((boss_lady_vashjAI*)Vashj->AI())->EventTaintedElementalDeath(); + CAST_AI(boss_lady_vashjAI, Vashj->AI())->EventTaintedElementalDeath(); } } @@ -751,7 +751,7 @@ struct TRINITY_DLL_DECL mob_toxic_sporebatAI : public ScriptedAI { mob_toxic_sporebatAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); EnterEvadeMode(); } @@ -827,7 +827,7 @@ struct TRINITY_DLL_DECL mob_toxic_sporebatAI : public ScriptedAI //check if vashj is death Unit *Vashj = NULL; Vashj = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_LADYVASHJ)); - if(!Vashj || (Vashj && !Vashj->isAlive()) || (Vashj && ((boss_lady_vashjAI*)((Creature*)Vashj)->AI())->Phase != 3)) + if(!Vashj || (Vashj && !Vashj->isAlive()) || (Vashj && CAST_AI(boss_lady_vashjAI, CAST_CRE(Vashj)->AI())->Phase != 3)) { //remove m_creature->setDeathState(DEAD); @@ -883,7 +883,7 @@ struct TRINITY_DLL_DECL mob_shield_generator_channelAI : public ScriptedAI { mob_shield_generator_channelAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -928,7 +928,7 @@ struct TRINITY_DLL_DECL mob_shield_generator_channelAI : public ScriptedAI bool ItemUse_item_tainted_core(Player *player, Item* _Item, SpellCastTargets const& targets) { - ScriptedInstance *pInstance = (player->GetInstanceData()) ? ((ScriptedInstance*)player->GetInstanceData()) : NULL; + ScriptedInstance *pInstance = (player->GetInstanceData()) ? (player->GetInstanceData()) : NULL; if(!pInstance) { @@ -938,7 +938,7 @@ bool ItemUse_item_tainted_core(Player *player, Item* _Item, SpellCastTargets con Creature *Vashj = NULL; Vashj = (Unit::GetCreature((*player), pInstance->GetData64(DATA_LADYVASHJ))); - if(Vashj && ((boss_lady_vashjAI*)Vashj->AI())->Phase == 2) + if(Vashj && CAST_AI(boss_lady_vashjAI, Vashj->AI())->Phase == 2) { if(targets.getGOTarget() && targets.getGOTarget()->GetTypeId()==TYPEID_GAMEOBJECT) { @@ -974,7 +974,7 @@ bool ItemUse_item_tainted_core(Player *player, Item* _Item, SpellCastTargets con //get and remove channel Unit *Channel = NULL; - Channel = Unit::GetUnit((*Vashj), ((boss_lady_vashjAI*)Vashj->AI())->ShieldGeneratorChannel[channel_identifier]); + Channel = Unit::GetCreature(*Vashj, CAST_AI(boss_lady_vashjAI, Vashj->AI())->ShieldGeneratorChannel[channel_identifier]); if(Channel) { //call Unsummon() diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp index 8b9421dfd4c..1373be2ed6d 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp @@ -140,7 +140,7 @@ struct TRINITY_DLL_DECL boss_leotheras_the_blindAI : public ScriptedAI boss_leotheras_the_blindAI(Creature *c) : ScriptedAI(c) { m_creature->GetPosition(x,y,z); - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); Demon = 0; for(uint8 i = 0; i < 3; i++)//clear guids @@ -326,10 +326,10 @@ struct TRINITY_DLL_DECL boss_leotheras_the_blindAI : public ScriptedAI { if(InnderDemon[i] > 0 ) { - Unit* pUnit = Unit::GetUnit((*m_creature), InnderDemon[i]); + Creature* pUnit = Unit::GetCreature((*m_creature), InnderDemon[i]); if (pUnit && pUnit->isAlive()) { - Unit* pUnit_target = Unit::GetUnit((*pUnit), ((mob_inner_demonAI *)((Creature *)pUnit)->AI())->victimGUID); + Unit* pUnit_target = Unit::GetUnit(*pUnit, CAST_AI(mob_inner_demonAI, pUnit->AI())->victimGUID); if( pUnit_target && pUnit_target->isAlive()) { pUnit->CastSpell(pUnit_target, SPELL_CONSUMING_MADNESS, true); @@ -496,16 +496,16 @@ struct TRINITY_DLL_DECL boss_leotheras_the_blindAI : public ScriptedAI if(tempTarget && tempTarget->GetTypeId() == TYPEID_PLAYER && tempTarget->GetGUID() != m_creature->getVictim()->GetGUID() && TargetList.size()<5) TargetList.push_back( tempTarget ); } - SpellEntry *spell = (SpellEntry *)GetSpellStore()->LookupEntry(SPELL_INSIDIOUS_WHISPER); + SpellEntry *spell = GET_SPELL(SPELL_INSIDIOUS_WHISPER); for(std::vector<Unit *>::iterator itr = TargetList.begin(); itr != TargetList.end(); ++itr) { if( (*itr) && (*itr)->isAlive() ) { - Creature * demon = (Creature *)m_creature->SummonCreature(INNER_DEMON_ID, (*itr)->GetPositionX()+10, (*itr)->GetPositionY()+10, (*itr)->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000); + Creature * demon = m_creature->SummonCreature(INNER_DEMON_ID, (*itr)->GetPositionX()+10, (*itr)->GetPositionY()+10, (*itr)->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000); if(demon) { - ((ScriptedAI *)demon->AI())->AttackStart( (*itr) ); - ((mob_inner_demonAI *)demon->AI())->victimGUID = (*itr)->GetGUID(); + demon->AI()->AttackStart( (*itr) ); + CAST_AI(mob_inner_demonAI, demon->AI())->victimGUID = (*itr)->GetGUID(); uint8 eff_mask=0; for (int i=0; i<3; i++) @@ -640,7 +640,7 @@ struct TRINITY_DLL_DECL mob_greyheart_spellbinderAI : public ScriptedAI { mob_greyheart_spellbinderAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance *)c->GetInstanceData());; + pInstance = (c->GetInstanceData());; leotherasGUID = 0; AddedBanish = false; } @@ -662,9 +662,9 @@ struct TRINITY_DLL_DECL mob_greyheart_spellbinderAI : public ScriptedAI if(pInstance) { pInstance->SetData64(DATA_LEOTHERAS_EVENT_STARTER, 0); - Creature *leotheras = (Creature *)Unit::GetUnit(*m_creature, leotherasGUID); + Creature *leotheras = Unit::GetCreature(*m_creature, leotherasGUID); if(leotheras && leotheras->isAlive()) - ((boss_leotheras_the_blindAI*)leotheras->AI())->CheckChannelers(false); + CAST_AI(boss_leotheras_the_blindAI, leotheras->AI())->CheckChannelers(false); } } @@ -687,7 +687,7 @@ struct TRINITY_DLL_DECL mob_greyheart_spellbinderAI : public ScriptedAI { if(leotherasGUID) { - Creature *leotheras = (Creature *)Unit::GetUnit(*m_creature, leotherasGUID); + Creature *leotheras = Unit::GetCreature(*m_creature, leotherasGUID); if(leotheras && leotheras->isAlive()) DoCast(leotheras, BANISH_BEAM); } diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp index 254a4d1d899..3fa97e6b608 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp @@ -76,8 +76,8 @@ struct TRINITY_DLL_DECL boss_the_lurker_belowAI : public Scripted_NoMovementAI { boss_the_lurker_belowAI(Creature *c) : Scripted_NoMovementAI(c), Summons(m_creature) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); - SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_SPOUT_ANIM); + pInstance = (c->GetInstanceData()); + SpellEntry *TempSpell = GET_SPELL(SPELL_SPOUT_ANIM); if(TempSpell) { TempSpell->Effect[0] = 0;//remove all spell effect, only anim is needed @@ -403,7 +403,7 @@ struct TRINITY_DLL_DECL mob_coilfang_ambusherAI : public Scripted_NoMovementAI { mob_coilfang_ambusherAI(Creature *c) : Scripted_NoMovementAI(c) { - SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_SHOOT); + SpellEntry *TempSpell = GET_SPELL(SPELL_SHOOT); if(TempSpell) TempSpell->Effect[0] = 2;//change spell effect from weapon % dmg to simple phisical dmg } diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp index f8d27df5bb0..5038fe09334 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp @@ -100,7 +100,7 @@ struct TRINITY_DLL_DECL boss_morogrim_tidewalkerAI : public ScriptedAI { boss_morogrim_tidewalkerAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -163,7 +163,7 @@ struct TRINITY_DLL_DECL boss_morogrim_tidewalkerAI : public ScriptedAI void EnterCombat(Unit *who) { - PlayerList = &((InstanceMap*)m_creature->GetMap())->GetPlayers(); + PlayerList = &m_creature->GetMap()->GetPlayers(); Playercount = PlayerList->getSize(); StartEvent(); } diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp index 8aa759a87c8..4e104fc2846 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp @@ -37,7 +37,7 @@ EndScriptData */ bool GOHello_go_bridge_console(Player *player, GameObject* go) { - ScriptedInstance* pInstance = (ScriptedInstance*)go->GetInstanceData(); + ScriptedInstance* pInstance = go->GetInstanceData(); if(!pInstance) return false; diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp index 648781f6606..c8bbe986176 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp @@ -45,7 +45,7 @@ struct TRINITY_DLL_DECL boss_thespiaAI : public ScriptedAI { boss_thespiaAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp index 14dae22fdc2..50d919d3e2c 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp @@ -50,7 +50,7 @@ struct TRINITY_DLL_DECL boss_mekgineer_steamriggerAI : public ScriptedAI { boss_mekgineer_steamriggerAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } @@ -199,7 +199,7 @@ struct TRINITY_DLL_DECL mob_steamrigger_mechanicAI : public ScriptedAI { mob_steamrigger_mechanicAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_warlord_kalithresh.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_warlord_kalithresh.cpp index fb8a00865ed..f84b6864641 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_warlord_kalithresh.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_warlord_kalithresh.cpp @@ -44,7 +44,7 @@ struct TRINITY_DLL_DECL mob_naga_distillerAI : public ScriptedAI { mob_naga_distillerAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -90,7 +90,7 @@ struct TRINITY_DLL_DECL boss_warlord_kalithreshAI : public ScriptedAI { boss_warlord_kalithreshAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -182,7 +182,7 @@ struct TRINITY_DLL_DECL boss_warlord_kalithreshAI : public ScriptedAI { DoScriptText(SAY_REGEN, m_creature); DoCast(m_creature,SPELL_WARLORDS_RAGE); - ((mob_naga_distillerAI*)distiller->AI())->StartRageGen(m_creature); + CAST_AI(mob_naga_distillerAI, distiller->AI())->StartRageGen(m_creature); } Rage_Timer = 3000+rand()%15000; }else Rage_Timer -= diff; diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp index d375d073c35..55ef0716638 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp @@ -38,7 +38,7 @@ EndScriptData */ bool GOHello_go_main_chambers_access_panel(Player *player, GameObject* _GO) { - ScriptedInstance* pInstance = (ScriptedInstance*)_GO->GetInstanceData(); + ScriptedInstance* pInstance = _GO->GetInstanceData(); if (!pInstance) return false; diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/underbog/boss_the_black_stalker.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/underbog/boss_the_black_stalker.cpp index 72c7992e109..62bcf62a2df 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/underbog/boss_the_black_stalker.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/underbog/boss_the_black_stalker.cpp @@ -119,7 +119,7 @@ struct TRINITY_DLL_DECL boss_the_black_stalkerAI : public ScriptedAI { if(LevitatedTarget_Timer < diff) { - if(Unit* target = (Unit*)Unit::GetUnit(*m_creature, LevitatedTarget)) + if(Unit* target = Unit::GetUnit(*m_creature, LevitatedTarget)) { if(!target->HasAura(SPELL_LEVITATE)) { diff --git a/src/bindings/scripts/scripts/zone/deadmines/deadmines.cpp b/src/bindings/scripts/scripts/zone/deadmines/deadmines.cpp index 2d13ce8d347..72498f388ec 100644 --- a/src/bindings/scripts/scripts/zone/deadmines/deadmines.cpp +++ b/src/bindings/scripts/scripts/zone/deadmines/deadmines.cpp @@ -196,7 +196,7 @@ struct TRINITY_DLL_DECL instance_deadmines : public ScriptedInstance bool ItemUse_item_defias_gunpowder(Player *player, Item* _Item, SpellCastTargets const& targets) { - ScriptedInstance *pInstance = (player->GetInstanceData()) ? ((ScriptedInstance*)player->GetInstanceData()) : NULL; + ScriptedInstance *pInstance = (player->GetInstanceData()) ? (player->GetInstanceData()) : NULL; if(!pInstance) { diff --git a/src/bindings/scripts/scripts/zone/dustwallow_marsh/dustwallow_marsh.cpp b/src/bindings/scripts/scripts/zone/dustwallow_marsh/dustwallow_marsh.cpp index 6fc6a53651b..9e88ac0becc 100644 --- a/src/bindings/scripts/scripts/zone/dustwallow_marsh/dustwallow_marsh.cpp +++ b/src/bindings/scripts/scripts/zone/dustwallow_marsh/dustwallow_marsh.cpp @@ -57,7 +57,7 @@ struct TRINITY_DLL_DECL mobs_risen_husk_spiritAI : public ScriptedAI void DamageTaken(Unit *done_by, uint32 &damage) { if( done_by->GetTypeId() == TYPEID_PLAYER ) - if( damage >= m_creature->GetHealth() && ((Player*)done_by)->GetQuestStatus(11180) == QUEST_STATUS_INCOMPLETE ) + if( damage >= m_creature->GetHealth() && CAST_PLR(done_by)->GetQuestStatus(11180) == QUEST_STATUS_INCOMPLETE ) m_creature->CastSpell(done_by,SPELL_SUMMON_RESTLESS_APPARITION,false); } diff --git a/src/bindings/scripts/scripts/zone/eastern_plaguelands/the_scarlet_enclave.cpp b/src/bindings/scripts/scripts/zone/eastern_plaguelands/the_scarlet_enclave.cpp index 30511d45969..5ec53a0cdcb 100644 --- a/src/bindings/scripts/scripts/zone/eastern_plaguelands/the_scarlet_enclave.cpp +++ b/src/bindings/scripts/scripts/zone/eastern_plaguelands/the_scarlet_enclave.cpp @@ -167,7 +167,7 @@ struct TRINITY_DLL_DECL npc_unworthy_initiateAI : public ScriptedAI { if(m_creature->GetEntry() != 29519) if(killer->GetTypeId() == TYPEID_PLAYER) - ((Player*)killer)->KilledMonster(29519,m_creature->GetGUID()); + CAST_PLR(killer)->KilledMonster(29519,m_creature->GetGUID()); } void AddEquipp() @@ -284,7 +284,7 @@ void npc_unworthy_initiateAI::UpdateAI(const uint32 diff) if(go_prison) go_prison->ResetDoorOrButton(); - ((npc_unworthy_initiate_anchorAI*)trigger->AI())->SetTarget(m_creature->GetGUID()); + CAST_AI(npc_unworthy_initiate_anchorAI, trigger->AI())->SetTarget(m_creature->GetGUID()); trigger->CastSpell(m_creature,SPELL_SOUL_PRISON_CHAIN,true); anchor = trigger->GetGUID(); } @@ -367,12 +367,12 @@ bool GOHello_go_acherus_soul_prison(Player *player, GameObject* _GO) Unit* prison_anchor = finder->FindNearestCreature(29521, 15); if(!prison_anchor) return false; - uint64 owner = ((npc_unworthy_initiate_anchorAI*)((Creature*)prison_anchor)->AI())->GetTarget(); + uint64 owner = CAST_AI(npc_unworthy_initiate_anchorAI, CAST_CRE(prison_anchor)->AI())->GetTarget(); Creature* prisoner = Creature::GetCreature((*player),owner); if(prisoner) { - ((npc_unworthy_initiateAI*)(prisoner->AI()))->EventStart((Creature*)prison_anchor,player); + CAST_AI(npc_unworthy_initiateAI, (prisoner->AI()))->EventStart(CAST_CRE(prison_anchor),player); } return false; @@ -422,7 +422,7 @@ struct TRINITY_DLL_DECL npc_death_knight_initiateAI : public SpellAI { if(!me->HasAura(7267)) // beg aura has faded { - ((Player*)me->getVictim())->KilledMonster(29025,m_creature->GetGUID()); + CAST_PLR(me->getVictim())->KilledMonster(29025,m_creature->GetGUID()); EnterEvadeMode(); } return; @@ -480,7 +480,10 @@ bool GossipSelect_npc_death_knight_initiate(Player *player, Creature *_Creature, if( action == GOSSIP_ACTION_INFO_DEF ) { player->CastSpell(player, SPELL_DUEL_FLAG, true); - _Creature->setFaction(10); // make him yellow, not red (will be killed by other npc) + if (player->GetTeam() == HORDE ) // Check the player team, then choose faction + _Creature->setFaction(1); + else + _Creature->setFaction(2); _Creature->AI()->AttackStart(player); } return true; @@ -498,20 +501,20 @@ struct TRINITY_DLL_DECL npc_salanar_the_horsemanAI : public ScriptedAI { ScriptedAI::MoveInLineOfSight(who); - if(who->GetTypeId() == TYPEID_UNIT && ((Creature*)who)->isVehicle() && me->IsWithinDistInMap(who, 10.0f)) + if(who->GetTypeId() == TYPEID_UNIT && CAST_CRE(who)->isVehicle() && me->IsWithinDistInMap(who, 10.0f)) { if( Unit *charmer = who->GetCharmer() ) { if( charmer->GetTypeId() == TYPEID_PLAYER ) { - if( ((Player*)charmer)->GetQuestStatus(12680) == QUEST_STATUS_INCOMPLETE ) - ((Player*)charmer)->KilledMonster(28767, me->GetGUID()); - else if( ((Player*)charmer)->GetQuestStatus(12687) == QUEST_STATUS_INCOMPLETE ) - ((Player*)charmer)->GroupEventHappens(12687, me); - ((Player*)charmer)->ExitVehicle(); + if( CAST_PLR(charmer)->GetQuestStatus(12680) == QUEST_STATUS_INCOMPLETE ) + CAST_PLR(charmer)->KilledMonster(28767, me->GetGUID()); + else if( CAST_PLR(charmer)->GetQuestStatus(12687) == QUEST_STATUS_INCOMPLETE ) + CAST_PLR(charmer)->GroupEventHappens(12687, me); + CAST_PLR(charmer)->ExitVehicle(); //without this we can see npc kill the horse - //who->setDeathState(DEAD); - //((Creature*)who)->Respawn(); + who->setDeathState(DEAD); + CAST_CRE(who)->Respawn(); } } } @@ -531,6 +534,23 @@ struct TRINITY_DLL_DECL npc_ros_dark_riderAI : public ScriptedAI { npc_ros_dark_riderAI(Creature *c) : ScriptedAI(c) {} + void MoveInLineOfSight(Unit *who) + { + if(me->getVictim()) + return; + + // this should be before next one otherwise he may enter vehicle again + if(!me->m_Vehicle && who->GetEntry() == 28782 && CAST_CRE(who)->isVehicle() && !who->GetCharmerGUID()) + me->EnterVehicle((Vehicle*)who); + + ScriptedAI::MoveInLineOfSight(who); + } + + void CombatStart(Unit *who) + { + me->ExitVehicle(); + } + void Reset() { Creature* deathcharger = me->FindNearestCreature(28782, 30); @@ -548,7 +568,6 @@ struct TRINITY_DLL_DECL npc_ros_dark_riderAI : public ScriptedAI { deathcharger->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK); deathcharger->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - deathcharger->RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE); deathcharger->setFaction(2096); } } diff --git a/src/bindings/scripts/scripts/zone/eversong_woods/eversong_woods.cpp b/src/bindings/scripts/scripts/zone/eversong_woods/eversong_woods.cpp index 8aeb6e53810..aaded603f80 100644 --- a/src/bindings/scripts/scripts/zone/eversong_woods/eversong_woods.cpp +++ b/src/bindings/scripts/scripts/zone/eversong_woods/eversong_woods.cpp @@ -89,7 +89,7 @@ CreatureAI* GetAI_npc_prospector_anvilward(Creature* pCreature) thisAI->FillPointMovementListForCreature(); - return (CreatureAI*)thisAI; + return thisAI; } bool GossipHello_npc_prospector_anvilward(Player *player, Creature *_Creature) @@ -111,7 +111,7 @@ bool GossipSelect_npc_prospector_anvilward(Player *player, Creature *_Creature, break; case GOSSIP_ACTION_INFO_DEF+2: player->CLOSE_GOSSIP_MENU(); - ((npc_escortAI*)(_Creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (_Creature->AI()))->Start(true, true, false, player->GetGUID()); break; } return true; @@ -343,7 +343,7 @@ struct TRINITY_DLL_DECL master_kelerun_bloodmournAI : public ScriptedAI Creature* paladinSpawn; paladinSpawn = (Unit::GetCreature((*m_creature), paladinGuid[paladinPhase])); if ( paladinSpawn ) { - ((npc_secondTrialAI*)paladinSpawn->AI())->Activate(m_creature->GetGUID()); + CAST_AI(npc_secondTrialAI, paladinSpawn->AI())->Activate(m_creature->GetGUID()); switch(paladinPhase) { case 0: @@ -405,7 +405,7 @@ bool GossipHello_master_kelerun_bloodmourn(Player *player, Creature *_Creature) // Escort quests or any other event-driven quests. If player in party, all players that can accept this quest will receive confirmation box to accept quest. // !not sure if this really works! - if ( ((master_kelerun_bloodmournAI*)_Creature->AI())->questPhase == 0 ) { + if ( CAST_AI(master_kelerun_bloodmournAI, _Creature->AI())->questPhase == 0 ) { player->PrepareQuestMenu(_Creature->GetGUID()); player->SendPreparedQuest(_Creature->GetGUID()); } @@ -418,7 +418,7 @@ bool QuestAccept_master_kelerun_bloodmourn(Player *player, Creature *creature, Q { // One Player exclusive quest, wait for user go activation if(quest->GetQuestId() == QUEST_SECOND_TRIAL ) - ((master_kelerun_bloodmournAI*)creature->AI())->questPhase = 1; + CAST_AI(master_kelerun_bloodmournAI, creature->AI())->questPhase = 1; return true; } @@ -444,12 +444,12 @@ void npc_secondTrialAI::JustDied(Unit* Killer) { Summoner = (Unit::GetCreature((*m_creature), summonerGuid)); if ( Summoner ) - ((master_kelerun_bloodmournAI*)Summoner->AI())->SecondTrialKill(); + CAST_AI(master_kelerun_bloodmournAI, Summoner->AI())->SecondTrialKill(); // last kill quest complete for group if ( m_creature->GetEntry() == CHAMPION_SUNSTRIKER ) { - if( Group *pGroup = ((Player*)Killer)->GetGroup() ) + if( Group *pGroup = CAST_PLR(Killer)->GetGroup() ) { for(GroupReference *itr = pGroup->GetFirstMember(); itr != NULL; itr = itr->next()) { @@ -461,8 +461,8 @@ void npc_secondTrialAI::JustDied(Unit* Killer) { } } else { - if ( ((Player*)Killer)->GetQuestStatus( QUEST_SECOND_TRIAL ) == QUEST_STATUS_INCOMPLETE ) - ((Player*)Killer)->CompleteQuest( QUEST_SECOND_TRIAL ); + if ( CAST_PLR(Killer)->GetQuestStatus( QUEST_SECOND_TRIAL ) == QUEST_STATUS_INCOMPLETE ) + CAST_PLR(Killer)->CompleteQuest( QUEST_SECOND_TRIAL ); } } } @@ -472,8 +472,8 @@ void npc_secondTrialAI::KilledUnit(Unit* Killed) { if ( Killed->GetTypeId() == TYPEID_PLAYER ) { - if ( ((Player*)Killed)->GetQuestStatus(QUEST_SECOND_TRIAL) == QUEST_STATUS_INCOMPLETE ) - ((Player*)Killed)->FailQuest(QUEST_SECOND_TRIAL); + if ( CAST_PLR(Killed)->GetQuestStatus(QUEST_SECOND_TRIAL) == QUEST_STATUS_INCOMPLETE ) + CAST_PLR(Killed)->FailQuest(QUEST_SECOND_TRIAL); } } @@ -514,7 +514,7 @@ bool GOHello_go_second_trial(Player *player, GameObject* _GO) cell_lock->Visit(cell_lock, grid_unit_searcher, *(_GO->GetMap())); if ( event_controller ) - ((master_kelerun_bloodmournAI*)event_controller->AI())->StartEvent(); + CAST_AI(master_kelerun_bloodmournAI, event_controller->AI())->StartEvent(); return true; } @@ -564,7 +564,7 @@ struct TRINITY_DLL_DECL npc_apprentice_mirvedaAI : public ScriptedAI { Player* player = Unit::GetPlayer(PlayerGUID); if (player) - ((Player*)player)->FailQuest(QUEST_UNEXPECTED_RESULT); + CAST_PLR(player)->FailQuest(QUEST_UNEXPECTED_RESULT); } } @@ -576,7 +576,7 @@ struct TRINITY_DLL_DECL npc_apprentice_mirvedaAI : public ScriptedAI { Player* player = Unit::GetPlayer(PlayerGUID); if(player) - ((Player*)player)->CompleteQuest(QUEST_UNEXPECTED_RESULT); + CAST_PLR(player)->CompleteQuest(QUEST_UNEXPECTED_RESULT); } } @@ -594,8 +594,8 @@ bool QuestAccept_npc_apprentice_mirveda(Player* player, Creature* creature, Ques { if (quest->GetQuestId() == QUEST_UNEXPECTED_RESULT) { - ((npc_apprentice_mirvedaAI*)creature->AI())->Summon = true; - ((npc_apprentice_mirvedaAI*)creature->AI())->PlayerGUID = player->GetGUID(); + CAST_AI(npc_apprentice_mirvedaAI, creature->AI())->Summon = true; + CAST_AI(npc_apprentice_mirvedaAI, creature->AI())->PlayerGUID = player->GetGUID(); } return true; } @@ -655,7 +655,7 @@ struct TRINITY_DLL_DECL npc_infused_crystalAI : public Scripted_NoMovementAI { if( who->GetTypeId() == TYPEID_PLAYER && !m_creature->canStartAttack(who) && !Progress) { - if( ((Player*)who)->GetQuestStatus(QUEST_POWERING_OUR_DEFENSES) == QUEST_STATUS_INCOMPLETE ) + if( CAST_PLR(who)->GetQuestStatus(QUEST_POWERING_OUR_DEFENSES) == QUEST_STATUS_INCOMPLETE ) { float Radius = 10.0; if( m_creature->IsWithinDistInMap(who, Radius) ) @@ -680,7 +680,7 @@ struct TRINITY_DLL_DECL npc_infused_crystalAI : public Scripted_NoMovementAI { Player* player = Unit::GetPlayer(PlayerGUID); if (player) - ((Player*)player)->FailQuest(QUEST_POWERING_OUR_DEFENSES); + CAST_PLR(player)->FailQuest(QUEST_POWERING_OUR_DEFENSES); } } @@ -694,7 +694,7 @@ struct TRINITY_DLL_DECL npc_infused_crystalAI : public Scripted_NoMovementAI { Player* player = Unit::GetPlayer(PlayerGUID); if(player) - ((Player*)player)->CompleteQuest(QUEST_POWERING_OUR_DEFENSES); + CAST_PLR(player)->CompleteQuest(QUEST_POWERING_OUR_DEFENSES); } m_creature->DealDamage(m_creature,m_creature->GetHealth(),NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); m_creature->RemoveCorpse(); diff --git a/src/bindings/scripts/scripts/zone/feralas/feralas.cpp b/src/bindings/scripts/scripts/zone/feralas/feralas.cpp index e43bf6e3a6c..be57b8c8d88 100644 --- a/src/bindings/scripts/scripts/zone/feralas/feralas.cpp +++ b/src/bindings/scripts/scripts/zone/feralas/feralas.cpp @@ -173,7 +173,7 @@ CreatureAI* GetAI_npc_oox22fe(Creature* pCreature) oox22AI->FillPointMovementListForCreature(); - return (CreatureAI*)oox22AI; + return oox22AI; } bool QuestAccept_npc_oox22fe(Player* pPlayer, Creature* pCreature, const Quest* pQuest) @@ -190,7 +190,7 @@ bool QuestAccept_npc_oox22fe(Player* pPlayer, Creature* pCreature, const Quest* if (pPlayer->GetTeam() == HORDE) pCreature->setFaction(FACTION_ESCORTEE_H); - ((npc_escortAI*)(pCreature->AI()))->Start(true, true, false, pPlayer->GetGUID()); + CAST_AI(npc_escortAI, (pCreature->AI()))->Start(true, true, false, pPlayer->GetGUID()); } return true; diff --git a/src/bindings/scripts/scripts/zone/ghostlands/ghostlands.cpp b/src/bindings/scripts/scripts/zone/ghostlands/ghostlands.cpp index c0733579f27..9d4e81ca241 100644 --- a/src/bindings/scripts/scripts/zone/ghostlands/ghostlands.cpp +++ b/src/bindings/scripts/scripts/zone/ghostlands/ghostlands.cpp @@ -126,7 +126,7 @@ bool GOHello_gilded_brazier(Player *player, GameObject* _GO) { Creature *Stillblade = player->SummonCreature(17716, 8106.11, -7542.06, 151.775, 3.02598, TEMPSUMMON_DEAD_DESPAWN, 60000); if (Stillblade) - ((CreatureAI*)Stillblade->AI())->AttackStart(player); + (Stillblade->AI())->AttackStart(player); } return true; }; @@ -198,7 +198,7 @@ struct TRINITY_DLL_DECL npc_ranger_lilathaAI : public npc_escortAI case 25: m_creature->AddUnitMovementFlag(MOVEMENTFLAG_WALK_MODE); break; case 30: if (player && player->GetTypeId() == TYPEID_PLAYER) - ((Player*)player)->GroupEventHappens(QUEST_ESCAPE_FROM_THE_CATACOMBS,m_creature); + CAST_PLR(player)->GroupEventHappens(QUEST_ESCAPE_FROM_THE_CATACOMBS,m_creature); break; case 32: m_creature->SetOrientation(2.978281); @@ -232,7 +232,7 @@ struct TRINITY_DLL_DECL npc_ranger_lilathaAI : public npc_escortAI { Player* player = Unit::GetPlayer(PlayerGUID); if (player) - ((Player*)player)->FailQuest(QUEST_ESCAPE_FROM_THE_CATACOMBS); + CAST_PLR(player)->FailQuest(QUEST_ESCAPE_FROM_THE_CATACOMBS); } } @@ -247,7 +247,7 @@ bool QuestAccept_npc_ranger_lilatha(Player* player, Creature* creature, Quest co if (quest->GetQuestId() == QUEST_ESCAPE_FROM_THE_CATACOMBS) { creature->setFaction(113); - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); } return true; } @@ -258,7 +258,7 @@ CreatureAI* GetAI_npc_ranger_lilathaAI(Creature *_Creature) ranger_lilathaAI->FillPointMovementListForCreature(); - return (CreatureAI*)ranger_lilathaAI; + return ranger_lilathaAI; } void AddSC_ghostlands() diff --git a/src/bindings/scripts/scripts/zone/gruuls_lair/boss_gruul.cpp b/src/bindings/scripts/scripts/zone/gruuls_lair/boss_gruul.cpp index 34400549822..0335799b4e9 100644 --- a/src/bindings/scripts/scripts/zone/gruuls_lair/boss_gruul.cpp +++ b/src/bindings/scripts/scripts/zone/gruuls_lair/boss_gruul.cpp @@ -53,7 +53,7 @@ struct TRINITY_DLL_DECL boss_gruulAI : public ScriptedAI { boss_gruulAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/gruuls_lair/boss_high_king_maulgar.cpp b/src/bindings/scripts/scripts/zone/gruuls_lair/boss_high_king_maulgar.cpp index 71ab145ff8e..7c1741fb77c 100644 --- a/src/bindings/scripts/scripts/zone/gruuls_lair/boss_high_king_maulgar.cpp +++ b/src/bindings/scripts/scripts/zone/gruuls_lair/boss_high_king_maulgar.cpp @@ -108,7 +108,7 @@ struct TRINITY_DLL_DECL boss_high_king_maulgarAI : public ScriptedAI { boss_high_king_maulgarAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); for(uint8 i = 0; i < 4; ++i) Council[i] = 0; } @@ -304,7 +304,7 @@ struct TRINITY_DLL_DECL boss_olm_the_summonerAI : public ScriptedAI { boss_olm_the_summonerAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } uint32 DarkDecay_Timer; @@ -341,7 +341,7 @@ struct TRINITY_DLL_DECL boss_olm_the_summonerAI : public ScriptedAI Maulgar = (Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_MAULGAR))); if(Maulgar) - ((boss_high_king_maulgarAI*)Maulgar->AI())->AddDeath(); + CAST_AI(boss_high_king_maulgarAI, Maulgar->AI())->AddDeath(); if(CheckAllBossDied(pInstance, m_creature)) pInstance->SetData(DATA_MAULGAREVENT, DONE); @@ -406,7 +406,7 @@ struct TRINITY_DLL_DECL boss_kiggler_the_crazedAI : public ScriptedAI { boss_kiggler_the_crazedAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } uint32 GreaterPolymorph_Timer; @@ -445,7 +445,7 @@ struct TRINITY_DLL_DECL boss_kiggler_the_crazedAI : public ScriptedAI Maulgar = (Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_MAULGAR))); if(Maulgar) - ((boss_high_king_maulgarAI*)Maulgar->AI())->AddDeath(); + CAST_AI(boss_high_king_maulgarAI, Maulgar->AI())->AddDeath(); if(CheckAllBossDied(pInstance, m_creature)) pInstance->SetData(DATA_MAULGAREVENT, DONE); @@ -516,7 +516,7 @@ struct TRINITY_DLL_DECL boss_blindeye_the_seerAI : public ScriptedAI { boss_blindeye_the_seerAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } uint32 GreaterPowerWordShield_Timer; @@ -553,7 +553,7 @@ struct TRINITY_DLL_DECL boss_blindeye_the_seerAI : public ScriptedAI Maulgar = (Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_MAULGAR))); if(Maulgar) - ((boss_high_king_maulgarAI*)Maulgar->AI())->AddDeath(); + CAST_AI(boss_high_king_maulgarAI, Maulgar->AI())->AddDeath(); if(CheckAllBossDied(pInstance, m_creature)) pInstance->SetData(DATA_MAULGAREVENT, DONE); @@ -614,7 +614,7 @@ struct TRINITY_DLL_DECL boss_krosh_firehandAI : public ScriptedAI { boss_krosh_firehandAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } uint32 GreaterFireball_Timer; @@ -651,7 +651,7 @@ struct TRINITY_DLL_DECL boss_krosh_firehandAI : public ScriptedAI Maulgar = (Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_MAULGAR))); if(Maulgar) - ((boss_high_king_maulgarAI*)Maulgar->AI())->AddDeath(); + CAST_AI(boss_high_king_maulgarAI, Maulgar->AI())->AddDeath(); if(CheckAllBossDied(pInstance, m_creature)) pInstance->SetData(DATA_MAULGAREVENT, DONE); diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp index f274693d10e..10cdbdba862 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp @@ -66,7 +66,7 @@ struct TRINITY_DLL_DECL boss_kelidan_the_breakerAI : public ScriptedAI { boss_kelidan_the_breakerAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); for(int i=0; i<5; ++i) Channelers[i] = 0; } @@ -226,7 +226,7 @@ struct TRINITY_DLL_DECL boss_kelidan_the_breakerAI : public ScriptedAI DoScriptText(SAY_NOVA, m_creature); - if(SpellEntry *nova = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_BURNING_NOVA)) + if(SpellEntry *nova = GET_SPELL(SPELL_BURNING_NOVA)) { uint8 eff_mask=0; for (int i=0; i<3; i++) @@ -269,7 +269,7 @@ struct TRINITY_DLL_DECL mob_shadowmoon_channelerAI : public ScriptedAI { mob_shadowmoon_channelerAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } @@ -292,7 +292,7 @@ struct TRINITY_DLL_DECL mob_shadowmoon_channelerAI : public ScriptedAI void EnterCombat(Unit* who) { if(Creature *Kelidan = me->FindNearestCreature(ENTRY_KELIDAN, 100)) - ((boss_kelidan_the_breakerAI*)Kelidan->AI())->ChannelerEngaged(who); + CAST_AI(boss_kelidan_the_breakerAI, Kelidan->AI())->ChannelerEngaged(who); if (m_creature->IsNonMeleeSpellCasted(false)) m_creature->InterruptNonMeleeSpells(true); DoStartMovement(who); @@ -301,7 +301,7 @@ struct TRINITY_DLL_DECL mob_shadowmoon_channelerAI : public ScriptedAI void JustDied(Unit* Killer) { if(Creature *Kelidan = me->FindNearestCreature(ENTRY_KELIDAN, 100)) - ((boss_kelidan_the_breakerAI*)Kelidan->AI())->ChannelerDied(Killer); + CAST_AI(boss_kelidan_the_breakerAI, Kelidan->AI())->ChannelerDied(Killer); } void UpdateAI(const uint32 diff) @@ -313,7 +313,7 @@ struct TRINITY_DLL_DECL mob_shadowmoon_channelerAI : public ScriptedAI if (!m_creature->IsNonMeleeSpellCasted(false)) if(Creature *Kelidan = me->FindNearestCreature(ENTRY_KELIDAN, 100)) { - uint64 channeler = ((boss_kelidan_the_breakerAI*)Kelidan->AI())->GetChanneled(m_creature); + uint64 channeler = CAST_AI(boss_kelidan_the_breakerAI, Kelidan->AI())->GetChanneled(m_creature); if(Unit *channeled = Unit::GetUnit(*m_creature, channeler)) DoCast(channeled,SPELL_CHANNELING); } diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_vazruden_the_herald.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_vazruden_the_herald.cpp index 89de9b9188d..72e614dbb1b 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_vazruden_the_herald.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_vazruden_the_herald.cpp @@ -335,7 +335,7 @@ struct TRINITY_DLL_DECL boss_vazruden_the_heraldAI : public ScriptedAI Unit *victim = m_creature->getVictim(); if(summoned->GetEntry() == ENTRY_NAZAN) { - ((boss_nazanAI *)summoned->AI())->VazrudenGUID = VazrudenGUID; + CAST_AI(boss_nazanAI, summoned->AI())->VazrudenGUID = VazrudenGUID; summoned->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING); summoned->SetSpeed(MOVE_FLIGHT, 2.5); if(victim) @@ -424,7 +424,7 @@ struct TRINITY_DLL_DECL mob_hellfire_sentryAI : public ScriptedAI void JustDied(Unit* who) { if(Creature *herald = me->FindNearestCreature(ENTRY_VAZRUDEN_HERALD,150)) - ((boss_vazruden_the_heraldAI *)herald->AI())->SentryDownBy(who); + CAST_AI(boss_vazruden_the_heraldAI, herald->AI())->SentryDownBy(who); } void UpdateAI(const uint32 diff) diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp index 96956790019..69084fb2d14 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp @@ -128,7 +128,7 @@ struct TRINITY_DLL_DECL mob_abyssalAI : public ScriptedAI } } - void EnterCombat(Unit*) {DoZoneInCombat();} + void EnterCombat(Unit* who) {DoZoneInCombat();} void AttackStart(Unit *who) {if(!trigger) ScriptedAI::AttackStart(who);} void MoveInLineOfSight(Unit *who) {if(!trigger) ScriptedAI::MoveInLineOfSight(who);} @@ -170,19 +170,19 @@ struct TRINITY_DLL_DECL boss_magtheridonAI : public ScriptedAI { boss_magtheridonAI(Creature *c) : ScriptedAI(c) { - pInstance =(ScriptedInstance*)m_creature->GetInstanceData(); + pInstance =m_creature->GetInstanceData(); m_creature->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 10); m_creature->SetFloatValue(UNIT_FIELD_COMBATREACH, 10); // target 7, random target with certain entry spell, need core fix SpellEntry *TempSpell; - TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_BLAZE_TARGET); + TempSpell = GET_SPELL(SPELL_BLAZE_TARGET); if(TempSpell && TempSpell->EffectImplicitTargetA[0] != 6) { TempSpell->EffectImplicitTargetA[0] = 6; TempSpell->EffectImplicitTargetB[0] = 0; } - TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_QUAKE_TRIGGER); + TempSpell = GET_SPELL(SPELL_QUAKE_TRIGGER); if(TempSpell && TempSpell->EffectTriggerSpell[0] != SPELL_QUAKE_KNOCKBACK) { TempSpell->EffectTriggerSpell[0] = SPELL_QUAKE_KNOCKBACK; @@ -289,7 +289,7 @@ struct TRINITY_DLL_DECL boss_magtheridonAI : public ScriptedAI DoScriptText(SAY_DEATH, m_creature); } - void MoveInLineOfSight(Unit*) {} + void MoveInLineOfSight(Unit* who) {} void AttackStart(Unit *who) { @@ -368,7 +368,7 @@ struct TRINITY_DLL_DECL boss_magtheridonAI : public ScriptedAI Creature *summon = m_creature->SummonCreature(MOB_ABYSSAL, x, y, z, 0, TEMPSUMMON_CORPSE_DESPAWN, 0); if(summon) { - ((mob_abyssalAI*)summon->AI())->SetTrigger(2); + CAST_AI(mob_abyssalAI, summon->AI())->SetTrigger(2); m_creature->CastSpell(summon, SPELL_BLAZE_TARGET, true); summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); } @@ -398,7 +398,7 @@ struct TRINITY_DLL_DECL boss_magtheridonAI : public ScriptedAI float x, y, z; target->GetPosition(x, y, z); Creature *summon = m_creature->SummonCreature(MOB_ABYSSAL, x, y, z, 0, TEMPSUMMON_CORPSE_DESPAWN, 0); - if(summon) ((mob_abyssalAI*)summon->AI())->SetTrigger(1); + if(summon) CAST_AI(mob_abyssalAI, summon->AI())->SetTrigger(1); } Debris_Timer = 10000; }else Debris_Timer -= diff; @@ -412,7 +412,7 @@ struct TRINITY_DLL_DECL mob_hellfire_channelerAI : public ScriptedAI { mob_hellfire_channelerAI(Creature *c) : ScriptedAI(c) { - pInstance =(ScriptedInstance*)m_creature->GetInstanceData(); + pInstance =m_creature->GetInstanceData(); } ScriptedInstance* pInstance; @@ -450,7 +450,7 @@ struct TRINITY_DLL_DECL mob_hellfire_channelerAI : public ScriptedAI void JustSummoned(Creature *summon) {summon->AI()->AttackStart(m_creature->getVictim());} - void MoveInLineOfSight(Unit*) {} + void MoveInLineOfSight(Unit* who) {} void DamageTaken(Unit*, uint32 &damage) { @@ -458,7 +458,7 @@ struct TRINITY_DLL_DECL mob_hellfire_channelerAI : public ScriptedAI m_creature->CastSpell(m_creature, SPELL_SOUL_TRANSFER, true); } - void JustDied(Unit*) + void JustDied(Unit* who) { if(pInstance) pInstance->SetData(DATA_CHANNELER_EVENT, DONE); @@ -503,7 +503,7 @@ struct TRINITY_DLL_DECL mob_hellfire_channelerAI : public ScriptedAI //Manticron Cube bool GOHello_go_Manticron_Cube(Player *player, GameObject* _GO) { - ScriptedInstance* pInstance =(ScriptedInstance*)_GO->GetInstanceData(); + ScriptedInstance* pInstance =_GO->GetInstanceData(); if(!pInstance) return true; if(pInstance->GetData(DATA_MAGTHERIDON_EVENT) != IN_PROGRESS) return true; Creature *Magtheridon =Unit::GetCreature(*_GO, pInstance->GetData64(DATA_MAGTHERIDON)); @@ -516,7 +516,7 @@ bool GOHello_go_Manticron_Cube(Player *player, GameObject* _GO) player->InterruptNonMeleeSpells(false); player->CastSpell(player, SPELL_SHADOW_GRASP, true); player->CastSpell(player, SPELL_SHADOW_GRASP_VISUAL, false); - ((boss_magtheridonAI*)Magtheridon->AI())->SetClicker(_GO->GetGUID(), player->GetGUID()); + CAST_AI(boss_magtheridonAI, Magtheridon->AI())->SetClicker(_GO->GetGUID(), player->GetGUID()); return true; } diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp index 2506d2a56aa..6eeb07d1448 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp @@ -77,7 +77,7 @@ struct TRINITY_DLL_DECL boss_grand_warlock_nethekurseAI : public ScriptedAI { boss_grand_warlock_nethekurseAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } @@ -304,7 +304,7 @@ struct TRINITY_DLL_DECL mob_fel_orc_convertAI : public ScriptedAI { mob_fel_orc_convertAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -330,7 +330,7 @@ struct TRINITY_DLL_DECL mob_fel_orc_convertAI : public ScriptedAI Creature *pKurse = Unit::GetCreature(*m_creature,pInstance->GetData64(DATA_NETHEKURSE)); if (pKurse && m_creature->GetDistance(pKurse) < 45.0f) { - ((boss_grand_warlock_nethekurseAI*)pKurse->AI())->DoYellForPeonAggro(); + CAST_AI(boss_grand_warlock_nethekurseAI, pKurse->AI())->DoYellForPeonAggro(); if (pInstance->GetData(TYPE_NETHEKURSE) == IN_PROGRESS ) return; @@ -350,7 +350,7 @@ struct TRINITY_DLL_DECL mob_fel_orc_convertAI : public ScriptedAI { Creature *pKurse = Unit::GetCreature(*m_creature,pInstance->GetData64(DATA_NETHEKURSE)); if (pKurse) - ((boss_grand_warlock_nethekurseAI*)pKurse->AI())->DoYellForPeonDeath(); + CAST_AI(boss_grand_warlock_nethekurseAI, pKurse->AI())->DoYellForPeonDeath(); } } } diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp index a225293a48e..bdedc6b4fde 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp @@ -128,7 +128,7 @@ struct TRINITY_DLL_DECL boss_warbringer_omroggAI : public ScriptedAI { boss_warbringer_omroggAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } @@ -274,7 +274,7 @@ struct TRINITY_DLL_DECL boss_warbringer_omroggAI : public ScriptedAI DoScriptText(YELL_DIE_L, Left); - ((mob_omrogg_headsAI*)((Creature*)Right)->AI())->DoDeathYell(); + CAST_AI(mob_omrogg_headsAI, CAST_CRE(Right)->AI())->DoDeathYell(); } if (pInstance) diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warchief_kargath_bladefist.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warchief_kargath_bladefist.cpp index 562783b93fb..276089a91ee 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warchief_kargath_bladefist.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warchief_kargath_bladefist.cpp @@ -52,7 +52,7 @@ struct TRINITY_DLL_DECL boss_warchief_kargath_bladefistAI : public ScriptedAI { boss_warchief_kargath_bladefistAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } @@ -165,7 +165,7 @@ struct TRINITY_DLL_DECL boss_warchief_kargath_bladefistAI : public ScriptedAI { (*temp).GetMotionMaster()->Clear(true); m_creature->DealDamage(temp,temp->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); - ((Creature*)temp)->RemoveCorpse(); + CAST_CRE(temp)->RemoveCorpse(); } } adds.clear(); @@ -177,7 +177,7 @@ struct TRINITY_DLL_DECL boss_warchief_kargath_bladefistAI : public ScriptedAI { (*temp).GetMotionMaster()->Clear(true); m_creature->DealDamage(temp,temp->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); - ((Creature*)temp)->RemoveCorpse(); + CAST_CRE(temp)->RemoveCorpse(); } } assassins.clear(); diff --git a/src/bindings/scripts/scripts/zone/hellfire_peninsula/hellfire_peninsula.cpp b/src/bindings/scripts/scripts/zone/hellfire_peninsula/hellfire_peninsula.cpp index 9bf0e77420f..a32112ed709 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_peninsula/hellfire_peninsula.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_peninsula/hellfire_peninsula.cpp @@ -226,14 +226,14 @@ CreatureAI* GetAI_npc_wounded_blood_elf(Creature* pCreature) welfAI->FillPointMovementListForCreature(); - return (CreatureAI*)welfAI; + return welfAI; } bool QuestAccept_npc_wounded_blood_elf(Player* player, Creature* creature, Quest const* quest) { if (quest->GetQuestId() == QUEST_ROAD_TO_FALCON_WATCH) { - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); // Change faction so mobs attack creature->setFaction(775); } diff --git a/src/bindings/scripts/scripts/zone/isle_of_queldanas/isle_of_queldanas.cpp b/src/bindings/scripts/scripts/zone/isle_of_queldanas/isle_of_queldanas.cpp index 1d27afe8977..51b22fd934a 100644 --- a/src/bindings/scripts/scripts/zone/isle_of_queldanas/isle_of_queldanas.cpp +++ b/src/bindings/scripts/scripts/zone/isle_of_queldanas/isle_of_queldanas.cpp @@ -111,8 +111,8 @@ struct TRINITY_DLL_DECL npc_greengill_slaveAI : public ScriptedAI if(PlayerGUID) { Unit* plr = Unit::GetUnit((*m_creature), PlayerGUID); - if(plr && ((Player*)plr)->GetQuestStatus(QUESTG) == QUEST_STATUS_INCOMPLETE) - ((Player*)plr)->KilledMonster(25086, m_creature->GetGUID()); + if(plr && CAST_PLR(plr)->GetQuestStatus(QUESTG) == QUEST_STATUS_INCOMPLETE) + CAST_PLR(plr)->KilledMonster(25086, m_creature->GetGUID()); } DoCast(m_creature, ENRAGE); Unit* Myrmidon = me->FindNearestCreature(DM, 70); diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_midnight.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_midnight.cpp index d60e057c296..08df637eb04 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/boss_midnight.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/boss_midnight.cpp @@ -284,7 +284,7 @@ struct TRINITY_DLL_DECL boss_attumenAI : public ScriptedAI Creature *pMidnight = Unit::GetCreature(*m_creature, Midnight); if(pMidnight && pMidnight->GetTypeId() == TYPEID_UNIT) { - ((boss_midnightAI*)(pMidnight->AI()))->Mount(m_creature); + CAST_AI(boss_midnightAI, (pMidnight->AI()))->Mount(m_creature); m_creature->SetHealth(pMidnight->GetHealth()); DoResetThreat(); } @@ -303,7 +303,7 @@ struct TRINITY_DLL_DECL boss_attumenAI : public ScriptedAI void boss_midnightAI::SetMidnight(Creature *pAttumen, uint64 value) { - ((boss_attumenAI*)pAttumen->AI())->Midnight = value; + CAST_AI(boss_attumenAI, pAttumen->AI())->Midnight = value; } CreatureAI* GetAI_boss_attumen(Creature *_Creature) diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_moroes.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_moroes.cpp index f00b3650e9f..9a8b0bf27b6 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/boss_moroes.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/boss_moroes.cpp @@ -66,7 +66,7 @@ struct TRINITY_DLL_DECL boss_moroesAI : public ScriptedAI { AddId[i] = 0; } - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -340,7 +340,7 @@ struct TRINITY_DLL_DECL boss_moroes_guestAI : public ScriptedAI for(uint8 i = 0; i < 4; ++i) GuestGUID[i] = 0; - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } void Reset() @@ -360,7 +360,7 @@ struct TRINITY_DLL_DECL boss_moroes_guestAI : public ScriptedAI { for(uint8 i = 0; i < 3; ++i) { - uint64 GUID = ((boss_moroesAI*)Moroes->AI())->AddGUID[i]; + uint64 GUID = CAST_AI(boss_moroesAI, Moroes->AI())->AddGUID[i]; if(GUID && GUID != m_creature->GetGUID()) GuestGUID[i+1] = GUID; } diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp index c4e666d45f7..12c7c3fa2ad 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp @@ -60,7 +60,7 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI { boss_nightbaneAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); Intro = true; } diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp index 882fbe7b7da..66005746bbd 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp @@ -130,7 +130,7 @@ struct TRINITY_DLL_DECL netherspite_infernalAI : public ScriptedAI { Unit *pMalchezaar = Unit::GetUnit(*m_creature, malchezaar); if(pMalchezaar) - ((Creature*)pMalchezaar)->AI()->KilledUnit(who); + CAST_CRE(pMalchezaar)->AI()->KilledUnit(who); } void SpellHit(Unit *who, const SpellEntry *spell) @@ -157,7 +157,7 @@ struct TRINITY_DLL_DECL boss_malchezaarAI : public ScriptedAI { boss_malchezaarAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -380,8 +380,8 @@ struct TRINITY_DLL_DECL boss_malchezaarAI : public ScriptedAI Infernal->SetUInt32Value(UNIT_FIELD_DISPLAYID, INFERNAL_MODEL_INVISIBLE); Infernal->setFaction(m_creature->getFaction()); if(point) - ((netherspite_infernalAI*)Infernal->AI())->point=point; - ((netherspite_infernalAI*)Infernal->AI())->malchezaar=m_creature->GetGUID(); + CAST_AI(netherspite_infernalAI, Infernal->AI())->point=point; + CAST_AI(netherspite_infernalAI, Infernal->AI())->malchezaar=m_creature->GetGUID(); infernals.push_back(Infernal->GetGUID()); DoCast(Infernal, SPELL_INFERNAL_RELAY); @@ -621,7 +621,7 @@ void netherspite_infernalAI::Cleanup() Unit *pMalchezaar = Unit::GetUnit(*m_creature, malchezaar); if(pMalchezaar && pMalchezaar->isAlive()) - ((boss_malchezaarAI*)((Creature*)pMalchezaar)->AI())->Cleanup(m_creature, point); + CAST_AI(boss_malchezaarAI, CAST_CRE(pMalchezaar)->AI())->Cleanup(m_creature, point); } CreatureAI* GetAI_netherspite_infernal(Creature *_Creature) diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_shade_of_aran.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_shade_of_aran.cpp index d358f9585c1..015a19087ab 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/boss_shade_of_aran.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/boss_shade_of_aran.cpp @@ -83,7 +83,7 @@ struct TRINITY_DLL_DECL boss_aranAI : public ScriptedAI { boss_aranAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_terestian_illhoof.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_terestian_illhoof.cpp index a77f8d052b1..24981a903c4 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/boss_terestian_illhoof.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/boss_terestian_illhoof.cpp @@ -65,7 +65,7 @@ struct TRINITY_DLL_DECL mob_kilrekAI : public ScriptedAI { mob_kilrekAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -157,7 +157,7 @@ struct TRINITY_DLL_DECL boss_terestianAI : public ScriptedAI { for(uint8 i = 0; i < 2; ++i) PortalGUID[i] = 0; - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -297,7 +297,7 @@ struct TRINITY_DLL_DECL boss_terestianAI : public ScriptedAI Creature* Chains = m_creature->SummonCreature(CREATURE_DEMONCHAINS, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 21000); if(Chains) { - ((mob_demon_chainAI*)Chains->AI())->SacrificeGUID = target->GetGUID(); + CAST_AI(mob_demon_chainAI, Chains->AI())->SacrificeGUID = target->GetGUID(); Chains->CastSpell(Chains, SPELL_DEMON_CHAINS, true); switch(rand()%2) { diff --git a/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp b/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp index 67dd35b46a0..5ae57e95614 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp @@ -104,7 +104,7 @@ struct TRINITY_DLL_DECL boss_dorotheeAI : public ScriptedAI { boss_dorotheeAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -220,7 +220,7 @@ struct TRINITY_DLL_DECL mob_titoAI : public ScriptedAI Creature* Dorothee = (Unit::GetCreature((*m_creature), DorotheeGUID)); if(Dorothee && Dorothee->isAlive()) { - ((boss_dorotheeAI*)Dorothee->AI())->TitoDied = true; + CAST_AI(boss_dorotheeAI, Dorothee->AI())->TitoDied = true; DoScriptText(SAY_DOROTHEE_TITO_DEATH, Dorothee); } } @@ -247,7 +247,7 @@ void boss_dorotheeAI::SummonTito() if(Tito) { DoScriptText(SAY_DOROTHEE_SUMMON, m_creature); - ((mob_titoAI*)Tito->AI())->DorotheeGUID = m_creature->GetGUID(); + CAST_AI(mob_titoAI, Tito->AI())->DorotheeGUID = m_creature->GetGUID(); Tito->AI()->AttackStart(m_creature->getVictim()); SummonedTito = true; TitoDied = false; @@ -258,7 +258,7 @@ struct TRINITY_DLL_DECL boss_strawmanAI : public ScriptedAI { boss_strawmanAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -355,7 +355,7 @@ struct TRINITY_DLL_DECL boss_tinheadAI : public ScriptedAI { boss_tinheadAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -448,7 +448,7 @@ struct TRINITY_DLL_DECL boss_roarAI : public ScriptedAI { boss_roarAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -540,7 +540,7 @@ struct TRINITY_DLL_DECL boss_croneAI : public ScriptedAI { boss_croneAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -729,7 +729,7 @@ struct TRINITY_DLL_DECL boss_bigbadwolfAI : public ScriptedAI { boss_bigbadwolfAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -920,7 +920,7 @@ struct TRINITY_DLL_DECL boss_julianneAI : public ScriptedAI { boss_julianneAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); EntryYellTimer = 1000; AggroYellTimer = 10000; } @@ -1036,7 +1036,7 @@ struct TRINITY_DLL_DECL boss_romuloAI : public ScriptedAI { boss_romuloAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); EntryYellTimer = 8000; AggroYellTimer = 15000; } @@ -1174,8 +1174,8 @@ void boss_julianneAI::DamageTaken(Unit* done_by, uint32 &damage) { PretendToDie(m_creature); IsFakingDeath = true; - ((boss_romuloAI*)Romulo->AI())->ResurrectTimer = 10000; - ((boss_romuloAI*)Romulo->AI())->JulianneDead = true; + CAST_AI(boss_romuloAI, Romulo->AI())->ResurrectTimer = 10000; + CAST_AI(boss_romuloAI, Romulo->AI())->JulianneDead = true; damage = 0; return; } @@ -1199,8 +1199,8 @@ void boss_romuloAI::DamageTaken(Unit* done_by, uint32 &damage) if (Creature* Julianne = (Unit::GetCreature((*m_creature), JulianneGUID))) { - ((boss_julianneAI*)Julianne->AI())->RomuloDead = true; - ((boss_julianneAI*)Julianne->AI())->ResurrectSelfTimer = 10000; + CAST_AI(boss_julianneAI, Julianne->AI())->RomuloDead = true; + CAST_AI(boss_julianneAI, Julianne->AI())->ResurrectSelfTimer = 10000; } damage = 0; @@ -1227,8 +1227,8 @@ void boss_romuloAI::DamageTaken(Unit* done_by, uint32 &damage) { PretendToDie(m_creature); IsFakingDeath = true; - ((boss_julianneAI*)Julianne->AI())->ResurrectTimer = 10000; - ((boss_julianneAI*)Julianne->AI())->RomuloDead = true; + CAST_AI(boss_julianneAI, Julianne->AI())->ResurrectTimer = 10000; + CAST_AI(boss_julianneAI, Julianne->AI())->RomuloDead = true; damage = 0; return; } @@ -1279,8 +1279,8 @@ void boss_julianneAI::UpdateAI(const uint32 diff) if(Romulo) { RomuloGUID = Romulo->GetGUID(); - ((boss_romuloAI*)Romulo->AI())->JulianneGUID = m_creature->GetGUID(); - ((boss_romuloAI*)Romulo->AI())->Phase = PHASE_ROMULO; + CAST_AI(boss_romuloAI, Romulo->AI())->JulianneGUID = m_creature->GetGUID(); + CAST_AI(boss_romuloAI, Romulo->AI())->Phase = PHASE_ROMULO; Romulo->setFaction(16); if(m_creature->getVictim()) @@ -1317,11 +1317,11 @@ void boss_julianneAI::UpdateAI(const uint32 diff) if(ResurrectTimer < diff) { Creature* Romulo = (Unit::GetCreature((*m_creature), RomuloGUID)); - if(Romulo && ((boss_romuloAI*)Romulo->AI())->IsFakingDeath) + if(Romulo && CAST_AI(boss_romuloAI, Romulo->AI())->IsFakingDeath) { DoScriptText(SAY_JULIANNE_RESURRECT, m_creature); Resurrect(Romulo); - ((boss_romuloAI*)Romulo->AI())->IsFakingDeath = false; + CAST_AI(boss_romuloAI, Romulo->AI())->IsFakingDeath = false; RomuloDead = false; ResurrectTimer = 10000; } @@ -1371,11 +1371,11 @@ void boss_romuloAI::UpdateAI(const uint32 diff) if(ResurrectTimer < diff) { Creature* Julianne = (Unit::GetCreature((*m_creature), JulianneGUID)); - if(Julianne && ((boss_julianneAI*)Julianne->AI())->IsFakingDeath) + if(Julianne && CAST_AI(boss_julianneAI, Julianne->AI())->IsFakingDeath) { DoScriptText(SAY_ROMULO_RESURRECT, m_creature); Resurrect(Julianne); - ((boss_julianneAI*)Julianne->AI())->IsFakingDeath = false; + CAST_AI(boss_julianneAI, Julianne->AI())->IsFakingDeath = false; JulianneDead = false; ResurrectTimer = 10000; } diff --git a/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp b/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp index 746de59cbf9..e984bea31c2 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp @@ -115,7 +115,7 @@ struct TRINITY_DLL_DECL npc_barnesAI : public npc_escortAI npc_barnesAI(Creature* c) : npc_escortAI(c) { RaidWiped = false; - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -372,13 +372,13 @@ CreatureAI* GetAI_npc_barnesAI(Creature* _Creature) for(uint8 i = 0; i < 6; ++i) Barnes_AI->AddWaypoint(i, StageLocations[i][0], StageLocations[i][1], 90.465); - return ((CreatureAI*)Barnes_AI); + return (Barnes_AI); } bool GossipHello_npc_barnes(Player* player, Creature* _Creature) { // Check for death of Moroes. - ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData()); + ScriptedInstance* pInstance = (_Creature->GetInstanceData()); if(pInstance && (pInstance->GetData(DATA_MOROES_EVENT) >= DONE)) { player->ADD_GOSSIP_ITEM(0, OZ_GOSSIP1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); @@ -390,7 +390,7 @@ bool GossipHello_npc_barnes(Player* player, Creature* _Creature) player->ADD_GOSSIP_ITEM(5, OZ_GM_GOSSIP3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5); } - if(!((npc_barnesAI*)_Creature->AI())->RaidWiped) + if(!CAST_AI(npc_barnesAI, _Creature->AI())->RaidWiped) player->SEND_GOSSIP_MENU(8970, _Creature->GetGUID()); else player->SEND_GOSSIP_MENU(8975, _Creature->GetGUID()); @@ -409,21 +409,21 @@ bool GossipSelect_npc_barnes(Player *player, Creature *_Creature, uint32 sender, break; case GOSSIP_ACTION_INFO_DEF+2: player->CLOSE_GOSSIP_MENU(); - ((npc_barnesAI*)_Creature->AI())->StartEvent(); + CAST_AI(npc_barnesAI, _Creature->AI())->StartEvent(); break; case GOSSIP_ACTION_INFO_DEF+3: player->CLOSE_GOSSIP_MENU(); - ((npc_barnesAI*)_Creature->AI())->Event = EVENT_OZ; + CAST_AI(npc_barnesAI, _Creature->AI())->Event = EVENT_OZ; outstring_log("TSCR: player (GUID %i) manually set Opera event to EVENT_OZ",player->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF+4: player->CLOSE_GOSSIP_MENU(); - ((npc_barnesAI*)_Creature->AI())->Event = EVENT_HOOD; + CAST_AI(npc_barnesAI, _Creature->AI())->Event = EVENT_HOOD; outstring_log("TSCR: player (GUID %i) manually set Opera event to EVENT_HOOD",player->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF+5: player->CLOSE_GOSSIP_MENU(); - ((npc_barnesAI*)_Creature->AI())->Event = EVENT_RAJ; + CAST_AI(npc_barnesAI, _Creature->AI())->Event = EVENT_RAJ; outstring_log("TSCR: player (GUID %i) manually set Opera event to EVENT_RAJ",player->GetGUID()); break; } @@ -441,7 +441,7 @@ bool GossipSelect_npc_barnes(Player *player, Creature *_Creature, uint32 sender, bool GossipHello_npc_berthold(Player* player, Creature* _Creature) { - ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData()); + ScriptedInstance* pInstance = (_Creature->GetInstanceData()); // Check if Shade of Aran is dead or not if(pInstance && (pInstance->GetData(DATA_SHADEOFARAN_EVENT) >= DONE)) player->ADD_GOSSIP_ITEM(0, GOSSIP_ITEM_TELEPORT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); @@ -486,7 +486,7 @@ struct TRINITY_DLL_DECL npc_image_of_medivhAI : public ScriptedAI { npc_image_of_medivhAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -557,21 +557,21 @@ struct TRINITY_DLL_DECL npc_image_of_medivhAI : public ScriptedAI return 10000; case 2: if(arca) - ((Creature*)arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_2,LANG_UNIVERSAL,NULL); + CAST_CRE(arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_2,LANG_UNIVERSAL,NULL); return 20000; case 3: m_creature->MonsterYell(SAY_DIALOG_MEDIVH_3,LANG_UNIVERSAL,NULL); return 10000; case 4: if(arca) - ((Creature*)arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_4, LANG_UNIVERSAL, NULL); + CAST_CRE(arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_4, LANG_UNIVERSAL, NULL); return 20000; case 5: m_creature->MonsterYell(SAY_DIALOG_MEDIVH_5, LANG_UNIVERSAL, NULL); return 20000; case 6: if(arca) - ((Creature*)arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_6, LANG_UNIVERSAL, NULL); + CAST_CRE(arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_6, LANG_UNIVERSAL, NULL); return 10000; case 7: FireArcanagosTimer = 500; @@ -589,7 +589,7 @@ struct TRINITY_DLL_DECL npc_image_of_medivhAI : public ScriptedAI return 1000; case 11: if(arca) - ((Creature*)arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_8, LANG_UNIVERSAL, NULL); + CAST_CRE(arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_8, LANG_UNIVERSAL, NULL); return 5000; case 12: arca->GetMotionMaster()->MovePoint(0, -11010.82,-1761.18, 156.47); @@ -606,7 +606,7 @@ struct TRINITY_DLL_DECL npc_image_of_medivhAI : public ScriptedAI if(map->IsDungeon()) { - InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers(); + InstanceMap::PlayerList const &PlayerList = map->GetPlayers(); for (InstanceMap::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) { if(i->getSource()->isAlive()) diff --git a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp index 1d27ddd6e2d..fe62b55f0a4 100644 --- a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp +++ b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp @@ -79,7 +79,7 @@ struct TRINITY_DLL_DECL boss_felblood_kaelthasAI : public ScriptedAI { boss_felblood_kaelthasAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); Heroic = c->GetMap()->IsHeroic(); + pInstance = (c->GetInstanceData()); Heroic = c->GetMap()->IsHeroic(); } ScriptedInstance* pInstance; @@ -450,7 +450,7 @@ struct TRINITY_DLL_DECL mob_felkael_phoenixAI : public ScriptedAI { mob_felkael_phoenixAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp index ead9e36eed6..e101d9713c5 100644 --- a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp +++ b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp @@ -96,7 +96,7 @@ struct TRINITY_DLL_DECL boss_priestess_delrissaAI : public ScriptedAI { boss_priestess_delrissaAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); Heroic = c->GetMap()->IsHeroic(); } @@ -358,7 +358,7 @@ struct TRINITY_DLL_DECL boss_priestess_guestAI : public ScriptedAI boss_priestess_guestAI(Creature* c) : ScriptedAI(c) { Group.clear(); - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); AcquireGUIDs(); } @@ -392,7 +392,7 @@ struct TRINITY_DLL_DECL boss_priestess_guestAI : public ScriptedAI { pInstance->SetData(DATA_DELRISSA_DEATH_COUNT, 1); - ((boss_priestess_delrissaAI*)Delrissa->AI())->KilledLackey(); + CAST_AI(boss_priestess_delrissaAI, Delrissa->AI())->KilledLackey(); if (!Delrissa->isAlive() && pInstance->GetData(DATA_DELRISSA_DEATH_COUNT) > 3) Delrissa->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); @@ -423,7 +423,7 @@ struct TRINITY_DLL_DECL boss_priestess_guestAI : public ScriptedAI Creature* Delrissa = (Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_DELRISSA))); if (Delrissa) { - Group = ((boss_priestess_delrissaAI*)Delrissa->AI())->Adds; + Group = CAST_AI(boss_priestess_delrissaAI, Delrissa->AI())->Adds; Add* dAdd = new Add(Delrissa->GetEntry(), Delrissa->GetGUID()); Group.push_back(dAdd); } @@ -649,13 +649,13 @@ struct TRINITY_DLL_DECL boss_ellris_duskhallowAI : public boss_priestess_guestAI /*void mob_fizzleAI::JustDied(Unit* killer) { if(Creature* Ellris = (Unit::GetCreature(*m_creature, EllrisGUID))) - ((boss_ellris_duskhallowAI*)Ellris->AI())->ImpGUID = 0; + CAST_AI(boss_ellris_duskhallowAI, Ellris->AI())->ImpGUID = 0; } void mob_fizzleAI::KilledUnit(Unit* victim) { if(Creature* Ellris = (Unit::GetCreature(*m_creature, EllrisGUID))) - ((boss_ellris_duskhallowAI*)Ellris->AI())->KilledUnit(victim); + CAST_AI(boss_ellris_duskhallowAI, Ellris->AI())->KilledUnit(victim); }*/ #define SPELL_KNOCKDOWN 11428 @@ -984,7 +984,7 @@ struct TRINITY_DLL_DECL boss_garaxxasAI : public boss_priestess_guestAI Creature* Sliver = m_creature->SummonCreature(CREATURE_SLIVER, 0, 0, 0, 0, TEMPSUMMON_CORPSE_DESPAWN, 0); if (Sliver) { - //((mob_sliverAI*)Sliver->AI())->GaraxxasGUID = m_creature->GetGUID(); + //CAST_AI(mob_sliverAI, Sliver->AI())->GaraxxasGUID = m_creature->GetGUID(); //SliverGUID = Sliver->GetGUID(); HasSummonedSliver = true; } @@ -1043,13 +1043,13 @@ struct TRINITY_DLL_DECL boss_garaxxasAI : public boss_priestess_guestAI /*void mob_sliverAI::JustDied(Unit* killer) { if(Creature* Garaxxas = (Unit::GetCreature(*m_creature, GaraxxasGUID))) - ((boss_garaxxasAI*)Garaxxas->AI())->SliverGUID = 0; + CAST_AI(boss_garaxxasAI, Garaxxas->AI())->SliverGUID = 0; } void mob_sliverAI::KilledUnit(Unit* victim) { if(Creature* Garaxxas = (Unit::GetCreature(*m_creature, GaraxxasGUID))) - ((boss_garaxxasAI*)Garaxxas->AI())->KilledUnit(victim); + CAST_AI(boss_garaxxasAI, Garaxxas->AI())->KilledUnit(victim); }*/ #define SPELL_WINDFURY_TOTEM 27621 diff --git a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_selin_fireheart.cpp b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_selin_fireheart.cpp index d057f0d8932..b23abd1da2a 100644 --- a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_selin_fireheart.cpp +++ b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_selin_fireheart.cpp @@ -53,7 +53,7 @@ struct TRINITY_DLL_DECL boss_selin_fireheartAI : public ScriptedAI { boss_selin_fireheartAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); Crystals.clear(); //GUIDs per instance is static, so we only need to load them once. @@ -98,7 +98,7 @@ struct TRINITY_DLL_DECL boss_selin_fireheartAI : public ScriptedAI if (pUnit) { if(!pUnit->isAlive()) - ((Creature*)pUnit)->Respawn(); // Let MaNGOS handle setting death state, etc. + CAST_CRE(pUnit)->Respawn(); // Let MaNGOS handle setting death state, etc. // Only need to set unselectable flag. You can't attack unselectable units so non_attackable flag is not necessary here. pUnit->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); @@ -340,17 +340,17 @@ struct TRINITY_DLL_DECL mob_fel_crystalAI : public ScriptedAI void JustDied(Unit* killer) { - if (ScriptedInstance* pInstance = ((ScriptedInstance*)m_creature->GetInstanceData())) + if (ScriptedInstance* pInstance = (m_creature->GetInstanceData())) { Creature* Selin = (Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_SELIN))); if (Selin && Selin->isAlive()) { - if (((boss_selin_fireheartAI*)Selin->AI())->CrystalGUID == m_creature->GetGUID()) + if(CAST_AI(boss_selin_fireheartAI, Selin->AI())->CrystalGUID == m_creature->GetGUID()) { // Set this to false if we are the creature that Selin is draining so his AI flows properly - ((boss_selin_fireheartAI*)Selin->AI())->DrainingCrystal = false; - ((boss_selin_fireheartAI*)Selin->AI())->IsDraining = false; - ((boss_selin_fireheartAI*)Selin->AI())->EmpowerTimer = 10000; + CAST_AI(boss_selin_fireheartAI, Selin->AI())->DrainingCrystal = false; + CAST_AI(boss_selin_fireheartAI, Selin->AI())->IsDraining = false; + CAST_AI(boss_selin_fireheartAI, Selin->AI())->EmpowerTimer = 10000; if (Selin->getVictim()) { Selin->AI()->AttackStart(Selin->getVictim()); diff --git a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_vexallus.cpp b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_vexallus.cpp index bad86829474..fb31a3783da 100644 --- a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_vexallus.cpp +++ b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_vexallus.cpp @@ -53,7 +53,7 @@ struct TRINITY_DLL_DECL boss_vexallusAI : public ScriptedAI { boss_vexallusAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); Heroic = c->GetMap()->IsHeroic(); + pInstance = (c->GetInstanceData()); Heroic = c->GetMap()->IsHeroic(); Heroic = c->GetMap()->IsHeroic(); } diff --git a/src/bindings/scripts/scripts/zone/maraudon/boss_noxxion.cpp b/src/bindings/scripts/scripts/zone/maraudon/boss_noxxion.cpp index db5ad5214d2..00b6d28d6b0 100644 --- a/src/bindings/scripts/scripts/zone/maraudon/boss_noxxion.cpp +++ b/src/bindings/scripts/scripts/zone/maraudon/boss_noxxion.cpp @@ -71,7 +71,7 @@ struct TRINITY_DLL_DECL boss_noxxionAI : public ScriptedAI Rand = 0; Summoned = DoSpawnCreature(13456, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 90000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(victim); + (Summoned->AI())->AttackStart(victim); } void UpdateAI(const uint32 diff) diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp index 87f6cd8796e..c82dc52b6e6 100644 --- a/src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp +++ b/src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp @@ -40,7 +40,7 @@ struct TRINITY_DLL_DECL boss_golemaggAI : public ScriptedAI { boss_golemaggAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -118,7 +118,7 @@ struct TRINITY_DLL_DECL mob_core_ragerAI : public ScriptedAI { mob_core_ragerAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } uint32 Mangle_Timer; diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_majordomo_executus.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_majordomo_executus.cpp index 3da7134c471..7fef37d24c9 100644 --- a/src/bindings/scripts/scripts/zone/molten_core/boss_majordomo_executus.cpp +++ b/src/bindings/scripts/scripts/zone/molten_core/boss_majordomo_executus.cpp @@ -55,7 +55,7 @@ struct TRINITY_DLL_DECL boss_majordomoAI : public ScriptedAI { boss_majordomoAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp index d62319b2617..77d0da94a1b 100644 --- a/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp +++ b/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp @@ -228,7 +228,7 @@ struct TRINITY_DLL_DECL boss_ragnarosAI : public Scripted_NoMovementAI { Summoned = m_creature->SummonCreature(12143,target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(),0,TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN,900000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); } } @@ -249,7 +249,7 @@ struct TRINITY_DLL_DECL boss_ragnarosAI : public Scripted_NoMovementAI { Summoned = m_creature->SummonCreature(12143,target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(),0,TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN,900000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); } } diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_sulfuron_harbinger.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_sulfuron_harbinger.cpp index dc5b10a25d0..5c61ef9225d 100644 --- a/src/bindings/scripts/scripts/zone/molten_core/boss_sulfuron_harbinger.cpp +++ b/src/bindings/scripts/scripts/zone/molten_core/boss_sulfuron_harbinger.cpp @@ -39,7 +39,7 @@ struct TRINITY_DLL_DECL boss_sulfuronAI : public ScriptedAI { boss_sulfuronAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } uint32 Darkstrike_Timer; @@ -126,7 +126,7 @@ struct TRINITY_DLL_DECL mob_flamewaker_priestAI : public ScriptedAI { mob_flamewaker_priestAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } uint32 Heal_Timer; diff --git a/src/bindings/scripts/scripts/zone/moonglade/moonglade.cpp b/src/bindings/scripts/scripts/zone/moonglade/moonglade.cpp index 86274a6aed4..26af428c2e7 100644 --- a/src/bindings/scripts/scripts/zone/moonglade/moonglade.cpp +++ b/src/bindings/scripts/scripts/zone/moonglade/moonglade.cpp @@ -285,7 +285,7 @@ public: if(!PlayerGUID) return; - Player *player = (Player *)Unit::GetUnit((*m_creature), PlayerGUID); + Player *player = Unit::GetPlayer(PlayerGUID); if(player && player->GetQuestStatus(10965) == QUEST_STATUS_INCOMPLETE) { player->FailQuest(10965); @@ -296,7 +296,7 @@ public: void EnterEvadeMode() { - Player *player = (Player *)Unit::GetUnit((*m_creature), PlayerGUID); + Player *player = Unit::GetPlayer(PlayerGUID); if(player && player->isInCombat() && player->getAttackerForHelper()) { AttackStart(player->getAttackerForHelper()); @@ -345,7 +345,7 @@ public: { if(checkPlayer_Timer < diff) { - Player *player = (Player *)Unit::GetUnit((*m_creature), PlayerGUID); + Player *player = Unit::GetPlayer(PlayerGUID); if(player && player->isInCombat() && player->getAttackerForHelper()) AttackStart(player->getAttackerForHelper()); checkPlayer_Timer = 1000; @@ -355,7 +355,7 @@ public: if(Event_onWait && Event_Timer < diff) { - Player *player = (Player *)Unit::GetUnit((*m_creature), PlayerGUID); + Player *player = Unit::GetPlayer(PlayerGUID); if(!player || (player && player->GetQuestStatus(10965) == QUEST_STATUS_NONE)) { m_creature->setDeathState(JUST_DIED); @@ -523,7 +523,7 @@ bool QuestAccept_npc_clintar_dreamwalker(Player *player, Creature *creature, Que { Creature *clintar_spirit = creature->SummonCreature(CLINTAR_SPIRIT, CLINTAR_SPIRIT_SUMMON_X, CLINTAR_SPIRIT_SUMMON_Y, CLINTAR_SPIRIT_SUMMON_Z, CLINTAR_SPIRIT_SUMMON_O, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 100000); if(clintar_spirit) - ((npc_clintar_spiritAI*)clintar_spirit->AI())->StartEvent(player); + CAST_AI(npc_clintar_spiritAI, clintar_spirit->AI())->StartEvent(player); } return true; } diff --git a/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp b/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp index 8b5da811e12..49317b34ce8 100644 --- a/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp +++ b/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp @@ -79,7 +79,7 @@ struct TRINITY_DLL_DECL npc_kyle_frenziedAI : public ScriptedAI void SpellHit(Unit *caster, const SpellEntry* spell) { // we can feed him without any quest - if(spell->Id == 42222 && caster->GetTypeId() == TYPEID_PLAYER && ((Player*)caster)->GetTeam() == HORDE) + if(spell->Id == 42222 && caster->GetTypeId() == TYPEID_PLAYER && CAST_PLR(caster)->GetTeam() == HORDE) { STATE = 1; player = caster->GetGUID(); @@ -139,8 +139,8 @@ struct TRINITY_DLL_DECL npc_kyle_frenziedAI : public ScriptedAI case 3: STATE = 4; //go home Unit *plr = Unit::GetUnit((*m_creature),player); - if(plr && ((Player*)plr)->GetQuestStatus(11129) == QUEST_STATUS_INCOMPLETE) - ((Player*)plr)->CompleteQuest(11129); + if(plr && CAST_PLR(plr)->GetQuestStatus(11129) == QUEST_STATUS_INCOMPLETE) + CAST_PLR(plr)->CompleteQuest(11129); float x, y, z, z2, angle; angle = m_creature->GetAngle(-2146, -430); m_creature->GetPosition(x,y,z); diff --git a/src/bindings/scripts/scripts/zone/nagrand/nagrand.cpp b/src/bindings/scripts/scripts/zone/nagrand/nagrand.cpp index 63f037cf146..1ed6b003504 100644 --- a/src/bindings/scripts/scripts/zone/nagrand/nagrand.cpp +++ b/src/bindings/scripts/scripts/zone/nagrand/nagrand.cpp @@ -113,12 +113,12 @@ struct TRINITY_DLL_DECL mob_lumpAI : public ScriptedAI { if (done_by->GetTypeId() == TYPEID_PLAYER && (m_creature->GetHealth() - damage)*100 / m_creature->GetMaxHealth() < 30) { - if (!bReset && ((Player*)done_by)->GetQuestStatus(9918) == QUEST_STATUS_INCOMPLETE) + if (!bReset && CAST_PLR(done_by)->GetQuestStatus(9918) == QUEST_STATUS_INCOMPLETE) { //Take 0 damage damage = 0; - ((Player*)done_by)->AttackStop(); + CAST_PLR(done_by)->AttackStop(); m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); m_creature->RemoveAllAuras(); m_creature->DeleteThreatList(); @@ -529,14 +529,14 @@ struct TRINITY_DLL_DECL npc_creditmarker_visit_with_ancestorsAI : public Scripte if(who->GetTypeId() == TYPEID_PLAYER) { - if(((Player*)who)->GetQuestStatus(10085) == QUEST_STATUS_INCOMPLETE) + if(CAST_PLR(who)->GetQuestStatus(10085) == QUEST_STATUS_INCOMPLETE) { uint32 creditMarkerId = m_creature->GetEntry(); if((creditMarkerId >= 18840) && (creditMarkerId <= 18843)) { // 18840: Sunspring, 18841: Laughing, 18842: Garadar, 18843: Bleeding - if(!((Player*)who)->GetReqKillOrCastCurrentCount(10085, creditMarkerId)) - ((Player*)who)->KilledMonster(creditMarkerId, m_creature->GetGUID()); + if(!CAST_PLR(who)->GetReqKillOrCastCurrentCount(10085, creditMarkerId)) + CAST_PLR(who)->KilledMonster(creditMarkerId, m_creature->GetGUID()); } } } @@ -586,7 +586,7 @@ struct TRINITY_DLL_DECL mob_sparrowhawkAI : public ScriptedAI if(!who || PlayerGUID) return; - if(!PlayerGUID && who->GetTypeId() == TYPEID_PLAYER && m_creature->IsWithinDistInMap(((Player *)who), 30) && ((Player *)who)->GetQuestStatus(10987) == QUEST_STATUS_INCOMPLETE) + if(!PlayerGUID && who->GetTypeId() == TYPEID_PLAYER && m_creature->IsWithinDistInMap(who, 30) && CAST_PLR(who)->GetQuestStatus(10987) == QUEST_STATUS_INCOMPLETE) { PlayerGUID = who->GetGUID(); return; @@ -604,7 +604,7 @@ struct TRINITY_DLL_DECL mob_sparrowhawkAI : public ScriptedAI if(fleeing && m_creature->GetMotionMaster()->GetCurrentMovementGeneratorType() != FLEEING_MOTION_TYPE) fleeing = false; - Player *player = (Player *)Unit::GetUnit((*m_creature), PlayerGUID); + Player *player = Unit::GetPlayer(PlayerGUID); if(player && m_creature->IsWithinDistInMap(player, 30)) { if(!fleeing) @@ -634,7 +634,7 @@ struct TRINITY_DLL_DECL mob_sparrowhawkAI : public ScriptedAI { if (caster->GetTypeId() == TYPEID_PLAYER) { - if(spell->Id == SPELL_SPARROWHAWK_NET && ((Player*)caster)->GetQuestStatus(10987) == QUEST_STATUS_INCOMPLETE) + if(spell->Id == SPELL_SPARROWHAWK_NET && CAST_PLR(caster)->GetQuestStatus(10987) == QUEST_STATUS_INCOMPLETE) { m_creature->CastSpell(caster, SPELL_ITEM_CAPTIVE_SPARROWHAWK, true); m_creature->DealDamage(m_creature, m_creature->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_gothik.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_gothik.cpp index 6b0d5cf65fe..ecc9a8d8d03 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/boss_gothik.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_gothik.cpp @@ -202,7 +202,7 @@ struct TRINITY_DLL_DECL boss_gothikAI : public BossAI void UpdateAI(const uint32 diff) { - if(!UpdateVictim() || !CheckInRoom()) + if(!UpdateCombatState() || !CheckInRoom()) return; events.Update(diff); diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp index 1ab7c5e3334..8ce017a936e 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp @@ -128,7 +128,7 @@ struct TRINITY_DLL_DECL boss_nothAI : public BossAI void UpdateAI(const uint32 diff) { - if(!UpdateVictim() || !CheckInRoom()) + if(!UpdateCombatState() || !CheckInRoom()) return; events.Update(diff); diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp index 3a001d4068b..05dea45ed25 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp @@ -121,7 +121,7 @@ struct TRINITY_DLL_DECL boss_sapphironAI : public BossAI } } - void JustDied(Unit*) + void JustDied(Unit* who) { _JustDied(); me->CastSpell(me, SPELL_DIES, true); @@ -173,7 +173,7 @@ struct TRINITY_DLL_DECL boss_sapphironAI : public BossAI events.Update(diff); - if(phase != PHASE_BIRTH && !UpdateVictim() || !CheckInRoom()) + if(phase != PHASE_BIRTH && !UpdateCombatState() || !CheckInRoom()) return; if(phase == PHASE_GROUND) diff --git a/src/bindings/scripts/scripts/zone/netherstorm/netherstorm.cpp b/src/bindings/scripts/scripts/zone/netherstorm/netherstorm.cpp index 1b70d5b1dee..c8c7651dbe1 100644 --- a/src/bindings/scripts/scripts/zone/netherstorm/netherstorm.cpp +++ b/src/bindings/scripts/scripts/zone/netherstorm/netherstorm.cpp @@ -103,20 +103,20 @@ struct TRINITY_DLL_DECL npc_manaforge_control_consoleAI : public ScriptedAI switch( m_creature->GetEntry() ) { case ENTRY_BNAAR_C_CONSOLE: - ((Player*)p)->FailQuest(10299); - ((Player*)p)->FailQuest(10329); + CAST_PLR(p)->FailQuest(10299); + CAST_PLR(p)->FailQuest(10329); break; case ENTRY_CORUU_C_CONSOLE: - ((Player*)p)->FailQuest(10321); - ((Player*)p)->FailQuest(10330); + CAST_PLR(p)->FailQuest(10321); + CAST_PLR(p)->FailQuest(10330); break; case ENTRY_DURO_C_CONSOLE: - ((Player*)p)->FailQuest(10322); - ((Player*)p)->FailQuest(10338); + CAST_PLR(p)->FailQuest(10322); + CAST_PLR(p)->FailQuest(10338); break; case ENTRY_ARA_C_CONSOLE: - ((Player*)p)->FailQuest(10323); - ((Player*)p)->FailQuest(10365); + CAST_PLR(p)->FailQuest(10323); + CAST_PLR(p)->FailQuest(10365); break; } } @@ -255,7 +255,7 @@ struct TRINITY_DLL_DECL npc_manaforge_control_consoleAI : public ScriptedAI { Unit* u = Unit::GetUnit((*m_creature),someplayer); if( u && u->GetTypeId() == TYPEID_PLAYER ) - ((Player*)u)->KilledMonster(m_creature->GetEntry(),m_creature->GetGUID()); + CAST_PLR(u)->KilledMonster(m_creature->GetEntry(),m_creature->GetGUID()); DoCast(m_creature,SPELL_DISABLE_VISUAL); } if( goConsole ) @@ -324,8 +324,8 @@ bool GOHello_go_manaforge_control_console(Player *player, GameObject* _GO) if( manaforge ) { - ((npc_manaforge_control_consoleAI*)manaforge->AI())->someplayer = player->GetGUID(); - ((npc_manaforge_control_consoleAI*)manaforge->AI())->goConsole = _GO->GetGUID(); + CAST_AI(npc_manaforge_control_consoleAI, manaforge->AI())->someplayer = player->GetGUID(); + CAST_AI(npc_manaforge_control_consoleAI, manaforge->AI())->goConsole = _GO->GetGUID(); _GO->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE); } return true; @@ -660,7 +660,7 @@ bool AreaTrigger_at_commander_dawnforge(Player *player, AreaTriggerEntry *at) if (!Dawnforge) return false; - if (((npc_commander_dawnforgeAI*)Dawnforge->AI())->CanStartEvent(player)) + if(CAST_AI(npc_commander_dawnforgeAI, Dawnforge->AI())->CanStartEvent(player)) return true; } return false; @@ -788,7 +788,7 @@ struct TRINITY_DLL_DECL mob_phase_hunterAI : public ScriptedAI Unit* target = Unit::GetUnit((*m_creature), PlayerGUID); if(target && !Weak && m_creature->GetHealth() < (m_creature->GetMaxHealth() / 100 * WeakPercent) - && ((Player*)target)->GetQuestStatus(10190) == QUEST_STATUS_INCOMPLETE) + && CAST_PLR(target)->GetQuestStatus(10190) == QUEST_STATUS_INCOMPLETE) { DoScriptText(EMOTE_WEAK, m_creature); Weak = true; @@ -851,7 +851,7 @@ struct TRINITY_DLL_DECL npc_bessyAI : public npc_escortAI if (PlayerGUID) { if (Player* player = Unit::GetPlayer(PlayerGUID)) - ((Player*)player)->FailQuest(Q_ALMABTRIEB); + CAST_PLR(player)->FailQuest(Q_ALMABTRIEB); } } @@ -878,7 +878,7 @@ struct TRINITY_DLL_DECL npc_bessyAI : public npc_escortAI case 12: if (player) { - ((Player*)player)->GroupEventHappens(Q_ALMABTRIEB, m_creature); + CAST_PLR(player)->GroupEventHappens(Q_ALMABTRIEB, m_creature); Completed = true; } {Unit* Thadell = me->FindNearestCreature(N_THADELL, 30); @@ -917,7 +917,7 @@ bool QuestAccept_npc_bessy(Player* player, Creature* creature, Quest const* ques { creature->setFaction(113); creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); } return true; } @@ -941,7 +941,7 @@ CreatureAI* GetAI_npc_bessy(Creature *_Creature) bessyAI->AddWaypoint(12, 2297.68, 2266.79, 95.07,4000); bessyAI->AddWaypoint(13, 2297.67, 2266.76, 95.07,4000); - return (CreatureAI*)bessyAI; + return bessyAI; } /*###### diff --git a/src/bindings/scripts/scripts/zone/orgrimmar/orgrimmar.cpp b/src/bindings/scripts/scripts/zone/orgrimmar/orgrimmar.cpp index 5b328aee776..5a9d17db745 100644 --- a/src/bindings/scripts/scripts/zone/orgrimmar/orgrimmar.cpp +++ b/src/bindings/scripts/scripts/zone/orgrimmar/orgrimmar.cpp @@ -99,7 +99,7 @@ struct TRINITY_DLL_DECL npc_shenthulAI : public ScriptedAI { if( Unit* temp = Unit::GetUnit((*m_creature),playerGUID) ) if( temp->GetTypeId() == TYPEID_PLAYER ) - ((Player*)temp)->FailQuest(QUEST_2460); + CAST_PLR(temp)->FailQuest(QUEST_2460); Reset(); } else Reset_Timer -= diff; @@ -137,8 +137,8 @@ bool QuestAccept_npc_shenthul(Player* player, Creature* creature, Quest const* q { if( quest->GetQuestId() == QUEST_2460 ) { - ((npc_shenthulAI*)creature->AI())->CanTalk = true; - ((npc_shenthulAI*)creature->AI())->playerGUID = player->GetGUID(); + CAST_AI(npc_shenthulAI, creature->AI())->CanTalk = true; + CAST_AI(npc_shenthulAI, creature->AI())->playerGUID = player->GetGUID(); } return true; } diff --git a/src/bindings/scripts/scripts/zone/razorfen_kraul/razorfen_kraul.cpp b/src/bindings/scripts/scripts/zone/razorfen_kraul/razorfen_kraul.cpp index eef07d16591..8680218e992 100644 --- a/src/bindings/scripts/scripts/zone/razorfen_kraul/razorfen_kraul.cpp +++ b/src/bindings/scripts/scripts/zone/razorfen_kraul/razorfen_kraul.cpp @@ -90,7 +90,7 @@ npc_willixAI(Creature *c) : npc_escortAI(c) {} case 45: DoScriptText(SAY_WIN, m_creature, player); if (player && player->GetTypeId() == TYPEID_PLAYER) - ((Player*)player)->GroupEventHappens(QUEST_WILLIX_THE_IMPORTER,m_creature); + CAST_PLR(player)->GroupEventHappens(QUEST_WILLIX_THE_IMPORTER,m_creature); break; case 46: DoScriptText(SAY_END, m_creature, player); @@ -115,7 +115,7 @@ npc_willixAI(Creature *c) : npc_escortAI(c) {} if (PlayerGUID) { if (Player* player = Unit::GetPlayer(PlayerGUID)) - ((Player*)player)->FailQuest(QUEST_WILLIX_THE_IMPORTER); + CAST_PLR(player)->FailQuest(QUEST_WILLIX_THE_IMPORTER); } } @@ -129,7 +129,7 @@ bool QuestAccept_npc_willix(Player* player, Creature* creature, Quest const* que { if (quest->GetQuestId() == QUEST_WILLIX_THE_IMPORTER) { - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); DoScriptText(SAY_READY, creature, player); creature->setFaction(113); } @@ -189,7 +189,7 @@ CreatureAI* GetAI_npc_willix(Creature *_Creature) thisAI->AddWaypoint(45, 1948.35, 1571.35, 80.96, 30000); thisAI->AddWaypoint(46, 1947.02, 1566.42, 81.80, 30000); - return (CreatureAI*)thisAI; + return thisAI; } void AddSC_razorfen_kraul() diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_headless_horseman.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_headless_horseman.cpp index 0546bc4db95..68e18201b0f 100644 --- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_headless_horseman.cpp +++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_headless_horseman.cpp @@ -134,10 +134,10 @@ struct TRINITY_DLL_DECL mob_wisp_invisAI : public ScriptedAI { Creaturetype = delay = spell = spell2 = 0; //that's hack but there are no info about range of this spells in dbc - SpellEntry *wisp = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_WISP_BLUE); + SpellEntry *wisp = GET_SPELL(SPELL_WISP_BLUE); if (wisp) wisp->rangeIndex = 6; //100 yards - SpellEntry *port = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_WISP_FLIGHT_PORT); + SpellEntry *port = GET_SPELL(SPELL_WISP_FLIGHT_PORT); if (port) port->rangeIndex = 6; } @@ -321,7 +321,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI { boss_headless_horsemanAI(Creature *c) : ScriptedAI(c) { - SpellEntry *confl = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_CONFLAGRATION); + SpellEntry *confl = GET_SPELL(SPELL_CONFLAGRATION); if(confl) { confl->EffectApplyAuraName[0] = SPELL_AURA_PERIODIC_DAMAGE_PERCENT; @@ -329,17 +329,17 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI confl->EffectBaseDice[0] = 10; confl->DmgMultiplier[0] = 1; } -/* SpellEntry *confl = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_CONFLAGRATION); +/* SpellEntry *confl = GET_SPELL(SPELL_CONFLAGRATION); if(confl) confl->EffectTriggerSpell[1] = 22587; - SpellEntry *speed = (SpellEntry*)GetSpellStore()->LookupEntry(22587); + SpellEntry *speed = GET_SPELL(22587); if(speed) { speed->Effect[1] = SPELL_EFFECT_APPLY_AURA; speed->EffectApplyAuraName[1] = SPELL_AURA_MOD_CONFUSE; }*/ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -424,7 +424,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI case 1: { Creature *smoke = m_creature->SummonCreature(HELPER,Spawn[1].x,Spawn[1].y,Spawn[1].z,0,TEMPSUMMON_TIMED_DESPAWN,20000); if(smoke) - ((mob_wisp_invisAI*)smoke->AI())->SetType(3); + CAST_AI(mob_wisp_invisAI, smoke->AI())->SetType(3); DoCast(m_creature,SPELL_RHYME_BIG); break;} case 6: @@ -469,7 +469,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI else { //maybe possible when player dies from conflagration Creature *Head = Unit::GetCreature((*m_creature), headGUID); if (Head) - ((mob_headAI*)Head->AI())->SaySound(SAY_PLAYER_DEATH); + CAST_AI(mob_headAI, Head->AI())->SaySound(SAY_PLAYER_DEATH); } } } @@ -522,7 +522,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI flame->CastSpell(flame,SPELL_BODY_FLAME,false); Creature *wisp = DoSpawnCreature(WISP_INVIS,0,0,0,0,TEMPSUMMON_TIMED_DESPAWN,60000); if(wisp) - ((mob_wisp_invisAI*)wisp->AI())->SetType(4); + CAST_AI(mob_wisp_invisAI, wisp->AI())->SetType(4); if(pInstance) pInstance->SetData(DATA_HORSEMAN_EVENT, DONE); } @@ -628,14 +628,14 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI { Creature *flame = m_creature->SummonCreature(HELPER,Spawn[0].x,Spawn[0].y,Spawn[0].z,0,TEMPSUMMON_TIMED_DESPAWN,17000); if(flame) - ((mob_wisp_invisAI*)flame->AI())->SetType(2); + CAST_AI(mob_wisp_invisAI, flame->AI())->SetType(2); burned = true; }else burn -= diff; break; case 2: if (conflagrate < diff) { - Unit *plr = (Unit*)SelectRandomPlayer(30.0f); + Unit *plr = SelectRandomPlayer(30.0f); if (plr) m_creature->CastSpell(plr,SPELL_CONFLAGRATION,false); conflagrate = 10000 + rand()%7 * 1000; @@ -679,8 +679,8 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI Creature* Head = Unit::GetCreature((*m_creature), headGUID); if (Head && Head->isAlive()) { - ((mob_headAI*)Head->AI())->Phase = Phase; - ((mob_headAI*)Head->AI())->Disappear(); + CAST_AI(mob_headAI, Head->AI())->Phase = Phase; + CAST_AI(mob_headAI, Head->AI())->Disappear(); } return; } @@ -718,7 +718,7 @@ void mob_headAI::Disappear() m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); m_creature->GetMotionMaster()->MoveIdle(); - ((boss_headless_horsemanAI*)body->AI())->returned = true; + CAST_AI(boss_headless_horsemanAI, body->AI())->returned = true; } } } @@ -741,7 +741,7 @@ struct TRINITY_DLL_DECL mob_pulsing_pumpkinAI : public ScriptedAI { debuff->SetDisplayId(m_creature->GetDisplayId()); debuff->CastSpell(debuff,SPELL_PUMPKIN_AURA_GREEN,false); - ((mob_wisp_invisAI*)debuff->AI())->SetType(1); + CAST_AI(mob_wisp_invisAI, debuff->AI())->SetType(1); debuffGUID = debuff->GetGUID(); } sprouted = false; @@ -807,8 +807,8 @@ bool GOHello_go_loosely_turned_soil(Player *plr, GameObject* soil) Creature *horseman = soil->SummonCreature(HH_MOUNTED,FlightPoint[20].x,FlightPoint[20].y,FlightPoint[20].z,0,TEMPSUMMON_MANUAL_DESPAWN,0); if(horseman) { - ((boss_headless_horsemanAI*)horseman->AI())->playerGUID = plr->GetGUID(); - ((boss_headless_horsemanAI*)horseman->AI())->FlyMode(); + CAST_AI(boss_headless_horsemanAI, horseman->AI())->playerGUID = plr->GetGUID(); + CAST_AI(boss_headless_horsemanAI, horseman->AI())->FlyMode(); } //} return true; diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_herod.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_herod.cpp index 913097c4918..2531d3d6db6 100644 --- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_herod.cpp +++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_herod.cpp @@ -144,7 +144,7 @@ CreatureAI* GetAI_mob_scarlet_trainee(Creature* pCreature) thisAI->FillPointMovementListForCreature(); - return (CreatureAI*)thisAI; + return thisAI; } void AddSC_boss_herod() diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_interrogator_vishas.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_interrogator_vishas.cpp index f062419c6c1..3db07afbfdd 100644 --- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_interrogator_vishas.cpp +++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_interrogator_vishas.cpp @@ -39,7 +39,7 @@ struct TRINITY_DLL_DECL boss_interrogator_vishasAI : public ScriptedAI { boss_interrogator_vishasAI(Creature *c) : ScriptedAI(c) { - pInstance = (ScriptedInstance*)m_creature->GetInstanceData(); + pInstance = m_creature->GetInstanceData(); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_mograine_and_whitemane.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_mograine_and_whitemane.cpp index 9bbe880cc69..68bdcf9fa10 100644 --- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_mograine_and_whitemane.cpp +++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_mograine_and_whitemane.cpp @@ -46,7 +46,7 @@ struct TRINITY_DLL_DECL boss_scarlet_commander_mograineAI : public ScriptedAI { boss_scarlet_commander_mograineAI(Creature *c) : ScriptedAI(c) { - pInstance = (ScriptedInstance*)m_creature->GetInstanceData(); + pInstance = m_creature->GetInstanceData(); } ScriptedInstance* pInstance; @@ -173,7 +173,7 @@ struct TRINITY_DLL_DECL boss_high_inquisitor_whitemaneAI : public ScriptedAI { boss_high_inquisitor_whitemaneAI(Creature *c) : ScriptedAI(c) { - pInstance = (ScriptedInstance*)m_creature->GetInstanceData(); + pInstance = m_creature->GetInstanceData(); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp index 2262f3dc594..a26a7652e74 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp @@ -52,7 +52,7 @@ struct TRINITY_DLL_DECL boss_darkmaster_gandlingAI : public ScriptedAI { boss_darkmaster_gandlingAI(Creature *c) : ScriptedAI(c) { - pInstance = (ScriptedInstance*)m_creature->GetInstanceData(); + pInstance = m_creature->GetInstanceData(); } ScriptedInstance* pInstance; @@ -127,79 +127,79 @@ struct TRINITY_DLL_DECL boss_darkmaster_gandlingAI : public ScriptedAI DoTeleportPlayer(target, 250.0696,0.3921,84.8408,3.149); Summoned = m_creature->SummonCreature(16119,254.2325,0.3417,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); Summoned = m_creature->SummonCreature(16119,257.7133,4.0226,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); Summoned = m_creature->SummonCreature(16119,258.6702,-2.60656,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); break; case 1: DoTeleportPlayer(target, 181.4220,-91.9481,84.8410,1.608); Summoned = m_creature->SummonCreature(16119,184.0519,-73.5649,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); Summoned = m_creature->SummonCreature(16119,179.5951,-73.7045,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); Summoned = m_creature->SummonCreature(16119,180.6452,-78.2143,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); Summoned = m_creature->SummonCreature(16119,283.2274,-78.1518,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); break; case 2: DoTeleportPlayer(target, 95.1547,-1.8173,85.2289,0.043); Summoned = m_creature->SummonCreature(16119,100.9404,-1.8016,85.2289,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); Summoned = m_creature->SummonCreature(16119,101.3729,0.4882,85.2289,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); Summoned = m_creature->SummonCreature(16119,101.4596,-4.4740,85.2289,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); break; case 3: DoTeleportPlayer(target, 250.0696,0.3921,72.6722,3.149); Summoned = m_creature->SummonCreature(16119,240.34481,0.7368,72.6722,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); Summoned = m_creature->SummonCreature(16119,240.3633,-2.9520,72.6722,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); Summoned = m_creature->SummonCreature(16119,240.6702,3.34949,72.6722,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); break; case 4: DoTeleportPlayer(target, 181.4220,-91.9481,70.7734,1.608); Summoned = m_creature->SummonCreature(16119,184.0519,-73.5649,70.7734,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); Summoned = m_creature->SummonCreature(16119,179.5951,-73.7045,70.7734,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); Summoned = m_creature->SummonCreature(16119,180.6452,-78.2143,70.7734,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); Summoned = m_creature->SummonCreature(16119,283.2274,-78.1518,70.7734,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); break; case 5: DoTeleportPlayer(target, 106.1541,-1.8994,75.3663,0.043); Summoned = m_creature->SummonCreature(16119,115.3945,-1.5555,75.3663,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); Summoned = m_creature->SummonCreature(16119,257.7133,1.8066,75.3663,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); Summoned = m_creature->SummonCreature(16119,258.6702,-5.1001,75.3663,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); break; } } diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_doctor_theolen_krastinov.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_doctor_theolen_krastinov.cpp index 74f7f2a13a1..f8676fc3c8b 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_doctor_theolen_krastinov.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_doctor_theolen_krastinov.cpp @@ -47,7 +47,7 @@ struct TRINITY_DLL_DECL boss_theolenkrastinovAI : public ScriptedAI void JustDied(Unit *killer) { - ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? ((ScriptedInstance*)m_creature->GetInstanceData()) : NULL; + ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? (m_creature->GetInstanceData()) : NULL; if(pInstance) { pInstance->SetData(DATA_DOCTORTHEOLENKRASTINOV_DEATH, 0); diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_illucia_barov.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_illucia_barov.cpp index ff63af2719d..39b16785e43 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_illucia_barov.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_illucia_barov.cpp @@ -48,7 +48,7 @@ struct TRINITY_DLL_DECL boss_illuciabarovAI : public ScriptedAI void JustDied(Unit *killer) { - ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? ((ScriptedInstance*)m_creature->GetInstanceData()) : NULL; + ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? (m_creature->GetInstanceData()) : NULL; if(pInstance) { pInstance->SetData(DATA_LADYILLUCIABAROV_DEATH, 0); diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_instructor_malicia.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_instructor_malicia.cpp index 4b262f625aa..db070857f0d 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_instructor_malicia.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_instructor_malicia.cpp @@ -55,7 +55,7 @@ struct TRINITY_DLL_DECL boss_instructormaliciaAI : public ScriptedAI void JustDied(Unit *killer) { - ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? ((ScriptedInstance*)m_creature->GetInstanceData()) : NULL; + ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? (m_creature->GetInstanceData()) : NULL; if(pInstance) { pInstance->SetData(DATA_INSTRUCTORMALICIA_DEATH, 0); diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp index b71bef0be39..faa7efa53a5 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp @@ -73,7 +73,7 @@ struct TRINITY_DLL_DECL boss_jandicebarovAI : public ScriptedAI Rand = 0; Summoned = DoSpawnCreature(11439, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 60000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(victim); + (Summoned->AI())->AttackStart(victim); } void UpdateAI(const uint32 diff) diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_kormok.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_kormok.cpp index a1e589cfdb9..966fd3bf6ec 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_kormok.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_kormok.cpp @@ -75,7 +75,7 @@ struct TRINITY_DLL_DECL boss_kormokAI : public ScriptedAI Rand1 = 0; SummonedMinions = DoSpawnCreature(16119, Rand1X, Rand1Y, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000); if(SummonedMinions) - ((CreatureAI*)SummonedMinions->AI())->AttackStart(victim); + (SummonedMinions->AI())->AttackStart(victim); } void SummonMages(Unit* victim) @@ -96,7 +96,7 @@ struct TRINITY_DLL_DECL boss_kormokAI : public ScriptedAI Rand2 = 0; SummonedMages = DoSpawnCreature(16120, Rand2X, Rand2Y, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000); if(SummonedMages) - ((CreatureAI*)SummonedMages->AI())->AttackStart(victim); + (SummonedMages->AI())->AttackStart(victim); } void UpdateAI(const uint32 diff) diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_lord_alexei_barov.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_lord_alexei_barov.cpp index fe9ff752dc7..ffaf56f1c45 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_lord_alexei_barov.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_lord_alexei_barov.cpp @@ -44,7 +44,7 @@ struct TRINITY_DLL_DECL boss_lordalexeibarovAI : public ScriptedAI void JustDied(Unit *killer) { - ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? ((ScriptedInstance*)m_creature->GetInstanceData()) : NULL; + ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? (m_creature->GetInstanceData()) : NULL; if(pInstance) { pInstance->SetData(DATA_LORDALEXEIBAROV_DEATH, 0); diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_lorekeeper_polkelt.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_lorekeeper_polkelt.cpp index 62409b26442..1afa0c91fa6 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_lorekeeper_polkelt.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_lorekeeper_polkelt.cpp @@ -48,7 +48,7 @@ struct TRINITY_DLL_DECL boss_lorekeeperpolkeltAI : public ScriptedAI void JustDied(Unit *killer) { - ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? ((ScriptedInstance*)m_creature->GetInstanceData()) : NULL; + ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? (m_creature->GetInstanceData()) : NULL; if(pInstance) { pInstance->SetData(DATA_LOREKEEPERPOLKELT_DEATH, 0); diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_the_ravenian.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_the_ravenian.cpp index 64172abe45c..6be34592529 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_the_ravenian.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_the_ravenian.cpp @@ -50,7 +50,7 @@ struct TRINITY_DLL_DECL boss_theravenianAI : public ScriptedAI void JustDied(Unit *killer) { - ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? ((ScriptedInstance*)m_creature->GetInstanceData()) : NULL; + ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? (m_creature->GetInstanceData()) : NULL; if(pInstance) { pInstance->SetData(DATA_THERAVENIAN_DEATH, 0); diff --git a/src/bindings/scripts/scripts/zone/shadowfang_keep/shadowfang_keep.cpp b/src/bindings/scripts/scripts/zone/shadowfang_keep/shadowfang_keep.cpp index 3c557118f3b..bf7c122d452 100644 --- a/src/bindings/scripts/scripts/zone/shadowfang_keep/shadowfang_keep.cpp +++ b/src/bindings/scripts/scripts/zone/shadowfang_keep/shadowfang_keep.cpp @@ -53,7 +53,7 @@ struct TRINITY_DLL_DECL npc_shadowfang_prisonerAI : public npc_escortAI { npc_shadowfang_prisonerAI(Creature *c) : npc_escortAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); uiNpcEntry = c->GetEntry(); } @@ -106,12 +106,12 @@ CreatureAI* GetAI_npc_shadowfang_prisoner(Creature* pCreature) prisonerAI->FillPointMovementListForCreature(); - return (CreatureAI*)prisonerAI; + return prisonerAI; } bool GossipHello_npc_shadowfang_prisoner(Player* pPlayer, Creature* pCreature) { - ScriptedInstance* pInstance = ((ScriptedInstance*)pCreature->GetInstanceData()); + ScriptedInstance* pInstance = (pCreature->GetInstanceData()); if (pInstance && pInstance->GetData(TYPE_FREE_NPC) != DONE && pInstance->GetData(TYPE_RETHILGORE) == DONE) pPlayer->ADD_GOSSIP_ITEM(0, GOSSIP_ITEM_DOOR, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1); @@ -126,7 +126,7 @@ bool GossipSelect_npc_shadowfang_prisoner(Player* pPlayer, Creature* pCreature, if (uiAction == GOSSIP_ACTION_INFO_DEF+1) { pPlayer->CLOSE_GOSSIP_MENU(); - ((npc_escortAI*)(pCreature->AI()))->Start(false, true, false); + CAST_AI(npc_escortAI, (pCreature->AI()))->Start(false, true, false); } return true; } diff --git a/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp b/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp index 6ba339a4c4b..d87c25c14a7 100644 --- a/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp +++ b/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp @@ -750,7 +750,7 @@ struct TRINITY_DLL_DECL npc_overlord_morghorAI : public ScriptedAI plr->RemoveAurasDueToSpell(SPELL_FOUR); return 5000; }else{ - ((Player*)plr)->FailQuest(QUEST_LORD_ILLIDAN_STORMRAGE); Step = 30; return 100; + CAST_PLR(plr)->FailQuest(QUEST_LORD_ILLIDAN_STORMRAGE); Step = 30; return 100; }break; case 17: DoScriptText(LORD_ILLIDAN_SAY_5, Illi); return 5000; break; case 18: DoScriptText(LORD_ILLIDAN_SAY_6, Illi); return 5000; break; @@ -769,7 +769,7 @@ struct TRINITY_DLL_DECL npc_overlord_morghorAI : public ScriptedAI case 25: DoScriptText(OVERLORD_SAY_6, m_creature); return 2000; break; case 26: if(plr) - ((Player*)plr)->GroupEventHappens(QUEST_LORD_ILLIDAN_STORMRAGE, m_creature); + CAST_PLR(plr)->GroupEventHappens(QUEST_LORD_ILLIDAN_STORMRAGE, m_creature); return 6000; break; case 27: { @@ -832,8 +832,8 @@ bool QuestAccept_npc_overlord_morghor(Player *player, Creature *_Creature, const { if(_Quest->GetQuestId() == QUEST_LORD_ILLIDAN_STORMRAGE) { - ((npc_overlord_morghorAI*)_Creature->AI())->PlayerGUID = player->GetGUID(); - ((npc_overlord_morghorAI*)_Creature->AI())->StartEvent(); + CAST_AI(npc_overlord_morghorAI, _Creature->AI())->PlayerGUID = player->GetGUID(); + CAST_AI(npc_overlord_morghorAI, _Creature->AI())->StartEvent(); return true; } return false; @@ -943,7 +943,7 @@ struct TRINITY_DLL_DECL npc_earthmender_wildaAI : public npc_escortAI case 44: SummonAssassin(); break; case 50: DoScriptText(SAY_END, m_creature, player); - ((Player*)player)->GroupEventHappens(QUEST_ESCAPE_FROM_COILSKAR_CISTERN, m_creature); + CAST_PLR(player)->GroupEventHappens(QUEST_ESCAPE_FROM_COILSKAR_CISTERN, m_creature); Completed = true; break; } @@ -961,7 +961,7 @@ struct TRINITY_DLL_DECL npc_earthmender_wildaAI : public npc_escortAI case 0: DoScriptText(ASSASSIN_SAY_AGGRO1, CoilskarAssassin, player); break; case 1: DoScriptText(ASSASSIN_SAY_AGGRO2, CoilskarAssassin, player); break; } - ((Creature*)CoilskarAssassin)->AI()->AttackStart(m_creature); + CAST_CRE(CoilskarAssassin)->AI()->AttackStart(m_creature); } else error_log("TSCR ERROR: Coilskar Assassin couldn't be summmoned"); } @@ -972,7 +972,7 @@ struct TRINITY_DLL_DECL npc_earthmender_wildaAI : public npc_escortAI { Player* player = Unit::GetPlayer(PlayerGUID); if (player) - ((Player*)player)->FailQuest(QUEST_ESCAPE_FROM_COILSKAR_CISTERN); + CAST_PLR(player)->FailQuest(QUEST_ESCAPE_FROM_COILSKAR_CISTERN); } } @@ -1039,7 +1039,7 @@ CreatureAI* GetAI_npc_earthmender_wildaAI(Creature *_Creature) earthmender_wildaAI->AddWaypoint(49, -2841.754883, 1289.832520, 6.990304); earthmender_wildaAI->AddWaypoint(50, -2871.398438, 1302.348145, 6.807335, 8000); // SAY_END - return (CreatureAI*)earthmender_wildaAI; + return earthmender_wildaAI; } bool QuestAccept_npc_earthmender_wilda(Player* player, Creature* creature, Quest const* quest) @@ -1047,7 +1047,7 @@ bool QuestAccept_npc_earthmender_wilda(Player* player, Creature* creature, Quest if (quest->GetQuestId() == QUEST_ESCAPE_FROM_COILSKAR_CISTERN) { creature->setFaction(113); - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); } return true; } @@ -1381,12 +1381,13 @@ struct TRINITY_DLL_DECL mob_torloth_the_magnificentAI : public ScriptedAI switch(slayer->GetTypeId()) { case TYPEID_UNIT: - if(((Creature*)slayer)->isPet() && ((Pet*)slayer)->GetOwner()->GetTypeId() == TYPEID_PLAYER) - ((Player*)((Pet*)slayer->GetOwner()))->GroupEventHappens(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, m_creature); + if(Unit *owner = slayer->GetOwner()) + if(owner->GetTypeId() == TYPEID_PLAYER) + CAST_PLR(owner)->GroupEventHappens(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, m_creature); break; case TYPEID_PLAYER: - ((Player*)slayer)->GroupEventHappens(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, m_creature); + CAST_PLR(slayer)->GroupEventHappens(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, m_creature); break; } @@ -1490,14 +1491,14 @@ struct TRINITY_DLL_DECL npc_lord_illidan_stormrageAI : public ScriptedAI Spawn->GetMotionMaster()->MovePoint(0,x, y, z); } } - ((mob_illidari_spawnAI*)Spawn->AI())->LordIllidanGUID = m_creature->GetGUID(); + CAST_AI(mob_illidari_spawnAI, Spawn->AI())->LordIllidanGUID = m_creature->GetGUID(); } if(WavesInfo[WaveCount].CreatureId == 22076) // Torloth { - ((mob_torloth_the_magnificentAI*)Spawn->AI())->LordIllidanGUID = m_creature->GetGUID(); + CAST_AI(mob_torloth_the_magnificentAI, Spawn->AI())->LordIllidanGUID = m_creature->GetGUID(); if(PlayerGUID) - ((mob_torloth_the_magnificentAI*)Spawn->AI())->AggroTargetGUID = PlayerGUID; + CAST_AI(mob_torloth_the_magnificentAI, Spawn->AI())->AggroTargetGUID = PlayerGUID; } } } @@ -1605,7 +1606,7 @@ void mob_illidari_spawnAI::JustDied(Unit *slayer) m_creature->RemoveCorpse(); if(Creature* LordIllidan = (Unit::GetCreature(*m_creature, LordIllidanGUID))) if(LordIllidan) - ((npc_lord_illidan_stormrageAI*)LordIllidan->AI())->LiveCounter(); + CAST_AI(npc_lord_illidan_stormrageAI, LordIllidan->AI())->LiveCounter(); } /*##### @@ -1616,13 +1617,13 @@ bool GOQuestAccept_GO_crystal_prison(Player* plr, GameObject* go, Quest const* q { if(quest->GetQuestId() == QUEST_BATTLE_OF_THE_CRIMSON_WATCH ) { - Unit* Illidan = plr->FindNearestCreature(22083, 50); + Creature* Illidan = plr->FindNearestCreature(22083, 50); - if(Illidan && !(((npc_lord_illidan_stormrageAI*)((Creature*)Illidan)->AI())->EventStarted)) + if(Illidan && !CAST_AI(npc_lord_illidan_stormrageAI, Illidan->AI())->EventStarted) { - ((npc_lord_illidan_stormrageAI*)((Creature*)Illidan)->AI())->PlayerGUID = plr->GetGUID(); - ((npc_lord_illidan_stormrageAI*)((Creature*)Illidan)->AI())->LiveCount = 0; - ((npc_lord_illidan_stormrageAI*)((Creature*)Illidan)->AI())->EventStarted=true; + CAST_AI(npc_lord_illidan_stormrageAI, Illidan->AI())->PlayerGUID = plr->GetGUID(); + CAST_AI(npc_lord_illidan_stormrageAI, Illidan->AI())->LiveCount = 0; + CAST_AI(npc_lord_illidan_stormrageAI, Illidan->AI())->EventStarted=true; } } return true; @@ -1742,10 +1743,10 @@ struct TRINITY_DLL_DECL npc_enraged_spiritAI : public ScriptedAI Summoned->setFaction(ENRAGED_SOUL_FRIENDLY); Summoned->GetMotionMaster()->MovePoint(0,totemOspirits->GetPositionX(), totemOspirits->GetPositionY(), Summoned->GetPositionZ()); - Player* Owner = (Player*)totemOspirits->GetOwner(); - if (Owner) + Unit* Owner = totemOspirits->GetOwner(); + if (Owner && Owner->GetTypeId() == TYPEID_PLAYER) // DoCast(Owner, credit); -- not working! - Owner->KilledMonster(credit, Summoned->GetGUID()); + CAST_PLR(Owner)->KilledMonster(credit, Summoned->GetGUID()); DoCast(totemOspirits,SPELL_SOUL_CAPTURED); } } diff --git a/src/bindings/scripts/scripts/zone/shattrath/shattrath_city.cpp b/src/bindings/scripts/scripts/zone/shattrath/shattrath_city.cpp index 7f6d3d23976..236ef85f85c 100644 --- a/src/bindings/scripts/scripts/zone/shattrath/shattrath_city.cpp +++ b/src/bindings/scripts/scripts/zone/shattrath/shattrath_city.cpp @@ -128,7 +128,7 @@ struct TRINITY_DLL_DECL npc_salsalabimAI : public ScriptedAI if( done_by->GetTypeId() == TYPEID_PLAYER ) if( (m_creature->GetHealth()-damage)*100 / m_creature->GetMaxHealth() < 20 ) { - ((Player*)done_by)->GroupEventHappens(QUEST_10004,m_creature); + CAST_PLR(done_by)->GroupEventHappens(QUEST_10004,m_creature); damage = 0; EnterEvadeMode(); } @@ -328,12 +328,12 @@ public: if( who->GetTypeId() == TYPEID_PLAYER ) { - if( ((Player*)who)->GetQuestStatus(10211) == QUEST_STATUS_INCOMPLETE ) + if( CAST_PLR(who)->GetQuestStatus(10211) == QUEST_STATUS_INCOMPLETE ) { float Radius = 10.0; if( m_creature->IsWithinDistInMap(who, Radius) ) { - ((npc_escortAI*)(m_creature->AI()))->Start(false, false, false, who->GetGUID()); + Start(false, false, false, who->GetGUID()); } } } @@ -352,7 +352,7 @@ CreatureAI* GetAI_npc_kservantAI(Creature *_Creature) kservantAI->FillPointMovementListForCreature(); - return (CreatureAI*)kservantAI; + return kservantAI; } /*###### @@ -400,14 +400,14 @@ struct TRINITY_DLL_DECL npc_dirty_larryAI : public ScriptedAI Unit* Creepjack = me->FindNearestCreature(NPC_CREEPJACK, 20); if(Creepjack) { - ((Creature*)Creepjack)->AI()->EnterEvadeMode(); + CAST_CRE(Creepjack)->AI()->EnterEvadeMode(); Creepjack->setFaction(1194); Creepjack->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); } Unit* Malone = me->FindNearestCreature(NPC_MALONE, 20); if(Malone) { - ((Creature*)Malone)->AI()->EnterEvadeMode(); + CAST_CRE(Malone)->AI()->EnterEvadeMode(); Malone->setFaction(1194); Malone->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); } @@ -481,7 +481,7 @@ struct TRINITY_DLL_DECL npc_dirty_larryAI : public ScriptedAI Unit* Creepjack = me->FindNearestCreature(NPC_CREEPJACK, 20); if(Creepjack) { - ((Creature*)Creepjack)->AI()->EnterEvadeMode(); + CAST_CRE(Creepjack)->AI()->EnterEvadeMode(); Creepjack->setFaction(1194); Creepjack->GetMotionMaster()->MoveTargetedHome(); Creepjack->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); @@ -489,7 +489,7 @@ struct TRINITY_DLL_DECL npc_dirty_larryAI : public ScriptedAI Unit* Malone = me->FindNearestCreature(NPC_MALONE, 20); if(Malone) { - ((Creature*)Malone)->AI()->EnterEvadeMode(); + CAST_CRE(Malone)->AI()->EnterEvadeMode(); Malone->setFaction(1194); Malone->GetMotionMaster()->MoveTargetedHome(); Malone->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); @@ -503,7 +503,7 @@ struct TRINITY_DLL_DECL npc_dirty_larryAI : public ScriptedAI m_creature->GetMotionMaster()->MoveTargetedHome(); Player* player = Unit::GetPlayer(PlayerGUID); if(player) - ((Player*)player)->GroupEventHappens(QUEST_WBI, m_creature); + CAST_PLR(player)->GroupEventHappens(QUEST_WBI, m_creature); } DoMeleeAttackIfReady(); } @@ -525,8 +525,8 @@ bool GossipSelect_npc_dirty_larry(Player *player, Creature *creature, uint32 sen { if (action == GOSSIP_ACTION_INFO_DEF+1) { - ((npc_dirty_larryAI*)creature->AI())->Event = true; - ((npc_dirty_larryAI*)creature->AI())->PlayerGUID = player->GetGUID(); + CAST_AI(npc_dirty_larryAI, creature->AI())->Event = true; + CAST_AI(npc_dirty_larryAI, creature->AI())->PlayerGUID = player->GetGUID(); player->CLOSE_GOSSIP_MENU(); } diff --git a/src/bindings/scripts/scripts/zone/silvermoon/silvermoon_city.cpp b/src/bindings/scripts/scripts/zone/silvermoon/silvermoon_city.cpp index 982c00dfcab..718a44acf58 100644 --- a/src/bindings/scripts/scripts/zone/silvermoon/silvermoon_city.cpp +++ b/src/bindings/scripts/scripts/zone/silvermoon/silvermoon_city.cpp @@ -75,9 +75,9 @@ struct TRINITY_DLL_DECL npc_blood_knight_stillbladeAI : public ScriptedAI void SpellHit(Unit *Hitter, const SpellEntry *Spellkind) { if((Spellkind->Id == SPELL_SHIMMERING_VESSEL) && !spellHit && - (Hitter->GetTypeId() == TYPEID_PLAYER) && (((Player*)Hitter)->IsActiveQuest(QUEST_REDEEMING_THE_DEAD))) + (Hitter->GetTypeId() == TYPEID_PLAYER) && (CAST_PLR(Hitter)->IsActiveQuest(QUEST_REDEEMING_THE_DEAD))) { - ((Player*)Hitter)->AreaExploredOrEventHappens(QUEST_REDEEMING_THE_DEAD); + CAST_PLR(Hitter)->AreaExploredOrEventHappens(QUEST_REDEEMING_THE_DEAD); DoCast(m_creature,SPELL_REVIVE_SELF); m_creature->SetStandState(UNIT_STAND_STATE_STAND); m_creature->SetUInt32Value(UNIT_DYNAMIC_FLAGS, 0); diff --git a/src/bindings/scripts/scripts/zone/silverpine_forest/silverpine_forest.cpp b/src/bindings/scripts/scripts/zone/silverpine_forest/silverpine_forest.cpp index 98aea1a9b35..ed96d3a1768 100644 --- a/src/bindings/scripts/scripts/zone/silverpine_forest/silverpine_forest.cpp +++ b/src/bindings/scripts/scripts/zone/silverpine_forest/silverpine_forest.cpp @@ -81,7 +81,7 @@ bool GossipSelect_npc_astor_hadren(Player *player, Creature *_Creature, uint32 s player->CLOSE_GOSSIP_MENU(); _Creature->setFaction(21); if(player) - ((npc_astor_hadrenAI*)_Creature->AI())->AttackStart(player); + CAST_AI(npc_astor_hadrenAI, _Creature->AI())->AttackStart(player); break; } return true; @@ -171,7 +171,7 @@ bool QuestAccept_npc_deathstalker_erland(Player* player, Creature* creature, Que if (quest->GetQuestId() == QUEST_ESCORTING) { DoScriptText(SAY_QUESTACCEPT, creature, player); - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); } return true; @@ -209,7 +209,7 @@ CreatureAI* GetAI_npc_deathstalker_erlandAI(Creature *_Creature) deathstalker_erlandAI->AddWaypoint(25, 1310.51, 1207.36, 58.51, 5000); deathstalker_erlandAI->AddWaypoint(26, 1310.51, 1207.36, 58.51, 2000); - return (CreatureAI*)deathstalker_erlandAI; + return deathstalker_erlandAI; } /*###### diff --git a/src/bindings/scripts/scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp b/src/bindings/scripts/scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp index e600888905a..e8f234c0e0b 100644 --- a/src/bindings/scripts/scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp +++ b/src/bindings/scripts/scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp @@ -111,7 +111,7 @@ struct TRINITY_DLL_DECL npc_kaya_flathoofAI : public npc_escortAI case 23: m_creature->SetInFront(player); DoScriptText(SAY_END, m_creature, player); if (player && player->GetTypeId() == TYPEID_PLAYER) - ((Player*)player)->GroupEventHappens(QUEST_PK, m_creature); + CAST_PLR(player)->GroupEventHappens(QUEST_PK, m_creature); break; } } @@ -131,7 +131,7 @@ struct TRINITY_DLL_DECL npc_kaya_flathoofAI : public npc_escortAI { Player* player = Unit::GetPlayer(PlayerGUID); if (player) - ((Player*)player)->FailQuest(QUEST_PK); + CAST_PLR(player)->FailQuest(QUEST_PK); } } @@ -145,7 +145,7 @@ bool QuestAccept_npc_kaya_flathoof(Player* player, Creature* creature, Quest con { if (quest->GetQuestId() == QUEST_PK) { - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); DoScriptText(SAY_START, creature); creature->setFaction(113); creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_ATTACKABLE_2); @@ -182,7 +182,7 @@ CreatureAI* GetAI_npc_kaya_flathoofAI(Creature *_Creature) thisAI->AddWaypoint(22, -43.77, -497.99, -46.13, 3000);// summon thisAI->AddWaypoint(23, -41.77, -518.15, -46.13, 5000);//end - return (CreatureAI*)thisAI; + return thisAI; } /*###### diff --git a/src/bindings/scripts/scripts/zone/stormwind/stormwind_city.cpp b/src/bindings/scripts/scripts/zone/stormwind/stormwind_city.cpp index 11ed71ff720..36f09218093 100644 --- a/src/bindings/scripts/scripts/zone/stormwind/stormwind_city.cpp +++ b/src/bindings/scripts/scripts/zone/stormwind/stormwind_city.cpp @@ -93,8 +93,8 @@ struct TRINITY_DLL_DECL npc_bartlebyAI : public ScriptedAI if (done_by->GetTypeId() == TYPEID_PLAYER && done_by->GetGUID() == PlayerGUID) { - ((Player*)done_by)->AttackStop(); - ((Player*)done_by)->AreaExploredOrEventHappens(1640); + CAST_PLR(done_by)->AttackStop(); + CAST_PLR(done_by)->AreaExploredOrEventHappens(1640); } m_creature->CombatStop(); EnterEvadeMode(); @@ -109,8 +109,8 @@ bool QuestAccept_npc_bartleby(Player *player, Creature *_Creature, Quest const * if(_Quest->GetQuestId() == 1640) { _Creature->setFaction(168); - ((npc_bartlebyAI*)_Creature->AI())->PlayerGUID = player->GetGUID(); - ((npc_bartlebyAI*)_Creature->AI())->AttackStart(player); + CAST_AI(npc_bartlebyAI, _Creature->AI())->PlayerGUID = player->GetGUID(); + CAST_AI(npc_bartlebyAI, _Creature->AI())->AttackStart(player); } return true; } @@ -143,8 +143,8 @@ struct TRINITY_DLL_DECL npc_dashel_stonefistAI : public ScriptedAI if (done_by->GetTypeId() == TYPEID_PLAYER) { - ((Player*)done_by)->AttackStop(); - ((Player*)done_by)->AreaExploredOrEventHappens(1447); + CAST_PLR(done_by)->AttackStop(); + CAST_PLR(done_by)->AreaExploredOrEventHappens(1447); } //m_creature->CombatStop(); EnterEvadeMode(); @@ -159,7 +159,7 @@ bool QuestAccept_npc_dashel_stonefist(Player *player, Creature *_Creature, Quest if(_Quest->GetQuestId() == 1447) { _Creature->setFaction(168); - ((npc_dashel_stonefistAI*)_Creature->AI())->AttackStart(player); + CAST_AI(npc_dashel_stonefistAI, _Creature->AI())->AttackStart(player); } return true; } diff --git a/src/bindings/scripts/scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp b/src/bindings/scripts/scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp index 54a4da82ebf..daeeb3e11e5 100644 --- a/src/bindings/scripts/scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp +++ b/src/bindings/scripts/scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp @@ -52,7 +52,7 @@ struct TRINITY_DLL_DECL mob_yennikuAI : public ScriptedAI if (caster->GetTypeId() == TYPEID_PLAYER) { //Yenniku's Release - if(!bReset && ((Player*)caster)->GetQuestStatus(592) == QUEST_STATUS_INCOMPLETE && spell->Id == 3607) + if(!bReset && CAST_PLR(caster)->GetQuestStatus(592) == QUEST_STATUS_INCOMPLETE && spell->Id == 3607) { m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_STUN); m_creature->CombatStop(); //stop combat @@ -86,7 +86,7 @@ struct TRINITY_DLL_DECL mob_yennikuAI : public ScriptedAI if(m_creature->getVictim()->GetTypeId() == TYPEID_PLAYER) { Unit *victim = m_creature->getVictim(); - if(((Player*)victim)->GetTeam() == HORDE) + if(CAST_PLR(victim)->GetTeam() == HORDE) { m_creature->CombatStop(); m_creature->DeleteThreatList(); diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_baron_rivendare.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_baron_rivendare.cpp index 5ceda79e9ef..092318fd7af 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/boss_baron_rivendare.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/boss_baron_rivendare.cpp @@ -79,7 +79,7 @@ struct TRINITY_DLL_DECL boss_baron_rivendareAI : public ScriptedAI { boss_baron_rivendareAI(Creature *c) : ScriptedAI(c) { - pInstance = (ScriptedInstance*)m_creature->GetInstanceData(); + pInstance = m_creature->GetInstanceData(); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_baroness_anastari.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_baroness_anastari.cpp index 912390a883e..1906834e184 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/boss_baroness_anastari.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/boss_baroness_anastari.cpp @@ -33,7 +33,7 @@ struct TRINITY_DLL_DECL boss_baroness_anastariAI : public ScriptedAI { boss_baroness_anastariAI(Creature *c) : ScriptedAI(c) { - pInstance = (ScriptedInstance*)m_creature->GetInstanceData(); + pInstance = m_creature->GetInstanceData(); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_magistrate_barthilas.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_magistrate_barthilas.cpp index 6689bcde8b1..d65390ab6d7 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/boss_magistrate_barthilas.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/boss_magistrate_barthilas.cpp @@ -36,7 +36,7 @@ struct TRINITY_DLL_DECL boss_magistrate_barthilasAI : public ScriptedAI { boss_magistrate_barthilasAI(Creature *c) : ScriptedAI(c) { - pInstance = (ScriptedInstance*)m_creature->GetInstanceData(); + pInstance = m_creature->GetInstanceData(); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_maleki_the_pallid.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_maleki_the_pallid.cpp index aa11388e4d3..dbbbc5576d4 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/boss_maleki_the_pallid.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/boss_maleki_the_pallid.cpp @@ -33,7 +33,7 @@ struct TRINITY_DLL_DECL boss_maleki_the_pallidAI : public ScriptedAI { boss_maleki_the_pallidAI(Creature *c) : ScriptedAI(c) { - pInstance = (ScriptedInstance*)m_creature->GetInstanceData(); + pInstance = m_creature->GetInstanceData(); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_nerubenkan.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_nerubenkan.cpp index 3ce0baa5454..2d2c7605404 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/boss_nerubenkan.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/boss_nerubenkan.cpp @@ -33,7 +33,7 @@ struct TRINITY_DLL_DECL boss_nerubenkanAI : public ScriptedAI { boss_nerubenkanAI(Creature *c) : ScriptedAI(c) { - pInstance = (ScriptedInstance*)m_creature->GetInstanceData(); + pInstance = m_creature->GetInstanceData(); } ScriptedInstance* pInstance; @@ -83,7 +83,7 @@ struct TRINITY_DLL_DECL boss_nerubenkanAI : public ScriptedAI Rand = 0; Summoned = DoSpawnCreature(10876, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 180000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(victim); + (Summoned->AI())->AttackStart(victim); } void UpdateAI(const uint32 diff) diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_order_of_silver_hand.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_order_of_silver_hand.cpp index 95b2308305d..316cbaef9d3 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/boss_order_of_silver_hand.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/boss_order_of_silver_hand.cpp @@ -45,7 +45,7 @@ struct TRINITY_DLL_DECL boss_silver_hand_bossesAI : public ScriptedAI { boss_silver_hand_bossesAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -108,7 +108,7 @@ struct TRINITY_DLL_DECL boss_silver_hand_bossesAI : public ScriptedAI break; } if(pInstance->GetData(TYPE_SH_QUEST) && Killer->GetTypeId() == TYPEID_PLAYER) - ((Player*)Killer)->KilledMonster(SH_QUEST_CREDIT,m_creature->GetGUID()); + CAST_PLR(Killer)->KilledMonster(SH_QUEST_CREDIT,m_creature->GetGUID()); } } diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_ramstein_the_gorger.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_ramstein_the_gorger.cpp index 58bec2f6898..1ecb95333c4 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/boss_ramstein_the_gorger.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/boss_ramstein_the_gorger.cpp @@ -33,7 +33,7 @@ struct TRINITY_DLL_DECL boss_ramstein_the_gorgerAI : public ScriptedAI { boss_ramstein_the_gorgerAI(Creature *c) : ScriptedAI(c) { - pInstance = (ScriptedInstance*)m_creature->GetInstanceData(); + pInstance = m_creature->GetInstanceData(); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/stratholme/stratholme.cpp b/src/bindings/scripts/scripts/zone/stratholme/stratholme.cpp index d843be2ee73..7bbc3b91e98 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/stratholme.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/stratholme.cpp @@ -37,7 +37,7 @@ EndContentData */ bool GOHello_go_gauntlet_gate(Player *player, GameObject* _GO) { - ScriptedInstance* pInstance = (ScriptedInstance*)_GO->GetInstanceData(); + ScriptedInstance* pInstance = _GO->GetInstanceData(); if (!pInstance) return false; @@ -131,7 +131,7 @@ struct TRINITY_DLL_DECL mob_restless_soulAI : public ScriptedAI { if (caster->GetTypeId() == TYPEID_PLAYER) { - if (!Tagged && spell->Id == SPELL_EGAN_BLASTER && ((Player*)caster)->GetQuestStatus(QUEST_RESTLESS_SOUL) == QUEST_STATUS_INCOMPLETE) + if (!Tagged && spell->Id == SPELL_EGAN_BLASTER && CAST_PLR(caster)->GetQuestStatus(QUEST_RESTLESS_SOUL) == QUEST_STATUS_INCOMPLETE) { Tagged = true; Tagger = caster->GetGUID(); diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_brutallus.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_brutallus.cpp index 4faa0f792bf..7f4e6f7fdcd 100644 --- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_brutallus.cpp +++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_brutallus.cpp @@ -67,7 +67,7 @@ enum Spells struct TRINITY_DLL_DECL boss_brutallusAI : public ScriptedAI { boss_brutallusAI(Creature *c) : ScriptedAI(c){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_eredar_twins.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_eredar_twins.cpp index 9d11feefb1f..92099f70ee6 100644 --- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_eredar_twins.cpp +++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_eredar_twins.cpp @@ -94,7 +94,7 @@ enum Creatures struct TRINITY_DLL_DECL boss_sacrolashAI : public ScriptedAI { boss_sacrolashAI(Creature *c) : ScriptedAI(c){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -121,7 +121,7 @@ struct TRINITY_DLL_DECL boss_sacrolashAI : public ScriptedAI if (Temp) if (Temp->isDead()) { - ((Creature*)Temp)->Respawn(); + CAST_CRE(Temp)->Respawn(); }else { if(Temp->getVictim()) @@ -156,7 +156,7 @@ struct TRINITY_DLL_DECL boss_sacrolashAI : public ScriptedAI { Unit* Temp = Unit::GetUnit((*m_creature),pInstance->GetData64(DATA_ALYTHESS)); if (Temp && Temp->isAlive() && !(Temp->getVictim())) - ((Creature*)Temp)->AI()->AttackStart(who); + CAST_CRE(Temp)->AI()->AttackStart(who); } if(pInstance) @@ -354,7 +354,7 @@ CreatureAI* GetAI_boss_sacrolash(Creature *_Creature) struct TRINITY_DLL_DECL boss_alythessAI : public Scripted_NoMovementAI { boss_alythessAI(Creature *c) : Scripted_NoMovementAI(c){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); IntroStepCounter = 10; } @@ -385,7 +385,7 @@ struct TRINITY_DLL_DECL boss_alythessAI : public Scripted_NoMovementAI if (Temp) if (Temp->isDead()) { - ((Creature*)Temp)->Respawn(); + CAST_CRE(Temp)->Respawn(); }else { if(Temp->getVictim()) @@ -421,7 +421,7 @@ struct TRINITY_DLL_DECL boss_alythessAI : public Scripted_NoMovementAI { Unit* Temp = Unit::GetUnit((*m_creature),pInstance->GetData64(DATA_SACROLASH)); if (Temp && Temp->isAlive() && !(Temp->getVictim())) - ((Creature*)Temp)->AI()->AttackStart(who); + CAST_CRE(Temp)->AI()->AttackStart(who); } if(pInstance) @@ -533,7 +533,7 @@ struct TRINITY_DLL_DECL boss_alythessAI : public Scripted_NoMovementAI uint32 IntroStep(uint32 step) { - Creature* Sacrolash = (Creature*)Unit::GetUnit((*m_creature),pInstance->GetData64(DATA_SACROLASH)); + Creature* Sacrolash = Unit::GetCreature((*m_creature),pInstance->GetData64(DATA_SACROLASH)); switch (step) { case 0: return 0; diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp index ec7778d7a0d..f15a7742a8c 100644 --- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp +++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp @@ -127,16 +127,16 @@ static EventFelmyst MaxTimer[]= struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI { boss_felmystAI(Creature *c) : ScriptedAI(c){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); // wait for core patch be accepted - /*SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_ENCAPSULATE_EFFECT); + /*SpellEntry *TempSpell = GET_SPELL(SPELL_ENCAPSULATE_EFFECT); if(TempSpell->SpellIconID == 2294) TempSpell->SpellIconID = 2295; - TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_VAPOR_TRIGGER); + TempSpell = GET_SPELL(SPELL_VAPOR_TRIGGER); if((TempSpell->Attributes & SPELL_ATTR_PASSIVE) == 0) TempSpell->Attributes |= SPELL_ATTR_PASSIVE; - TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_FOG_CHARM2); + TempSpell = GET_SPELL(SPELL_FOG_CHARM2); if((TempSpell->Attributes & SPELL_ATTR_PASSIVE) == 0) TempSpell->Attributes |= SPELL_ATTR_PASSIVE;*/ } diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp index 92e1991e50a..600f4906ca5 100644 --- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp +++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp @@ -102,7 +102,7 @@ struct TRINITY_DLL_DECL boss_kalecgosAI : public ScriptedAI { boss_kalecgosAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); SathGUID = 0; DoorGUID = 0; } @@ -134,7 +134,7 @@ struct TRINITY_DLL_DECL boss_kalecgosAI : public ScriptedAI } Unit *Sath = Unit::GetUnit(*m_creature,SathGUID); - if(Sath) ((Creature*)Sath)->AI()->EnterEvadeMode(); + if(Sath) CAST_CRE(Sath)->AI()->EnterEvadeMode(); GameObject *Door = GameObject::GetGameObject(*m_creature, DoorGUID); if(Door) Door->SetLootState(GO_JUST_DEACTIVATED); @@ -250,7 +250,7 @@ struct TRINITY_DLL_DECL boss_sathrovarrAI : public ScriptedAI { boss_sathrovarrAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); KalecGUID = 0; KalecgosGUID = 0; } @@ -318,8 +318,8 @@ struct TRINITY_DLL_DECL boss_sathrovarrAI : public ScriptedAI TeleportAllPlayersBack(); if(Unit *Kalecgos = Unit::GetUnit(*m_creature, KalecgosGUID)) { - ((boss_kalecgosAI*)((Creature*)Kalecgos)->AI())->TalkTimer = 1; - ((boss_kalecgosAI*)((Creature*)Kalecgos)->AI())->isFriendly = false; + CAST_AI(boss_kalecgosAI, CAST_CRE(Kalecgos)->AI())->TalkTimer = 1; + CAST_AI(boss_kalecgosAI, CAST_CRE(Kalecgos)->AI())->isFriendly = false; } EnterEvadeMode(); return; @@ -338,8 +338,8 @@ struct TRINITY_DLL_DECL boss_sathrovarrAI : public ScriptedAI TeleportAllPlayersBack(); if(Unit *Kalecgos = Unit::GetUnit(*m_creature, KalecgosGUID)) { - ((boss_kalecgosAI*)((Creature*)Kalecgos)->AI())->TalkTimer = 1; - ((boss_kalecgosAI*)((Creature*)Kalecgos)->AI())->isFriendly = true; + CAST_AI(boss_kalecgosAI, CAST_CRE(Kalecgos)->AI())->TalkTimer = 1; + CAST_AI(boss_kalecgosAI, CAST_CRE(Kalecgos)->AI())->isFriendly = true; } if(pInstance) @@ -371,7 +371,7 @@ struct TRINITY_DLL_DECL boss_sathrovarrAI : public ScriptedAI if(Kalecgos) { Kalecgos->CastSpell(Kalecgos, SPELL_ENRAGE, true); - ((boss_kalecgosAI*)((Creature*)Kalecgos)->AI())->isEnraged = true; + CAST_AI(boss_kalecgosAI, CAST_CRE(Kalecgos)->AI())->isEnraged = true; } DoCast(m_creature, SPELL_ENRAGE, true); isEnraged = true; @@ -381,7 +381,7 @@ struct TRINITY_DLL_DECL boss_sathrovarrAI : public ScriptedAI { if(Unit *Kalecgos = Unit::GetUnit(*m_creature, KalecgosGUID)) { - if(((boss_kalecgosAI*)((Creature*)Kalecgos)->AI())->isBanished) + if(CAST_AI(boss_kalecgosAI, CAST_CRE(Kalecgos)->AI())->isBanished) { m_creature->DealDamage(m_creature, m_creature->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); return; @@ -458,7 +458,7 @@ struct TRINITY_DLL_DECL boss_kalecAI : public ScriptedAI bool isEnraged; // if demon is enraged boss_kalecAI(Creature *c) : ScriptedAI(c){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } void Reset() @@ -570,7 +570,7 @@ void boss_kalecgosAI::UpdateAI(const uint32 diff) if(Sath) { Sath->CastSpell(Sath, SPELL_ENRAGE, true); - ((boss_sathrovarrAI*)((Creature*)Sath)->AI())->isEnraged = true; + CAST_AI(boss_sathrovarrAI, CAST_CRE(Sath)->AI())->isEnraged = true; } DoCast(m_creature, SPELL_ENRAGE, true); isEnraged = true; @@ -580,7 +580,7 @@ void boss_kalecgosAI::UpdateAI(const uint32 diff) { if(Unit *Sath = Unit::GetUnit(*m_creature, SathGUID)) { - if(((boss_sathrovarrAI*)((Creature*)Sath)->AI())->isBanished) + if(CAST_AI(boss_sathrovarrAI, CAST_CRE(Sath)->AI())->isBanished) { Sath->DealDamage(Sath, Sath->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); return; diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kiljaeden.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kiljaeden.cpp index 487aeee19b9..cb0ee4b7f78 100644 --- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kiljaeden.cpp +++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kiljaeden.cpp @@ -269,12 +269,12 @@ public: bool GOHello_go_orb_of_the_blue_flight(Player *plr, GameObject* go) { if(go->GetUInt32Value(GAMEOBJECT_FACTION) == 35){ - ScriptedInstance* pInstance = ((ScriptedInstance*)go->GetInstanceData()); + ScriptedInstance* pInstance = (go->GetInstanceData()); float x,y,z, dx,dy,dz; go->SummonCreature(CREATURE_POWER_OF_THE_BLUE_DRAGONFLIGHT, plr->GetPositionX(), plr->GetPositionY(), plr->GetPositionZ(), 0.0f, TEMPSUMMON_TIMED_DESPAWN, 121000); plr->CastSpell(plr, SPELL_VENGEANCE_OF_THE_BLUE_FLIGHT, true); go->SetUInt32Value(GAMEOBJECT_FACTION, 0); - Unit* Kalec = ((Creature*)Unit::GetUnit(*plr, pInstance->GetData64(DATA_KALECGOS_KJ))); + Unit* Kalec = CAST_CRE(Unit::GetUnit(*plr, pInstance->GetData64(DATA_KALECGOS_KJ))); //Kalec->RemoveDynObject(SPELL_RING_OF_BLUE_FLAMES); go->GetPosition(x,y,z); for(uint8 i = 0; i < 4; ++i){ @@ -296,7 +296,7 @@ bool GOHello_go_orb_of_the_blue_flight(Player *plr, GameObject* go) struct TRINITY_DLL_DECL boss_kalecgos_kjAI : public ScriptedAI { boss_kalecgos_kjAI(Creature* c) : ScriptedAI(c){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } GameObject* Orb[4]; @@ -409,7 +409,7 @@ CreatureAI* GetAI_boss_kalecgos_kj(Creature *_Creature) struct TRINITY_DLL_DECL boss_kiljaedenAI : public Scripted_NoMovementAI { boss_kiljaedenAI(Creature* c) : Scripted_NoMovementAI(c), Summons(m_creature){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -460,7 +460,7 @@ struct TRINITY_DLL_DECL boss_kiljaedenAI : public Scripted_NoMovementAI IsWaiting = false; OrbActivated = false; - Kalec = ((Creature*)Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_KALECGOS_KJ))); + Kalec = CAST_CRE(Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_KALECGOS_KJ))); ChangeTimers(false, 0); } @@ -516,9 +516,9 @@ struct TRINITY_DLL_DECL boss_kiljaedenAI : public Scripted_NoMovementAI // Reset the controller if(pInstance){ - Creature* Control = ((Creature*)Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_KILJAEDEN_CONTROLLER))); + Creature* Control = CAST_CRE(Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_KILJAEDEN_CONTROLLER))); if(Control) - ((Scripted_NoMovementAI*)Control->AI())->Reset(); + CAST_AI(Scripted_NoMovementAI, Control->AI())->Reset(); } } @@ -647,8 +647,8 @@ struct TRINITY_DLL_DECL boss_kiljaedenAI : public Scripted_NoMovementAI break; case TIMER_ORBS_EMPOWER: //Phase 3 if(Phase == PHASE_SACRIFICE){ - if(Kalec)((boss_kalecgos_kjAI*)Kalec->AI())->EmpowerOrb(true); - }else if(Kalec)((boss_kalecgos_kjAI*)Kalec->AI())->EmpowerOrb(false); + if(Kalec)CAST_AI(boss_kalecgos_kjAI, Kalec->AI())->EmpowerOrb(true); + }else if(Kalec)CAST_AI(boss_kalecgos_kjAI, Kalec->AI())->EmpowerOrb(false); Timer[TIMER_ORBS_EMPOWER]= (Phase == PHASE_SACRIFICE) ? 45000 : 35000; OrbActivated = true; TimerIsDeactiveted[TIMER_ORBS_EMPOWER] = true; @@ -704,7 +704,7 @@ struct TRINITY_DLL_DECL boss_kiljaedenAI : public Scripted_NoMovementAI if(Phase <= PHASE_ARMAGEDDON){ if(Phase == PHASE_ARMAGEDDON && ((m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 25)){ Phase = PHASE_SACRIFICE; - Creature* Anveena = (Creature*)(Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_ANVEENA))); + Creature* Anveena = (Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_ANVEENA))); if (Anveena)Anveena->CastSpell(m_creature, SPELL_SACRIFICE_OF_ANVEENA, false); OrbActivated = false; ChangeTimers(true, 10000);// He shouldn't cast spells for ~10 seconds after Anveena's sacrifice. This will be done within Anveena's script @@ -724,7 +724,7 @@ CreatureAI* GetAI_boss_kiljaeden(Creature *_Creature) struct TRINITY_DLL_DECL mob_kiljaeden_controllerAI : public Scripted_NoMovementAI { mob_kiljaeden_controllerAI(Creature* c) : Scripted_NoMovementAI(c), Summons(m_creature){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -747,7 +747,7 @@ struct TRINITY_DLL_DECL mob_kiljaeden_controllerAI : public Scripted_NoMovementA void Reset(){ Phase = PHASE_DECEIVERS; - if(KalecKJ)((boss_kalecgos_kjAI*)KalecKJ->AI())->ResetOrbs(); + if(KalecKJ)CAST_AI(boss_kalecgos_kjAI, KalecKJ->AI())->ResetOrbs(); DeceiverDeathCount = 0; SummonedDeceivers = false; KiljaedenDeath = false; @@ -767,7 +767,7 @@ struct TRINITY_DLL_DECL mob_kiljaeden_controllerAI : public Scripted_NoMovementA break; case CREATURE_KILJAEDEN: summoned->CastSpell(summoned, SPELL_REBIRTH, false); - ((boss_kiljaedenAI*)summoned->AI())->Phase=PHASE_NORMAL; + CAST_AI(boss_kiljaedenAI, summoned->AI())->Phase=PHASE_NORMAL; summoned->AddThreat(m_creature->getVictim(), 1.0f); break; } @@ -813,7 +813,7 @@ CreatureAI* GetAI_mob_kiljaeden_controller(Creature *_Creature) struct TRINITY_DLL_DECL mob_hand_of_the_deceiverAI : public ScriptedAI { mob_hand_of_the_deceiverAI(Creature* c) : ScriptedAI(c){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -835,7 +835,7 @@ struct TRINITY_DLL_DECL mob_hand_of_the_deceiverAI : public ScriptedAI void EnterCombat(Unit* who){ if(pInstance){ pInstance->SetData(DATA_KILJAEDEN_EVENT, IN_PROGRESS); - Creature* Control = ((Creature*)Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_KILJAEDEN_CONTROLLER))); + Creature* Control = CAST_CRE(Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_KILJAEDEN_CONTROLLER))); if(Control) Control->AddThreat(who, 1.0f); } @@ -846,9 +846,9 @@ struct TRINITY_DLL_DECL mob_hand_of_the_deceiverAI : public ScriptedAI if(!pInstance) return; - Creature* Control = ((Creature*)Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_KILJAEDEN_CONTROLLER))); + Creature* Control = CAST_CRE(Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_KILJAEDEN_CONTROLLER))); if(Control) - ((mob_kiljaeden_controllerAI*)Control->AI())->DeceiverDeathCount++; + CAST_AI(mob_kiljaeden_controllerAI, Control->AI())->DeceiverDeathCount++; } void UpdateAI(const uint32 diff){ @@ -1035,7 +1035,7 @@ CreatureAI* GetAI_mob_armageddon(Creature *_Creature) struct TRINITY_DLL_DECL mob_shield_orbAI : public ScriptedAI { mob_shield_orbAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } bool PointReached; diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_muru.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_muru.cpp index b026e2d6f7c..cd53ca034f4 100644 --- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_muru.cpp +++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_muru.cpp @@ -116,7 +116,7 @@ uint32 EnrageTimer = 600000; struct TRINITY_DLL_DECL boss_entropiusAI : public ScriptedAI { boss_entropiusAI(Creature *c) : ScriptedAI(c), Summons(m_creature){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); Combat = false; } @@ -202,7 +202,7 @@ CreatureAI* GetAI_boss_entropius(Creature *_Creature) struct TRINITY_DLL_DECL boss_muruAI : public Scripted_NoMovementAI { boss_muruAI(Creature *c) : Scripted_NoMovementAI(c), Summons(m_creature){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -343,7 +343,7 @@ CreatureAI* GetAI_boss_muru(Creature *_Creature) struct TRINITY_DLL_DECL npc_muru_portalAI : public Scripted_NoMovementAI { npc_muru_portalAI(Creature *c) : Scripted_NoMovementAI(c), Summons(m_creature){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -362,8 +362,7 @@ struct TRINITY_DLL_DECL npc_muru_portalAI : public Scripted_NoMovementAI } void JustSummoned(Creature* summoned){ - Player* Target; - Target = (Player*)(Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_PLAYER_GUID))); + Player* Target = Unit::GetPlayer(pInstance->GetData64(DATA_PLAYER_GUID)); if(Target)summoned->AI()->AttackStart(Target); Summons.Summon(summoned); } @@ -407,7 +406,7 @@ CreatureAI* GetAI_npc_muru_portal(Creature *_Creature) struct TRINITY_DLL_DECL npc_dark_fiendAI : public ScriptedAI { npc_dark_fiendAI(Creature *c) : ScriptedAI(c){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -461,7 +460,7 @@ CreatureAI* GetAI_npc_dark_fiend(Creature *_Creature) struct TRINITY_DLL_DECL npc_void_sentinelAI : public ScriptedAI { npc_void_sentinelAI(Creature *c) : ScriptedAI(c){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -512,7 +511,7 @@ CreatureAI* GetAI_npc_void_sentinel(Creature *_Creature) struct TRINITY_DLL_DECL npc_blackholeAI : public ScriptedAI { npc_blackholeAI(Creature *c) : ScriptedAI(c){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/tanaris/tanaris.cpp b/src/bindings/scripts/scripts/zone/tanaris/tanaris.cpp index fbc2fe321e4..cefca8902d3 100644 --- a/src/bindings/scripts/scripts/zone/tanaris/tanaris.cpp +++ b/src/bindings/scripts/scripts/zone/tanaris/tanaris.cpp @@ -66,15 +66,15 @@ struct TRINITY_DLL_DECL mob_aquementasAI : public ScriptedAI void SendItem(Unit* receiver) { - if (((Player*)receiver)->HasItemCount(11169,1,false) && - ((Player*)receiver)->HasItemCount(11172,11,false) && - ((Player*)receiver)->HasItemCount(11173,1,false) && - !((Player*)receiver)->HasItemCount(11522,1,true)) + if (CAST_PLR(receiver)->HasItemCount(11169,1,false) && + CAST_PLR(receiver)->HasItemCount(11172,11,false) && + CAST_PLR(receiver)->HasItemCount(11173,1,false) && + !CAST_PLR(receiver)->HasItemCount(11522,1,true)) { ItemPosCountVec dest; - uint8 msg = ((Player*)receiver)->CanStoreNewItem( NULL_BAG, NULL_SLOT, dest, 11522, 1, false); + uint8 msg = CAST_PLR(receiver)->CanStoreNewItem( NULL_BAG, NULL_SLOT, dest, 11522, 1, false); if( msg == EQUIP_ERR_OK ) - ((Player*)receiver)->StoreNewItem( dest, 11522, 1, true); + CAST_PLR(receiver)->StoreNewItem( dest, 11522, 1, true); } } @@ -179,7 +179,7 @@ struct TRINITY_DLL_DECL npc_custodian_of_timeAI : public npc_escortAI DoScriptText(WHISPER_CUSTODIAN_14, m_creature, pTemp); DoCast(pTemp,34883); //below here is temporary workaround, to be removed when spell works properly - ((Player*)pTemp)->AreaExploredOrEventHappens(10277); + CAST_PLR(pTemp)->AreaExploredOrEventHappens(10277); break; } } @@ -191,12 +191,12 @@ struct TRINITY_DLL_DECL npc_custodian_of_timeAI : public npc_escortAI if( who->GetTypeId() == TYPEID_PLAYER ) { - if( ((Player*)who)->HasAura(34877) && ((Player*)who)->GetQuestStatus(10277) == QUEST_STATUS_INCOMPLETE ) + if( CAST_PLR(who)->HasAura(34877) && CAST_PLR(who)->GetQuestStatus(10277) == QUEST_STATUS_INCOMPLETE ) { float Radius = 10.0; if( m_creature->IsWithinDistInMap(who, Radius) ) { - ((npc_escortAI*)(m_creature->AI()))->Start(false, false, false, who->GetGUID()); + Start(false, false, false, who->GetGUID()); } } } @@ -217,7 +217,7 @@ CreatureAI* GetAI_npc_custodian_of_time(Creature* pCreature) custodian_of_timeAI->FillPointMovementListForCreature(); - return (CreatureAI*)custodian_of_timeAI; + return custodian_of_timeAI; } /*###### @@ -413,7 +413,7 @@ struct TRINITY_DLL_DECL npc_OOX17AI : public npc_escortAI if (PlayerGUID) { if (Player* player = Unit::GetPlayer(PlayerGUID)) - ((Player*)player)->FailQuest(Q_OOX17); + CAST_PLR(player)->FailQuest(Q_OOX17); } } @@ -435,7 +435,7 @@ bool QuestAccept_npc_OOX17(Player* player, Creature* creature, Quest const* ques creature->SetUInt32Value(UNIT_FIELD_BYTES_1,0); creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_ATTACKABLE_2); DoScriptText(SAY_CHICKEN_ACC, creature); - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); } return true; @@ -533,7 +533,7 @@ CreatureAI* GetAI_npc_OOX17(Creature *_Creature) OOX17AI->AddWaypoint(85, -6944.81, -4816.58, 1.60); OOX17AI->AddWaypoint(86, -6942.06, -4839.40, 0.66,5000); - return (CreatureAI*)OOX17AI; + return OOX17AI; } /*###### diff --git a/src/bindings/scripts/scripts/zone/teldrassil/teldrassil.cpp b/src/bindings/scripts/scripts/zone/teldrassil/teldrassil.cpp index 846b3a008f6..fb376795119 100644 --- a/src/bindings/scripts/scripts/zone/teldrassil/teldrassil.cpp +++ b/src/bindings/scripts/scripts/zone/teldrassil/teldrassil.cpp @@ -175,7 +175,7 @@ CreatureAI* GetAI_npc_mist(Creature* pCreature) bool QuestAccept_npc_mist(Player* pPlayer, Creature* pCreature, Quest const* pQuest) { if (pQuest->GetQuestId() == QUEST_MIST) - ((npc_mistAI*)(pCreature->AI()))->DoStart(pPlayer->GetGUID()); + CAST_AI(npc_mistAI, (pCreature->AI()))->DoStart(pPlayer->GetGUID()); return true; } diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/arcatraz.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/arcatraz.cpp index 04963bf02c2..0392437eeb5 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/arcatraz.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/arcatraz.cpp @@ -63,7 +63,7 @@ struct TRINITY_DLL_DECL npc_millhouse_manastormAI : public ScriptedAI { npc_millhouse_manastormAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -251,7 +251,7 @@ struct TRINITY_DLL_DECL npc_warden_mellicharAI : public ScriptedAI { npc_warden_mellicharAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp index 9a9e0aa0966..37e12c60b2e 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp @@ -57,7 +57,7 @@ struct TRINITY_DLL_DECL boss_harbinger_skyrissAI : public ScriptedAI { boss_harbinger_skyrissAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); Intro = false; } @@ -279,7 +279,7 @@ struct TRINITY_DLL_DECL boss_harbinger_skyriss_illusionAI : public ScriptedAI { boss_harbinger_skyriss_illusionAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_warp_splinter.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_warp_splinter.cpp index 4dd70cb7d20..51ebe1f70c9 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_warp_splinter.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_warp_splinter.cpp @@ -46,7 +46,7 @@ struct TRINITY_DLL_DECL mob_treantAI : public ScriptedAI void EnterCombat(Unit *who) {} - void MoveInLineOfSight(Unit*) {} + void MoveInLineOfSight(Unit* who) {} void UpdateAI(const uint32 diff) { @@ -54,7 +54,7 @@ struct TRINITY_DLL_DECL mob_treantAI : public ScriptedAI { if(WarpGuid && check_Timer < diff) { - if(Unit *Warp = (Unit*)Unit::GetUnit(*m_creature, WarpGuid)) + if(Unit *Warp = Unit::GetUnit(*m_creature, WarpGuid)) { if(m_creature->IsWithinMeleeRange(Warp,2.5f)) { @@ -160,7 +160,7 @@ struct TRINITY_DLL_DECL boss_warp_splinterAI : public ScriptedAI float O = - m_creature->GetAngle(X,Y); if(Creature *pTreant = m_creature->SummonCreature(CREATURE_TREANT,treant_pos[i][0],treant_pos[i][1],treant_pos[i][2],O,TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN,25000)) - ((mob_treantAI*)pTreant->AI())->WarpGuid = m_creature->GetGUID(); + CAST_AI(mob_treantAI, pTreant->AI())->WarpGuid = m_creature->GetGUID(); } switch(rand()%2) { diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_alar.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_alar.cpp index 132747a31bd..6a927191322 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_alar.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_alar.cpp @@ -69,7 +69,7 @@ struct TRINITY_DLL_DECL boss_alarAI : public ScriptedAI { boss_alarAI(Creature *c) : ScriptedAI(c) { - pInstance =((ScriptedInstance*)c->GetInstanceData()); + pInstance =(c->GetInstanceData()); DefaultMoveSpeedRate = m_creature->GetSpeedRate(MOVE_RUN); } @@ -432,7 +432,7 @@ struct TRINITY_DLL_DECL mob_ember_of_alarAI : public ScriptedAI { mob_ember_of_alarAI(Creature *c) : ScriptedAI(c) { - pInstance = (ScriptedInstance*)c->GetInstanceData(); + pInstance = c->GetInstanceData(); m_creature->SetUnitMovementFlags(MOVEMENTFLAG_LEVITATING); m_creature->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FIRE, true); } diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp index 6af14eceeed..f886ecae224 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp @@ -72,7 +72,7 @@ struct TRINITY_DLL_DECL boss_high_astromancer_solarianAI : public ScriptedAI { boss_high_astromancer_solarianAI(Creature *c) : ScriptedAI(c), Summons(m_creature) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); defaultarmor = m_creature->GetArmor(); defaultsize = m_creature->GetFloatValue(OBJECT_FIELD_SCALE_X); @@ -393,7 +393,7 @@ struct TRINITY_DLL_DECL mob_solarium_priestAI : public ScriptedAI { mob_solarium_priestAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp index 7557e03f8e5..28bd1590f03 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp @@ -159,7 +159,7 @@ struct TRINITY_DLL_DECL advisorbase_ai : public ScriptedAI advisorbase_ai(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } void MoveInLineOfSight(Unit *who) @@ -274,7 +274,7 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI { boss_kaelthasAI(Creature *c) : ScriptedAI(c), summons(m_creature) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); AdvisorGuid[0] = 0; AdvisorGuid[1] = 0; AdvisorGuid[2] = 0; @@ -311,10 +311,7 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI void DeleteLegs() { - InstanceMap::PlayerList const &playerliste = ((InstanceMap*)m_creature->GetMap())->GetPlayers(); - InstanceMap::PlayerList::const_iterator it; - - Map::PlayerList const &PlayerList = ((InstanceMap*)m_creature->GetMap())->GetPlayers(); + Map::PlayerList const &PlayerList = m_creature->GetMap()->GetPlayers(); for(Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) { Player* i_pl = i->getSource(); @@ -734,7 +731,7 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI if (!Advisor) error_log("TSCR: Kael'Thas Advisor %u does not exist. Possibly despawned? Incorrectly Killed?", i); else if(Target) - ((advisorbase_ai*)Advisor->AI())->Revive(Target); + CAST_AI(advisorbase_ai, Advisor->AI())->Revive(Target); } PhaseSubphase = 1; @@ -1400,7 +1397,7 @@ struct TRINITY_DLL_DECL mob_phoenix_tkAI : public ScriptedAI { mob_phoenix_tkAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp index d5648e3a8ff..aa96435bbb1 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp @@ -41,7 +41,7 @@ struct TRINITY_DLL_DECL boss_void_reaverAI : public ScriptedAI { boss_void_reaverAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp index 34e131ba013..86e36072546 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp @@ -44,7 +44,7 @@ struct TRINITY_DLL_DECL boss_gatewatcher_iron_handAI : public ScriptedAI { boss_gatewatcher_iron_handAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp index cd18240901d..e14aba074cf 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp @@ -45,7 +45,7 @@ struct TRINITY_DLL_DECL boss_nethermancer_sepethreaAI : public ScriptedAI { boss_nethermancer_sepethreaAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } @@ -166,7 +166,7 @@ struct TRINITY_DLL_DECL mob_ragin_flamesAI : public ScriptedAI { mob_ragin_flamesAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp index 6d128ad654e..2c5ffe06bfc 100644 --- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp +++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp @@ -39,7 +39,7 @@ struct TRINITY_DLL_DECL boss_kriAI : public ScriptedAI { boss_kriAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -124,7 +124,7 @@ struct TRINITY_DLL_DECL boss_vemAI : public ScriptedAI { boss_vemAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -205,7 +205,7 @@ struct TRINITY_DLL_DECL boss_yaujAI : public ScriptedAI { boss_yaujAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -240,7 +240,7 @@ struct TRINITY_DLL_DECL boss_yaujAI : public ScriptedAI Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0); Creature* Summoned = m_creature->SummonCreature(15621,m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ(),0,TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN,90000); if(Summoned && target) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); } } diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp index e3c10237635..584e87a3f97 100644 --- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp +++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp @@ -136,7 +136,7 @@ struct TRINITY_DLL_DECL eye_of_cthunAI : public Scripted_NoMovementAI { eye_of_cthunAI(Creature *c) : Scripted_NoMovementAI(c) { - pInst = (ScriptedInstance*)c->GetInstanceData(); + pInst = c->GetInstanceData(); if (!pInst) error_log("TSCR: No Instance eye_of_cthunAI"); } @@ -190,7 +190,7 @@ struct TRINITY_DLL_DECL eye_of_cthunAI : public Scripted_NoMovementAI void SpawnEyeTentacle(float x, float y) { Creature* Spawned; - Spawned = (Creature*)m_creature->SummonCreature(MOB_EYE_TENTACLE,m_creature->GetPositionX()+x,m_creature->GetPositionY()+y,m_creature->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500); + Spawned = me->SummonCreature(MOB_EYE_TENTACLE,m_creature->GetPositionX()+x,m_creature->GetPositionY()+y,m_creature->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500); if (Spawned) { Unit* target; @@ -244,7 +244,7 @@ struct TRINITY_DLL_DECL eye_of_cthunAI : public Scripted_NoMovementAI Creature* Spawned = NULL; //Spawn claw tentacle on the random target - Spawned = (Creature*)m_creature->SummonCreature(MOB_CLAW_TENTACLE,target->GetPositionX(),target->GetPositionY(),target->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500); + Spawned = me->SummonCreature(MOB_CLAW_TENTACLE,target->GetPositionX(),target->GetPositionY(),target->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500); if (Spawned) Spawned->AI()->AttackStart(target); @@ -435,7 +435,7 @@ struct TRINITY_DLL_DECL cthunAI : public Scripted_NoMovementAI { cthunAI(Creature *c) : Scripted_NoMovementAI(c) { - pInst = (ScriptedInstance*)c->GetInstanceData(); + pInst = c->GetInstanceData(); if (!pInst) error_log("TSCR: No Instance eye_of_cthunAI"); } @@ -506,7 +506,7 @@ struct TRINITY_DLL_DECL cthunAI : public Scripted_NoMovementAI void SpawnEyeTentacle(float x, float y) { Creature* Spawned; - Spawned = (Creature*)m_creature->SummonCreature(MOB_EYE_TENTACLE,m_creature->GetPositionX()+x,m_creature->GetPositionY()+y,m_creature->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500); + Spawned = me->SummonCreature(MOB_EYE_TENTACLE,m_creature->GetPositionX()+x,m_creature->GetPositionY()+y,m_creature->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500); if (Spawned) { Unit* target; @@ -629,20 +629,20 @@ struct TRINITY_DLL_DECL cthunAI : public Scripted_NoMovementAI Creature* Spawned; //Spawn flesh tentacle - Spawned = (Creature*)m_creature->SummonCreature(MOB_FLESH_TENTACLE, TENTACLE_POS1_X, TENTACLE_POS1_Y, TENTACLE_POS1_Z, TENTACLE_POS1_O, TEMPSUMMON_CORPSE_DESPAWN, 0); + Spawned = me->SummonCreature(MOB_FLESH_TENTACLE, TENTACLE_POS1_X, TENTACLE_POS1_Y, TENTACLE_POS1_Z, TENTACLE_POS1_O, TEMPSUMMON_CORPSE_DESPAWN, 0); if (!Spawned) FleshTentaclesKilled++; else - ((flesh_tentacleAI*)(Spawned->AI()))->SpawnedByCthun(m_creature->GetGUID()); + CAST_AI(flesh_tentacleAI, (Spawned->AI()))->SpawnedByCthun(m_creature->GetGUID()); //Spawn flesh tentacle - Spawned = (Creature*)m_creature->SummonCreature(MOB_FLESH_TENTACLE, TENTACLE_POS2_X, TENTACLE_POS2_Y, TENTACLE_POS2_Z, TENTACLE_POS2_O, TEMPSUMMON_CORPSE_DESPAWN, 0); + Spawned = me->SummonCreature(MOB_FLESH_TENTACLE, TENTACLE_POS2_X, TENTACLE_POS2_Y, TENTACLE_POS2_Z, TENTACLE_POS2_O, TEMPSUMMON_CORPSE_DESPAWN, 0); if (!Spawned) FleshTentaclesKilled++; else - ((flesh_tentacleAI*)(Spawned->AI()))->SpawnedByCthun(m_creature->GetGUID()); + CAST_AI(flesh_tentacleAI, (Spawned->AI()))->SpawnedByCthun(m_creature->GetGUID()); PhaseTimer = 0; }else PhaseTimer -= diff; @@ -775,7 +775,7 @@ struct TRINITY_DLL_DECL cthunAI : public Scripted_NoMovementAI Creature* Spawned = NULL; //Spawn claw tentacle on the random target - Spawned = (Creature*)m_creature->SummonCreature(MOB_GIANT_CLAW_TENTACLE,target->GetPositionX(),target->GetPositionY(),target->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500); + Spawned = me->SummonCreature(MOB_GIANT_CLAW_TENTACLE,target->GetPositionX(),target->GetPositionY(),target->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500); if (Spawned) Spawned->AI()->AttackStart(target); @@ -796,7 +796,7 @@ struct TRINITY_DLL_DECL cthunAI : public Scripted_NoMovementAI Creature* Spawned = NULL; //Spawn claw tentacle on the random target - Spawned = (Creature*)m_creature->SummonCreature(MOB_GIANT_EYE_TENTACLE,target->GetPositionX(),target->GetPositionY(),target->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500); + Spawned = me->SummonCreature(MOB_GIANT_EYE_TENTACLE,target->GetPositionX(),target->GetPositionY(),target->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500); if (Spawned) Spawned->AI()->AttackStart(target); @@ -844,20 +844,20 @@ struct TRINITY_DLL_DECL cthunAI : public Scripted_NoMovementAI Creature* Spawned; //Spawn flesh tentacle - Spawned = (Creature*)m_creature->SummonCreature(MOB_FLESH_TENTACLE, TENTACLE_POS1_X, TENTACLE_POS1_Y, TENTACLE_POS1_Z, TENTACLE_POS1_O, TEMPSUMMON_CORPSE_DESPAWN, 0); + Spawned = me->SummonCreature(MOB_FLESH_TENTACLE, TENTACLE_POS1_X, TENTACLE_POS1_Y, TENTACLE_POS1_Z, TENTACLE_POS1_O, TEMPSUMMON_CORPSE_DESPAWN, 0); if (!Spawned) FleshTentaclesKilled++; else - ((flesh_tentacleAI*)(Spawned->AI()))->SpawnedByCthun(m_creature->GetGUID()); + CAST_AI(flesh_tentacleAI, (Spawned->AI()))->SpawnedByCthun(m_creature->GetGUID()); //Spawn flesh tentacle - Spawned = (Creature*)m_creature->SummonCreature(MOB_FLESH_TENTACLE, TENTACLE_POS2_X, TENTACLE_POS2_Y, TENTACLE_POS2_Z, TENTACLE_POS2_O, TEMPSUMMON_CORPSE_DESPAWN, 0); + Spawned = me->SummonCreature(MOB_FLESH_TENTACLE, TENTACLE_POS2_X, TENTACLE_POS2_Y, TENTACLE_POS2_Z, TENTACLE_POS2_O, TEMPSUMMON_CORPSE_DESPAWN, 0); if (!Spawned) FleshTentaclesKilled++; else - ((flesh_tentacleAI*)(Spawned->AI()))->SpawnedByCthun(m_creature->GetGUID()); + CAST_AI(flesh_tentacleAI, (Spawned->AI()))->SpawnedByCthun(m_creature->GetGUID()); PhaseTimer = 0; }else PhaseTimer -= diff; @@ -925,7 +925,7 @@ struct TRINITY_DLL_DECL eye_tentacleAI : public Scripted_NoMovementAI uint32 KillSelfTimer; uint64 Portal; - void JustDied(Unit*) + void JustDied(Unit* who) { Unit* p = Unit::GetUnit(*m_creature, Portal); if (p) @@ -988,7 +988,7 @@ struct TRINITY_DLL_DECL claw_tentacleAI : public Scripted_NoMovementAI uint32 EvadeTimer; uint64 Portal; - void JustDied(Unit*) + void JustDied(Unit* who) { Unit* p = Unit::GetUnit(*m_creature, Portal); if (p) @@ -1083,7 +1083,7 @@ struct TRINITY_DLL_DECL giant_claw_tentacleAI : public Scripted_NoMovementAI uint32 EvadeTimer; uint64 Portal; - void JustDied(Unit*) + void JustDied(Unit* who) { Unit* p = Unit::GetUnit(*m_creature, Portal); if (p) @@ -1184,7 +1184,7 @@ struct TRINITY_DLL_DECL giant_eye_tentacleAI : public Scripted_NoMovementAI uint32 BeamTimer; uint64 Portal; - void JustDied(Unit*) + void JustDied(Unit* who) { Unit* p = Unit::GetUnit(*m_creature, Portal); if (p) @@ -1258,7 +1258,7 @@ void flesh_tentacleAI::JustDied(Unit* killer) Creature* Cthun = Unit::GetCreature(*m_creature, Parent); if (Cthun) - ((cthunAI*)(Cthun->AI()))->FleshTentcleKilled(); + CAST_AI(cthunAI, (Cthun->AI()))->FleshTentcleKilled(); else error_log("TSCR: flesh_tentacle: No Cthun"); } diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp index 1f3b317bf9d..ac50457c5fc 100644 --- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp +++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp @@ -77,7 +77,7 @@ struct TRINITY_DLL_DECL boss_fankrissAI : public ScriptedAI Rand = 0; Spawn = DoSpawnCreature(15630, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); if(Spawn) - ((CreatureAI*)Spawn->AI())->AttackStart(victim); + (Spawn->AI())->AttackStart(victim); } void EnterCombat(Unit *who) @@ -139,46 +139,46 @@ struct TRINITY_DLL_DECL boss_fankrissAI : public ScriptedAI DoTeleportPlayer(target, -8106.0142,1289.2900,-74.419533,5.112); Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-3, target->GetPositionY()-3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); if(Hatchling) - ((CreatureAI*)Hatchling->AI())->AttackStart(target); + (Hatchling->AI())->AttackStart(target); Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-3, target->GetPositionY()+3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); if(Hatchling) - ((CreatureAI*)Hatchling->AI())->AttackStart(target); + (Hatchling->AI())->AttackStart(target); Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-5, target->GetPositionY()-5, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); if(Hatchling) - ((CreatureAI*)Hatchling->AI())->AttackStart(target); + (Hatchling->AI())->AttackStart(target); Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-5, target->GetPositionY()+5, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); if(Hatchling) - ((CreatureAI*)Hatchling->AI())->AttackStart(target); + (Hatchling->AI())->AttackStart(target); break; case 1: DoTeleportPlayer(target, -7990.135354,1155.1907,-78.849319,2.608); Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-3, target->GetPositionY()-3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); if(Hatchling) - ((CreatureAI*)Hatchling->AI())->AttackStart(target); + (Hatchling->AI())->AttackStart(target); Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-3, target->GetPositionY()+3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); if(Hatchling) - ((CreatureAI*)Hatchling->AI())->AttackStart(target); + (Hatchling->AI())->AttackStart(target); Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-5, target->GetPositionY()-5, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); if(Hatchling) - ((CreatureAI*)Hatchling->AI())->AttackStart(target); + (Hatchling->AI())->AttackStart(target); Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-5, target->GetPositionY()+5, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); if(Hatchling) - ((CreatureAI*)Hatchling->AI())->AttackStart(target); + (Hatchling->AI())->AttackStart(target); break; case 2: DoTeleportPlayer(target,-8159.7753,1127.9064,-76.868660,0.675); Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-3, target->GetPositionY()-3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); if(Hatchling) - ((CreatureAI*)Hatchling->AI())->AttackStart(target); + (Hatchling->AI())->AttackStart(target); Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-3, target->GetPositionY()+3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); if(Hatchling) - ((CreatureAI*)Hatchling->AI())->AttackStart(target); + (Hatchling->AI())->AttackStart(target); Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-5, target->GetPositionY()-5, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); if(Hatchling) - ((CreatureAI*)Hatchling->AI())->AttackStart(target); + (Hatchling->AI())->AttackStart(target); Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-5, target->GetPositionY()+5, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); if(Hatchling) - ((CreatureAI*)Hatchling->AI())->AttackStart(target); + (Hatchling->AI())->AttackStart(target); break; } } diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp index a8168615a5e..1fc47f68295 100644 --- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp +++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp @@ -53,7 +53,7 @@ struct TRINITY_DLL_DECL boss_skeramAI : public ScriptedAI { boss_skeramAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); IsImage = false; } @@ -243,7 +243,7 @@ struct TRINITY_DLL_DECL boss_skeramAI : public ScriptedAI Unit *targetpl = SelectUnit(SELECT_TARGET_RANDOM, 0); if (targetpl->GetTypeId() == TYPEID_PLAYER) { - Group *grp = ((Player *)targetpl)->GetGroup(); + Group *grp = CAST_PLR(targetpl)->GetGroup(); if (grp) { for (int ici = 0; ici < TARGETICONCOUNT; ici++) @@ -283,7 +283,7 @@ struct TRINITY_DLL_DECL boss_skeramAI : public ScriptedAI Image1->SetHealth(m_creature->GetHealth() / 5); if (target) Image1->AI()->AttackStart(target); - ((boss_skeramAI*)Image1->AI())->IsImage = true; + CAST_AI(boss_skeramAI, Image1->AI())->IsImage = true; } Image2 = m_creature->SummonCreature(15263,i2->x, i2->y, i2->z, i2->r, TEMPSUMMON_CORPSE_DESPAWN, 30000); @@ -293,7 +293,7 @@ struct TRINITY_DLL_DECL boss_skeramAI : public ScriptedAI Image2->SetHealth(m_creature->GetHealth() / 5); if (target) Image2->AI()->AttackStart(target); - ((boss_skeramAI*)Image2->AI())->IsImage = true; + CAST_AI(boss_skeramAI, Image2->AI())->IsImage = true; } Invisible = true; } diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp index d2fff0e569f..1c741bdd859 100644 --- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp +++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp @@ -75,7 +75,7 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI boss_twinemperorsAI(Creature *c): ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } void TwinReset() @@ -96,11 +96,11 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI { if(pInstance) { - return (Creature *)Unit::GetUnit((*m_creature), pInstance->GetData64(IAmVeklor() ? DATA_VEKNILASH : DATA_VEKLOR)); + return Unit::GetCreature(*m_creature, pInstance->GetData64(IAmVeklor() ? DATA_VEKNILASH : DATA_VEKLOR)); } else { - return (Creature *)0; + return NULL; } } @@ -129,7 +129,7 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI pOtherBoss->SetHealth(0); pOtherBoss->setDeathState(JUST_DIED); pOtherBoss->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); - ((boss_twinemperorsAI *)pOtherBoss->AI())->DontYellWhenDead = true; + CAST_AI(boss_twinemperorsAI, pOtherBoss->AI())->DontYellWhenDead = true; } if (!DontYellWhenDead) // I hope AI is not threaded DoPlaySoundToSet(m_creature, IAmVeklor() ? SOUND_VL_DEATH : SOUND_VN_DEATH); @@ -148,7 +148,7 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI { // TODO: we should activate the other boss location so he can start attackning even if nobody // is near I dont know how to do that - ScriptedAI *otherAI = (ScriptedAI*)pOtherBoss->AI(); + ScriptedAI *otherAI = CAST_AI(ScriptedAI, pOtherBoss->AI()); if (!pOtherBoss->isInCombat()) { DoPlaySoundToSet(m_creature, IAmVeklor() ? SOUND_VL_AGGRO : SOUND_VN_AGGRO); @@ -197,7 +197,7 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI if (Heal_Timer < diff) { Unit *pOtherBoss = GetOtherBoss(); - if (pOtherBoss && (pOtherBoss->GetDistance((const Creature *)m_creature) <= 60)) + if (pOtherBoss && (pOtherBoss->GetDistance(m_creature) <= 60)) { DoCast(pOtherBoss, SPELL_HEAL_BROTHER); Heal_Timer = 1000; @@ -230,7 +230,7 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI thismap->CreatureRelocation(m_creature, other_x, other_y, other_z, other_o); SetAfterTeleport(); - ((boss_twinemperorsAI*) pOtherBoss->AI())->SetAfterTeleport(); + CAST_AI(boss_twinemperorsAI, pOtherBoss->AI())->SetAfterTeleport(); } } @@ -316,9 +316,9 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI { public: AnyBugCheck(WorldObject const* obj, float range) : i_obj(obj), i_range(range) {} - bool operator()(Unit* u) + bool operator()(Creature* u) { - Creature *c = (Creature *)u; + Creature *c = u; if (!i_obj->IsWithinDistInMap(c, i_range)) return false; return (c->GetEntry() == 15316 || c->GetEntry() == 15317); @@ -347,7 +347,7 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI for(std::list<Creature*>::iterator iter = unitList.begin(); iter != unitList.end(); ++iter) { - Creature *c = (Creature *)(*iter); + Creature *c = *iter; if (c && c->isDead()) { c->Respawn(); @@ -434,8 +434,8 @@ struct TRINITY_DLL_DECL boss_veknilashAI : public boss_twinemperorsAI void CastSpellOnBug(Creature *target) { target->setFaction(14); - ((CreatureAI*)target->AI())->AttackStart(m_creature->getThreatManager().getHostilTarget()); - SpellEntry *spell = (SpellEntry *)GetSpellStore()->LookupEntry(SPELL_MUTATE_BUG); + (target->AI())->AttackStart(m_creature->getThreatManager().getHostilTarget()); + SpellEntry *spell = GET_SPELL(SPELL_MUTATE_BUG); uint8 eff_mask=0; for (int i=0; i<3; i++) { @@ -520,7 +520,7 @@ struct TRINITY_DLL_DECL boss_veklorAI : public boss_twinemperorsAI void CastSpellOnBug(Creature *target) { target->setFaction(14); - SpellEntry *spell = (SpellEntry *)GetSpellStore()->LookupEntry(SPELL_EXPLODEBUG); + SpellEntry *spell = GET_SPELL(SPELL_EXPLODEBUG); uint8 eff_mask=0; for (int i=0; i<3; i++) { diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/mob_anubisath_sentinel.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/mob_anubisath_sentinel.cpp index 30106f62180..b45097d7f97 100644 --- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/mob_anubisath_sentinel.cpp +++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/mob_anubisath_sentinel.cpp @@ -133,7 +133,7 @@ struct TRINITY_DLL_DECL aqsentinelAI : public ScriptedAI void GiveBuddyMyList(Creature *c) { - aqsentinelAI *cai = (aqsentinelAI *)(c->AI()); + aqsentinelAI *cai = CAST_AI(aqsentinelAI, (c)->AI()); for (int i=0; i<3; i++) if (nearby[i] && nearby[i]!=c) cai->AddBuddyToList(nearby[i]); @@ -213,8 +213,8 @@ struct TRINITY_DLL_DECL aqsentinelAI : public ScriptedAI if (!nearby[bli]) break; AddSentinelsNear(nearby[bli]); - ((aqsentinelAI *)nearby[bli]->AI())->gatherOthersWhenAggro = false; - ((aqsentinelAI *)nearby[bli]->AI())->selectAbility(pickAbilityRandom(chosenAbilities)); + CAST_AI(aqsentinelAI, nearby[bli]->AI())->gatherOthersWhenAggro = false; + CAST_AI(aqsentinelAI, nearby[bli]->AI())->selectAbility(pickAbilityRandom(chosenAbilities)); } /*if (bli < 3) DoYell("I dont have enough buddies.", LANG_NEUTRAL, 0);*/ @@ -254,7 +254,7 @@ struct TRINITY_DLL_DECL aqsentinelAI : public ScriptedAI continue; eff_mask=1<<i; } - SentinelAbilityAura *a = new SentinelAbilityAura(this, (SpellEntry *)spell, id, eff_mask); + SentinelAbilityAura *a = new SentinelAbilityAura(this, (SpellEntry*)spell, id, eff_mask); m_creature->AddAura(a); if (id == SPELL_KNOCK_BUFF) @@ -273,7 +273,7 @@ struct TRINITY_DLL_DECL aqsentinelAI : public ScriptedAI DoZoneInCombat(); } - void JustDied(Unit*) + void JustDied(Unit* who) { for (int ni=0; ni<3; ni++) { @@ -286,7 +286,7 @@ struct TRINITY_DLL_DECL aqsentinelAI : public ScriptedAI if (h > sent->GetMaxHealth()) h = sent->GetMaxHealth(); sent->SetHealth(h); - ((aqsentinelAI *)sent->AI())->GainSentinelAbility(ability); + CAST_AI(aqsentinelAI, sent->AI())->GainSentinelAbility(ability); } } diff --git a/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp b/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp index 2e95c08b5c1..6170ba35b90 100644 --- a/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp +++ b/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp @@ -81,7 +81,7 @@ struct TRINITY_DLL_DECL mob_unkor_the_ruthlessAI : public ScriptedAI if( done_by->GetTypeId() == TYPEID_PLAYER ) if( (m_creature->GetHealth()-damage)*100 / m_creature->GetMaxHealth() < 30 ) { - if( Group* pGroup = ((Player*)done_by)->GetGroup() ) + if( Group* pGroup = CAST_PLR(done_by)->GetGroup() ) { for(GroupReference *itr = pGroup->GetFirstMember(); itr != NULL; itr = itr->next()) { @@ -96,10 +96,10 @@ struct TRINITY_DLL_DECL mob_unkor_the_ruthlessAI : public ScriptedAI } } } else - if( ((Player*)done_by)->GetQuestStatus(QUEST_DONTKILLTHEFATONE) == QUEST_STATUS_INCOMPLETE && - ((Player*)done_by)->GetReqKillOrCastCurrentCount(QUEST_DONTKILLTHEFATONE, 18260) == 10 ) + if( CAST_PLR(done_by)->GetQuestStatus(QUEST_DONTKILLTHEFATONE) == QUEST_STATUS_INCOMPLETE && + CAST_PLR(done_by)->GetReqKillOrCastCurrentCount(QUEST_DONTKILLTHEFATONE, 18260) == 10 ) { - ((Player*)done_by)->AreaExploredOrEventHappens(QUEST_DONTKILLTHEFATONE); + CAST_PLR(done_by)->AreaExploredOrEventHappens(QUEST_DONTKILLTHEFATONE); CanDoQuest = true; } } @@ -215,12 +215,12 @@ struct TRINITY_DLL_DECL mob_netherweb_victimAI : public ScriptedAI { if( Killer->GetTypeId() == TYPEID_PLAYER ) { - if( ((Player*)Killer)->GetQuestStatus(10873) == QUEST_STATUS_INCOMPLETE ) + if( CAST_PLR(Killer)->GetQuestStatus(10873) == QUEST_STATUS_INCOMPLETE ) { if( rand()%100 < 25 ) { DoSpawnCreature(QUEST_TARGET,0,0,0,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,60000); - ((Player*)Killer)->KilledMonster(QUEST_TARGET, m_creature->GetGUID()); + CAST_PLR(Killer)->KilledMonster(QUEST_TARGET, m_creature->GetGUID()); }else DoSpawnCreature(netherwebVictims[rand()%6],0,0,0,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,60000); @@ -322,7 +322,7 @@ bool GossipSelect_npc_floon(Player *player, Creature *_Creature, uint32 sender, player->CLOSE_GOSSIP_MENU(); _Creature->setFaction(FACTION_HOSTILE_FL); DoScriptText(SAY_FLOON_ATTACK, _Creature, player); - ((npc_floonAI*)_Creature->AI())->AttackStart(player); + CAST_AI(npc_floonAI, _Creature->AI())->AttackStart(player); } return true; } @@ -368,10 +368,10 @@ struct TRINITY_DLL_DECL npc_isla_starmaneAI : public npc_escortAI case 29:DoScriptText(SAY_PROGRESS_4, m_creature, player); if (player) { - if(((Player*)player)->GetTeam() == ALLIANCE) - ((Player*)player)->GroupEventHappens(QUEST_EFTW_A, m_creature); - else if(((Player*)player)->GetTeam() == HORDE) - ((Player*)player)->GroupEventHappens(QUEST_EFTW_H, m_creature); + if(CAST_PLR(player)->GetTeam() == ALLIANCE) + CAST_PLR(player)->GroupEventHappens(QUEST_EFTW_A, m_creature); + else if(CAST_PLR(player)->GetTeam() == HORDE) + CAST_PLR(player)->GroupEventHappens(QUEST_EFTW_H, m_creature); } Completed = true; m_creature->SetInFront(player); break; case 30: m_creature->HandleEmoteCommand(EMOTE_ONESHOT_WAVE); break; @@ -395,10 +395,10 @@ struct TRINITY_DLL_DECL npc_isla_starmaneAI : public npc_escortAI Player* player = Unit::GetPlayer(PlayerGUID); if (player && !Completed) { - if(((Player*)player)->GetTeam() == ALLIANCE) - ((Player*)player)->FailQuest(QUEST_EFTW_A); - else if(((Player*)player)->GetTeam() == HORDE) - ((Player*)player)->FailQuest(QUEST_EFTW_H); + if(CAST_PLR(player)->GetTeam() == ALLIANCE) + CAST_PLR(player)->FailQuest(QUEST_EFTW_A); + else if(CAST_PLR(player)->GetTeam() == HORDE) + CAST_PLR(player)->FailQuest(QUEST_EFTW_H); } } } @@ -413,7 +413,7 @@ bool QuestAccept_npc_isla_starmane(Player* player, Creature* creature, Quest con { if (quest->GetQuestId() == QUEST_EFTW_H || quest->GetQuestId() == QUEST_EFTW_A) { - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); creature->setFaction(113); } return true; @@ -459,7 +459,7 @@ CreatureAI* GetAI_npc_isla_starmaneAI(Creature *_Creature) thisAI->AddWaypoint(33, -2396.81, 3517.17, -3.55); thisAI->AddWaypoint(34, -2439.23, 3523.00, -1.05); - return (CreatureAI*)thisAI; + return thisAI; } /*###### diff --git a/src/bindings/scripts/scripts/zone/thousand_needles/thousand_needles.cpp b/src/bindings/scripts/scripts/zone/thousand_needles/thousand_needles.cpp index b4d89470229..7406d259db1 100644 --- a/src/bindings/scripts/scripts/zone/thousand_needles/thousand_needles.cpp +++ b/src/bindings/scripts/scripts/zone/thousand_needles/thousand_needles.cpp @@ -64,7 +64,7 @@ npc_swiftmountainAI(Creature *c) : npc_escortAI(c) {} case 70: DoScriptText(SAY_FINISH, m_creature, player); if (player && player->GetTypeId() == TYPEID_PLAYER) - ((Player*)player)->GroupEventHappens(QUEST_HOMEWARD_BOUND,m_creature); + CAST_PLR(player)->GroupEventHappens(QUEST_HOMEWARD_BOUND,m_creature); break; } @@ -87,7 +87,7 @@ npc_swiftmountainAI(Creature *c) : npc_escortAI(c) {} if (PlayerGUID) { if (Player* player = Unit::GetPlayer(PlayerGUID)) - ((Player*)player)->FailQuest(QUEST_HOMEWARD_BOUND); + CAST_PLR(player)->FailQuest(QUEST_HOMEWARD_BOUND); } } @@ -101,7 +101,7 @@ bool QuestAccept_npc_swiftmountain(Player* player, Creature* creature, Quest con { if (quest->GetQuestId() == QUEST_HOMEWARD_BOUND) { - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); DoScriptText(SAY_READY, creature, player); creature->setFaction(113); } @@ -186,7 +186,7 @@ CreatureAI* GetAI_npc_swiftmountain(Creature *_Creature) thisAI->AddWaypoint(70, -4938.3, -1100.41, -50.71, 5000); thisAI->AddWaypoint(71, -4937.34, -1102.87, -49.82); - return (CreatureAI*)thisAI; + return thisAI; } /*##### diff --git a/src/bindings/scripts/scripts/zone/tirisfal_glades/tirisfal_glades.cpp b/src/bindings/scripts/scripts/zone/tirisfal_glades/tirisfal_glades.cpp index 78619c47782..fb558dc31a3 100644 --- a/src/bindings/scripts/scripts/zone/tirisfal_glades/tirisfal_glades.cpp +++ b/src/bindings/scripts/scripts/zone/tirisfal_glades/tirisfal_glades.cpp @@ -52,8 +52,8 @@ struct TRINITY_DLL_DECL npc_calvin_montagueAI : public ScriptedAI void JustDied(Unit* Killer) { if( Killer->GetTypeId() == TYPEID_PLAYER ) - if( ((Player*)Killer)->GetQuestStatus(QUEST_590) == QUEST_STATUS_INCOMPLETE ) - ((Player*)Killer)->AreaExploredOrEventHappens(QUEST_590); + if( CAST_PLR(Killer)->GetQuestStatus(QUEST_590) == QUEST_STATUS_INCOMPLETE ) + CAST_PLR(Killer)->AreaExploredOrEventHappens(QUEST_590); } void UpdateAI(const uint32 diff) @@ -75,7 +75,7 @@ bool QuestAccept_npc_calvin_montague(Player* player, Creature* creature, Quest c { creature->setFaction(FACTION_HOSTILE); creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_ATTACKABLE_2); - ((npc_calvin_montagueAI*)creature->AI())->AttackStart(player); + CAST_AI(npc_calvin_montagueAI, creature->AI())->AttackStart(player); } return true; } diff --git a/src/bindings/scripts/scripts/zone/uldaman/boss_archaedas.cpp b/src/bindings/scripts/scripts/zone/uldaman/boss_archaedas.cpp index a75b9310824..3221466bfd3 100644 --- a/src/bindings/scripts/scripts/zone/uldaman/boss_archaedas.cpp +++ b/src/bindings/scripts/scripts/zone/uldaman/boss_archaedas.cpp @@ -51,7 +51,7 @@ struct TRINITY_DLL_DECL boss_archaedasAI : public ScriptedAI { boss_archaedasAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)m_creature->GetInstanceData()); + pInstance = (m_creature->GetInstanceData()); } uint32 Tremor_Timer; @@ -210,7 +210,7 @@ struct TRINITY_DLL_DECL mob_archaedas_minionsAI : public ScriptedAI { mob_archaedas_minionsAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)m_creature->GetInstanceData()); + pInstance = (m_creature->GetInstanceData()); } uint32 Arcing_Timer; @@ -336,7 +336,7 @@ bool GOHello_go_altar_of_archaedas(Player *player, GameObject* go) return false; // not enough people } - ScriptedInstance* pInstance = ((ScriptedInstance*)player->GetInstanceData()); + ScriptedInstance* pInstance = (player->GetInstanceData()); if (!pInstance) return false; pInstance->SetData(NULL,0); pInstance->SetData64(0,player->GetGUID()); // activate archaedas @@ -359,7 +359,7 @@ struct TRINITY_DLL_DECL mob_stonekeepersAI : public ScriptedAI { mob_stonekeepersAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)m_creature->GetInstanceData()); + pInstance = (m_creature->GetInstanceData()); } bool InCombat; @@ -423,7 +423,7 @@ static uint32 altarOfTheKeeperCounter=0; bool GOHello_go_altar_of_the_keepers(Player *player, GameObject* go) { - ScriptedInstance* pInstance = ((ScriptedInstance*)player->GetInstanceData()); + ScriptedInstance* pInstance = (player->GetInstanceData()); if (!pInstance) return true; bool alreadyUsed; diff --git a/src/bindings/scripts/scripts/zone/undercity/undercity.cpp b/src/bindings/scripts/scripts/zone/undercity/undercity.cpp index b4e12f60ead..482165b0b55 100644 --- a/src/bindings/scripts/scripts/zone/undercity/undercity.cpp +++ b/src/bindings/scripts/scripts/zone/undercity/undercity.cpp @@ -134,8 +134,8 @@ bool ChooseReward_npc_lady_sylvanas_windrunner(Player *player, Creature *_Creatu { if( _Quest->GetQuestId() == 9180 ) { - ((npc_lady_sylvanas_windrunnerAI*)_Creature->AI())->LamentEvent = true; - ((npc_lady_sylvanas_windrunnerAI*)_Creature->AI())->DoPlaySoundToSet(_Creature,SOUND_CREDIT); + CAST_AI(npc_lady_sylvanas_windrunnerAI, _Creature->AI())->LamentEvent = true; + CAST_AI(npc_lady_sylvanas_windrunnerAI, _Creature->AI())->DoPlaySoundToSet(_Creature,SOUND_CREDIT); _Creature->CastSpell(_Creature,SPELL_SYLVANAS_CAST,false); for( uint8 i = 0; i < 4; ++i) diff --git a/src/bindings/scripts/scripts/zone/ungoro_crater/ungoro_crater.cpp b/src/bindings/scripts/scripts/zone/ungoro_crater/ungoro_crater.cpp index c3987526126..f8e7976f541 100644 --- a/src/bindings/scripts/scripts/zone/ungoro_crater/ungoro_crater.cpp +++ b/src/bindings/scripts/scripts/zone/ungoro_crater/ungoro_crater.cpp @@ -77,7 +77,7 @@ struct TRINITY_DLL_DECL npc_ameAI : public npc_escortAI case 55: DoScriptText(SAY_FINISH, m_creature, player); if (player && player->GetTypeId() == TYPEID_PLAYER) - ((Player*)player)->GroupEventHappens(QUEST_CHASING_AME,m_creature); + CAST_PLR(player)->GroupEventHappens(QUEST_CHASING_AME,m_creature); break; } @@ -101,7 +101,7 @@ struct TRINITY_DLL_DECL npc_ameAI : public npc_escortAI if (PlayerGUID) { if (Player* player = Unit::GetPlayer(PlayerGUID)) - ((Player*)player)->FailQuest(QUEST_CHASING_AME); + CAST_PLR(player)->FailQuest(QUEST_CHASING_AME); } } @@ -124,7 +124,7 @@ bool QuestAccept_npc_ame(Player* player, Creature* creature, Quest const* quest) { if (quest->GetQuestId() == QUEST_CHASING_AME) { - ((npc_escortAI*)(creature->AI()))->Start(false, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(false, true, false, player->GetGUID()); DoScriptText(SAY_READY, creature, player); creature->SetUInt32Value(UNIT_FIELD_BYTES_1,0); // Change faction so mobs attack @@ -194,7 +194,7 @@ CreatureAI* GetAI_npc_ame(Creature *_Creature) thisAI->AddWaypoint(55, -6302.43, -1181.32, -269.328, 5000); thisAI->AddWaypoint(56, -6298.87, -1185.79, -269.278); - return (CreatureAI*)thisAI; + return thisAI; } void AddSC_ungoro_crater() diff --git a/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_ingvar_the_plunderer.cpp b/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_ingvar_the_plunderer.cpp index f164e473148..e3c66109dfc 100644 --- a/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_ingvar_the_plunderer.cpp +++ b/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_ingvar_the_plunderer.cpp @@ -69,7 +69,7 @@ struct TRINITY_DLL_DECL boss_ingvar_the_plundererAI : public ScriptedAI { boss_ingvar_the_plundererAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = c->GetMap()->IsHeroic(); } @@ -285,7 +285,7 @@ struct TRINITY_DLL_DECL mob_annhylde_the_callerAI : public ScriptedAI { mob_annhylde_the_callerAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } float x,y,z; @@ -357,15 +357,15 @@ struct TRINITY_DLL_DECL mob_annhylde_the_callerAI : public ScriptedAI Resurect_Phase = 2; }else if (Resurect_Phase == 2) { - Unit* ingvar = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_INGVAR)); + Creature* ingvar = Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_INGVAR)); if(ingvar) { ingvar->RemoveAurasDueToSpell(SPELL_SCOURG_RESURRECTION_DUMMY); //ingvar->CastSpell(ingvar,SPELL_INGVAR_TRANSFORM,false); ingvar->SetUInt32Value(UNIT_FIELD_DISPLAYID, MODEL_INGVAR_UNDEAD); // Visual Hack - when he dies he becomes human model -> wrong - Creature* c_ingvar = (Creature*)ingvar; + Creature* c_ingvar = ingvar; - ((boss_ingvar_the_plundererAI*)(c_ingvar->AI()))->StartZombiePhase(); + CAST_AI(boss_ingvar_the_plundererAI, (c_ingvar->AI()))->StartZombiePhase(); m_creature->GetMotionMaster()->MovePoint(2,x+1,y,z+30); Resurect_Phase++; @@ -388,7 +388,7 @@ struct TRINITY_DLL_DECL mob_ingvar_throw_dummyAI : public ScriptedAI { mob_ingvar_throw_dummyAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = c->GetMap()->IsHeroic(); } diff --git a/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_keleseth.cpp b/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_keleseth.cpp index 3ba7d16dd41..a145ddcc425 100644 --- a/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_keleseth.cpp +++ b/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_keleseth.cpp @@ -95,7 +95,7 @@ struct TRINITY_DLL_DECL boss_kelesethAI : public ScriptedAI { boss_kelesethAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); Heroic = c->GetMap()->IsHeroic(); } @@ -193,7 +193,7 @@ struct TRINITY_DLL_DECL boss_kelesethAI : public ScriptedAI Creature* Chains = m_creature->SummonCreature(CREATURE_FROSTTOMB, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 20000); if(Chains) { - ((mob_frost_tombAI*)Chains->AI())->SetPrisoner(target); + CAST_AI(mob_frost_tombAI, Chains->AI())->SetPrisoner(target); Chains->CastSpell(target, SPELL_FROST_TOMB, true); DoScriptText(SAY_FROST_TOMB, m_creature); @@ -210,7 +210,7 @@ struct TRINITY_DLL_DECL mob_vrykul_skeletonAI : public ScriptedAI { mob_vrykul_skeletonAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_skarvald_dalronn.cpp b/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_skarvald_dalronn.cpp index 8e3e08b8b71..8078716d2d8 100644 --- a/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_skarvald_dalronn.cpp +++ b/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_skarvald_dalronn.cpp @@ -59,7 +59,7 @@ struct TRINITY_DLL_DECL boss_skarvald_the_constructorAI : public ScriptedAI { boss_skarvald_the_constructorAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } @@ -85,7 +85,7 @@ struct TRINITY_DLL_DECL boss_skarvald_the_constructorAI : public ScriptedAI { Unit* dalronn = Unit::GetUnit((*m_creature),pInstance->GetData64(DATA_DALRONN)); if(dalronn && dalronn->isDead()) - ((Creature*)dalronn)->Respawn(); + CAST_CRE(dalronn)->Respawn(); if(pInstance) pInstance->SetData(DATA_SKARVALD_DALRONN_EVENT, NOT_STARTED); @@ -206,7 +206,7 @@ struct TRINITY_DLL_DECL boss_dalronn_the_controllerAI : public ScriptedAI { boss_dalronn_the_controllerAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } @@ -238,7 +238,7 @@ struct TRINITY_DLL_DECL boss_dalronn_the_controllerAI : public ScriptedAI { Unit* skarvald = Unit::GetUnit((*m_creature),pInstance->GetData64(DATA_SKARVALD)); if(skarvald && skarvald->isDead()) - ((Creature*)skarvald)->Respawn(); + CAST_CRE(skarvald)->Respawn(); if(pInstance) pInstance->SetData(DATA_SKARVALD_DALRONN_EVENT, NOT_STARTED); diff --git a/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/utgarde_keep.cpp b/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/utgarde_keep.cpp index 73ffafca12f..517d1270f73 100644 --- a/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/utgarde_keep.cpp +++ b/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/utgarde_keep.cpp @@ -30,7 +30,7 @@ struct TRINITY_DLL_DECL npc_dragonflayer_forge_masterAI : public ScriptedAI { npc_dragonflayer_forge_masterAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); fm_Type = 0; } diff --git a/src/bindings/scripts/scripts/zone/western_plaguelands/western_plaguelands.cpp b/src/bindings/scripts/scripts/zone/western_plaguelands/western_plaguelands.cpp index 5ab59db8c40..ce0d76e643d 100644 --- a/src/bindings/scripts/scripts/zone/western_plaguelands/western_plaguelands.cpp +++ b/src/bindings/scripts/scripts/zone/western_plaguelands/western_plaguelands.cpp @@ -122,32 +122,32 @@ struct TRINITY_DLL_DECL npc_the_scourge_cauldronAI : public ScriptedAI switch(m_creature->GetAreaId()) { case 199: //felstone - if( ((Player*)who)->GetQuestStatus(5216) == QUEST_STATUS_INCOMPLETE || - ((Player*)who)->GetQuestStatus(5229) == QUEST_STATUS_INCOMPLETE ) + if( CAST_PLR(who)->GetQuestStatus(5216) == QUEST_STATUS_INCOMPLETE || + CAST_PLR(who)->GetQuestStatus(5229) == QUEST_STATUS_INCOMPLETE ) { DoSpawnCreature(11075,0,0,0,m_creature->GetOrientation(),TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,600000); DoDie(); } break; case 200: //dalson - if( ((Player*)who)->GetQuestStatus(5219) == QUEST_STATUS_INCOMPLETE || - ((Player*)who)->GetQuestStatus(5231) == QUEST_STATUS_INCOMPLETE ) + if( CAST_PLR(who)->GetQuestStatus(5219) == QUEST_STATUS_INCOMPLETE || + CAST_PLR(who)->GetQuestStatus(5231) == QUEST_STATUS_INCOMPLETE ) { DoSpawnCreature(11077,0,0,0,m_creature->GetOrientation(),TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,600000); DoDie(); } break; case 201: //gahrron - if( ((Player*)who)->GetQuestStatus(5225) == QUEST_STATUS_INCOMPLETE || - ((Player*)who)->GetQuestStatus(5235) == QUEST_STATUS_INCOMPLETE ) + if( CAST_PLR(who)->GetQuestStatus(5225) == QUEST_STATUS_INCOMPLETE || + CAST_PLR(who)->GetQuestStatus(5235) == QUEST_STATUS_INCOMPLETE ) { DoSpawnCreature(11078,0,0,0,m_creature->GetOrientation(),TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,600000); DoDie(); } break; case 202: //writhing - if( ((Player*)who)->GetQuestStatus(5222) == QUEST_STATUS_INCOMPLETE || - ((Player*)who)->GetQuestStatus(5233) == QUEST_STATUS_INCOMPLETE ) + if( CAST_PLR(who)->GetQuestStatus(5222) == QUEST_STATUS_INCOMPLETE || + CAST_PLR(who)->GetQuestStatus(5233) == QUEST_STATUS_INCOMPLETE ) { DoSpawnCreature(11076,0,0,0,m_creature->GetOrientation(),TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,600000); DoDie(); diff --git a/src/bindings/scripts/scripts/zone/westfall/westfall.cpp b/src/bindings/scripts/scripts/zone/westfall/westfall.cpp index 083820e7df9..f9e04a5186f 100644 --- a/src/bindings/scripts/scripts/zone/westfall/westfall.cpp +++ b/src/bindings/scripts/scripts/zone/westfall/westfall.cpp @@ -165,7 +165,7 @@ bool QuestAccept_npc_daphne_stilwell(Player* pPlayer, Creature* pCreature, const if (pQuest->GetQuestId() == QUEST_TOME_VALOR) { DoScriptText(SAY_DS_START, pCreature); - ((npc_escortAI*)(pCreature->AI()))->Start(true, true, true, pPlayer->GetGUID()); + CAST_AI(npc_escortAI, (pCreature->AI()))->Start(true, true, true, pPlayer->GetGUID()); } return true; @@ -177,7 +177,7 @@ CreatureAI* GetAI_npc_daphne_stilwell(Creature* pCreature) thisAI->FillPointMovementListForCreature(); - return (CreatureAI*)thisAI; + return thisAI; } /*###### @@ -251,7 +251,7 @@ bool QuestAccept_npc_defias_traitor(Player* player, Creature* creature, Quest co { if (quest->GetQuestId() == QUEST_DEFIAS_BROTHERHOOD) { - ((npc_escortAI*)(creature->AI()))->Start(true, true, true, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, true, player->GetGUID()); DoScriptText(SAY_START, creature, player); } @@ -264,7 +264,7 @@ CreatureAI* GetAI_npc_defias_traitor(Creature* pCreature) thisAI->FillPointMovementListForCreature(); - return (CreatureAI*)thisAI; + return thisAI; } void AddSC_westfall() diff --git a/src/bindings/scripts/scripts/zone/wintergrasp/wintergrasp.cpp b/src/bindings/scripts/scripts/zone/wintergrasp/wintergrasp.cpp index 57cd2c92d77..67830d78a10 100644 --- a/src/bindings/scripts/scripts/zone/wintergrasp/wintergrasp.cpp +++ b/src/bindings/scripts/scripts/zone/wintergrasp/wintergrasp.cpp @@ -40,9 +40,9 @@ bool GossipSelect_npc_demolisher_engineerer(Player* player, Creature* me, uint32 player->CLOSE_GOSSIP_MENU(); switch(uiAction - GOSSIP_ACTION_INFO_DEF) { - case 0: player->CastSpell(player, 56663, false); break; - case 1: player->CastSpell(player, 56575, false); break; - case 2: player->CastSpell(player, player->GetTeamId() ? 61408 : 56661, false); break; + case 0: player->CastSpell(player, 56663, false, NULL, NULL, me->GetGUID()); break; + case 1: player->CastSpell(player, 56575, false, NULL, NULL, me->GetGUID()); break; + case 2: player->CastSpell(player, player->GetTeamId() ? 61408 : 56661, false, NULL, NULL, me->GetGUID()); break; } return true; diff --git a/src/bindings/scripts/scripts/zone/zangarmarsh/zangarmarsh.cpp b/src/bindings/scripts/scripts/zone/zangarmarsh/zangarmarsh.cpp index 6fdb4421b94..a4f2f32b250 100644 --- a/src/bindings/scripts/scripts/zone/zangarmarsh/zangarmarsh.cpp +++ b/src/bindings/scripts/scripts/zone/zangarmarsh/zangarmarsh.cpp @@ -333,7 +333,7 @@ bool QuestAccept_npc_kayra_longmane(Player* player, Creature* creature, Quest co { if (quest->GetQuestId() == QUEST_EFU) { - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); creature->setFaction(113); } return true; @@ -371,7 +371,7 @@ CreatureAI* GetAI_npc_kayra_longmaneAI(Creature* _Creature) thisAI->AddWaypoint(25, -488.45, 5447.83, 22.38); thisAI->AddWaypoint(26, -449.65, 5463.78, 21.77, 11000);//SAY_PROGRESS_6 - return (CreatureAI*)thisAI; + return thisAI; } /*###### ## AddSC diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_akilzon.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_akilzon.cpp index 85ba26ef20d..7861232026e 100644 --- a/src/bindings/scripts/scripts/zone/zulaman/boss_akilzon.cpp +++ b/src/bindings/scripts/scripts/zone/zulaman/boss_akilzon.cpp @@ -61,10 +61,10 @@ struct TRINITY_DLL_DECL boss_akilzonAI : public ScriptedAI { boss_akilzonAI(Creature *c) : ScriptedAI(c) { - SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_ELECTRICAL_DAMAGE); + SpellEntry *TempSpell = GET_SPELL(SPELL_ELECTRICAL_DAMAGE); if(TempSpell) TempSpell->EffectBasePoints[1] = 49;//disable bugged lightning until fixed in core - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -383,7 +383,7 @@ struct TRINITY_DLL_DECL mob_soaring_eagleAI : public ScriptedAI void EnterCombat(Unit *who) {DoZoneInCombat();} - void MoveInLineOfSight(Unit *) {} + void MoveInLineOfSight(Unit* who) {} void MovementInform(uint32, uint32) { diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_halazzi.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_halazzi.cpp index 279e8985774..fc1fb3ce592 100644 --- a/src/bindings/scripts/scripts/zone/zulaman/boss_halazzi.cpp +++ b/src/bindings/scripts/scripts/zone/zulaman/boss_halazzi.cpp @@ -75,9 +75,9 @@ struct TRINITY_DLL_DECL boss_halazziAI : public ScriptedAI { boss_halazziAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); // need to find out what controls totem's spell cooldown - SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_LIGHTNING); + SpellEntry *TempSpell = GET_SPELL(SPELL_LIGHTNING); if(TempSpell && TempSpell->CastingTimeIndex != 5) TempSpell->CastingTimeIndex = 5; // 2000 ms casting time } diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_hexlord.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_hexlord.cpp index 26229261905..b57cc4e0753 100644 --- a/src/bindings/scripts/scripts/zone/zulaman/boss_hexlord.cpp +++ b/src/bindings/scripts/scripts/zone/zulaman/boss_hexlord.cpp @@ -179,7 +179,7 @@ struct TRINITY_DLL_DECL boss_hexlord_addAI : public ScriptedAI boss_hexlord_addAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } void Reset() {} @@ -202,7 +202,7 @@ struct TRINITY_DLL_DECL boss_hex_lord_malacrassAI : public ScriptedAI { boss_hex_lord_malacrassAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); SelectAddEntry(); for(uint8 i = 0; i < 4; ++i) AddGUID[i] = 0; @@ -257,7 +257,7 @@ struct TRINITY_DLL_DECL boss_hex_lord_malacrassAI : public ScriptedAI { Unit* Temp = Unit::GetUnit((*m_creature),AddGUID[i]); if(Temp && Temp->isAlive()) - ((Creature*)Temp)->AI()->AttackStart(m_creature->getVictim()); + CAST_CRE(Temp)->AI()->AttackStart(m_creature->getVictim()); else { EnterEvadeMode(); @@ -353,7 +353,7 @@ struct TRINITY_DLL_DECL boss_hex_lord_malacrassAI : public ScriptedAI { Unit* Temp = Unit::GetUnit((*m_creature),AddGUID[i]); if(Temp && Temp->isAlive() && !Temp->getVictim()) - ((Creature*)Temp)->AI()->AttackStart(m_creature->getVictim()); + CAST_CRE(Temp)->AI()->AttackStart(m_creature->getVictim()); } CheckAddState_Timer = 5000; }else CheckAddState_Timer -= diff; diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp index 852be55c195..e8564c84a10 100644 --- a/src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp +++ b/src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp @@ -101,9 +101,9 @@ struct TRINITY_DLL_DECL boss_janalaiAI : public ScriptedAI { boss_janalaiAI(Creature *c) : ScriptedAI(c) { - pInstance =((ScriptedInstance*)c->GetInstanceData()); + pInstance =(c->GetInstanceData()); - SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_HATCH_EGG); + SpellEntry *TempSpell = GET_SPELL(SPELL_HATCH_EGG); if(TempSpell && TempSpell->EffectImplicitTargetA[0] != 1) { TempSpell->EffectImplicitTargetA[0] = 1; @@ -481,7 +481,7 @@ struct TRINITY_DLL_DECL mob_amanishi_hatcherAI : public ScriptedAI { mob_amanishi_hatcherAI(Creature *c) : ScriptedAI(c) { - pInstance =((ScriptedInstance*)c->GetInstanceData()); + pInstance =(c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -543,8 +543,8 @@ struct TRINITY_DLL_DECL mob_amanishi_hatcherAI : public ScriptedAI } void EnterCombat(Unit* who) {} - void AttackStart(Unit*) {} - void MoveInLineOfSight(Unit*) {} + void AttackStart(Unit* who) {} + void MoveInLineOfSight(Unit* who) {} void MovementInform(uint32, uint32) { if(waypoint == 5) @@ -612,7 +612,7 @@ struct TRINITY_DLL_DECL mob_hatchlingAI : public ScriptedAI { mob_hatchlingAI(Creature *c) : ScriptedAI(c) { - pInstance =((ScriptedInstance*)c->GetInstanceData()); + pInstance =(c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp index 1f810059997..96038629cb3 100644 --- a/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp +++ b/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp @@ -95,7 +95,7 @@ struct TRINITY_DLL_DECL boss_nalorakkAI : public ScriptedAI { MoveEvent = true; MovePhase = 0; - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_zuljin.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_zuljin.cpp index c342b8283d5..ea1eddff107 100644 --- a/src/bindings/scripts/scripts/zone/zulaman/boss_zuljin.cpp +++ b/src/bindings/scripts/scripts/zone/zulaman/boss_zuljin.cpp @@ -143,7 +143,7 @@ struct TRINITY_DLL_DECL boss_zuljinAI : public ScriptedAI { boss_zuljinAI(Creature *c) : ScriptedAI(c), Summons(m_creature) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/zulaman/zulaman.cpp b/src/bindings/scripts/scripts/zone/zulaman/zulaman.cpp index 8bc21dbba1d..dd16b652c0d 100644 --- a/src/bindings/scripts/scripts/zone/zulaman/zulaman.cpp +++ b/src/bindings/scripts/scripts/zone/zulaman/zulaman.cpp @@ -40,7 +40,7 @@ struct TRINITY_DLL_DECL npc_forest_frogAI : public ScriptedAI { npc_forest_frogAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -112,7 +112,7 @@ struct TRINITY_DLL_DECL npc_zulaman_hostageAI : public ScriptedAI uint64 PlayerGUID; void Reset() {} void EnterCombat(Unit *who) {} - void JustDied(Unit *) + void JustDied(Unit* who) { Player* player = Unit::GetPlayer(PlayerGUID); if(player) player->SendLoot(m_creature->GetGUID(), LOOT_CORPSE); @@ -139,7 +139,7 @@ bool GossipSelect_npc_zulaman_hostage(Player* player, Creature* _Creature, uint3 return true; _Creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); - ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData()); + ScriptedInstance* pInstance = (_Creature->GetInstanceData()); if(pInstance) { //uint8 progress = pInstance->GetData(DATA_CHESTLOOTED); @@ -158,8 +158,8 @@ bool GossipSelect_npc_zulaman_hostage(Player* player, Creature* _Creature, uint3 /*Creature* summon = _Creature->SummonCreature(HostageInfo[progress], x-2, y, z, 0, TEMPSUMMON_DEAD_DESPAWN, 0); if(summon) { - ((npc_zulaman_hostageAI*)summon->AI())->PlayerGUID = player->GetGUID(); - ((npc_zulaman_hostageAI*)summon->AI())->IsLoot = true; + CAST_AI(npc_zulaman_hostageAI, summon->AI())->PlayerGUID = player->GetGUID(); + CAST_AI(npc_zulaman_hostageAI, summon->AI())->IsLoot = true; summon->SetDisplayId(10056); summon->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); summon->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); diff --git a/src/bindings/scripts/scripts/zone/zulfarrak/zulfarrak.cpp b/src/bindings/scripts/scripts/zone/zulfarrak/zulfarrak.cpp index bdc5c264c51..80db24d7871 100644 --- a/src/bindings/scripts/scripts/zone/zulfarrak/zulfarrak.cpp +++ b/src/bindings/scripts/scripts/zone/zulfarrak/zulfarrak.cpp @@ -44,7 +44,7 @@ struct TRINITY_DLL_DECL npc_sergeant_blyAI : public ScriptedAI { npc_sergeant_blyAI(Creature *c) : ScriptedAI(c) { - //pInstance = ((ScriptedInstance*)c->GetInstanceData()); + //pInstance = (c->GetInstanceData()); } //ScriptedInstance* pInstance; @@ -121,7 +121,7 @@ bool GossipSelect_npc_sergeant_bly(Player *player, Creature *_Creature, uint32 s { player->CLOSE_GOSSIP_MENU(); _Creature->setFaction(FACTION_HOSTILE); - ((npc_sergeant_blyAI*)_Creature->AI())->AttackStart(player); + CAST_AI(npc_sergeant_blyAI, _Creature->AI())->AttackStart(player); } return true; } @@ -141,7 +141,7 @@ struct TRINITY_DLL_DECL npc_weegli_blastfuseAI : public ScriptedAI { npc_weegli_blastfuseAI(Creature *c) : ScriptedAI(c) { - //pInstance = ((ScriptedInstance*)c->GetInstanceData()); + //pInstance = (c->GetInstanceData()); } //ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp index a0f87e6cce5..588a4db8271 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp @@ -38,7 +38,7 @@ struct TRINITY_DLL_DECL boss_arlokkAI : public ScriptedAI { boss_arlokkAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_hakkar.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_hakkar.cpp index 0de85d55986..2202fecc19c 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_hakkar.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_hakkar.cpp @@ -46,7 +46,7 @@ struct TRINITY_DLL_DECL boss_hakkarAI : public ScriptedAI { boss_hakkarAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_hazzarah.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_hazzarah.cpp index 37a913a5df3..7208fcf3ec1 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_hazzarah.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_hazzarah.cpp @@ -80,7 +80,7 @@ struct TRINITY_DLL_DECL boss_hazzarahAI : public ScriptedAI Illusion = m_creature->SummonCreature(15163,target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(),0,TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN,30000); if(Illusion) - ((CreatureAI*)Illusion->AI())->AttackStart(target); + (Illusion->AI())->AttackStart(target); } Illusions_Timer = 15000 + rand()%10000; diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_jeklik.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_jeklik.cpp index b691bc864ce..f4d99434402 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_jeklik.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_jeklik.cpp @@ -45,7 +45,7 @@ struct TRINITY_DLL_DECL boss_jeklikAI : public ScriptedAI { boss_jeklikAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -212,7 +212,7 @@ struct TRINITY_DLL_DECL mob_batriderAI : public ScriptedAI { mob_batriderAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp index 26d19c8763b..b5271291a4d 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp @@ -43,7 +43,7 @@ struct TRINITY_DLL_DECL boss_jindoAI : public ScriptedAI { boss_jindoAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -168,7 +168,7 @@ struct TRINITY_DLL_DECL mob_healing_wardAI : public ScriptedAI { mob_healing_wardAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } uint32 Heal_Timer; @@ -207,7 +207,7 @@ struct TRINITY_DLL_DECL mob_shade_of_jindoAI : public ScriptedAI { mob_shade_of_jindoAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } uint32 ShadowShock_Timer; diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_mandokir.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_mandokir.cpp index 13eac015d6d..3c10e16dde7 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_mandokir.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_mandokir.cpp @@ -46,7 +46,7 @@ struct TRINITY_DLL_DECL boss_mandokirAI : public ScriptedAI { boss_mandokirAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } uint32 KillCount; @@ -270,7 +270,7 @@ struct TRINITY_DLL_DECL mob_ohganAI : public ScriptedAI { mob_ohganAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } uint32 SunderArmor_Timer; diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp index f85523dc65e..e77f08bbc39 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp @@ -42,7 +42,7 @@ struct TRINITY_DLL_DECL boss_marliAI : public ScriptedAI { boss_marliAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp index 0dcfa4549db..23fe5901be9 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp @@ -54,7 +54,7 @@ struct TRINITY_DLL_DECL boss_thekalAI : public ScriptedAI { boss_thekalAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } uint32 MortalCleave_Timer; @@ -241,7 +241,7 @@ struct TRINITY_DLL_DECL mob_zealot_lorkhanAI : public ScriptedAI { mob_zealot_lorkhanAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } uint32 Shield_Timer; @@ -385,7 +385,7 @@ struct TRINITY_DLL_DECL mob_zealot_zathAI : public ScriptedAI { mob_zealot_zathAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } uint32 SweepingStrikes_Timer; diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_venoxis.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_venoxis.cpp index 7ab59285ebe..7c72b6f79c0 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_venoxis.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_venoxis.cpp @@ -41,7 +41,7 @@ struct TRINITY_DLL_DECL boss_venoxisAI : public ScriptedAI { boss_venoxisAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/game/AccountMgr.cpp b/src/game/AccountMgr.cpp index 86de06a30e0..66660766dae 100644 --- a/src/game/AccountMgr.cpp +++ b/src/game/AccountMgr.cpp @@ -18,11 +18,12 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "AccountMgr.h" #include "Database/DatabaseEnv.h" +#include "Policies/SingletonImp.h" + +#include "AccountMgr.h" #include "ObjectAccessor.h" #include "Player.h" -#include "Policies/SingletonImp.h" #include "Util.h" extern DatabaseType LoginDatabase; diff --git a/src/game/AccountMgr.h b/src/game/AccountMgr.h index a402b48ad4f..2be0178998e 100644 --- a/src/game/AccountMgr.h +++ b/src/game/AccountMgr.h @@ -21,9 +21,10 @@ #ifndef _ACCMGR_H #define _ACCMGR_H +#include <string> + #include "Common.h" #include "Policies/Singleton.h" -#include <string> enum AccountOpResult { diff --git a/src/game/AchievementMgr.cpp b/src/game/AchievementMgr.cpp index 2cf8949d4a7..c6ffd223e98 100644 --- a/src/game/AchievementMgr.cpp +++ b/src/game/AchievementMgr.cpp @@ -16,24 +16,26 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "AchievementMgr.h" #include "Common.h" -#include "Player.h" -#include "WorldPacket.h" #include "DBCEnums.h" -#include "GameEventMgr.h" #include "ObjectMgr.h" -#include "Guild.h" -#include "Database/DatabaseEnv.h" #include "World.h" -#include "SpellMgr.h" +#include "WorldPacket.h" +#include "Database/DatabaseEnv.h" +#include "Policies/SingletonImp.h" + +#include "AchievementMgr.h" #include "ArenaTeam.h" -#include "ProgressBar.h" -#include "GridNotifiersImpl.h" #include "CellImpl.h" +#include "GameEventMgr.h" +#include "GridNotifiersImpl.h" +#include "Guild.h" #include "Language.h" +#include "Player.h" +#include "ProgressBar.h" +#include "SpellMgr.h" + -#include "Policies/SingletonImp.h" INSTANTIATE_SINGLETON_1(AchievementGlobalMgr); diff --git a/src/game/AchievementMgr.h b/src/game/AchievementMgr.h index 73729f30998..3dd87737960 100644 --- a/src/game/AchievementMgr.h +++ b/src/game/AchievementMgr.h @@ -18,15 +18,15 @@ #ifndef __MANGOS_ACHIEVEMENTMGR_H #define __MANGOS_ACHIEVEMENTMGR_H +#include <map> +#include <string> + #include "Common.h" #include "Policies/Singleton.h" #include "Database/DatabaseEnv.h" #include "DBCEnums.h" #include "DBCStores.h" -#include <map> -#include <string> - typedef std::list<AchievementCriteriaEntry const*> AchievementCriteriaEntryList; typedef std::list<AchievementEntry const*> AchievementEntryList; diff --git a/src/game/AddonHandler.cpp b/src/game/AddonHandler.cpp index 4dd25c56b26..cac4261944b 100644 --- a/src/game/AddonHandler.cpp +++ b/src/game/AddonHandler.cpp @@ -18,12 +18,14 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include "zlib/zlib.h" + #include "AddonHandler.h" #include "Database/DatabaseEnv.h" +#include "Policies/SingletonImp.h" #include "Opcodes.h" + #include "Log.h" -#include "Policies/SingletonImp.h" -#include "zlib/zlib.h" INSTANTIATE_SINGLETON_1( AddonHandler ); diff --git a/src/game/AddonHandler.h b/src/game/AddonHandler.h index fd9ad395924..f0d5bcac7f1 100644 --- a/src/game/AddonHandler.h +++ b/src/game/AddonHandler.h @@ -22,9 +22,10 @@ #define __ADDONHANDLER_H #include "Common.h" +#include "Config/ConfigEnv.h" #include "Policies/Singleton.h" + #include "WorldPacket.h" -#include "Config/ConfigEnv.h" class AddonHandler { diff --git a/src/game/ArenaTeam.cpp b/src/game/ArenaTeam.cpp index 5b2685017cf..f777b0ee8b1 100644 --- a/src/game/ArenaTeam.cpp +++ b/src/game/ArenaTeam.cpp @@ -16,8 +16,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "WorldPacket.h" #include "ObjectMgr.h" +#include "WorldPacket.h" + #include "ArenaTeam.h" ArenaTeam::ArenaTeam() diff --git a/src/game/ArenaTeamHandler.cpp b/src/game/ArenaTeamHandler.cpp index ab3319ce2ad..be802e822c0 100644 --- a/src/game/ArenaTeamHandler.cpp +++ b/src/game/ArenaTeamHandler.cpp @@ -18,14 +18,15 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "WorldSession.h" +#include "Player.h" +#include "World.h" #include "WorldPacket.h" -#include "Log.h" +#include "WorldSession.h" #include "Database/DatabaseEnv.h" -#include "Player.h" -#include "ObjectMgr.h" + #include "ArenaTeam.h" -#include "World.h" +#include "Log.h" +#include "ObjectMgr.h" #include "SocialMgr.h" void WorldSession::HandleInspectArenaTeamsOpcode(WorldPacket & recv_data) diff --git a/src/game/AuctionHouseBot.cpp b/src/game/AuctionHouseBot.cpp index 27315f8e2e9..4ef4eb0e494 100644 --- a/src/game/AuctionHouseBot.cpp +++ b/src/game/AuctionHouseBot.cpp @@ -1,17 +1,19 @@ -#include "AuctionHouseBot.h" -#include "Bag.h" +#include <vector> +#include <iostream> +#include "time.h" + +#include "ObjectMgr.h" +#include "World.h" +#include "WorldSession.h" #include "Config/ConfigEnv.h" #include "Database/DatabaseEnv.h" + +#include "AuctionHouseBot.h" +#include "AuctionHouseMgr.h" +#include "Bag.h" #include "Item.h" #include "Log.h" -#include "ObjectMgr.h" -#include "AuctionHouseMgr.h" #include "Player.h" -#include "World.h" -#include "WorldSession.h" -#include "time.h" -#include <vector> -#include <iostream> using namespace std; diff --git a/src/game/AuctionHouseBot.h b/src/game/AuctionHouseBot.h index 8d5c067a354..9cd073885a3 100644 --- a/src/game/AuctionHouseBot.h +++ b/src/game/AuctionHouseBot.h @@ -1,8 +1,11 @@ #ifndef AUCTION_HOUSE_BOT_H #define AUCTION_HOUSE_BOT_H + #include "Common.h" -#include "Log.h" #include "Config/ConfigEnv.h" + +#include "Log.h" + #define AHB_GREY 0 #define AHB_WHITE 1 #define AHB_GREEN 2 diff --git a/src/game/AuctionHouseHandler.cpp b/src/game/AuctionHouseHandler.cpp index 1a70162de11..d1f399bf570 100644 --- a/src/game/AuctionHouseHandler.cpp +++ b/src/game/AuctionHouseHandler.cpp @@ -18,17 +18,19 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include "ObjectMgr.h" +#include "Player.h" +#include "World.h" #include "WorldPacket.h" #include "WorldSession.h" -#include "Opcodes.h" + +#include "AuctionHouseBot.h" +#include "AuctionHouseMgr.h" #include "Log.h" -#include "World.h" -#include "ObjectMgr.h" -#include "Player.h" +#include "Opcodes.h" #include "UpdateMask.h" -#include "AuctionHouseMgr.h" #include "Util.h" -#include "AuctionHouseBot.h" + //please DO NOT use iterator++, because it is slower than ++iterator!!! //post-incrementation is always slower than pre-incrementation ! diff --git a/src/game/AuctionHouseMgr.cpp b/src/game/AuctionHouseMgr.cpp index 1b3a96f7584..c8876c36063 100644 --- a/src/game/AuctionHouseMgr.cpp +++ b/src/game/AuctionHouseMgr.cpp @@ -17,23 +17,23 @@ */ #include "Common.h" +#include "ObjectMgr.h" +#include "Player.h" +#include "World.h" +#include "WorldPacket.h" +#include "WorldSession.h" #include "Database/DatabaseEnv.h" #include "Database/SQLStorage.h" +#include "Policies/SingletonImp.h" #include "DBCStores.h" -#include "ProgressBar.h" #include "AccountMgr.h" #include "AuctionHouseMgr.h" #include "Item.h" #include "Language.h" #include "Log.h" -#include "ObjectMgr.h" -#include "Player.h" -#include "World.h" -#include "WorldPacket.h" -#include "WorldSession.h" +#include "ProgressBar.h" -#include "Policies/SingletonImp.h" INSTANTIATE_SINGLETON_1( AuctionHouseMgr ); @@ -66,9 +66,41 @@ AuctionHouseObject * AuctionHouseMgr::GetAuctionsMap( uint32 factionTemplateId ) uint32 AuctionHouseMgr::GetAuctionDeposit(AuctionHouseEntry const* entry, uint32 time, Item *pItem) { - uint32 deposit = pItem->GetProto()->SellPrice * pItem->GetCount() * (time / MIN_AUCTION_TIME ); - - return uint32(deposit * entry->depositPercent * 3 * sWorld.getRate(RATE_AUCTION_DEPOSIT) / 100.0f ); + uint32 MSV = pItem->GetProto()->SellPrice; + double deposit; + double faction_pct; + if (MSV > 0) + { + if(sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_AUCTION)) + faction_pct = (0.75 * (double)sWorld.getRate(RATE_AUCTION_DEPOSIT)); + else + { + FactionTemplateEntry const* u_entry = sFactionTemplateStore.LookupEntry(entry->houseId); + if(!u_entry) + faction_pct = (0.75 * (double)sWorld.getRate(RATE_AUCTION_DEPOSIT)); + else if(u_entry->ourMask & FACTION_MASK_ALLIANCE) + faction_pct = (0.15 * (double)sWorld.getRate(RATE_AUCTION_DEPOSIT)); + else if(u_entry->ourMask & FACTION_MASK_HORDE) + faction_pct = (0.15 * (double)sWorld.getRate(RATE_AUCTION_DEPOSIT)); + else + faction_pct = (0.75 * (double)sWorld.getRate(RATE_AUCTION_DEPOSIT)); + } + deposit = ((double)MSV * faction_pct * (double)pItem->GetCount()) * (double)(time / MIN_AUCTION_TIME ); + } + else + { + faction_pct = 0.0f; + deposit = 0.0f; + } + //sLog.outString("SellPrice:\t\t%u", MSV); + //sLog.outString("Deposit Percent:\t%f", faction_pct); + //sLog.outString("Min Auction Time:\t%u", (time / MIN_AUCTION_TIME )); + //sLog.outString("Count:\t\t\t%u", pItem->GetCount()); + //sLog.outString("Deposit:\t\t%f", deposit); + if (deposit > 0) + return (uint32)deposit; + else + return 0; } //does not clear ram diff --git a/src/game/AuctionHouseMgr.h b/src/game/AuctionHouseMgr.h index cfc68497e47..2a106cf20f9 100644 --- a/src/game/AuctionHouseMgr.h +++ b/src/game/AuctionHouseMgr.h @@ -21,9 +21,10 @@ #ifndef _AUCTION_HOUSE_MGR_H #define _AUCTION_HOUSE_MGR_H -#include "SharedDefines.h" #include "Policies/Singleton.h" +#include "SharedDefines.h" + class Item; class Player; class WorldPacket; diff --git a/src/game/Bag.cpp b/src/game/Bag.cpp index 1edbc06474d..86befec7550 100644 --- a/src/game/Bag.cpp +++ b/src/game/Bag.cpp @@ -19,9 +19,10 @@ */ #include "Common.h" -#include "Bag.h" #include "ObjectMgr.h" #include "Database/DatabaseEnv.h" + +#include "Bag.h" #include "Log.h" #include "UpdateData.h" diff --git a/src/game/Bag.h b/src/game/Bag.h index 1c341b5611d..3ae786512ce 100644 --- a/src/game/Bag.h +++ b/src/game/Bag.h @@ -24,8 +24,8 @@ // Maximum 36 Slots ( (CONTAINER_END - CONTAINER_FIELD_SLOT_1)/2 #define MAX_BAG_SIZE 36 // 2.0.12 -#include "ItemPrototype.h" #include "Item.h" +#include "ItemPrototype.h" class Bag : public Item { diff --git a/src/game/BattleGround.cpp b/src/game/BattleGround.cpp index 43c3516722b..3fd554c5163 100644 --- a/src/game/BattleGround.cpp +++ b/src/game/BattleGround.cpp @@ -18,22 +18,24 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "Object.h" #include "Player.h" +#include "ObjectMgr.h" +#include "World.h" +#include "WorldPacket.h" + +#include "ArenaTeam.h" #include "BattleGround.h" #include "BattleGroundMgr.h" #include "Creature.h" -#include "MapManager.h" +#include "Formulas.h" +#include "GridNotifiersImpl.h" +#include "Group.h" #include "Language.h" +#include "MapManager.h" +#include "Object.h" #include "SpellAuras.h" -#include "ArenaTeam.h" -#include "World.h" -#include "Group.h" -#include "ObjectMgr.h" -#include "WorldPacket.h" #include "Util.h" -#include "Formulas.h" -#include "GridNotifiersImpl.h" + namespace MaNGOS { @@ -1277,10 +1279,56 @@ void BattleGround::RemoveFromBGFreeSlotQueue() // returns the number how many players can join battleground to MaxPlayersPerTeam uint32 BattleGround::GetFreeSlotsForTeam(uint32 Team) const { - //return free slot count to MaxPlayerPerTeam - if (GetStatus() == STATUS_WAIT_JOIN || GetStatus() == STATUS_IN_PROGRESS) + //if BG is starting ... invite anyone + if (GetStatus() == STATUS_WAIT_JOIN) return (GetInvitedCount(Team) < GetMaxPlayersPerTeam()) ? GetMaxPlayersPerTeam() - GetInvitedCount(Team) : 0; - + //if BG is already started .. do not allow to join too much players of one faction + uint32 otherTeam; + uint32 otherIn; + if (Team == ALLIANCE) + { + otherTeam = GetInvitedCount(HORDE); + otherIn = GetPlayersCountByTeam(HORDE); + } + else + { + otherTeam = GetInvitedCount(ALLIANCE); + otherIn = GetPlayersCountByTeam(ALLIANCE); + } + if (GetStatus() == STATUS_IN_PROGRESS) + { + // difference based on ppl invited (not necessarily entered battle) + // default: allow 0 + uint32 diff = 0; + // allow join one person if the sides are equal (to fill up bg to minplayersperteam) + if (otherTeam == GetInvitedCount(Team)) + diff = 1; + // allow join more ppl if the other side has more players + else if(otherTeam > GetInvitedCount(Team)) + diff = otherTeam - GetInvitedCount(Team); + + // difference based on max players per team (don't allow inviting more) + uint32 diff2 = (GetInvitedCount(Team) < GetMaxPlayersPerTeam()) ? GetMaxPlayersPerTeam() - GetInvitedCount(Team) : 0; + // difference based on players who already entered + // default: allow 0 + uint32 diff3 = 0; + // allow join one person if the sides are equal (to fill up bg minplayersperteam) + if (otherIn == GetPlayersCountByTeam(Team)) + diff3 = 1; + // allow join more ppl if the other side has more players + else if (otherIn > GetPlayersCountByTeam(Team)) + diff3 = otherIn - GetPlayersCountByTeam(Team); + // or other side has less than minPlayersPerTeam + else if (GetInvitedCount(Team) <= GetMinPlayersPerTeam()) + diff3 = GetMinPlayersPerTeam() - GetInvitedCount(Team) + 1; + + // return the minimum of the 3 differences + + // min of diff and diff 2 + diff = diff < diff2 ? diff : diff2; + // min of diff, diff2 and diff3 + return diff < diff3 ? diff : diff3 ; + } return 0; } @@ -1795,7 +1843,7 @@ void BattleGround::SetHoliday(bool is_holiday) int32 BattleGround::GetObjectType(uint64 guid) { - for(uint32 i = 0;i <= m_BgObjects.size(); i++) + for(uint32 i = 0; i < m_BgObjects.size(); ++i) if(m_BgObjects[i] == guid) return i; sLog.outError("BattleGround: cheating? a player used a gameobject which isnt supposed to be a usable object!"); diff --git a/src/game/BattleGroundAA.cpp b/src/game/BattleGroundAA.cpp index 2aac2dde3eb..6133508ece1 100644 --- a/src/game/BattleGroundAA.cpp +++ b/src/game/BattleGroundAA.cpp @@ -18,10 +18,10 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "Player.h" #include "BattleGround.h" #include "BattleGroundAA.h" #include "Language.h" +#include "Player.h" BattleGroundAA::BattleGroundAA() { diff --git a/src/game/BattleGroundAB.cpp b/src/game/BattleGroundAB.cpp index 40f60960377..f5fba6f4186 100644 --- a/src/game/BattleGroundAB.cpp +++ b/src/game/BattleGroundAB.cpp @@ -18,16 +18,17 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "Object.h" -#include "Player.h" +#include "ObjectMgr.h" +#include "World.h" +#include "WorldPacket.h" + #include "BattleGround.h" #include "BattleGroundAB.h" #include "Creature.h" -#include "ObjectMgr.h" #include "Language.h" -#include "World.h" +#include "Object.h" +#include "Player.h" #include "Util.h" -#include "WorldPacket.h" // these variables aren't used outside of this file, so declare them only here uint32 BG_AB_HonorScoreTicks[BG_HONOR_MODE_NUM] = { diff --git a/src/game/BattleGroundAV.cpp b/src/game/BattleGroundAV.cpp index bc0b50d21f0..a93b304e2b9 100644 --- a/src/game/BattleGroundAV.cpp +++ b/src/game/BattleGroundAV.cpp @@ -18,15 +18,16 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "Player.h" +#include "ObjectMgr.h" +#include "WorldPacket.h" + #include "BattleGround.h" #include "BattleGroundAV.h" -#include "Language.h" -#include "SpellAuras.h" #include "Formulas.h" -#include "WorldPacket.h" -#include "ObjectMgr.h" #include "GameObject.h" +#include "Language.h" +#include "Player.h" +#include "SpellAuras.h" BattleGroundAV::BattleGroundAV() { diff --git a/src/game/BattleGroundBE.cpp b/src/game/BattleGroundBE.cpp index f61ff697faa..d58c2250948 100644 --- a/src/game/BattleGroundBE.cpp +++ b/src/game/BattleGroundBE.cpp @@ -18,13 +18,13 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "Object.h" -#include "Player.h" #include "BattleGround.h" #include "BattleGroundBE.h" +#include "Language.h" +#include "Object.h" #include "ObjectMgr.h" +#include "Player.h" #include "WorldPacket.h" -#include "Language.h" BattleGroundBE::BattleGroundBE() { diff --git a/src/game/BattleGroundDS.cpp b/src/game/BattleGroundDS.cpp index 78360b9b194..0be870be175 100644 --- a/src/game/BattleGroundDS.cpp +++ b/src/game/BattleGroundDS.cpp @@ -16,10 +16,10 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "Player.h" #include "BattleGround.h" #include "BattleGroundDS.h" #include "Language.h" +#include "Player.h" BattleGroundDS::BattleGroundDS() { diff --git a/src/game/BattleGroundEY.cpp b/src/game/BattleGroundEY.cpp index 385ec3d9bc1..9b54ecce643 100644 --- a/src/game/BattleGroundEY.cpp +++ b/src/game/BattleGroundEY.cpp @@ -18,15 +18,16 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "Object.h" -#include "Player.h" +#include "ObjectMgr.h" +#include "World.h" +#include "WorldPacket.h" + #include "BattleGround.h" #include "BattleGroundEY.h" #include "Creature.h" -#include "ObjectMgr.h" #include "Language.h" -#include "World.h" //music -#include "WorldPacket.h" +#include "Object.h" +#include "Player.h" #include "Util.h" // these variables aren't used outside of this file, so declare them only here diff --git a/src/game/BattleGroundHandler.cpp b/src/game/BattleGroundHandler.cpp index b22c47e75d5..7a772fce8f1 100644 --- a/src/game/BattleGroundHandler.cpp +++ b/src/game/BattleGroundHandler.cpp @@ -19,20 +19,21 @@ */ #include "Common.h" -#include "WorldPacket.h" -#include "Opcodes.h" -#include "Log.h" -#include "Player.h" +#include "ObjectAccessor.h" #include "ObjectMgr.h" +#include "WorldPacket.h" #include "WorldSession.h" -#include "ObjectAccessor.h" -#include "Object.h" -#include "Chat.h" + +#include "ArenaTeam.h" #include "BattleGroundMgr.h" #include "BattleGroundWS.h" #include "BattleGround.h" -#include "ArenaTeam.h" +#include "Chat.h" #include "Language.h" +#include "Log.h" +#include "Player.h" +#include "Object.h" +#include "Opcodes.h" void WorldSession::HandleBattlemasterHelloOpcode( WorldPacket & recv_data ) { diff --git a/src/game/BattleGroundMgr.cpp b/src/game/BattleGroundMgr.cpp index 561953cbf02..ba94f5917c1 100644 --- a/src/game/BattleGroundMgr.cpp +++ b/src/game/BattleGroundMgr.cpp @@ -19,8 +19,12 @@ */ #include "Common.h" -#include "SharedDefines.h" -#include "Player.h" +#include "ObjectMgr.h" +#include "World.h" +#include "WorldPacket.h" +#include "Policies/SingletonImp.h" + +#include "ArenaTeam.h" #include "BattleGroundMgr.h" #include "BattleGroundAV.h" #include "BattleGroundAB.h" @@ -33,18 +37,13 @@ #include "BattleGroundSA.h" #include "BattleGroundDS.h" #include "BattleGroundRV.h" -#include "MapManager.h" +#include "Chat.h" #include "Map.h" #include "MapInstanced.h" -#include "ObjectMgr.h" -#include "ProgressBar.h" -#include "Chat.h" -#include "ArenaTeam.h" -#include "World.h" -#include "WorldPacket.h" +#include "MapManager.h" +#include "Player.h" #include "ProgressBar.h" - -#include "Policies/SingletonImp.h" +#include "SharedDefines.h" INSTANTIATE_SINGLETON_1( BattleGroundMgr ); diff --git a/src/game/BattleGroundMgr.h b/src/game/BattleGroundMgr.h index d9cc9deae13..8d6bd06b020 100644 --- a/src/game/BattleGroundMgr.h +++ b/src/game/BattleGroundMgr.h @@ -23,6 +23,7 @@ #include "Common.h" #include "Policies/Singleton.h" + #include "BattleGround.h" typedef std::map<uint32, BattleGround*> BattleGroundSet; diff --git a/src/game/BattleGroundNA.cpp b/src/game/BattleGroundNA.cpp index f46746829e7..92e71c1c283 100644 --- a/src/game/BattleGroundNA.cpp +++ b/src/game/BattleGroundNA.cpp @@ -18,13 +18,13 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "Object.h" -#include "Player.h" #include "BattleGround.h" #include "BattleGroundNA.h" +#include "Language.h" +#include "Object.h" #include "ObjectMgr.h" +#include "Player.h" #include "WorldPacket.h" -#include "Language.h" BattleGroundNA::BattleGroundNA() { diff --git a/src/game/BattleGroundRL.cpp b/src/game/BattleGroundRL.cpp index f8f8bd9fef5..b9f9943bbf2 100644 --- a/src/game/BattleGroundRL.cpp +++ b/src/game/BattleGroundRL.cpp @@ -18,12 +18,13 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "Object.h" -#include "Player.h" + #include "BattleGround.h" #include "BattleGroundRL.h" -#include "ObjectMgr.h" #include "Language.h" +#include "Object.h" +#include "ObjectMgr.h" +#include "Player.h" #include "WorldPacket.h" BattleGroundRL::BattleGroundRL() diff --git a/src/game/BattleGroundRV.cpp b/src/game/BattleGroundRV.cpp index 8c252c35c97..54070961018 100644 --- a/src/game/BattleGroundRV.cpp +++ b/src/game/BattleGroundRV.cpp @@ -16,10 +16,10 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "Player.h" #include "BattleGround.h" #include "BattleGroundRV.h" #include "Language.h" +#include "Player.h" BattleGroundRV::BattleGroundRV() { diff --git a/src/game/BattleGroundSA.cpp b/src/game/BattleGroundSA.cpp index c52635a04c7..5f20950070d 100644 --- a/src/game/BattleGroundSA.cpp +++ b/src/game/BattleGroundSA.cpp @@ -16,10 +16,10 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "Player.h" #include "BattleGround.h" #include "BattleGroundSA.h" #include "Language.h" +#include "Player.h" BattleGroundSA::BattleGroundSA() { diff --git a/src/game/BattleGroundWS.cpp b/src/game/BattleGroundWS.cpp index 84da0cc9b65..c4a2402ad67 100644 --- a/src/game/BattleGroundWS.cpp +++ b/src/game/BattleGroundWS.cpp @@ -18,16 +18,16 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "Object.h" -#include "Player.h" #include "BattleGround.h" #include "BattleGroundWS.h" #include "Creature.h" #include "GameObject.h" -#include "ObjectMgr.h" -#include "WorldPacket.h" #include "Language.h" +#include "Object.h" +#include "ObjectMgr.h" +#include "Player.h" #include "World.h" +#include "WorldPacket.h" // these variables aren't used outside of this file, so declare them only here enum BG_WSG_Rewards diff --git a/src/game/CalendarHandler.cpp b/src/game/CalendarHandler.cpp index 3cd186c15d3..348cd5297c9 100644 --- a/src/game/CalendarHandler.cpp +++ b/src/game/CalendarHandler.cpp @@ -17,12 +17,13 @@ */ #include "Common.h" -#include "Log.h" -#include "Player.h" #include "WorldPacket.h" #include "WorldSession.h" -#include "Opcodes.h" + #include "InstanceSaveMgr.h" +#include "Log.h" +#include "Opcodes.h" +#include "Player.h" void WorldSession::HandleCalendarGetCalendar(WorldPacket &recv_data) { diff --git a/src/game/Cell.h b/src/game/Cell.h index 7e66d5d9f73..6ccd3c96a00 100644 --- a/src/game/Cell.h +++ b/src/game/Cell.h @@ -21,10 +21,12 @@ #ifndef TRINITY_CELL_H #define TRINITY_CELL_H +#include <cmath> + #include "GameSystem/TypeContainer.h" #include "GameSystem/TypeContainerVisitor.h" + #include "GridDefines.h" -#include <cmath> class Map; diff --git a/src/game/CellImpl.h b/src/game/CellImpl.h index e74e0013a19..362c12579bb 100644 --- a/src/game/CellImpl.h +++ b/src/game/CellImpl.h @@ -21,9 +21,10 @@ #ifndef TRINITY_CELLIMPL_H #define TRINITY_CELLIMPL_H +#include <cmath> + #include "Cell.h" #include "Map.h" -#include <cmath> inline Cell::Cell(CellPair const& p) { diff --git a/src/game/Channel.cpp b/src/game/Channel.cpp index 588eb15f0cc..9bb3463dbdb 100644 --- a/src/game/Channel.cpp +++ b/src/game/Channel.cpp @@ -20,8 +20,8 @@ #include "Channel.h" #include "ObjectMgr.h" -#include "World.h" #include "SocialMgr.h" +#include "World.h" Channel::Channel(const std::string& name, uint32 channel_id) : m_announce(true), m_moderate(false), m_name(name), m_flags(0), m_channelId(channel_id), m_ownerGUID(0) diff --git a/src/game/Channel.h b/src/game/Channel.h index 924046e4739..c2dd5ecd3ac 100644 --- a/src/game/Channel.h +++ b/src/game/Channel.h @@ -21,15 +21,16 @@ #ifndef _CHANNEL_H #define _CHANNEL_H -#include "Common.h" -#include "WorldPacket.h" -#include "Opcodes.h" -#include "Player.h" - #include <list> #include <map> #include <string> +#include "Common.h" + +#include "Opcodes.h" +#include "Player.h" +#include "WorldPacket.h" + enum ChatNotify { CHAT_JOINED_NOTICE = 0x00, //+ "%s joined channel."; diff --git a/src/game/ChannelHandler.cpp b/src/game/ChannelHandler.cpp index 7359c104751..45cdf8c20b2 100644 --- a/src/game/ChannelHandler.cpp +++ b/src/game/ChannelHandler.cpp @@ -18,9 +18,11 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +#include "Policies/SingletonImp.h" + #include "ObjectMgr.h" // for normalizePlayerName #include "ChannelMgr.h" -#include "Policies/SingletonImp.h" INSTANTIATE_SINGLETON_1( AllianceChannelMgr ); INSTANTIATE_SINGLETON_1( HordeChannelMgr ); diff --git a/src/game/ChannelMgr.h b/src/game/ChannelMgr.h index 73e69c371ab..aeecfbfa541 100644 --- a/src/game/ChannelMgr.h +++ b/src/game/ChannelMgr.h @@ -20,13 +20,14 @@ #ifndef TRINITYCORE_CHANNELMGR_H #define TRINITYCORE_CHANNELMGR_H -#include "Channel.h" -#include "Policies/Singleton.h" -#include "World.h" - #include <map> #include <string> +#include "Policies/Singleton.h" + +#include "Channel.h" +#include "World.h" + class ChannelMgr { public: diff --git a/src/game/CharacterHandler.cpp b/src/game/CharacterHandler.cpp index 0f4cb5ee0b5..51731c11a98 100644 --- a/src/game/CharacterHandler.cpp +++ b/src/game/CharacterHandler.cpp @@ -19,28 +19,29 @@ */ #include "Common.h" -#include "Database/DatabaseEnv.h" +#include "ObjectAccessor.h" +#include "ObjectMgr.h" +#include "SystemConfig.h" +#include "World.h" #include "WorldPacket.h" -#include "SharedDefines.h" #include "WorldSession.h" -#include "Opcodes.h" -#include "Log.h" -#include "World.h" -#include "ObjectMgr.h" -#include "Player.h" -#include "Guild.h" -#include "UpdateMask.h" #include "Auth/md5.h" -#include "ObjectAccessor.h" -#include "Group.h" +#include "Database/DatabaseEnv.h" #include "Database/DatabaseImpl.h" + +#include "ArenaTeam.h" +#include "Chat.h" +#include "Group.h" +#include "Guild.h" +#include "Language.h" +#include "Log.h" +#include "Opcodes.h" +#include "Player.h" #include "PlayerDump.h" +#include "SharedDefines.h" #include "SocialMgr.h" +#include "UpdateMask.h" #include "Util.h" -#include "ArenaTeam.h" -#include "Language.h" -#include "Chat.h" -#include "SystemConfig.h" class LoginQueryHolder : public SqlQueryHolder { diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp index f8c217d5c42..785ecf740ac 100644 --- a/src/game/Chat.cpp +++ b/src/game/Chat.cpp @@ -19,20 +19,21 @@ */ #include "Common.h" -#include "Language.h" -#include "Database/DatabaseEnv.h" +#include "ObjectMgr.h" +#include "World.h" #include "WorldPacket.h" #include "WorldSession.h" -#include "Opcodes.h" +#include "Database/DatabaseEnv.h" + +#include "AccountMgr.h" +#include "CellImpl.h" +#include "Chat.h" +#include "GridNotifiersImpl.h" +#include "Language.h" #include "Log.h" -#include "World.h" -#include "ObjectMgr.h" +#include "Opcodes.h" #include "Player.h" #include "UpdateMask.h" -#include "Chat.h" -#include "GridNotifiersImpl.h" -#include "CellImpl.h" -#include "AccountMgr.h" #include "TicketMgr.h" // Supported shift-links (client generated and server side) diff --git a/src/game/ChatHandler.cpp b/src/game/ChatHandler.cpp index 142de50b059..ae9da2d9fe5 100644 --- a/src/game/ChatHandler.cpp +++ b/src/game/ChatHandler.cpp @@ -19,25 +19,26 @@ */ #include "Common.h" -#include "Log.h" +#include "ObjectAccessor.h" +#include "ObjectMgr.h" +#include "World.h" #include "WorldPacket.h" #include "WorldSession.h" -#include "World.h" -#include "Opcodes.h" -#include "ObjectMgr.h" -#include "Chat.h" #include "Database/DatabaseEnv.h" + +#include "CellImpl.h" +#include "Chat.h" #include "ChannelMgr.h" +#include "GridNotifiersImpl.h" #include "Group.h" #include "Guild.h" -#include "ObjectAccessor.h" -#include "ScriptCalls.h" +#include "Language.h" +#include "Log.h" +#include "Opcodes.h" #include "Player.h" +#include "ScriptCalls.h" #include "SpellAuras.h" -#include "Language.h" #include "Util.h" -#include "GridNotifiersImpl.h" -#include "CellImpl.h" void WorldSession::HandleMessagechatOpcode( WorldPacket & recv_data ) { diff --git a/src/game/Corpse.cpp b/src/game/Corpse.cpp index 3df7838cf60..8cc70b3512f 100644 --- a/src/game/Corpse.cpp +++ b/src/game/Corpse.cpp @@ -181,6 +181,8 @@ bool Corpse::LoadFromDB(uint32 guid, Field *fields) float ort = fields[3].GetFloat(); uint32 mapid = fields[4].GetUInt32(); + Object::_Create(guid, 0, HIGHGUID_CORPSE); + if(!LoadValues( fields[5].GetString() )) { sLog.outError("Corpse #%d have broken data in `data` field. Can't be loaded.",guid); diff --git a/src/game/Creature.cpp b/src/game/Creature.cpp index c695993ce26..7f249b36fbd 100644 --- a/src/game/Creature.cpp +++ b/src/game/Creature.cpp @@ -206,12 +206,6 @@ void Creature::SearchFormationAndPath() if(!lowguid) return; - if(isTrigger()) - { - SetDefaultMovementType(IDLE_MOTION_TYPE); - return; - } - bool usePath = (GetDefaultMovementType() == WAYPOINT_MOTION_TYPE); CreatureGroupInfoType::iterator frmdata = CreatureGroupMap.find(lowguid); if(frmdata != CreatureGroupMap.end()) @@ -358,9 +352,9 @@ bool Creature::UpdateEntry(uint32 Entry, uint32 team, const CreatureData *data ) SelectLevel(GetCreatureInfo()); if (team == HORDE) - SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE, GetCreatureInfo()->faction_H); + setFaction(GetCreatureInfo()->faction_H); else - SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE, GetCreatureInfo()->faction_A); + setFaction(GetCreatureInfo()->faction_A); if(GetCreatureInfo()->flags_extra & CREATURE_FLAG_EXTRA_WORLDEVENT) SetUInt32Value(UNIT_NPC_FLAGS,GetCreatureInfo()->npcflag | gameeventmgr.GetNPCFlag(this)); @@ -1450,9 +1444,9 @@ float Creature::GetSpellDamageMod(int32 Rank) bool Creature::CreateFromProto(uint32 guidlow, uint32 Entry, uint32 team, const CreatureData *data) { SetZoneScript(); - if(m_zoneScript) + if(m_zoneScript && data) { - Entry = m_zoneScript->GetCreatureEntry(guidlow, Entry); + Entry = m_zoneScript->GetCreatureEntry(guidlow, data); if(!Entry) return false; } @@ -1721,10 +1715,10 @@ void Creature::setDeathState(DeathState s) if(s == JUST_DIED) { - SetUInt64Value (UNIT_FIELD_TARGET,0); // remove target selection in any cases (can be set at aura remove in Unit::setDeathState) - SetUInt32Value(UNIT_NPC_FLAGS, 0); - //if(!isPet()) - setActive(false); + SetUInt64Value(UNIT_FIELD_TARGET,0); // remove target selection in any cases (can be set at aura remove in Unit::setDeathState) + SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE); + + setActive(false); if(!isPet() && GetCreatureInfo()->SkinLootId) if ( LootTemplates_Skinning.HaveLootFor(GetCreatureInfo()->SkinLootId) ) @@ -1756,6 +1750,8 @@ void Creature::setDeathState(DeathState s) SetMeleeDamageSchool(SpellSchools(cinfo->dmgschool)); LoadCreaturesAddon(true); Motion_Initialize(); + if(GetCreatureData() && GetPhaseMask() != GetCreatureData()->phaseMask) + SetPhaseMask(GetCreatureData()->phaseMask, true); } } @@ -2043,6 +2039,25 @@ void Creature::CallAssistance() } } +void Creature::CallForHelp(float fRadius) +{ + if (fRadius <= 0.0f || !getVictim() || isPet() || isCharmed()) + return; + + CellPair p(MaNGOS::ComputeCellPair(GetPositionX(), GetPositionY())); + Cell cell(p); + cell.data.Part.reserved = ALL_DISTRICT; + cell.SetNoCreate(); + + MaNGOS::CallOfHelpCreatureInRangeDo u_do(this, getVictim(), fRadius); + MaNGOS::CreatureWorker<MaNGOS::CallOfHelpCreatureInRangeDo> worker(this, u_do); + + TypeContainerVisitor<MaNGOS::CreatureWorker<MaNGOS::CallOfHelpCreatureInRangeDo>, GridTypeMapContainer > grid_creature_searcher(worker); + + CellLock<GridReadGuard> cell_lock(cell, p); + cell_lock->Visit(cell_lock, grid_creature_searcher, *GetMap()); +} + bool Creature::CanAssistTo(const Unit* u, const Unit* enemy, bool checkfaction /*= true*/) const { // is it true? diff --git a/src/game/Creature.h b/src/game/Creature.h index 0ee6d4618c7..68c353205f7 100644 --- a/src/game/Creature.h +++ b/src/game/Creature.h @@ -644,6 +644,7 @@ class TRINITY_DLL_SPEC Creature : public Unit Unit* SelectNearestTarget(float dist = 0) const; void DoFleeToGetAssistance(); + void CallForHelp(float fRadius); void CallAssistance(); void SetNoCallAssistance(bool val) { m_AlreadyCallAssistance = val; } void SetNoSearchAssistance(bool val) { m_AlreadySearchedAssistance = val; } diff --git a/src/game/CreatureAI.cpp b/src/game/CreatureAI.cpp index f61aca24405..143dfec99d3 100644 --- a/src/game/CreatureAI.cpp +++ b/src/game/CreatureAI.cpp @@ -149,6 +149,16 @@ bool CreatureAI::UpdateVictim() if(!me->isInCombat()) return false; + if(Unit *victim = me->SelectVictim()) + AttackStart(victim); + return me->getVictim(); +} + +bool CreatureAI::UpdateCombatState() +{ + if(!me->isInCombat()) + return false; + if(!me->HasReactState(REACT_PASSIVE)) { if(Unit *victim = me->SelectVictim()) diff --git a/src/game/CreatureAI.h b/src/game/CreatureAI.h index d9d437c936c..91fabe30448 100644 --- a/src/game/CreatureAI.h +++ b/src/game/CreatureAI.h @@ -72,6 +72,7 @@ class TRINITY_DLL_SPEC CreatureAI : public UnitAI bool UpdateVictim(); bool UpdateVictimWithGaze(); + bool UpdateCombatState(); void SelectNearestTarget(Unit *who); public: diff --git a/src/game/CreatureEventAI.cpp b/src/game/CreatureEventAI.cpp index e2c51f40804..834741fd2ae 100644 --- a/src/game/CreatureEventAI.cpp +++ b/src/game/CreatureEventAI.cpp @@ -29,43 +29,8 @@ #include "GameEventMgr.h" #include "GridNotifiers.h" #include "GridNotifiersImpl.h" -#include "WorldPacket.h" #include "InstanceData.h" -namespace MaNGOS -{ - class CallOfHelpCreatureInRangeDo // do attack at call of help to friendly crearture - { - public: - CallOfHelpCreatureInRangeDo(Unit* funit, Unit* enemy, float range) - : i_funit(funit), i_enemy(enemy), i_range(range) - {} - void operator()(Creature* u) - { - if (u == i_funit) - return; - - if (!u->CanAssistTo(i_funit, i_enemy, false)) - return; - - // too far - if( !i_funit->IsWithinDistInMap(u, i_range) ) - return; - - // only if see assisted creature - if( !i_funit->IsWithinLOSInMap(u) ) - return; - - if(u->AI()) - u->AI()->AttackStart(i_enemy); - } - private: - Unit* const i_funit; - Unit* const i_enemy; - float i_range; - }; -} - bool CreatureEventAIHolder::UpdateRepeatTimer( Creature* creature, uint32 repeatMin, uint32 repeatMax ) { if (repeatMin == repeatMax) @@ -765,21 +730,7 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32 break; case ACTION_T_CALL_FOR_HELP: { - if (!m_creature->getVictim()) - return; - - CellPair p(MaNGOS::ComputeCellPair(m_creature->GetPositionX(), m_creature->GetPositionY())); - Cell cell(p); - cell.data.Part.reserved = ALL_DISTRICT; - cell.SetNoCreate(); - - MaNGOS::CallOfHelpCreatureInRangeDo u_do(m_creature, m_creature->getVictim(), action.call_for_help.radius); - MaNGOS::CreatureWorker<MaNGOS::CallOfHelpCreatureInRangeDo> worker(m_creature, u_do); - - TypeContainerVisitor<MaNGOS::CreatureWorker<MaNGOS::CallOfHelpCreatureInRangeDo>, GridTypeMapContainer > grid_creature_searcher(worker); - - CellLock<GridReadGuard> cell_lock(cell, p); - cell_lock->Visit(cell_lock, grid_creature_searcher, *m_creature->GetMap()); + m_creature->CallForHelp(action.call_for_help.radius); break; } break; diff --git a/src/game/GameObject.cpp b/src/game/GameObject.cpp index 574563edcf7..c8021c8bb8b 100644 --- a/src/game/GameObject.cpp +++ b/src/game/GameObject.cpp @@ -175,7 +175,7 @@ bool GameObject::Create(uint32 guidlow, uint32 name_id, Map *map, uint32 phaseMa m_charges = goinfo->spellcaster.charges; break; case GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING: - m_goValue->building.health = goinfo->building.damagedHealth + goinfo->building.destroyedHealth; + m_goValue->building.health = goinfo->building.intactNumHits + goinfo->building.damagedNumHits; break; } @@ -306,17 +306,13 @@ void GameObject::Update(uint32 /*p_time*/) bool IsBattleGroundTrap = false; //FIXME: this is activation radius (in different casting radius that must be selected from spell data) //TODO: move activated state code (cast itself) to GO_ACTIVATED, in this place only check activating and set state - float radius = 0.0f; - const SpellEntry *spellEntry = sSpellStore.LookupEntry(m_spellId); - if(spellEntry) - radius = GetSpellRadiusForHostile(sSpellRadiusStore.LookupEntry(spellEntry->EffectRadiusIndex[0])); - else - radius = goInfo->trap.radius; + float radius = goInfo->trap.radius; + if(!radius) // i think this is a hack, spell radius is determined by trap radius (spell itself does not have radius) + if(const SpellEntry *spellEntry = sSpellStore.LookupEntry(m_spellId)) + radius = goInfo->trap.radius; if(!radius) { - if(goInfo->trap.cooldown != 3) // cast in other case (at some triggering/linked go/etc explicit call) - return; - else + if(goInfo->trap.cooldown == 3) // cast in other case (at some triggering/linked go/etc explicit call) { if(m_respawnTime > 0) break; @@ -324,13 +320,15 @@ void GameObject::Update(uint32 /*p_time*/) radius = goInfo->trap.cooldown; // battlegrounds gameobjects has data2 == 0 && data5 == 3 IsBattleGroundTrap = true; } + if(!radius) + return; } bool NeedDespawn = (goInfo->trap.charges != 0); // Note: this hack with search required until GO casting not implemented // search unfriendly creature - if(owner && NeedDespawn) // hunter trap + if(owner) // hunter trap { Trinity::AnyUnfriendlyNoTotemUnitInObjectRangeCheck checker(this, owner, radius); Trinity::UnitSearcher<Trinity::AnyUnfriendlyNoTotemUnitInObjectRangeCheck> searcher(this, ok, checker); @@ -350,11 +348,16 @@ void GameObject::Update(uint32 /*p_time*/) if (ok) { + // some traps do not have spell but should be triggered + if(goInfo->trap.spellId) + CastSpell(ok, goInfo->trap.spellId); //Unit *caster = owner ? owner : ok; - - CastSpell(ok, goInfo->trap.spellId); //caster->CastSpell(ok, goInfo->trap.spellId, true, 0, 0, GetGUID()); - m_cooldownTime = time(NULL) + 4; // 4 seconds + + if(goInfo->trap.cooldown) + m_cooldownTime = time(NULL) + goInfo->trap.cooldown; + else + m_cooldownTime = time(NULL) + 4; // 4 seconds if(NeedDespawn) SetLootState(GO_JUST_DEACTIVATED); // can be despawned or destroyed @@ -1447,12 +1450,12 @@ void GameObject::TakenDamage(uint32 damage) SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DESTROYED); SetUInt32Value(GAMEOBJECT_DISPLAYID, m_goInfo->building.destroyedDisplayId); - EventInform(m_goInfo->building.destroyedEventId); + EventInform(m_goInfo->building.damagedEvent); } } else // from intact to damaged { - if(m_goValue->building.health <= m_goInfo->building.destroyedHealth) + if(m_goValue->building.health <= m_goInfo->building.damagedNumHits) { if(!m_goInfo->building.destroyedDisplayId) m_goValue->building.health = 0; @@ -1461,7 +1464,7 @@ void GameObject::TakenDamage(uint32 damage) SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED); SetUInt32Value(GAMEOBJECT_DISPLAYID, m_goInfo->building.damagedDisplayId); - EventInform(m_goInfo->building.damagedEventId); + EventInform(m_goInfo->building.intactEvent); } } } @@ -1470,7 +1473,7 @@ void GameObject::Rebuild() { RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED + GO_FLAG_DESTROYED); SetUInt32Value(GAMEOBJECT_DISPLAYID, m_goInfo->displayId); - m_goValue->building.health = m_goInfo->building.damagedHealth + m_goInfo->building.destroyedHealth; + m_goValue->building.health = m_goInfo->building.intactNumHits + m_goInfo->building.damagedNumHits; } void GameObject::EventInform(uint32 eventId) diff --git a/src/game/GameObject.h b/src/game/GameObject.h index 33c9fa63f9e..bcfdd93c99d 100644 --- a/src/game/GameObject.h +++ b/src/game/GameObject.h @@ -350,16 +350,16 @@ struct GameObjectInfo //33 GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING struct { - uint32 damagedHealth; //0 - uint32 dmgPctState2; //1 + uint32 intactNumHits; //0 + uint32 creditProxyCreature; //1 uint32 state1Name; //2 - uint32 damagedEventId; //3 + uint32 intactEvent; //3 uint32 damagedDisplayId; //4 - uint32 destroyedHealth; //5 - uint32 unk6; - uint32 unk7; - uint32 unk8; - uint32 destroyedEventId; //9 + uint32 damagedNumHits; //5 + uint32 empty3; //6 + uint32 empty4; //7 + uint32 empty5; //8 + uint32 damagedEvent; //9 uint32 destroyedDisplayId; //10 } building; //34 GAMEOBJECT_TYPE_GUILDBANK - empty diff --git a/src/game/GossipDef.cpp b/src/game/GossipDef.cpp index 5191f4e9313..2e98e8c4e06 100644 --- a/src/game/GossipDef.cpp +++ b/src/game/GossipDef.cpp @@ -505,7 +505,7 @@ void PlayerMenu::SendQuestGiverQuestDetails( Quest const *pQuest, uint64 npcGUID for (uint32 i=0; i < QUEST_EMOTE_COUNT; ++i) { data << uint32(pQuest->DetailsEmote[i]); - data << uint32(0); // DetailsEmoteDelay + data << uint32(pQuest->DetailsEmoteDelay[i]); // DetailsEmoteDelay (in ms) } pSession->SendPacket( &data ); @@ -643,7 +643,7 @@ void PlayerMenu::SendQuestQueryResponse( Quest const *pQuest ) sLog.outDebug( "WORLD: Sent SMSG_QUEST_QUERY_RESPONSE questid=%u", pQuest->GetQuestId() ); } -void PlayerMenu::SendQuestGiverOfferReward( Quest const* pQuest, uint64 npcGUID, bool EnbleNext ) +void PlayerMenu::SendQuestGiverOfferReward( Quest const* pQuest, uint64 npcGUID, bool EnableNext ) { std::string Title = pQuest->GetTitle(); std::string OfferRewardText = pQuest->GetOfferRewardText(); @@ -668,7 +668,7 @@ void PlayerMenu::SendQuestGiverOfferReward( Quest const* pQuest, uint64 npcGUID, data << Title; data << OfferRewardText; - data << uint32( EnbleNext ); + data << uint32( EnableNext ); data << uint32(0); // unk uint32 EmoteCount = 0; @@ -682,8 +682,8 @@ void PlayerMenu::SendQuestGiverOfferReward( Quest const* pQuest, uint64 npcGUID, data << EmoteCount; // Emote Count for (uint32 i = 0; i < EmoteCount; ++i) { - data << uint32(0); // Delay Emote - data << pQuest->OfferRewardEmote[i]; + data << uint32(pQuest->OfferRewardEmoteDelay[i]); // Delay Emote + data << uint32(pQuest->OfferRewardEmote[i]); } ItemPrototype const *pItem; diff --git a/src/game/GossipDef.h b/src/game/GossipDef.h index 102a34b5913..88c15f334a1 100644 --- a/src/game/GossipDef.h +++ b/src/game/GossipDef.h @@ -203,7 +203,7 @@ class TRINITY_DLL_SPEC PlayerMenu void SendQuestQueryResponse ( Quest const *pQuest ); void SendQuestGiverQuestDetails( Quest const *pQuest, uint64 npcGUID, bool ActivateAccept); - void SendQuestGiverOfferReward( Quest const* pQuest, uint64 npcGUID, bool EnbleNext ); + void SendQuestGiverOfferReward( Quest const* pQuest, uint64 npcGUID, bool EnableNext ); void SendQuestGiverRequestItems( Quest const *pQuest, uint64 npcGUID, bool Completable, bool CloseOnCancel ); }; #endif diff --git a/src/game/GridNotifiers.h b/src/game/GridNotifiers.h index a1bee4df650..dd82ea2bd78 100644 --- a/src/game/GridNotifiers.h +++ b/src/game/GridNotifiers.h @@ -32,6 +32,7 @@ #include "GameObject.h" #include "Player.h" #include "Unit.h" +#include "CreatureAI.h" class Player; //class Map; @@ -802,6 +803,25 @@ namespace Trinity float i_range; }; + class AnyUnfriendlyVisibleUnitInObjectRangeCheck + { + public: + AnyUnfriendlyVisibleUnitInObjectRangeCheck(WorldObject const* obj, Unit const* funit, float range) + : i_obj(obj), i_funit(funit), i_range(range) {} + + bool operator()(Unit* u) + { + return u->isAlive() + && i_obj->IsWithinDistInMap(u, i_range) + && !i_funit->IsFriendlyTo(u) + && u->isVisibleForOrDetect(i_funit, false); + } + private: + WorldObject const* i_obj; + Unit const* i_funit; + float i_range; + }; + class CreatureWithDbGUIDCheck { public: @@ -905,6 +925,38 @@ namespace Trinity float i_range; }; + // do attack at call of help to friendly crearture + class CallOfHelpCreatureInRangeDo + { + public: + CallOfHelpCreatureInRangeDo(Unit* funit, Unit* enemy, float range) + : i_funit(funit), i_enemy(enemy), i_range(range) + {} + void operator()(Creature* u) + { + if (u == i_funit) + return; + + if (!u->CanAssistTo(i_funit, i_enemy, false)) + return; + + // too far + if (!i_funit->IsWithinDistInMap(u, i_range)) + return; + + // only if see assisted creature + if (!i_funit->IsWithinLOSInMap(u)) + return; + + if (u->AI()) + u->AI()->AttackStart(i_enemy); + } + private: + Unit* const i_funit; + Unit* const i_enemy; + float i_range; + }; + struct AnyDeadUnitCheck { bool operator()(Unit* u) { return !u->isAlive(); } diff --git a/src/game/Group.cpp b/src/game/Group.cpp index a9d06091619..24e5601abe8 100644 --- a/src/game/Group.cpp +++ b/src/game/Group.cpp @@ -1197,7 +1197,7 @@ void Group::_setLeader(const uint64 &guid) void Group::_removeRolls(const uint64 &guid) { - for (Rolls::iterator it = RollId.begin(); it < RollId.end(); ++it) + for (Rolls::iterator it = RollId.begin(); it != RollId.end(); ++it) { Roll* roll = *it; Roll::PlayerVote::iterator itr2 = roll->playerVote.find(guid); diff --git a/src/game/ItemHandler.cpp b/src/game/ItemHandler.cpp index ddb28e0288d..fe291783d38 100644 --- a/src/game/ItemHandler.cpp +++ b/src/game/ItemHandler.cpp @@ -1009,7 +1009,13 @@ void WorldSession::HandleItemNameQueryOpcode(WorldPacket & recv_data) return; } else - sLog.outErrorDb("WORLD: CMSG_ITEM_NAME_QUERY for item %u failed (unknown item)", itemid); + { + // listed in dbc or not expected to exist unknown item + if(sItemStore.LookupEntry(itemid)) + sLog.outErrorDb("WORLD: CMSG_ITEM_NAME_QUERY for item %u failed (item listed in Item.dbc but not exist in DB)", itemid); + else + sLog.outError("WORLD: CMSG_ITEM_NAME_QUERY for item %u failed (unknown item, not listed in Item.dbc)", itemid); + } } void WorldSession::HandleWrapItemOpcode(WorldPacket& recv_data) diff --git a/src/game/Level1.cpp b/src/game/Level1.cpp index 0cde7dc5eb8..86a689e7383 100644 --- a/src/game/Level1.cpp +++ b/src/game/Level1.cpp @@ -2012,7 +2012,7 @@ bool ChatHandler::HandleModifyMountCommand(const char* args) if (needReportToTarget(chr)) ChatHandler(chr).PSendSysMessage(LANG_MOUNT_GIVED, GetNameLink().c_str()); - chr->SetUInt32Value( UNIT_FIELD_FLAGS , 0x001000 ); + chr->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP); chr->Mount(mId); WorldPacket data( SMSG_FORCE_RUN_SPEED_CHANGE, (8+4+1+4) ); diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp index d384efc1b07..2082c7e5339 100644 --- a/src/game/Level3.cpp +++ b/src/game/Level3.cpp @@ -63,6 +63,16 @@ bool ChatHandler::HandleAHBotOptionsCommand(const char* args) if (ahMapIdStr) { ahMapID = (uint32) strtoul(ahMapIdStr, NULL, 0); + switch (ahMapID) + { + case 2: + case 6: + case 7: + break; + default: + opt = NULL; + break; + } } if (!opt) { @@ -7114,8 +7124,7 @@ bool ChatHandler::HandleSendMessageCommand(const char* args) { ///- Find the player Player *rPlayer; - std::string rName; - if(!extractPlayerTarget((char*)args,&rPlayer,NULL,&rName)) + if(!extractPlayerTarget((char*)args,&rPlayer)) return false; char* msg_str = strtok(NULL, ""); @@ -7136,7 +7145,7 @@ bool ChatHandler::HandleSendMessageCommand(const char* args) rPlayer->GetSession()->SendAreaTriggerMessage("|cffff0000[Message from administrator]:|r"); //Confirmation message - std::string nameLink = playerLink(rName); + std::string nameLink = GetNameLink(rPlayer); PSendSysMessage(LANG_SENDMESSAGE,nameLink.c_str(),msg_str); return true; } diff --git a/src/game/LootMgr.cpp b/src/game/LootMgr.cpp index 78977d4a5dd..5654f540da1 100644 --- a/src/game/LootMgr.cpp +++ b/src/game/LootMgr.cpp @@ -1333,7 +1333,7 @@ void LoadLootTemplates_Spell() } // output error for any still listed (not referenced from appropriate table) ids - LootTemplates_QuestMail.ReportUnusedIds(ids_set); + LootTemplates_Spell.ReportUnusedIds(ids_set); } void LoadLootTemplates_Reference() diff --git a/src/game/MovementHandler.cpp b/src/game/MovementHandler.cpp index 9088b1873fa..b155459305d 100644 --- a/src/game/MovementHandler.cpp +++ b/src/game/MovementHandler.cpp @@ -343,6 +343,8 @@ void WorldSession::HandleMovementOpcodes( WorldPacket & recv_data ) else // creature charmed { uint32 entry = mover->GetEntry(); + if(mover->m_Vehicle) + return; mover->GetMap()->CreatureRelocation((Creature*)mover, movementInfo.x, movementInfo.y, movementInfo.z, movementInfo.o); } } diff --git a/src/game/NPCHandler.cpp b/src/game/NPCHandler.cpp index c97196c0d91..7257a8d2682 100644 --- a/src/game/NPCHandler.cpp +++ b/src/game/NPCHandler.cpp @@ -157,7 +157,7 @@ void WorldSession::SendTrainerList( uint64 guid, const std::string& strTitle ) // reputation discount float fDiscountMod = _player->GetReputationPriceDiscount(unit); - bool can_learn_primary_prof = GetPlayer()->GetFreePrimaryProffesionPoints() > 0; + bool can_learn_primary_prof = GetPlayer()->GetFreePrimaryProfessionPoints() > 0; uint32 count = 0; for(TrainerSpellMap::const_iterator itr = trainer_spells->spellList.begin(); itr != trainer_spells->spellList.end(); ++itr) diff --git a/src/game/NullCreatureAI.h b/src/game/NullCreatureAI.h index 347f52228b4..2f481c0a758 100644 --- a/src/game/NullCreatureAI.h +++ b/src/game/NullCreatureAI.h @@ -61,6 +61,7 @@ class TRINITY_DLL_DECL NullCreatureAI : public CreatureAI void AttackStart(Unit *) {} void UpdateAI(const uint32) {} void EnterEvadeMode() {} + void OnCharmed(bool apply) {} static int Permissible(const Creature *) { return PERMIT_BASE_IDLE; } }; diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp index c5271429ddd..8f87e58ed26 100644 --- a/src/game/ObjectMgr.cpp +++ b/src/game/ObjectMgr.cpp @@ -167,7 +167,7 @@ ObjectMgr::~ObjectMgr() void ObjectMgr::LoadPlayerInfoInCache() { - QueryResult *result = CharacterDatabase.PQuery("SELECT guid, name, data, class FROM characters"); + QueryResult *result = CharacterDatabase.PQuery("SELECT guid, name, data, class FROM characters"); if(!result) { sLog.outError( "Loading Player Cache failed."); @@ -892,9 +892,6 @@ void ObjectMgr::LoadEquipmentTemplates() } sLog.outString( ">> Loaded %u equipment template", sEquipmentStorage.RecordCount ); sLog.outString(); - - // Creature items can be not listed in item_template - //sItemStore.Clear(); -- so used in spell casting } CreatureModelInfo const* ObjectMgr::GetCreatureModelInfo(uint32 modelid) @@ -1128,9 +1125,14 @@ void ObjectMgr::LoadCreatures() } // I do not know why but in db most display id are not zero - if(data.displayid == cInfo->Modelid_A1 || data.displayid == cInfo->Modelid_A2 + /*if(data.displayid == 11686 || data.displayid == 24719) + { + (const_cast<CreatureInfo*>(cInfo))->flags_extra |= CREATURE_FLAG_EXTRA_TRIGGER; + } + else if(data.displayid == cInfo->Modelid_A1 || data.displayid == cInfo->Modelid_A2 || data.displayid == cInfo->Modelid_H1 || data.displayid == cInfo->Modelid_H2) data.displayid = 0; + */ if(data.equipmentId > 0) // -1 no equipment, 0 use default { @@ -1172,6 +1174,8 @@ void ObjectMgr::LoadCreatures() sLog.outErrorDb("Table `creature` have creature (GUID: %u Entry: %u) with `MovementType`=1 (random movement) but with `spawndist`=0, replace by idle movement type (0).",guid,data.id ); data.movementType = IDLE_MOTION_TYPE; } + else if(cInfo->flags_extra & CREATURE_FLAG_EXTRA_TRIGGER) + data.movementType = IDLE_MOTION_TYPE; } else if(data.movementType == IDLE_MOTION_TYPE) { @@ -3165,9 +3169,13 @@ void ObjectMgr::LoadQuests() "RewRepFaction1, RewRepFaction2, RewRepFaction3, RewRepFaction4, RewRepFaction5, RewRepValue1, RewRepValue2, RewRepValue3, RewRepValue4, RewRepValue5," // 97 98 99 100 101 102 103 104 105 106 107 "RewHonorableKills, RewOrReqMoney, RewMoneyMaxLevel, RewSpell, RewSpellCast, RewMailTemplateId, RewMailDelaySecs, PointMapId, PointX, PointY, PointOpt," - // 108 109 110 111 112 113 114 115 116 117 - "DetailsEmote1, DetailsEmote2, DetailsEmote3, DetailsEmote4, IncompleteEmote, CompleteEmote, OfferRewardEmote1, OfferRewardEmote2, OfferRewardEmote3, OfferRewardEmote4," - // 118 119 + // 108 109 110 111 112 113 114 115 + "DetailsEmote1, DetailsEmote2, DetailsEmote3, DetailsEmote4, DetailsEmoteDelay1, DetailsEmoteDelay2, DetailsEmoteDelay3, DetailsEmoteDelay4," + // 116 117 118 119 120 121 + "IncompleteEmote, CompleteEmote, OfferRewardEmote1, OfferRewardEmote2, OfferRewardEmote3, OfferRewardEmote4," + // 122 123 124 125 + "OfferRewardEmoteDelay1, OfferRewardEmoteDelay2, OfferRewardEmoteDelay3, OfferRewardEmoteDelay4," + // 126 127 "StartScript, CompleteScript" " FROM quest_template"); if(result == NULL) diff --git a/src/game/Pet.cpp b/src/game/Pet.cpp index fd71d2088b3..caf37a6a61f 100644 --- a/src/game/Pet.cpp +++ b/src/game/Pet.cpp @@ -169,7 +169,7 @@ bool Pet::LoadPetFromDB( Player* owner, uint32 petentry, uint32 petnumber, bool } setPetType(PetType(fields[18].GetUInt8())); - SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE, owner->getFaction()); + setFaction(owner->getFaction()); SetUInt32Value(UNIT_CREATED_BY_SPELL, summon_spell_id); CreatureInfo const *cinfo = GetCreatureInfo(); @@ -185,7 +185,7 @@ bool Pet::LoadPetFromDB( Player* owner, uint32 petentry, uint32 petnumber, bool SetDisplayId(fields[3].GetUInt32()); SetNativeDisplayId(fields[3].GetUInt32()); uint32 petlevel = fields[4].GetUInt32(); - SetUInt32Value(UNIT_NPC_FLAGS, 0); + SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE); SetName(fields[8].GetString()); switch (getPetType()) @@ -736,7 +736,7 @@ bool Pet::CreateBaseAtCreature(Creature* creature) SetUInt32Value(UNIT_FIELD_PET_NAME_TIMESTAMP, 0); SetUInt32Value(UNIT_FIELD_PETEXPERIENCE, 0); SetUInt32Value(UNIT_FIELD_PETNEXTLEVELEXP, objmgr.GetXPForLevel(creature->getLevel())*PET_XP_FACTOR); - SetUInt32Value(UNIT_NPC_FLAGS, 0); + SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE); if(CreatureFamilyEntry const* cFamily = sCreatureFamilyStore.LookupEntry(cinfo->family)) SetName(cFamily->Name[sWorld.GetDefaultDbcLocale()]); @@ -1053,17 +1053,7 @@ void Pet::_LoadSpells() { Field *fields = result->Fetch(); - uint32 spell_id = fields[0].GetUInt32(); - - // load only pet talents, other spell types auto-learned - if(GetTalentSpellCost(spell_id)==0) - { - CharacterDatabase.PExecute("DELETE FROM pet_spell WHERE spell = '%u'",spell_id); - sLog.outError("Table `pet_spell` have non-talent spell %u , spell removed from table for all pets.",spell_id); - continue; - } - - addSpell(spell_id, ActiveStates(fields[1].GetUInt16()), PETSPELL_UNCHANGED,PETSPELL_TALENT); + addSpell(fields[0].GetUInt32(), ActiveStates(fields[1].GetUInt16()), PETSPELL_UNCHANGED); } while( result->NextRow() ); @@ -1077,8 +1067,8 @@ void Pet::_SaveSpells() { ++next; - // save only talent spells for pets, other spells auto-applied - if (itr->second.type != PETSPELL_TALENT) + // prevent saving family passives to DB + if (itr->second.type == PETSPELL_FAMILY) continue; switch(itr->second.state) @@ -1255,9 +1245,6 @@ bool Pet::addSpell(uint32 spell_id,ActiveStates active /*= ACT_DECIDE*/, PetSpel // talent: unlearn all other talent ranks (high and low) if(TalentSpellPos const* talentPos = GetTalentSpellPos(spell_id)) { - // propertly mark spell for allow save - newspell.type = PETSPELL_TALENT; - if(TalentEntry const *talentInfo = sTalentStore.LookupEntry( talentPos->talent_id )) { for(int i=0; i < MAX_TALENT_RANK; ++i) diff --git a/src/game/PetHandler.cpp b/src/game/PetHandler.cpp index d6ffb51f74d..87c667f1e77 100644 --- a/src/game/PetHandler.cpp +++ b/src/game/PetHandler.cpp @@ -627,7 +627,10 @@ void WorldSession::HandlePetCastSpellOpcode( WorldPacket& recvPacket ) } if (caster->GetTypeId() == TYPEID_UNIT && ((Creature*)caster)->GetGlobalCooldown() > 0) + { + caster->SendPetCastFail(spellid, SPELL_FAILED_NOT_READY); return; + } SpellEntry const *spellInfo = sSpellStore.LookupEntry(spellid); if(!spellInfo) @@ -646,8 +649,8 @@ void WorldSession::HandlePetCastSpellOpcode( WorldPacket& recvPacket ) caster->clearUnitState(UNIT_STAT_FOLLOW); - Spell *spell = new Spell(caster, spellInfo, false); - spell->m_cast_count = cast_count; // probably pending spell cast + Spell *spell = new Spell(caster, spellInfo, spellid == 33395); // water elemental can cast freeze as triggered + spell->m_cast_count = spellid == 33395 ? 0 : cast_count; // probably pending spell cast spell->m_targets = targets; SpellCastResult result = spell->CheckPetCast(NULL); diff --git a/src/game/Player.cpp b/src/game/Player.cpp index cf66f09f11e..131d21910bf 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -684,7 +684,7 @@ bool Player::Create( uint32 guidlow, const std::string& name, uint8 race, uint8 InitTaxiNodesForLevel(); InitGlyphsForLevel(); InitTalentForLevel(); - InitPrimaryProffesions(); // to max set before any spell added + InitPrimaryProfessions(); // to max set before any spell added // apply original stats mods before spell loading or item equipment that call before equip _RemoveStatsMods() UpdateMaxHealth(); // Update max Health (for add bonus from stamina) @@ -2971,10 +2971,10 @@ bool Player::addSpell(uint32 spell_id, bool active, bool learning, bool dependen m_usedTalentCount += talentCost; // update free primary prof.points (if any, can be none in case GM .learn prof. learning) - if(uint32 freeProfs = GetFreePrimaryProffesionPoints()) + if(uint32 freeProfs = GetFreePrimaryProfessionPoints()) { if(spellmgr.IsPrimaryProfessionFirstRankSpell(spell_id)) - SetFreePrimaryProffesions(freeProfs-1); + SetFreePrimaryProfessions(freeProfs-1); } // add dependent skills @@ -3181,9 +3181,9 @@ void Player::removeSpell(uint32 spell_id, bool disabled, bool update_action_bar_ // update free primary prof.points (if not overflow setting, can be in case GM use before .learn prof. learning) if(spellmgr.IsPrimaryProfessionFirstRankSpell(spell_id)) { - uint32 freeProfs = GetFreePrimaryProffesionPoints()+1; + uint32 freeProfs = GetFreePrimaryProfessionPoints()+1; if(freeProfs <= sWorld.getConfig(CONFIG_MAX_PRIMARY_TRADE_SKILL)) - SetFreePrimaryProffesions(freeProfs); + SetFreePrimaryProfessions(freeProfs); } // remove dependent skill @@ -3830,7 +3830,7 @@ TrainerSpellState Player::GetTrainerSpellState(TrainerSpell const* trainer_spell return TRAINER_SPELL_GREEN; // check primary prof. limit - if(spellmgr.IsPrimaryProfessionFirstRankSpell(spell->Id) && GetFreePrimaryProffesionPoints() == 0) + if(spellmgr.IsPrimaryProfessionFirstRankSpell(spell->Id) && GetFreePrimaryProfessionPoints() == 0) return TRAINER_SPELL_GREEN_DISABLED; return TRAINER_SPELL_GREEN; @@ -4468,7 +4468,7 @@ void Player::RepopAtGraveyard() AreaTableEntry const *zone = GetAreaEntryByAreaID(GetAreaId()); // Such zones are considered unreachable as a ghost and the player must be automatically revived - if(!isAlive() && zone && zone->flags & AREA_FLAG_NEED_FLY || GetTransport()) + if(!isAlive() && zone && zone->flags & AREA_FLAG_NEED_FLY || GetTransport() || GetPositionZ() < -500.0f) { ResurrectPlayer(0.5f); SpawnCorpseBones(); @@ -14257,7 +14257,7 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder ) return false; } - InitPrimaryProffesions(); // to max set before any spell loaded + InitPrimaryProfessions(); // to max set before any spell loaded // init saved position, and fix it later if problematic uint32 transGUID = fields[24].GetUInt32(); @@ -16664,8 +16664,6 @@ void Player::RemovePet(Pet* pet, PetSaveMode mode, bool returnreagent) void Player::StopCastingCharm() { - ExitVehicle(); - Unit* charm = GetCharm(); if(!charm) return; @@ -16674,6 +16672,8 @@ void Player::StopCastingCharm() { if(((Creature*)charm)->HasSummonMask(SUMMON_MASK_PUPPET)) ((Puppet*)charm)->UnSummon(); + else if(((Creature*)charm)->isVehicle()) + ExitVehicle(); } if(GetCharmGUID()) { @@ -16685,6 +16685,7 @@ void Player::StopCastingCharm() if(GetCharmGUID()) { sLog.outCrash("Player %s is not able to uncharm unit (Entry: %u, Type: %u)", GetName(), charm->GetEntry(), charm->GetTypeId()); + assert(false); } } @@ -16787,7 +16788,7 @@ void Player::PetSpellInitialize() CharmInfo *charmInfo = pet->GetCharmInfo(); - WorldPacket data(SMSG_PET_SPELLS, 8+4+4+4+4*10+1+1); + WorldPacket data(SMSG_PET_SPELLS, 8+4+4+4+4*MAX_UNIT_ACTION_BAR_INDEX+1+1); data << uint64(pet->GetGUID()); data << uint32(pet->GetCreatureInfo()->family); // creature family (required for pet talents) data << uint32(0); @@ -16862,7 +16863,7 @@ void Player::PossessSpellInitialize() return; } - WorldPacket data(SMSG_PET_SPELLS, 8+4+4+4+4*10+1+1); + WorldPacket data(SMSG_PET_SPELLS, 8+4+4+4+4*MAX_UNIT_ACTION_BAR_INDEX+1+1); data << uint64(charm->GetGUID()); data << uint32(0); data << uint32(0); @@ -16942,7 +16943,7 @@ void Player::CharmSpellInitialize() } } - WorldPacket data(SMSG_PET_SPELLS, 8+4+4+4+4*10+1+4*addlist+1); + WorldPacket data(SMSG_PET_SPELLS, 8+4+4+4+4*MAX_UNIT_ACTION_BAR_INDEX+1+4*addlist+1); data << uint64(charm->GetGUID()); data << uint32(0); data << uint32(0); @@ -18371,6 +18372,19 @@ bool Player::IsVisibleGloballyFor( Player* u ) const return true; } +template<class T> +inline void UpdateVisibilityOf_helper(std::set<uint64>& s64, T* target) +{ + s64.insert(target->GetGUID()); +} + +template<> +inline void UpdateVisibilityOf_helper(std::set<uint64>& s64, GameObject* target) +{ + if(!target->IsTransport()) + s64.insert(target->GetGUID()); +} + void Player::UpdateVisibilityOf(WorldObject* target) { if(HaveAtClient(target)) @@ -18391,8 +18405,7 @@ void Player::UpdateVisibilityOf(WorldObject* target) if(target->isVisibleForInState(this,false)) { target->SendUpdateToPlayer(this); - if(target->GetTypeId()!=TYPEID_GAMEOBJECT||!((GameObject*)target)->IsTransport()) - m_clientGUIDs.insert(target->GetGUID()); + UpdateVisibilityOf_helper(m_clientGUIDs, target); #ifdef TRINITY_DEBUG if((sLog.getLogFilter() & LOG_FILTER_VISIBILITY_CHANGES)==0) @@ -18420,23 +18433,8 @@ void Player::SendInitialVisiblePackets(Unit* target) } template<class T> -inline void UpdateVisibilityOf_helper(std::set<uint64>& s64, T* target) -{ - s64.insert(target->GetGUID()); -} - -template<> -inline void UpdateVisibilityOf_helper(std::set<uint64>& s64, GameObject* target) -{ - if(!target->IsTransport()) - s64.insert(target->GetGUID()); -} - -template<class T> void Player::UpdateVisibilityOf(T* target, UpdateData& data, std::set<WorldObject*>& visibleNow) { - if(!target) - return; if(HaveAtClient(target)) { if(!target->isVisibleForInState(this,true)) @@ -18450,7 +18448,7 @@ void Player::UpdateVisibilityOf(T* target, UpdateData& data, std::set<WorldObjec #endif } } - else if(visibleNow.size() < 30) + else if(visibleNow.size() < 30 || target->GetTypeId() == TYPEID_UNIT && ((Creature*)target)->isVehicle()) { if(target->isVisibleForInState(this,false)) { @@ -18466,50 +18464,15 @@ void Player::UpdateVisibilityOf(T* target, UpdateData& data, std::set<WorldObjec } } -/*template<> -void Player::UpdateVisibilityOf<Creature>(Creature* target, UpdateData& data, UpdateDataMapType& data_updates, std::set<WorldObject*>& visibleNow) -{ - if(HaveAtClient(target)) - { - if(!target->isVisibleForInState(this,true)) - { - target->DestroyForPlayer(this); - target->BuildOutOfRangeUpdateBlock(&data); - m_clientGUIDs.erase(target->GetGUID()); - - #ifdef TRINITY_DEBUG - if((sLog.getLogFilter() & LOG_FILTER_VISIBILITY_CHANGES)==0) - sLog.outDebug("Object %u (Type: %u, Entry: %u) is out of range for player %u. Distance = %f",target->GetGUIDLow(),target->GetTypeId(),target->GetEntry(),GetGUIDLow(),GetDistance(target)); - #endif - } - } - else - { - if(target->isVisibleForInState(this,false)) - { - visibleNow.insert(target); - target->BuildUpdate(data_updates); - target->SendUpdateToPlayer(this); - target->SendMonsterMoveWithSpeedToCurrentDestination(this); - UpdateVisibilityOf_helper(m_clientGUIDs,target); - - #ifdef TRINITY_DEBUG - if((sLog.getLogFilter() & LOG_FILTER_VISIBILITY_CHANGES)==0) - sLog.outDebug("Object %u (Type: %u, Entry: %u) is visible now for player %u. Distance = %f",target->GetGUIDLow(),target->GetTypeId(),target->GetEntry(),GetGUIDLow(),GetDistance(target)); - #endif - } - } -}*/ - template void Player::UpdateVisibilityOf(Player* target, UpdateData& data, std::set<WorldObject*>& visibleNow); template void Player::UpdateVisibilityOf(Creature* target, UpdateData& data, std::set<WorldObject*>& visibleNow); template void Player::UpdateVisibilityOf(Corpse* target, UpdateData& data, std::set<WorldObject*>& visibleNow); template void Player::UpdateVisibilityOf(GameObject* target, UpdateData& data, std::set<WorldObject*>& visibleNow); template void Player::UpdateVisibilityOf(DynamicObject* target, UpdateData& data, std::set<WorldObject*>& visibleNow); -void Player::InitPrimaryProffesions() +void Player::InitPrimaryProfessions() { - SetFreePrimaryProffesions(sWorld.getConfig(CONFIG_MAX_PRIMARY_TRADE_SKILL)); + SetFreePrimaryProfessions(sWorld.getConfig(CONFIG_MAX_PRIMARY_TRADE_SKILL)); } void Player::SendComboPoints() diff --git a/src/game/Player.h b/src/game/Player.h index 99b2e61b58f..79c5adc00c1 100644 --- a/src/game/Player.h +++ b/src/game/Player.h @@ -1381,9 +1381,9 @@ class TRINITY_DLL_SPEC Player : public Unit void SetGlyph(uint8 slot, uint32 glyph) { SetUInt32Value(PLAYER_FIELD_GLYPHS_1 + slot, glyph); } uint32 GetGlyph(uint8 slot) { return GetUInt32Value(PLAYER_FIELD_GLYPHS_1 + slot); } - uint32 GetFreePrimaryProffesionPoints() const { return GetUInt32Value(PLAYER_CHARACTER_POINTS2); } - void SetFreePrimaryProffesions(uint16 profs) { SetUInt32Value(PLAYER_CHARACTER_POINTS2, profs); } - void InitPrimaryProffesions(); + uint32 GetFreePrimaryProfessionPoints() const { return GetUInt32Value(PLAYER_CHARACTER_POINTS2); } + void SetFreePrimaryProfessions(uint16 profs) { SetUInt32Value(PLAYER_CHARACTER_POINTS2, profs); } + void InitPrimaryProfessions(); PlayerSpellMap const& GetSpellMap() const { return m_spells; } PlayerSpellMap & GetSpellMap() { return m_spells; } diff --git a/src/game/QueryHandler.cpp b/src/game/QueryHandler.cpp index e5782fcb8df..5d13a6a576a 100644 --- a/src/game/QueryHandler.cpp +++ b/src/game/QueryHandler.cpp @@ -288,21 +288,25 @@ void WorldSession::HandleCorpseQueryOpcode(WorldPacket & /*recv_data*/) float x = corpse->GetPositionX(); float y = corpse->GetPositionY(); float z = corpse->GetPositionZ(); - int32 corpsemapid = _player->GetMapId(); + int32 corpsemapid = mapid; - if(Map *map = MapManager::Instance().FindMap(corpse->GetMapId(), corpse->GetInstanceId())) + // if corpse at different map + if(mapid != _player->GetMapId()) { - if(map->IsDungeon()) + // search entrance map for proper show entrance + if(MapEntry const* corpseMapEntry = sMapStore.LookupEntry(mapid)) { - if(!map->GetEntrancePos(mapid, x, y)) - return; - - Map *entrance_map = MapManager::Instance().GetMap(mapid, _player); - if(!entrance_map) - return; - - z = entrance_map->GetHeight(x, y, MAX_HEIGHT); - corpsemapid = corpse->GetMapId(); + if(corpseMapEntry->IsDungeon() && corpseMapEntry->entrance_map >= 0) + { + // if corpse map have entrance + if(Map const* entranceMap = MapManager::Instance().GetBaseMap(corpseMapEntry->entrance_map)) + { + mapid = corpseMapEntry->entrance_map; + x = corpseMapEntry->entrance_x; + y = corpseMapEntry->entrance_y; + z = entranceMap->GetHeight(x, y, MAX_HEIGHT); + } + } } } diff --git a/src/game/QuestDef.cpp b/src/game/QuestDef.cpp index 8099bf40e88..013d6da1f0f 100644 --- a/src/game/QuestDef.cpp +++ b/src/game/QuestDef.cpp @@ -117,14 +117,20 @@ Quest::Quest(Field * questRecord) for (int i = 0; i < QUEST_EMOTE_COUNT; ++i) DetailsEmote[i] = questRecord[108+i].GetUInt32(); - IncompleteEmote = questRecord[112].GetUInt32(); - CompleteEmote = questRecord[113].GetUInt32(); + for (int i = 0; i < QUEST_EMOTE_COUNT; ++i) + DetailsEmoteDelay[i] = questRecord[112+i].GetUInt32(); + + IncompleteEmote = questRecord[116].GetUInt32(); + CompleteEmote = questRecord[117].GetUInt32(); + + for (int i = 0; i < QUEST_EMOTE_COUNT; ++i) + OfferRewardEmote[i] = questRecord[118+i].GetInt32(); for (int i = 0; i < QUEST_EMOTE_COUNT; ++i) - OfferRewardEmote[i] = questRecord[114+i].GetInt32(); + OfferRewardEmoteDelay[i] = questRecord[122+i].GetInt32(); - QuestStartScript = questRecord[118].GetUInt32(); - QuestCompleteScript = questRecord[119].GetUInt32(); + QuestStartScript = questRecord[126].GetUInt32(); + QuestCompleteScript = questRecord[127].GetUInt32(); QuestFlags |= SpecialFlags << 16; diff --git a/src/game/QuestDef.h b/src/game/QuestDef.h index 242c10bf48f..f6cb2dd5b55 100644 --- a/src/game/QuestDef.h +++ b/src/game/QuestDef.h @@ -241,7 +241,9 @@ class Quest uint32 RewRepFaction[QUEST_REPUTATIONS_COUNT]; int32 RewRepValue[QUEST_REPUTATIONS_COUNT]; uint32 DetailsEmote[QUEST_EMOTE_COUNT]; + uint32 DetailsEmoteDelay[QUEST_EMOTE_COUNT]; uint32 OfferRewardEmote[QUEST_EMOTE_COUNT]; + uint32 OfferRewardEmoteDelay[QUEST_EMOTE_COUNT]; uint32 GetReqItemsCount() const { return m_reqitemscount; } uint32 GetReqCreatureOrGOcount() const { return m_reqCreatureOrGOcount; } diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 8e247230a40..a7e7212f9e9 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -4659,6 +4659,7 @@ SpellCastResult Spell::CheckCast(bool strict) } case SPELL_AURA_MOD_POSSESS: case SPELL_AURA_MOD_CHARM: + //case SPELL_AURA_MOD_POSSESS_PET: { if(m_caster->GetPetGUID()) return SPELL_FAILED_ALREADY_HAVE_SUMMON; @@ -4669,13 +4670,15 @@ SpellCastResult Spell::CheckCast(bool strict) if(m_caster->GetCharmerGUID()) return SPELL_FAILED_CHARMED; - if(!m_targets.getUnitTarget()) + Unit *target = m_targets.getUnitTarget(); + if(!target || target->GetTypeId() == TYPEID_UNIT + && ((Creature*)target)->isVehicle()) return SPELL_FAILED_BAD_IMPLICIT_TARGETS; - if(m_targets.getUnitTarget()->GetCharmerGUID()) + if(target->GetCharmerGUID()) return SPELL_FAILED_CHARMED; - if(int32(m_targets.getUnitTarget()->getLevel()) > CalculateDamage(i,m_targets.getUnitTarget())) + if(int32(target->getLevel()) > CalculateDamage(i, target)) return SPELL_FAILED_HIGHLEVEL; break; @@ -4750,7 +4753,7 @@ SpellCastResult Spell::CheckPetCast(Unit* target) if(!m_caster->isAlive()) return SPELL_FAILED_CASTER_DEAD; - if(m_caster->IsNonMeleeSpellCasted(false)) //prevent spellcast interruption by another spellcast + if(m_caster->hasUnitState(UNIT_STAT_CASTING) && !m_IsTriggeredSpell) //prevent spellcast interruption by another spellcast return SPELL_FAILED_SPELL_IN_PROGRESS; if(m_caster->isInCombat() && IsNonCombatSpell(m_spellInfo)) return SPELL_FAILED_AFFECTING_COMBAT; diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 7ac2ae5f25e..0d4606e6e84 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -345,7 +345,7 @@ pAuraHandler AuraHandler[TOTAL_AURAS]= Aura::Aura(SpellEntry const* spellproto, uint32 effMask, int32 *currentBasePoints, Unit *target, WorldObject *source, Unit *caster, Item* castItem) : m_caster_guid(0), m_castItemGuid(castItem?castItem->GetGUID():0), m_target(target), -m_timeCla(1000), m_removeMode(AURA_REMOVE_BY_DEFAULT), m_AuraDRGroup(DIMINISHING_NONE), +m_timeCla(0), m_removeMode(AURA_REMOVE_BY_DEFAULT), m_AuraDRGroup(DIMINISHING_NONE), m_auraSlot(MAX_AURAS), m_auraLevel(1), m_procCharges(0), m_stackAmount(1),m_auraStateMask(0), m_updated(false), m_isRemoved(false) { assert(target); @@ -356,6 +356,9 @@ m_auraSlot(MAX_AURAS), m_auraLevel(1), m_procCharges(0), m_stackAmount(1),m_aura m_spellProto = spellproto; + if(m_spellProto->manaPerSecond || m_spellProto->manaPerSecondPerLevel) + m_timeCla = 1000; + m_isPassive = IsPassiveSpell(GetId()); m_auraStateMask = 0; @@ -456,10 +459,9 @@ Aura::~Aura() AuraEffect::AuraEffect(Aura * parentAura, uint8 effIndex, int32 * currentBasePoints , Unit *caster, Item* castItem, WorldObject *source) : m_parentAura(parentAura), m_spellmod(NULL), m_periodicTimer(0), m_isPeriodic(false), m_isAreaAura(false), m_isPersistent(false), m_target(parentAura->GetTarget()), m_tickNumber(0) +, m_spellProto(parentAura->GetSpellProto()), m_effIndex(effIndex), m_auraName(AuraType(m_spellProto->EffectApplyAuraName[m_effIndex])) { - m_spellProto = parentAura->GetSpellProto(); - m_effIndex = effIndex; - m_auraName = AuraType(m_spellProto->EffectApplyAuraName[m_effIndex]); + assert(m_auraName < TOTAL_AURAS); if(currentBasePoints) m_currentBasePoints = *currentBasePoints; @@ -533,12 +535,12 @@ AreaAuraEffect::AreaAuraEffect(Aura * parentAura, uint32 effIndex, int32 * curre case SPELL_EFFECT_APPLY_AREA_AURA_PARTY: m_areaAuraType = AREA_AURA_PARTY; if(m_target->GetTypeId() == TYPEID_UNIT && ((Creature*)m_target)->isTotem()) - m_auraName = SPELL_AURA_NONE; + *const_cast<AuraType*>(&m_auraName) = SPELL_AURA_NONE; break; case SPELL_EFFECT_APPLY_AREA_AURA_RAID: m_areaAuraType = AREA_AURA_RAID; if(m_target->GetTypeId() == TYPEID_UNIT && ((Creature*)m_target)->isTotem()) - m_auraName = SPELL_AURA_NONE; + *const_cast<AuraType*>(&m_auraName) = SPELL_AURA_NONE; break; case SPELL_EFFECT_APPLY_AREA_AURA_FRIEND: m_areaAuraType = AREA_AURA_FRIEND; @@ -546,7 +548,7 @@ AreaAuraEffect::AreaAuraEffect(Aura * parentAura, uint32 effIndex, int32 * curre case SPELL_EFFECT_APPLY_AREA_AURA_ENEMY: m_areaAuraType = AREA_AURA_ENEMY; if(m_target == caster_ptr) - m_auraName = SPELL_AURA_NONE; // Do not do any effect on self + *const_cast<AuraType*>(&m_auraName) = SPELL_AURA_NONE; // Do not do any effect on self break; case SPELL_EFFECT_APPLY_AREA_AURA_PET: m_areaAuraType = AREA_AURA_PET; @@ -554,7 +556,7 @@ AreaAuraEffect::AreaAuraEffect(Aura * parentAura, uint32 effIndex, int32 * curre case SPELL_EFFECT_APPLY_AREA_AURA_OWNER: m_areaAuraType = AREA_AURA_OWNER; if(m_target == caster_ptr) - m_auraName = SPELL_AURA_NONE; + *const_cast<AuraType*>(&m_auraName) = SPELL_AURA_NONE; break; default: sLog.outError("Wrong spell effect in AreaAura constructor"); @@ -628,15 +630,15 @@ void Aura::Update(uint32 diff) m_duration = 0; // all spells with manaPerSecond/manaPerSecondPerLevel have aura in effect 0 - if(m_timeCla > 0) - m_timeCla -= diff; - if(m_timeCla <= 0) + if(m_timeCla) { - if(Unit* caster = GetCaster()) + if(m_timeCla > diff) + m_timeCla -= diff; + else if(Unit* caster = GetCaster()) { if(int32 manaPerSecond = m_spellProto->manaPerSecond + m_spellProto->manaPerSecondPerLevel * caster->getLevel()) { - m_timeCla = 1000; + m_timeCla += 1000 - diff; Powers powertype = Powers(m_spellProto->powerType); if(powertype == POWER_HEALTH) @@ -673,13 +675,14 @@ void AuraEffect::Update(uint32 diff) { if (m_isPeriodic && (GetParentAura()->GetAuraDuration() >=0 || GetParentAura()->IsPassive() || GetParentAura()->IsPermanent())) { - m_periodicTimer -= diff; - if(m_periodicTimer <= 0) // tick also at m_periodicTimer==0 to prevent lost last tick in case max m_duration == (max m_periodicTimer)*N + if(m_periodicTimer > diff) + m_periodicTimer -= diff; + else // tick also at m_periodicTimer==0 to prevent lost last tick in case max m_duration == (max m_periodicTimer)*N { ++m_tickNumber; // update before applying (aura can be removed in TriggerSpell or PeriodicTick calls) - m_periodicTimer += m_amplitude; + m_periodicTimer += m_amplitude - diff; if(!m_target->hasUnitState(UNIT_STAT_ISOLATED)) PeriodicTick(); @@ -856,8 +859,7 @@ void AuraEffect::ApplyModifier(bool apply, bool Real, bool changeAmount) if (GetParentAura()->IsRemoved()) return; - if(m_auraName<TOTAL_AURAS) - (*this.*AuraHandler [m_auraName])(apply,Real, changeAmount); + (*this.*AuraHandler [m_auraName])(apply,Real, changeAmount); } void AuraEffect::RecalculateAmount(bool applied) @@ -3529,7 +3531,7 @@ void AuraEffect::HandleAuraModScale(bool apply, bool Real, bool /*changeAmount*/ if( apply ) { m_target->SetCharmerGUID(GetCasterGUID()); - m_target->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE,caster->getFaction()); + m_target->setFaction(caster->getFaction()); caster->SetCharm(m_target); @@ -3571,7 +3573,7 @@ void AuraEffect::HandleAuraModScale(bool apply, bool Real, bool /*changeAmount*/ else if(m_target->GetTypeId() == TYPEID_UNIT) { CreatureInfo const *cinfo = ((Creature*)m_target)->GetCreatureInfo(); - m_target->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE,cinfo->faction_A); + m_target->setFaction(cinfo->faction_A); } caster->SetCharm(NULL); @@ -3664,8 +3666,8 @@ void AuraEffect::HandleAuraModPetTalentsPoints(bool Apply, bool Real, bool chang if( apply ) { m_target->SetCharmerGUID(GetCasterGUID()); - m_target->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE,caster->getFaction()); - m_target->CastStop(m_target==caster ? GetId() : 0); + m_target->setFaction(caster->getFaction()); + m_target->CastStop(m_target == caster ? GetId() : 0); caster->SetCharm(m_target); m_target->CombatStop(); @@ -3713,12 +3715,12 @@ void AuraEffect::HandleAuraModPetTalentsPoints(bool Apply, bool Real, bool chang if(((Creature*)m_target)->isPet()) { if(Unit* owner = m_target->GetOwner()) - m_target->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE,owner->getFaction()); + m_target->setFaction(owner->getFaction()); else if(cinfo) - m_target->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE,cinfo->faction_A); + m_target->setFaction(cinfo->faction_A); } else if(cinfo) // normal creature - m_target->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE,cinfo->faction_A); + m_target->setFaction(cinfo->faction_A); // restore UNIT_FIELD_BYTES_0 if(cinfo && caster->GetTypeId() == TYPEID_PLAYER && caster->getClass() == CLASS_WARLOCK && cinfo->type == CREATURE_TYPE_DEMON) @@ -4979,6 +4981,10 @@ void AuraEffect::HandleAuraModIncreaseHealth(bool apply, bool Real, bool changeA { if(apply) { + // Vampiric Blood + if(GetSpellProto()->Id == 55233) + m_amount = m_target->GetMaxHealth() * m_amount / 100; + m_target->HandleStatModifier(UNIT_MOD_HEALTH, TOTAL_VALUE, float(m_amount), apply); m_target->ModifyHealth(m_amount); } @@ -6626,20 +6632,53 @@ void AuraEffect::PeriodicDummyTick() { switch (spell->Id) { - // Killing Spree -// case 51690: break; - // Overkill - case 58428: - if (!m_target->HasAuraType(SPELL_AURA_MOD_STEALTH)) - m_target->RemoveAurasDueToSpell(58427); - break; // Master of Subtlety case 31666: if (!m_target->HasAuraType(SPELL_AURA_MOD_STEALTH)) m_target->RemoveAurasDueToSpell(31665); break; - default: + // Killing Spree + case 51690: + { + std::list<Unit*> targets; + { + // eff_radius ==0 + float radius = GetSpellMaxRange(spell, false); + + CellPair p(MaNGOS::ComputeCellPair(caster->GetPositionX(),caster->GetPositionY())); + Cell cell(p); + cell.data.Part.reserved = ALL_DISTRICT; + + MaNGOS::AnyUnfriendlyVisibleUnitInObjectRangeCheck u_check(caster, caster, radius); + MaNGOS::UnitListSearcher<MaNGOS::AnyUnfriendlyVisibleUnitInObjectRangeCheck> checker(caster,targets, u_check); + + TypeContainerVisitor<MaNGOS::UnitListSearcher<MaNGOS::AnyUnfriendlyVisibleUnitInObjectRangeCheck>, GridTypeMapContainer > grid_object_checker(checker); + TypeContainerVisitor<MaNGOS::UnitListSearcher<MaNGOS::AnyUnfriendlyVisibleUnitInObjectRangeCheck>, WorldTypeMapContainer > world_object_checker(checker); + + CellLock<GridReadGuard> cell_lock(cell, p); + + cell_lock->Visit(cell_lock, grid_object_checker, *caster->GetMap()); + cell_lock->Visit(cell_lock, world_object_checker, *caster->GetMap()); + } + + if(targets.empty()) + return; + + std::list<Unit*>::const_iterator itr = targets.begin(); + std::advance(itr, rand()%targets.size()); + Unit* target = *itr; + + caster->CastSpell(target, 57840, true); + caster->CastSpell(target, 57841, true); + return; + } + // Overkill + case 58428: + if (!m_target->HasAuraType(SPELL_AURA_MOD_STEALTH)) + m_target->RemoveAurasDueToSpell(58427); break; +// default: +// break; } break; } @@ -6814,7 +6853,7 @@ void AuraEffect::HandleAuraControlVehicle(bool apply, bool Real, bool /*changeAm if(!caster || caster == m_target) return; - Vehicle *vehicle = dynamic_cast<Vehicle*>(m_target); + Vehicle * const vehicle = dynamic_cast<Vehicle * const>(m_target); if (apply) { @@ -6904,10 +6943,10 @@ void AuraEffect::HandleModPossess(bool apply, bool Real, bool /*changeAmount*/) if(m_target->getLevel() > m_amount) return; - m_target->SetCharmedOrPossessedBy(caster, true); + m_target->SetCharmedBy(caster, CHARM_TYPE_POSSESS); } else - m_target->RemoveCharmedOrPossessedBy(caster); + m_target->RemoveCharmedBy(caster); } void AuraEffect::HandleModPossessPet(bool apply, bool Real, bool /*changeAmount*/) @@ -6924,11 +6963,11 @@ void AuraEffect::HandleModPossessPet(bool apply, bool Real, bool /*changeAmount* if(caster->GetGuardianPet() != m_target) return; - m_target->SetCharmedOrPossessedBy(caster, true); + m_target->SetCharmedBy(caster, CHARM_TYPE_POSSESS); } else { - m_target->RemoveCharmedOrPossessedBy(caster); + m_target->RemoveCharmedBy(caster); // Reinitialize the pet bar and make the pet come back to the owner ((Player*)caster)->PetSpellInitialize(); @@ -6952,10 +6991,10 @@ void AuraEffect::HandleModCharm(bool apply, bool Real, bool /*changeAmount*/) if(int32(m_target->getLevel()) > m_amount) return; - m_target->SetCharmedOrPossessedBy(caster, false); + m_target->SetCharmedBy(caster, CHARM_TYPE_CHARM); } else - m_target->RemoveCharmedOrPossessedBy(caster); + m_target->RemoveCharmedBy(caster); } void AuraEffect::HandlePhase(bool apply, bool Real, bool /*changeAmount*/) diff --git a/src/game/SpellAuras.h b/src/game/SpellAuras.h index 20d27e915c1..579794e3da2 100644 --- a/src/game/SpellAuras.h +++ b/src/game/SpellAuras.h @@ -377,11 +377,11 @@ class TRINITY_DLL_SPEC AuraEffect Unit * const m_target; uint64 m_sourceGUID; // Spell::m_caster/trap? for normal aura, totem/paladin for areaaura, dynobj for persistent aura - SpellEntry const *m_spellProto; uint32 m_tickNumber; - uint8 m_effIndex; - AuraType m_auraName; + const SpellEntry * const m_spellProto; + const uint8 m_effIndex; + const AuraType m_auraName; int32 m_currentBasePoints; int32 m_amount; diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index a6d5cb2ce74..4ec6a30ae3d 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -3295,7 +3295,8 @@ void Spell::EffectSummonType(uint32 i) return; //vehicle->SetUInt64Value(UNIT_FIELD_SUMMONEDBY, m_caster->GetGUID()); - vehicle->setFaction(m_caster->getFaction()); + if(m_originalCaster) + vehicle->setFaction(m_originalCaster->getFaction()); vehicle->SetUInt32Value(UNIT_CREATED_BY_SPELL, m_spellInfo->Id); break; } @@ -3963,7 +3964,8 @@ void Spell::EffectTameCreature(uint32 /*i*/) finish(); Pet* pet = m_caster->CreateTamedPetFrom(creatureTarget,m_spellInfo->Id); - if(!pet) return; + if(!pet) // in versy specific state like near world end/etc. + return; // kill original creature creatureTarget->setDeathState(JUST_DIED); @@ -4891,6 +4893,10 @@ void Spell::EffectScriptEffect(uint32 effIndex) if(unitTarget) m_caster->CastSpell(unitTarget, 52125, false); return; + case 52479: // Gift of the Harvester + if(unitTarget && m_originalCaster) + m_originalCaster->CastSpell(unitTarget, urand(0, 1) ? damage : 52505, true); + return; // Death Gate case 52751: { diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp index da571c83975..99c113a5eb5 100644 --- a/src/game/SpellMgr.cpp +++ b/src/game/SpellMgr.cpp @@ -3370,6 +3370,7 @@ void SpellMgr::LoadSpellCustomAttr() case 39365: // Thundering Storm case 41071: // Raise Dead (HACK) case 52124: // Sky Darkener Assault + case 52479: // Gift of the Harvester spellInfo->MaxAffectedTargets = 1; break; case 41376: // Spite diff --git a/src/game/TemporarySummon.cpp b/src/game/TemporarySummon.cpp index 2be94e29c38..d4c4d54fb1d 100644 --- a/src/game/TemporarySummon.cpp +++ b/src/game/TemporarySummon.cpp @@ -332,7 +332,7 @@ void Puppet::InitStats(uint32 duration) void Puppet::InitSummon() { Minion::InitSummon(); - SetCharmedOrPossessedBy(m_owner, true); + SetCharmedBy(m_owner, CHARM_TYPE_POSSESS); } void Puppet::Update(uint32 time) @@ -351,6 +351,6 @@ void Puppet::RemoveFromWorld() if(!IsInWorld()) return; - RemoveCharmedOrPossessedBy(NULL); + RemoveCharmedBy(NULL); Minion::RemoveFromWorld(); } diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 9bef10368d8..914842ffab8 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -2095,7 +2095,7 @@ void Unit::CalcAbsorbResist(Unit *pVictim,SpellSchoolMask schoolMask, DamageEffe // This, if I'm not mistaken, shows that we get back ~2% of the absorbed damage as runic power. int32 absorbed = RemainingDamage * currentAbsorb / 100; int32 regen = absorbed * 2 / 10; - pVictim->CastCustomSpell(pVictim, 49088, ®en, 0, 0, true, 0, (*i)); + pVictim->CastCustomSpell(pVictim, 49088, ®en, NULL, NULL, true, NULL, *i); RemainingDamage -= absorbed; continue; } @@ -3305,12 +3305,11 @@ uint32 Unit::GetWeaponSkillValue (WeaponAttackType attType, Unit const* target) void Unit::_DeleteAuras() { - for (AuraList::iterator i = m_removedAuras.begin(); i != m_removedAuras.end();i = m_removedAuras.begin()) + while(!m_removedAuras.empty()) { - Aura * Aur = *i; - sLog.outDebug("Aura %d is deleted from unit %d", Aur->GetId(), GetGUIDLow()); + delete m_removedAuras.front(); m_removedAuras.pop_front(); - delete (Aur); +// sLog.outDebug("Aura %d is deleted from unit %d", Aur->GetId(), GetGUIDLow()); } } @@ -3320,7 +3319,7 @@ void Unit::_UpdateSpells( uint32 time ) _UpdateAutoRepeatSpell(); // remove finished spells from current pointers - for (uint32 i = 0; i < CURRENT_MAX_SPELL; i++) + for (uint32 i = 0; i < CURRENT_MAX_SPELL; ++i) { if (m_currentSpells[i] && m_currentSpells[i]->getState() == SPELL_STATE_FINISHED) { @@ -3371,20 +3370,18 @@ void Unit::_UpdateSpells( uint32 time ) if(!m_gameObj.empty()) { - GameObjectList::iterator ite1, dnext1; - for (ite1 = m_gameObj.begin(); ite1 != m_gameObj.end(); ite1 = dnext1) + GameObjectList::iterator itr; + for(itr = m_gameObj.begin(); itr != m_gameObj.end();) { - dnext1 = ite1; - //(*i)->Update( difftime ); - if( !(*ite1)->isSpawned() ) + if( !(*itr)->isSpawned() ) { - (*ite1)->SetOwnerGUID(0); - (*ite1)->SetRespawnTime(0); - (*ite1)->Delete(); - dnext1 = m_gameObj.erase(ite1); + (*itr)->SetOwnerGUID(0); + (*itr)->SetRespawnTime(0); + (*itr)->Delete(); + m_gameObj.erase(itr++); } else - ++dnext1; + ++itr; } } } @@ -4099,7 +4096,6 @@ void Unit::RemoveAurasDueToItemSpell(Item* castItem,uint32 spellId) void Unit::RemoveAurasByType(AuraType auraType, uint64 casterGUID, Aura * except) { - if (auraType >= TOTAL_AURAS) return; for (AuraEffectList::iterator iter = m_modAuras[auraType].begin(); iter != m_modAuras[auraType].end();) { Aura * aur = (*iter)->GetParentAura(); @@ -4116,7 +4112,6 @@ void Unit::RemoveAurasByType(AuraType auraType, uint64 casterGUID, Aura * except void Unit::RemoveAurasByTypeWithDispel(AuraType auraType, Spell * spell) { - if (auraType >= TOTAL_AURAS) return; std::queue < std::pair < uint32, uint64 > > remove_list; for (AuraEffectList::iterator iter = m_modAuras[auraType].begin(); iter != m_modAuras[auraType].end();++iter) @@ -5498,8 +5493,8 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger target = GetGuardianPet(); if (!target) return false; - triggered_spell_id = 54181; basepoints0 = damage * 15 / 100; + triggered_spell_id = 54181; break; } switch(dummySpell->Id) @@ -6061,13 +6056,18 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger int32 holy = caster->SpellBaseDamageBonus(SPELL_SCHOOL_MASK_HOLY) + caster->SpellBaseDamageBonusForVictim(SPELL_SCHOOL_MASK_HOLY, this); basepoints0 = int32(ap*0.10f + 0.10f*holy); - pVictim->CastCustomSpell(pVictim, 20267, &basepoints0, 0, 0, true, 0, triggeredByAura); + pVictim->CastCustomSpell(pVictim, 20267, &basepoints0, NULL, NULL, true, NULL, triggeredByAura); return true; } // Judgement of Wisdom case 20186: { - pVictim->CastSpell(pVictim, 20268, true, NULL, triggeredByAura); + if (pVictim->getPowerType() == POWER_MANA) + { + // 2% of maximum mana + basepoints0 = int32(pVictim->GetMaxPower(POWER_MANA) * 2 / 100); + pVictim->CastCustomSpell(pVictim, 20268, &basepoints0, NULL, NULL, true, NULL, triggeredByAura); + } return true; } // Holy Power (Redemption Armor set) @@ -6101,6 +6101,29 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger } break; } + // Blessing of Sanctuary + case 20911: + { + if (target->GetTypeId() != TYPEID_PLAYER) + return false; + + target = this; + switch (target->getPowerType()) + { + case POWER_MANA: + triggered_spell_id = 57319; + break; + case POWER_RAGE: + triggered_spell_id = 57320; + break; + case POWER_RUNIC_POWER: + triggered_spell_id = 57321; + break; + default: + return false; + } + break; + } // Seal of Vengeance (damage calc on apply aura) case 31801: { @@ -6203,7 +6226,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger if (procSpell->Effect[i] == SPELL_EFFECT_ENERGIZE) { int32 mana = procSpell->EffectBasePoints[i]; - CastCustomSpell(this, 54986, 0, &mana, 0, true, castItem, triggeredByAura); + CastCustomSpell(this, 54986, NULL, &mana, NULL, true, castItem, triggeredByAura); break; } return true; @@ -7322,7 +7345,7 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, AuraEffect* trig case SPELL_SCHOOL_NATURE: trigger_spell_id = 50488; break; case SPELL_SCHOOL_FROST: trigger_spell_id = 50485; break; case SPELL_SCHOOL_SHADOW: trigger_spell_id = 50489; break; - case SPELL_SCHOOL_ARCANE: trigger_spell_id = 54373; break; + case SPELL_SCHOOL_ARCANE: trigger_spell_id = 50486; break; default: return false; } @@ -7649,7 +7672,7 @@ bool Unit::HandleOverrideClassScriptAuraProc(Unit *pVictim, uint32 damage, AuraE return false; int32 cost = procSpell->manaCost + procSpell->ManaCostPercentage * GetCreateMana() / 100; int32 basepoints0 = cost * triggeredByAura->GetAmount()/100; - CastCustomSpell(this, 47762, &basepoints0, 0, 0, true, 0, triggeredByAura); + CastCustomSpell(this, 47762, &basepoints0, NULL, NULL, true, NULL, triggeredByAura); return true; } // Rapture @@ -11655,7 +11678,10 @@ void Unit::RemoveFromWorld() ExitVehicle(); if(GetCharmerGUID()) + { sLog.outCrash("Unit %u has charmer guid when removed from world", GetEntry()); + assert(false); + } WorldObject::RemoveFromWorld(); } @@ -11701,7 +11727,7 @@ void Unit::UpdateCharmAI() if(isCharmed()) { i_disabledAI = i_AI; - if(isPossessed()) + if(isPossessed() || ((Creature*)this)->isVehicle()) i_AI = new PossessedAI((Creature*)this); else i_AI = new PetAI((Creature*)this); @@ -11996,10 +12022,10 @@ typedef std::list< ProcTriggeredData > ProcTriggeredList; // for example SPELL_AURA_MECHANIC_IMMUNITY - need check for mechanic bool InitTriggerAuraData() { - for (int i=0;i<TOTAL_AURAS;i++) + for (int i = 0; i < TOTAL_AURAS; ++i) { - isTriggerAura[i]=false; - isNonTriggerAura[i] = false; + isTriggerAura[i]=false; + isNonTriggerAura[i] = false; } isTriggerAura[SPELL_AURA_DUMMY] = true; isTriggerAura[SPELL_AURA_MOD_CONFUSE] = true; @@ -12950,7 +12976,7 @@ Pet* Unit::CreateTamedPetFrom(Creature* creatureTarget,uint32 spell_id) } pet->SetCreatorGUID(GetGUID()); - pet->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE, getFaction()); + pet->setFaction(getFaction()); pet->SetUInt32Value(UNIT_CREATED_BY_SPELL, spell_id); if(GetTypeId()==TYPEID_PLAYER) @@ -13524,12 +13550,13 @@ void Unit::SetConfused(bool apply) ((Player*)this)->SetClientControl(this, !apply); } -void Unit::SetCharmedOrPossessedBy(Unit* charmer, bool possess) +void Unit::SetCharmedBy(Unit* charmer, CharmType type) { if(!charmer) return; - assert(!possess || charmer->GetTypeId() == TYPEID_PLAYER); + assert(type != CHARM_TYPE_POSSESS || charmer->GetTypeId() == TYPEID_PLAYER); + assert(type != CHARM_TYPE_VEHICLE || GetTypeId() == TYPEID_UNIT && ((Creature*)this)->isVehicle()); if(this == charmer) return; @@ -13580,50 +13607,57 @@ void Unit::SetCharmedOrPossessedBy(Unit* charmer, bool possess) } // Pets already have a properly initialized CharmInfo, don't overwrite it. - if(GetTypeId() == TYPEID_PLAYER || GetTypeId() == TYPEID_UNIT - && !((Creature*)this)->HasSummonMask(SUMMON_MASK_GUARDIAN)) + if(type != CHARM_TYPE_VEHICLE && !GetCharmInfo()) { CharmInfo *charmInfo = InitCharmInfo(); - if(possess) + if(type == CHARM_TYPE_POSSESS) charmInfo->InitPossessCreateSpells(); else charmInfo->InitCharmCreateSpells(); } - //Set possessed - if(possess) - { - addUnitState(UNIT_STAT_POSSESSED); - SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNK_24); - ((Player*)charmer)->SetClientControl(this, 1); - ((Player*)charmer)->SetViewpoint(this, true); - charmer->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE); - } - // Charm demon - else if(GetTypeId() == TYPEID_UNIT && charmer->GetTypeId() == TYPEID_PLAYER && charmer->getClass() == CLASS_WARLOCK) + if(charmer->GetTypeId() == TYPEID_PLAYER) { - CreatureInfo const *cinfo = ((Creature*)this)->GetCreatureInfo(); - if(cinfo && cinfo->type == CREATURE_TYPE_DEMON) + switch(type) { - //to prevent client crash - //SetFlag(UNIT_FIELD_BYTES_0, 2048); + case CHARM_TYPE_VEHICLE: + ((Player*)charmer)->SetViewpoint(this, true); + ((Player*)charmer)->VehicleSpellInitialize(); + break; + case CHARM_TYPE_POSSESS: + addUnitState(UNIT_STAT_POSSESSED); + SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNK_24); + charmer->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE); + ((Player*)charmer)->SetClientControl(this, 1); + ((Player*)charmer)->SetViewpoint(this, true); + ((Player*)charmer)->PossessSpellInitialize(); + break; + case CHARM_TYPE_CHARM: + if(GetTypeId() == TYPEID_UNIT && charmer->getClass() == CLASS_WARLOCK) + { + CreatureInfo const *cinfo = ((Creature*)this)->GetCreatureInfo(); + if(cinfo && cinfo->type == CREATURE_TYPE_DEMON) + { + //to prevent client crash + //SetFlag(UNIT_FIELD_BYTES_0, 2048); - //just to enable stat window - if(GetCharmInfo()) - GetCharmInfo()->SetPetNumber(objmgr.GeneratePetNumber(), true); + //just to enable stat window + if(GetCharmInfo()) + GetCharmInfo()->SetPetNumber(objmgr.GeneratePetNumber(), true); - //if charmed two demons the same session, the 2nd gets the 1st one's name - SetUInt32Value(UNIT_FIELD_PET_NAME_TIMESTAMP, time(NULL)); + //if charmed two demons the same session, the 2nd gets the 1st one's name + SetUInt32Value(UNIT_FIELD_PET_NAME_TIMESTAMP, time(NULL)); + } + } + ((Player*)charmer)->CharmSpellInitialize(); + break; + default: + break; } - } - - if(possess) - ((Player*)charmer)->PossessSpellInitialize(); - else if(charmer->GetTypeId() == TYPEID_PLAYER) - ((Player*)charmer)->CharmSpellInitialize(); + } } -void Unit::RemoveCharmedOrPossessedBy(Unit *charmer) +void Unit::RemoveCharmedBy(Unit *charmer) { if(!isCharmed()) return; @@ -13633,7 +13667,13 @@ void Unit::RemoveCharmedOrPossessedBy(Unit *charmer) else if(charmer != GetCharmer()) // one aura overrides another? return; - bool possess = hasUnitState(UNIT_STAT_POSSESSED); + CharmType type; + if(hasUnitState(UNIT_STAT_POSSESSED)) + type = CHARM_TYPE_POSSESS; + else if(this == charmer->m_Vehicle) + type = CHARM_TYPE_VEHICLE; + else + type = CHARM_TYPE_CHARM; CastStop(); CombatStop(); //TODO: CombatStop(true) may cause crash (interrupt spells) @@ -13642,7 +13682,7 @@ void Unit::RemoveCharmedOrPossessedBy(Unit *charmer) RestoreFaction(); GetMotionMaster()->InitDefault(); - if(possess) + if(type == CHARM_TYPE_POSSESS) { clearUnitState(UNIT_STAT_POSSESSED); RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNK_24); @@ -13650,20 +13690,18 @@ void Unit::RemoveCharmedOrPossessedBy(Unit *charmer) if(GetTypeId() == TYPEID_UNIT) { - if(!((Creature*)this)->isPet()) - RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE); - ((Creature*)this)->AI()->OnCharmed(false); - if(isAlive() && ((Creature*)this)->IsAIEnabled) + if(isAlive() && charmer && !IsFriendlyTo(charmer)) + ((Creature*)this)->AddThreat(charmer, 10000.0f); + /*if(isAlive() && ((Creature*)this)->IsAIEnabled) { if(charmer && !IsFriendlyTo(charmer)) { - ((Creature*)this)->AddThreat(charmer, 10000.0f); ((Creature*)this)->AI()->AttackStart(charmer); } else ((Creature*)this)->AI()->EnterEvadeMode(); - } + }*/ } else ((Player*)this)->SetClientControl(this, 1); @@ -13672,42 +13710,46 @@ void Unit::RemoveCharmedOrPossessedBy(Unit *charmer) if(!charmer) return; - assert(!possess || charmer->GetTypeId() == TYPEID_PLAYER); + assert(type != CHARM_TYPE_POSSESS || charmer->GetTypeId() == TYPEID_PLAYER); + assert(type != CHARM_TYPE_VEHICLE || GetTypeId() == TYPEID_UNIT && ((Creature*)this)->isVehicle()); charmer->SetCharm(this, false); - if(possess) - { - ((Player*)charmer)->SetClientControl(charmer, 1); - ((Player*)charmer)->SetViewpoint(this, false); - charmer->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE); - } - // restore UNIT_FIELD_BYTES_0 - else if(GetTypeId() == TYPEID_UNIT && charmer->GetTypeId() == TYPEID_PLAYER && charmer->getClass() == CLASS_WARLOCK) + + if(charmer->GetTypeId() == TYPEID_PLAYER) { - CreatureInfo const *cinfo = ((Creature*)this)->GetCreatureInfo(); - if(cinfo && cinfo->type == CREATURE_TYPE_DEMON) + switch(type) { - if(GetCharmInfo()) - GetCharmInfo()->SetPetNumber(0, true); - else - sLog.outError("Aura::HandleModCharm: target="UI64FMTD" with typeid=%d has a charm aura but no charm info!", GetGUID(), GetTypeId()); + case CHARM_TYPE_VEHICLE: + ((Player*)charmer)->SetViewpoint(this, false); + break; + case CHARM_TYPE_POSSESS: + ((Player*)charmer)->SetClientControl(charmer, 1); + ((Player*)charmer)->SetViewpoint(this, false); + charmer->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE); + break; + case CHARM_TYPE_CHARM: + if(GetTypeId() == TYPEID_UNIT && charmer->getClass() == CLASS_WARLOCK) + { + CreatureInfo const *cinfo = ((Creature*)this)->GetCreatureInfo(); + if(cinfo && cinfo->type == CREATURE_TYPE_DEMON) + { + if(GetCharmInfo()) + GetCharmInfo()->SetPetNumber(0, true); + else + sLog.outError("Aura::HandleModCharm: target="UI64FMTD" with typeid=%d has a charm aura but no charm info!", GetGUID(), GetTypeId()); + } + } + break; + default: + break; } } //a guardian should always have charminfo - if(GetTypeId() == TYPEID_PLAYER || GetTypeId() == TYPEID_UNIT - && !((Creature*)this)->HasSummonMask(SUMMON_MASK_GUARDIAN)) - { + if(charmer->GetTypeId() == TYPEID_PLAYER && this != charmer->GetFirstControlled()) + ((Player*)charmer)->SendRemoveControlBar(); + else if(GetTypeId() == TYPEID_PLAYER || GetTypeId() == TYPEID_UNIT && !((Creature*)this)->isGuardian()) DeleteCharmInfo(); - } - - if(possess || charmer->GetTypeId() == TYPEID_PLAYER) - { - // Remove pet spell action bar - WorldPacket data(SMSG_PET_SPELLS, 8); - data << uint64(0); - ((Player*)charmer)->GetSession()->SendPacket(&data); - } } void Unit::RestoreFaction() @@ -14000,7 +14042,7 @@ void Unit::SetPhaseMask(uint32 newPhaseMask, bool update) return; for(ControlList::const_iterator itr = m_Controlled.begin(); itr != m_Controlled.end(); ++itr) - if((*itr)->GetOwnerGUID() == GetGUID()) + if((*itr)->GetTypeId() == TYPEID_UNIT) (*itr)->SetPhaseMask(newPhaseMask,true); for(int8 i = 0; i < MAX_SUMMON_SLOT; ++i) diff --git a/src/game/Unit.h b/src/game/Unit.h index d788a9ad4f6..ea934356842 100644 --- a/src/game/Unit.h +++ b/src/game/Unit.h @@ -885,6 +885,13 @@ struct CharmSpellEntry typedef std::list<Player*> SharedVisionList; +enum CharmType +{ + CHARM_TYPE_CHARM, + CHARM_TYPE_POSSESS, + CHARM_TYPE_VEHICLE, +}; + enum ActionBarIndex { ACTION_BAR_INDEX_START = 0, @@ -1340,8 +1347,8 @@ class TRINITY_DLL_SPEC Unit : public WorldObject void SetMinion(Minion *minion, bool apply); void SetCharm(Unit* target, bool apply); Unit* GetNextRandomRaidMemberOrPet(float radius); - void SetCharmedOrPossessedBy(Unit* charmer, bool possess); - void RemoveCharmedOrPossessedBy(Unit* charmer); + void SetCharmedBy(Unit* charmer, CharmType type); + void RemoveCharmedBy(Unit* charmer); void RestoreFaction(); ControlList m_Controlled; diff --git a/src/game/Vehicle.cpp b/src/game/Vehicle.cpp index aaf97b3e413..3efe735a5b5 100644 --- a/src/game/Vehicle.cpp +++ b/src/game/Vehicle.cpp @@ -25,6 +25,8 @@ #include "WorldPacket.h" #include "Chat.h" +#include "CreatureAI.h" +#include "ZoneScript.h" Vehicle::Vehicle() : Creature(), m_vehicleInfo(NULL), m_usableSeatNum(0) { @@ -40,6 +42,8 @@ void Vehicle::AddToWorld() { if(!IsInWorld()) { + if(m_zoneScript) + m_zoneScript->OnCreatureCreate(this, true); ObjectAccessor::Instance().AddObject(this); Unit::AddToWorld(); AIM_Initialize(); @@ -57,6 +61,8 @@ void Vehicle::RemoveFromWorld() { if(IsInWorld()) { + if(m_zoneScript) + m_zoneScript->OnCreatureCreate(this, false); RemoveAllPassengers(); ///- Don't call the function for Creature, normal mobs + totems go in a different storage Unit::RemoveFromWorld(); @@ -238,18 +244,15 @@ bool Vehicle::AddPassenger(Unit *unit, int8 seatId) GetPositionZ() + unit->m_movementInfo.t_z, GetOrientation()); + unit->GetMotionMaster()->MoveIdle(MOTION_SLOT_IDLE); + WorldPacket data; if(unit->GetTypeId() == TYPEID_PLAYER) { //ChatHandler(player).PSendSysMessage("Enter seat %u %u", veSeat->m_ID, seat->first); if(seat->first == 0 && seat->second.seatInfo->IsUsable()) // not right - { - setFaction(unit->getFaction()); - ((Player*)unit)->SetCharm(this, true); - ((Player*)unit)->SetViewpoint(this, true); - ((Player*)unit)->VehicleSpellInitialize(); - } + SetCharmedBy(unit, CHARM_TYPE_VEHICLE); ((Player*)unit)->BuildTeleportAckMsg(&data, unit->GetPositionX(), unit->GetPositionY(), unit->GetPositionZ(), unit->GetOrientation()); ((Player*)unit)->GetSession()->SendPacket(&data); @@ -289,12 +292,7 @@ void Vehicle::RemovePassenger(Unit *unit) //SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK); if(unit->GetTypeId() == TYPEID_PLAYER && seat->first == 0 && seat->second.seatInfo->IsUsable()) - { - RestoreFaction(); - ((Player*)unit)->SetCharm(this, false); - ((Player*)unit)->SetViewpoint(this, false); - ((Player*)unit)->SendRemoveControlBar(); - } + RemoveCharmedBy(unit); // only for flyable vehicles? //CastSpell(this, 45472, true); // Parachute diff --git a/src/game/Wintergrasp.cpp b/src/game/Wintergrasp.cpp index 51c5759bf13..782ec4ab537 100644 --- a/src/game/Wintergrasp.cpp +++ b/src/game/Wintergrasp.cpp @@ -127,7 +127,7 @@ bool OPvPWintergrasp::SetupOutdoorPvP() LoadTeamPair(m_creEntryPair, CreatureEntryPair); m_wartime = false; - m_timer = 600000; + m_timer = sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_START_TIME) * MINUTE * IN_MILISECONDS; return true; } @@ -155,33 +155,59 @@ void OPvPWintergrasp::ProcessEvent(GameObject *obj, uint32 eventId) } } -void OPvPWintergrasp::ChangeDefender() -{ - m_defender = OTHER_TEAM(m_defender); - if(m_defender == TEAM_ALLIANCE) - sWorld.SendZoneText(ZONE_WINTERGRASP, "Alliance has taken over the fortress!"); - else - sWorld.SendZoneText(ZONE_WINTERGRASP, "Horde has taken over the fortress!"); - UpdateAllWorldObject(); - - m_wartime = false; - m_timer = 600000; // for test, should be 2 hour 30 min -} - -uint32 OPvPWintergrasp::GetCreatureEntry(uint32 guidlow, uint32 entry) +uint32 OPvPWintergrasp::GetCreatureEntry(uint32 guidlow, const CreatureData *data) { if(m_defender == TEAM_ALLIANCE) { - TeamPairMap::const_iterator itr = m_creEntryPair.find(entry); + TeamPairMap::const_iterator itr = m_creEntryPair.find(data->id); if(itr != m_creEntryPair.end()) + { + const_cast<CreatureData*>(data)->displayid = 0; return itr->second; + } } - return entry; + return data->id; } void OPvPWintergrasp::OnCreatureCreate(Creature *creature, bool add) { - if(m_creEntryPair.find(creature->GetEntry()) != m_creEntryPair.end()) + if(creature->isVehicle()) + { + TeamId team; + if(creature->getFaction() == WintergraspFaction[TEAM_ALLIANCE]) + team = TEAM_ALLIANCE; + else if(creature->getFaction() == WintergraspFaction[TEAM_HORDE]) + team = TEAM_HORDE; + else + return; + + switch(creature->GetEntry()) + { + case 27881: + case 28094: + case 28312: + case 32627: + //case 28366: tower + if(add) + { + m_vehicles[team].insert((Vehicle*)creature); + if(m_tenacityStack > 0) + { + if(team == TEAM_ALLIANCE) + creature->SetAuraStack(SPELL_TENACITY_VEHICLE, creature, m_tenacityStack); + } + else if(m_tenacityStack < 0) + { + if(team == TEAM_HORDE) + creature->SetAuraStack(SPELL_TENACITY_VEHICLE, creature, -m_tenacityStack); + } + } + else + m_vehicles[team].erase((Vehicle*)creature); + break; + } + } + else if(m_creEntryPair.find(creature->GetEntry()) != m_creEntryPair.end()) { if(add) m_creatures.insert(creature); else m_creatures.erase(creature); @@ -304,7 +330,7 @@ bool OPvPWintergrasp::UpdateGameObjectInfo(GameObject *go) void OPvPWintergrasp::HandlePlayerEnterZone(Player * plr, uint32 zone) { - if(!plr->HasAura(SPELL_RECRUIT) && !plr->HasAura(SPELL_CORPORAL) + if(m_wartime && !plr->HasAura(SPELL_RECRUIT) && !plr->HasAura(SPELL_CORPORAL) && !plr->HasAura(SPELL_LIEUTENANT)) plr->CastSpell(plr, SPELL_RECRUIT, true); @@ -377,12 +403,18 @@ void OPvPWintergrasp::UpdateTenacityStack() if(m_tenacityStack > 0) { if(newStack <= 0) + { TeamCastSpell(TEAM_ALLIANCE, -SPELL_TENACITY); + VehicleCastSpell(TEAM_ALLIANCE, -SPELL_TENACITY_VEHICLE); + } } else if(m_tenacityStack < 0) { if(newStack >= 0) + { TeamCastSpell(TEAM_HORDE, -SPELL_TENACITY); + VehicleCastSpell(TEAM_HORDE, -SPELL_TENACITY_VEHICLE); + } } m_tenacityStack = newStack; @@ -390,11 +422,24 @@ void OPvPWintergrasp::UpdateTenacityStack() if(newStack) { TeamId team = newStack > 0 ? TEAM_ALLIANCE : TEAM_HORDE; + if(newStack < 0) newStack = -newStack; for(PlayerSet::iterator itr = m_players[team].begin(); itr != m_players[team].end(); ++itr) (*itr)->SetAuraStack(SPELL_TENACITY, *itr, newStack); + for(VehicleSet::iterator itr = m_vehicles[team].begin(); itr != m_vehicles[team].end(); ++itr) + (*itr)->SetAuraStack(SPELL_TENACITY_VEHICLE, *itr, newStack); } } +void OPvPWintergrasp::VehicleCastSpell(TeamId team, int32 spellId) +{ + if(spellId > 0) + for(VehicleSet::iterator itr = m_vehicles[team].begin(); itr != m_vehicles[team].end(); ++itr) + (*itr)->CastSpell(*itr, (uint32)spellId, true); + else + for(VehicleSet::iterator itr = m_vehicles[team].begin(); itr != m_vehicles[team].end(); ++itr) + (*itr)->RemoveAura((uint32)-spellId); // by stack? +} + bool OPvPWintergrasp::Update(uint32 diff) { if(m_timer > diff) @@ -403,20 +448,75 @@ bool OPvPWintergrasp::Update(uint32 diff) { if(m_wartime) { - m_wartime = false; - m_timer = 600000; // for test, should be 2 hour 30 min if(m_defender == TEAM_ALLIANCE) sWorld.SendZoneText(ZONE_WINTERGRASP, "Alliance has successfully defended the fortress!"); else sWorld.SendZoneText(ZONE_WINTERGRASP, "Horde has successfully defended the fortress!"); + GiveReward(); + EndBattle(); } else { - m_wartime = true; - m_timer = 30*60*1000; sWorld.SendZoneText(ZONE_WINTERGRASP, "Battle begins!"); UpdateAllWorldObject(); + StartBattle(); } } return false; } + +void OPvPWintergrasp::ChangeDefender() +{ + m_defender = OTHER_TEAM(m_defender); + if(m_defender == TEAM_ALLIANCE) + sWorld.SendZoneText(ZONE_WINTERGRASP, "Alliance has taken over the fortress!"); + else + sWorld.SendZoneText(ZONE_WINTERGRASP, "Horde has taken over the fortress!"); + UpdateAllWorldObject(); + + GiveReward(); + EndBattle(); +} + +void OPvPWintergrasp::GiveReward() +{ + for(uint32 team = 0; team < 2; ++team) + for(PlayerSet::iterator itr = m_players[team].begin(); itr != m_players[team].end(); ++itr) + if((*itr)->HasAura(SPELL_LIEUTENANT)) + (*itr)->CastSpell(*itr, team == m_defender ? SPELL_VICTORY_REWARD : SPELL_DEFEAT_REWARD, true); +} + +void OPvPWintergrasp::StartBattle() +{ + m_wartime = true; + m_timer = sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_BATTLE_TIME) * MINUTE * IN_MILISECONDS; + + for(uint32 team = 0; team < 2; ++team) + { + for(PlayerSet::iterator itr = m_players[team].begin(); itr != m_players[team].end(); ++itr) + { + (*itr)->RemoveAura(SPELL_RECRUIT); + (*itr)->RemoveAura(SPELL_CORPORAL); + (*itr)->RemoveAura(SPELL_LIEUTENANT); + (*itr)->CastSpell(*itr, SPELL_RECRUIT, true); + } + } +} + +void OPvPWintergrasp::EndBattle() +{ + m_wartime = false; + m_timer = sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_INTERVAL) * MINUTE * IN_MILISECONDS; + + for(uint32 team = 0; team < 2; ++team) + { + VehicleCastSpell(TeamId(team), SPELL_SHUTDOWN_VEHICLE); + + for(PlayerSet::iterator itr = m_players[team].begin(); itr != m_players[team].end(); ++itr) + { + (*itr)->RemoveAura(SPELL_RECRUIT); + (*itr)->RemoveAura(SPELL_CORPORAL); + (*itr)->RemoveAura(SPELL_LIEUTENANT); + } + } +} diff --git a/src/game/Wintergrasp.h b/src/game/Wintergrasp.h index 5a39652cecd..11f9865f72b 100644 --- a/src/game/Wintergrasp.h +++ b/src/game/Wintergrasp.h @@ -35,6 +35,38 @@ const uint32 WintergraspFaction[2] = {1732, 1735}; #define SPELL_TENACITY 58549 #define SPELL_TENACITY_VEHICLE 59911 +#define SPELL_VICTORY_REWARD 56902 +#define SPELL_DEFEAT_REWARD 58494 + +#define SPELL_SHUTDOWN_VEHICLE 21247 + +const uint32 WG_KEEP_CM = 0; //Need data +const uint32 WG_RULERS_BUFF = 52108; +//some cosmetics :D +const uint32 WG_VICTORY_AURA = 60044; + +enum OutdoorPvP_WG_Sounds +{ +/*TODO OutdoorPvP_WG_SOUND_KEEP_CLAIMED = 8192, + OutdoorPvP_WG_SOUND_KEEP_CAPTURED_ALLIANCE = 8173, + OutdoorPvP_WG_SOUND_KEEP_CAPTURED_HORDE = 8213, + OutdoorPvP_WG_SOUND_KEEP_ASSAULTED_ALLIANCE = 8212, + OutdoorPvP_WG_SOUND_KEEP_ASSAULTED_HORDE = 8174, + OutdoorPvP_WG_SOUND_NEAR_VICTORY = 8456 +*/ +}; + +enum OutdoorPvP_WG_KeepStatus +{ + OutdoorPvP_WG_KEEP_TYPE_NEUTRAL = 0, + OutdoorPvP_WG_KEEP_TYPE_CONTESTED = 1, + OutdoorPvP_WG_KEEP_STATUS_ALLY_CONTESTED = 1, + OutdoorPvP_WG_KEEP_STATUS_HORDE_CONTESTED = 2, + OutdoorPvP_WG_KEEP_TYPE_OCCUPIED = 3, + OutdoorPvP_WG_KEEP_STATUS_ALLY_OCCUPIED = 3, + OutdoorPvP_WG_KEEP_STATUS_HORDE_OCCUPIED = 4 +}; + enum DamageState { DAMAGE_INTACT, @@ -75,12 +107,13 @@ class OPvPWintergrasp : public OutdoorPvP protected: typedef std::map<uint32, BuildingState *> BuildingStateMap; typedef std::set<Creature*> CreatureSet; + typedef std::set<Vehicle*> VehicleSet; typedef std::set<GameObject*> GameObjectSet; public: explicit OPvPWintergrasp() : m_tenacityStack(0) {} bool SetupOutdoorPvP(); - uint32 GetCreatureEntry(uint32 guidlow, uint32 entry); + uint32 GetCreatureEntry(uint32 guidlow, const CreatureData *data); //uint32 GetGameObjectEntry(uint32 guidlow, uint32 entry); void OnCreatureCreate(Creature *creature, bool add); @@ -102,6 +135,7 @@ class OPvPWintergrasp : public OutdoorPvP BuildingStateMap m_buildingStates; CreatureSet m_creatures; + VehicleSet m_vehicles[2]; GameObjectSet m_gobjects; TeamPairMap m_creEntryPair, m_goDisplayPair; @@ -117,6 +151,11 @@ class OPvPWintergrasp : public OutdoorPvP bool UpdateGameObjectInfo(GameObject *go); void RebuildAllBuildings(); + void StartBattle(); + void EndBattle(); + void GiveReward(); + + void VehicleCastSpell(TeamId team, int32 spellId); }; #endif diff --git a/src/game/World.cpp b/src/game/World.cpp index cf14b846508..89362474f85 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -1079,6 +1079,9 @@ void World::LoadConfigSettings(bool reload) m_configs[CONFIG_PVP_TOKEN_COUNT] = sConfig.GetIntDefault("PvPToken.ItemCount", 1); if(m_configs[CONFIG_PVP_TOKEN_COUNT] < 1) m_configs[CONFIG_PVP_TOKEN_COUNT] = 1; + m_configs[CONFIG_OUTDOORPVP_WINTERGRASP_START_TIME] = sConfig.GetIntDefault("OutdoorPvP.Wintergrasp.StartTime", 30); + m_configs[CONFIG_OUTDOORPVP_WINTERGRASP_BATTLE_TIME] = sConfig.GetIntDefault("OutdoorPvP.Wintergrasp.BattleTime", 30); + m_configs[CONFIG_OUTDOORPVP_WINTERGRASP_INTERVAL] = sConfig.GetIntDefault("OutdoorPvP.Wintergrasp.Interval", 150); m_configs[CONFIG_NO_RESET_TALENT_COST] = sConfig.GetBoolDefault("NoResetTalentsCost", false); m_configs[CONFIG_SHOW_KICK_IN_WORLD] = sConfig.GetBoolDefault("ShowKickInWorld", false); m_configs[CONFIG_INTERVAL_LOG_UPDATE] = sConfig.GetIntDefault("RecordUpdateTimeDiffInterval", 60000); diff --git a/src/game/World.h b/src/game/World.h index 92fe74f9b81..3ff814a4d73 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -225,6 +225,9 @@ enum WorldConfigs CONFIG_PVP_TOKEN_MAP_TYPE, CONFIG_PVP_TOKEN_ID, CONFIG_PVP_TOKEN_COUNT, + CONFIG_OUTDOORPVP_WINTERGRASP_START_TIME, + CONFIG_OUTDOORPVP_WINTERGRASP_BATTLE_TIME, + CONFIG_OUTDOORPVP_WINTERGRASP_INTERVAL, CONFIG_NO_RESET_TALENT_COST, CONFIG_SHOW_KICK_IN_WORLD, CONFIG_INTERVAL_LOG_UPDATE, diff --git a/src/game/ZoneScript.h b/src/game/ZoneScript.h index e0674d3fdd4..6ace3c36474 100644 --- a/src/game/ZoneScript.h +++ b/src/game/ZoneScript.h @@ -20,7 +20,9 @@ #define ZONE_SCRIPT_H_ #include "Common.h" +#include "Creature.h" +//struct CreatureData; class Creature; class GameObject; @@ -29,7 +31,7 @@ class TRINITY_DLL_SPEC ZoneScript public: explicit ZoneScript() {} - virtual uint32 GetCreatureEntry(uint32 guidlow, uint32 entry) { return entry; } + virtual uint32 GetCreatureEntry(uint32 guidlow, const CreatureData *data) { return data->id; } virtual uint32 GetGameObjectEntry(uint32 guidlow, uint32 entry) { return entry; } virtual void OnCreatureCreate(Creature *, bool add) {} diff --git a/src/shared/Database/Database.h b/src/shared/Database/Database.h index 493ec8a76c0..7f2bdaefdb7 100644 --- a/src/shared/Database/Database.h +++ b/src/shared/Database/Database.h @@ -81,16 +81,16 @@ class TRINITY_DLL_SPEC Database template<class Class, typename ParamType1> bool AsyncPQuery(Class *object, void (Class::*method)(QueryResult*, ParamType1), ParamType1 param1, const char *format,...) ATTR_PRINTF(5,6); template<class Class, typename ParamType1, typename ParamType2> - bool AsyncPQuery(Class *object, void (Class::*method)(QueryResult*, ParamType1, ParamType2), ParamType1 param1, ParamType2 param2, const char *format,...) ATTR_PRINTF(5,6); + bool AsyncPQuery(Class *object, void (Class::*method)(QueryResult*, ParamType1, ParamType2), ParamType1 param1, ParamType2 param2, const char *format,...) ATTR_PRINTF(6,7); template<class Class, typename ParamType1, typename ParamType2, typename ParamType3> - bool AsyncPQuery(Class *object, void (Class::*method)(QueryResult*, ParamType1, ParamType2, ParamType3), ParamType1 param1, ParamType2 param2, ParamType3 param3, const char *format,...) ATTR_PRINTF(5,6); + bool AsyncPQuery(Class *object, void (Class::*method)(QueryResult*, ParamType1, ParamType2, ParamType3), ParamType1 param1, ParamType2 param2, ParamType3 param3, const char *format,...) ATTR_PRINTF(7,8); // PQuery / static template<typename ParamType1> - bool AsyncPQuery(void (*method)(QueryResult*, ParamType1), ParamType1 param1, const char *format,...) ATTR_PRINTF(5,6); + bool AsyncPQuery(void (*method)(QueryResult*, ParamType1), ParamType1 param1, const char *format,...) ATTR_PRINTF(4,5); template<typename ParamType1, typename ParamType2> bool AsyncPQuery(void (*method)(QueryResult*, ParamType1, ParamType2), ParamType1 param1, ParamType2 param2, const char *format,...) ATTR_PRINTF(5,6); template<typename ParamType1, typename ParamType2, typename ParamType3> - bool AsyncPQuery(void (*method)(QueryResult*, ParamType1, ParamType2, ParamType3), ParamType1 param1, ParamType2 param2, ParamType3 param3, const char *format,...) ATTR_PRINTF(5,6); + bool AsyncPQuery(void (*method)(QueryResult*, ParamType1, ParamType2, ParamType3), ParamType1 param1, ParamType2 param2, ParamType3 param3, const char *format,...) ATTR_PRINTF(6,7); template<class Class> // QueryHolder bool DelayQueryHolder(Class *object, void (Class::*method)(QueryResult*, SqlQueryHolder*), SqlQueryHolder *holder); diff --git a/src/shared/vmap/CoordModelMapping.cpp b/src/shared/vmap/CoordModelMapping.cpp index 5dd23f306aa..86e3347a614 100644 --- a/src/shared/vmap/CoordModelMapping.cpp +++ b/src/shared/vmap/CoordModelMapping.cpp @@ -21,6 +21,7 @@ #include "CoordModelMapping.h" #include <string.h> +#include <cstdio> using namespace G3D; diff --git a/src/shared/vmap/CoordModelMapping.h b/src/shared/vmap/CoordModelMapping.h index 7c89f0e8a0f..c1f49462962 100644 --- a/src/shared/vmap/CoordModelMapping.h +++ b/src/shared/vmap/CoordModelMapping.h @@ -21,6 +21,7 @@ #ifndef _COORDMODELMAPPING_H_ #define _COORDMODELMAPPING_H_ +#include <cstdio> #include <G3D/Table.h> #include <G3D/Array.h> diff --git a/src/shared/vmap/DebugCmdLogger.cpp b/src/shared/vmap/DebugCmdLogger.cpp index de656f4cfc5..e6b36572c45 100644 --- a/src/shared/vmap/DebugCmdLogger.cpp +++ b/src/shared/vmap/DebugCmdLogger.cpp @@ -18,6 +18,8 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include <cstdio> + #include "DebugCmdLogger.h" using namespace G3D; diff --git a/src/shared/vmap/TileAssembler.cpp b/src/shared/vmap/TileAssembler.cpp index c2918a64fa4..cbaa4e58108 100644 --- a/src/shared/vmap/TileAssembler.cpp +++ b/src/shared/vmap/TileAssembler.cpp @@ -373,7 +373,7 @@ namespace VMAP if(!rf) { printf("ERROR: Can't open model file in form: %s",pModelFilename.c_str()); - printf("... or form: %s",filename ); + printf("... or form: %s",filename.c_str() ); return false; } diff --git a/src/trinitycore/CliRunnable.cpp b/src/trinitycore/CliRunnable.cpp index 96719b25cf7..1da2a30b4f7 100644 --- a/src/trinitycore/CliRunnable.cpp +++ b/src/trinitycore/CliRunnable.cpp @@ -23,19 +23,20 @@ /// \file #include "Common.h" -#include "Language.h" -#include "Log.h" -#include "World.h" -#include "ScriptCalls.h" #include "ObjectMgr.h" +#include "World.h" #include "WorldSession.h" #include "Config/ConfigEnv.h" -#include "Util.h" + #include "AccountMgr.h" +#include "Chat.h" #include "CliRunnable.h" +#include "Language.h" +#include "Log.h" #include "MapManager.h" #include "Player.h" -#include "Chat.h" +#include "ScriptCalls.h" +#include "Util.h" void utf8print(const char* str) { diff --git a/src/trinitycore/Main.cpp b/src/trinitycore/Main.cpp index 7b00073026d..eb51c770896 100644 --- a/src/trinitycore/Main.cpp +++ b/src/trinitycore/Main.cpp @@ -22,12 +22,17 @@ /// @{ /// \file +#include <openssl/opensslv.h> +#include <openssl/crypto.h> + #include "Common.h" #include "Database/DatabaseEnv.h" #include "Config/ConfigEnv.h" + #include "Log.h" #include "Master.h" + #ifndef _TRINITY_CORE_CONFIG # define _TRINITY_CORE_CONFIG "TrinityCore.conf" #endif //_TRINITY_CORE_CONFIG @@ -152,6 +157,13 @@ extern int main(int argc, char **argv) while (pause > clock()) {} } + sLog.outDetail("%s (Library: %s)", OPENSSL_VERSION_TEXT, SSLeay_version(SSLEAY_VERSION)); + if (SSLeay() < 0x009080bfL ) + { + sLog.outDetail("WARNING: Outdated version of OpenSSL lib. Logins to server impossible!"); + sLog.outDetail("WARNING: Minimal required version [OpenSSL 0.9.8k]"); + } + ///- and run the 'Master' /// \todo Why do we need this 'Master'? Can't all of this be in the Main as for Realmd? return sMaster.Run(); diff --git a/src/trinitycore/Master.cpp b/src/trinitycore/Master.cpp index 2e2d75d5c3c..4d7eca8f04e 100644 --- a/src/trinitycore/Master.cpp +++ b/src/trinitycore/Master.cpp @@ -24,21 +24,22 @@ #include <ace/OS_NS_signal.h> -#include "WorldSocketMgr.h" #include "Common.h" -#include "Master.h" -#include "WorldSocket.h" -#include "WorldRunnable.h" -#include "World.h" -#include "Log.h" -#include "Timer.h" -#include "Policies/SingletonImp.h" #include "SystemConfig.h" +#include "World.h" +#include "WorldRunnable.h" +#include "WorldSocket.h" +#include "WorldSocketMgr.h" #include "Config/ConfigEnv.h" #include "Database/DatabaseEnv.h" +#include "Policies/SingletonImp.h" + #include "CliRunnable.h" +#include "Log.h" +#include "Master.h" #include "RASocket.h" #include "ScriptCalls.h" +#include "Timer.h" #include "Util.h" #include "sockets/TcpSocket.h" diff --git a/src/trinitycore/RASocket.cpp b/src/trinitycore/RASocket.cpp index ccda5ba7548..50a1af87256 100644 --- a/src/trinitycore/RASocket.cpp +++ b/src/trinitycore/RASocket.cpp @@ -23,13 +23,14 @@ */ #include "Common.h" +#include "Config/ConfigEnv.h" #include "Database/DatabaseEnv.h" + +#include "AccountMgr.h" #include "Log.h" #include "RASocket.h" -#include "World.h" -#include "Config/ConfigEnv.h" #include "Util.h" -#include "AccountMgr.h" +#include "World.h" /// \todo Make this thread safe if in the future 2 admins should be able to log at the same time. SOCKET r; diff --git a/src/trinitycore/RASocket.h b/src/trinitycore/RASocket.h index 8900e689b2c..330c85defa4 100644 --- a/src/trinitycore/RASocket.h +++ b/src/trinitycore/RASocket.h @@ -25,9 +25,10 @@ #ifndef _RASOCKET_H #define _RASOCKET_H -#include "Common.h" #include "sockets/TcpSocket.h" +#include "Common.h" + #define RA_BUFF_SIZE 1024 class ISocketHandler; diff --git a/src/trinitycore/WorldRunnable.cpp b/src/trinitycore/WorldRunnable.cpp index bd4d3170c52..ad0243a36ae 100644 --- a/src/trinitycore/WorldRunnable.cpp +++ b/src/trinitycore/WorldRunnable.cpp @@ -22,17 +22,17 @@ \ingroup Trinityd */ -#include "WorldSocketMgr.h" #include "Common.h" -#include "World.h" -#include "WorldRunnable.h" -#include "Timer.h" #include "ObjectAccessor.h" -#include "MapManager.h" -#include "BattleGroundMgr.h" - +#include "World.h" +#include "WorldSocketMgr.h" #include "Database/DatabaseEnv.h" +#include "BattleGroundMgr.h" +#include "MapManager.h" +#include "Timer.h" +#include "WorldRunnable.h" + #if (defined(WIN32) || defined(SHORT_SLEEP)) #define WORLD_SLEEP_CONST 50 #else diff --git a/src/trinitycore/trinitycore.conf.dist b/src/trinitycore/trinitycore.conf.dist index ca6ec3a15d4..30b1c723e0a 100644 --- a/src/trinitycore/trinitycore.conf.dist +++ b/src/trinitycore/trinitycore.conf.dist @@ -1583,6 +1583,14 @@ Ra.Secure = 1 # NoResetTalentsCost # Enable or disable no cost when reseting talents # +# +# OutdoorPvP.Wintergrasp.StartTime = 30 +# The start time of the first battle after server starts (default: 30 minutes) +# OutdoorPvP.Wintergrasp.BattleTime = 30 +# Time limit of a battle +# OutdoorPvP.Wintergrasp.Interval +# Interval between battles (default: 150 minutes) +# # ForbiddenMaps # map ids that users below SEC_GAMEMASTER cannot enter, with delimiter ',' # Default: "" @@ -1624,6 +1632,9 @@ PvPToken.Enable = 0 PvPToken.MapAllowType = 4 PvPToken.ItemID = 29434 PvPToken.ItemCount = 1 +OutdoorPvP.Wintergrasp.StartTime = 30 +OutdoorPvP.Wintergrasp.BattleTime = 30 +OutdoorPvP.Wintergrasp.Interval = 150 NoResetTalentsCost = 0 ShowKickInWorld = 0 RecordUpdateTimeDiffInterval = 60000 diff --git a/src/trinityrealm/AuthSocket.cpp b/src/trinityrealm/AuthSocket.cpp index 8c9eab653ec..9933a237981 100644 --- a/src/trinityrealm/AuthSocket.cpp +++ b/src/trinityrealm/AuthSocket.cpp @@ -21,17 +21,19 @@ /** \file \ingroup realmd */ +#include <openssl/md5.h> #include "Common.h" +#include "Auth/Sha1.h" +#include "Config/ConfigEnv.h" #include "Database/DatabaseEnv.h" + +#include "AuthCodes.h" +#include "AuthSocket.h" #include "ByteBuffer.h" -#include "Config/ConfigEnv.h" #include "Log.h" #include "RealmList.h" -#include "AuthSocket.h" -#include "AuthCodes.h" -#include <openssl/md5.h> -#include "Auth/Sha1.h" + //#include "Util.h" -- for commented utf8ToUpperOnlyLatin extern RealmList m_realmList; diff --git a/src/trinityrealm/AuthSocket.h b/src/trinityrealm/AuthSocket.h index 43b880a1e74..d20e8429752 100644 --- a/src/trinityrealm/AuthSocket.h +++ b/src/trinityrealm/AuthSocket.h @@ -25,8 +25,6 @@ #ifndef _AUTHSOCKET_H #define _AUTHSOCKET_H -#include "Common.h" -#include "Auth/BigNumber.h" #include "sockets/TcpSocket.h" #include "sockets/SocketHandler.h" #include "sockets/ListenSocket.h" @@ -34,6 +32,9 @@ #include "sockets/Parse.h" #include "sockets/Socket.h" +#include "Common.h" +#include "Auth/BigNumber.h" + /// Handle login commands class AuthSocket: public TcpSocket { diff --git a/src/trinityrealm/Main.cpp b/src/trinityrealm/Main.cpp index cbadd4d1e4c..68449ed3d71 100644 --- a/src/trinityrealm/Main.cpp +++ b/src/trinityrealm/Main.cpp @@ -22,14 +22,17 @@ /// @{ /// \file -#include "Common.h" -#include "Database/DatabaseEnv.h" -#include "RealmList.h" +#include <openssl/opensslv.h> +#include <openssl/crypto.h> +#include "Common.h" #include "Config/ConfigEnv.h" -#include "Log.h" +#include "Database/DatabaseEnv.h" #include "sockets/ListenSocket.h" + #include "AuthSocket.h" +#include "Log.h" +#include "RealmList.h" #include "SystemConfig.h" #include "Util.h" @@ -162,6 +165,13 @@ extern int main(int argc, char **argv) while (pause > clock()) {} } + sLog.outDetail("%s (Library: %s)", OPENSSL_VERSION_TEXT, SSLeay_version(SSLEAY_VERSION)); + if (SSLeay() < 0x009080bfL ) + { + sLog.outDetail("WARNING: Outdated version of OpenSSL lib. Logins to server impossible!"); + sLog.outDetail("WARNING: Minimal required version [OpenSSL 0.9.8k]"); + } + sLog.outString( "%s (realm-daemon)", _FULLVERSION ); sLog.outString( "<Ctrl-C> to stop.\n" ); diff --git a/src/trinityrealm/RealmList.cpp b/src/trinityrealm/RealmList.cpp index 6a3d6b47e0f..9f9e39df050 100644 --- a/src/trinityrealm/RealmList.cpp +++ b/src/trinityrealm/RealmList.cpp @@ -23,9 +23,10 @@ */ #include "Common.h" -#include "RealmList.h" -#include "Policies/SingletonImp.h" #include "Database/DatabaseEnv.h" +#include "Policies/SingletonImp.h" + +#include "RealmList.h" INSTANTIATE_SINGLETON_1( RealmList ); |