diff options
| -rw-r--r-- | CMakeLists.txt | 5 | ||||
| -rw-r--r-- | contrib/extractor/adt.cpp | 8 | ||||
| -rw-r--r-- | contrib/extractor/libmpq/mpq.h | 3 | ||||
| -rw-r--r-- | dep/ACE_wrappers/ace/OS_NS_netdb.inl | 10 | ||||
| -rw-r--r-- | sql/world_scripts_full.sql | 2 | ||||
| -rw-r--r-- | src/bindings/scripts/CMakeLists.txt | 4 | ||||
| -rw-r--r-- | src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp | 1 | ||||
| -rw-r--r-- | src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp | 50 | ||||
| -rw-r--r-- | src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/def_mechanar.h | 3 | ||||
| -rw-r--r-- | src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/instance_mechanar.cpp | 22 | ||||
| -rw-r--r-- | src/framework/Platform/Define.h | 9 | ||||
| -rw-r--r-- | src/game/Unit.cpp | 3 | ||||
| -rw-r--r-- | src/trinitycore/CMakeLists.txt | 11 | ||||
| -rw-r--r-- | src/trinityrealm/CMakeLists.txt | 14 | 
14 files changed, 91 insertions, 54 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index d0461e2d2ea..b7ae5400c6b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -137,6 +137,11 @@ endif(ACE_FOUND)  configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h) +IF (CMAKE_SYSTEM_NAME MATCHES "Darwin") +  SET(OSX_LIBS -lcrypto) +  add_definitions(-D__ASSERTMACROS__) +ENDIF (CMAKE_SYSTEM_NAME MATCHES "Darwin") +  add_definitions(--no-warnings) #to make build look nice, no gcc nazi warnings. diff --git a/contrib/extractor/adt.cpp b/contrib/extractor/adt.cpp index d36b71af976..9550bcc6050 100644 --- a/contrib/extractor/adt.cpp +++ b/contrib/extractor/adt.cpp @@ -95,7 +95,7 @@ bool LoadADT(char* filename)                  header_pos = mf.getPos();                  if(LiqOffsData->offsData1 != 0)             // если данные ?Data1 ?воде есть, то их надо конвертировать                  { -                    // перехоим по смещению из offsData1 ОТ НАЧАЛА куск? +                    // перехо?по смещению из offsData1 ОТ АЧАЛ?куск?                      mf.seek(base_pos + LiqOffsData->offsData1);                      mf.read(LiqChunkData1, 0x18);           // считывае?сами данные ?структур?типа MH2O_Data1                      // заноси?данные флаг?для куск? @@ -134,7 +134,7 @@ bool LoadADT(char* filename)                  // эт?аналог старог?обрезания граничны?правых-боковы??нижних данных                  for(int p = 0; p < 72; p += 9)              // нижние 8 не заноси?тк он?дублируется след куском                  { -                    for(int s = 0; s < 8; ++s)              // 9 значение ?строке не заноси?тк он?дублируется след куском, ??правых-боковы?обрезает? для 128?28 +                    for(int s = 0; s < 8; ++s)              // 9 значение ?строке не заноси?тк он?дублируется след куском, ??првы?боковы?обрезает? для 128?28                      {                          MapLiqHeight[k] = ChunkLiqHeight[p + s];                          ++k; @@ -279,7 +279,7 @@ inline void LoadMapChunk(MPQFile &mf, chunk *_chunk)                  if(chunkflags & 16)                      MapLiqFlag[chunk_num] |= 2;             // magma/slime              } -            // заполнем та?же ка??MH2O +            // аполне?та?же ка??MH2O              if(!(chunk_num % 16))                  m = 1024 * (chunk_num / 16);              k = m + (chunk_num % 16) * 8; @@ -316,7 +316,6 @@ inline void TransformData()          cell->v9[128][x] = (float)mcells->ch[x / 8][15].v9[x % 8][8];          // x == y          cell->v9[x][128] = (float)mcells->ch[15][x / 8].v9[8][x % 8]; -      }      // and the last 1 @@ -371,6 +370,7 @@ bool ConvertADT(char *filename, char *filename2)      TransformData(); +      fwrite(&cell->v9, 1, sizeof(cell->v9), output);      fwrite(&cell->v8, 1, sizeof(cell->v8), output);      fclose(output); diff --git a/contrib/extractor/libmpq/mpq.h b/contrib/extractor/libmpq/mpq.h index 008c7147aba..1ed19d5bc3f 100644 --- a/contrib/extractor/libmpq/mpq.h +++ b/contrib/extractor/libmpq/mpq.h @@ -36,6 +36,9 @@      #define PATH_MAX 260  #endif +#if defined(__APPLE_CC__) +    #define lseek64 lseek +#endif  #define LIBMPQ_MAJOR_VERSION        0       /* Major version number... maybe sometimes we reach version 1 :) */  #define LIBMPQ_MINOR_VERSION        3       /* Minor version number - increased only for small changes */ diff --git a/dep/ACE_wrappers/ace/OS_NS_netdb.inl b/dep/ACE_wrappers/ace/OS_NS_netdb.inl index f1d0009eef3..508831d4380 100644 --- a/dep/ACE_wrappers/ace/OS_NS_netdb.inl +++ b/dep/ACE_wrappers/ace/OS_NS_netdb.inl @@ -125,7 +125,7 @@ ACE_OS::gethostbyaddr_r (const char *addr,        *h_errnop = h_errno;        return (struct hostent *) 0;      } -#   elif defined (__GLIBC__) +# elif defined (__GLIBC__) || defined (__FreeBSD__)    // GNU C library has a different signature    ACE_OS::memset (buffer, 0, sizeof (ACE_HOSTENT_DATA)); @@ -318,7 +318,7 @@ ACE_OS::gethostbyname_r (const char *name,        *h_errnop = h_errno;        return (struct hostent *) 0;      } -#   elif defined (__GLIBC__) +# elif defined (__GLIBC__) || defined (__FreeBSD__)    // GNU C library has a different signature    ACE_OS::memset (buffer, 0, sizeof (ACE_HOSTENT_DATA)); @@ -528,7 +528,7 @@ ACE_OS::getprotobyname_r (const char *name,    else      return 0;    //FUZZ: enable check_for_lack_ACE_OS -# elif defined (__GLIBC__) +# elif defined (__GLIBC__) || defined (__FreeBSD__)    // GNU C library has a different signature    //FUZZ: disable check_for_lack_ACE_OS    if (::getprotobyname_r (name, @@ -609,7 +609,7 @@ ACE_OS::getprotobynumber_r (int proto,    //FUZZ: enable check_for_lack_ACE_OS    else      return 0; -# elif defined (__GLIBC__) +# elif defined (__GLIBC__) || defined (__FreeBSD__)    // GNU C library has a different signature    //FUZZ: disable check_for_lack_ACE_OS    if (::getprotobynumber_r (proto, @@ -695,7 +695,7 @@ ACE_OS::getservbyname_r (const char *svc,    //FUZZ: enable check_for_lack_ACE_OS    else      return (struct servent *) 0; -# elif defined (__GLIBC__) +# elif defined (__GLIBC__) || defined (__FreeBSD__)    // GNU C library has a different signature    ACE_OS::memset (buf, 0, sizeof (ACE_SERVENT_DATA)); diff --git a/sql/world_scripts_full.sql b/sql/world_scripts_full.sql index b395924ba9d..2070bf3bdfa 100644 --- a/sql/world_scripts_full.sql +++ b/sql/world_scripts_full.sql @@ -493,7 +493,7 @@ UPDATE `creature_template` SET `ScriptName`='boss_romulo' WHERE `entry`=17533;  UPDATE `creature_template` SET `ScriptName`='boss_dorothee' WHERE `entry`=17535;  UPDATE `creature_template` SET `ScriptName`='boss_strawman' WHERE `entry`=17543;  UPDATE `creature_template` SET `ScriptName`='boss_tinhead' WHERE `entry`=17547; -UPDATE `creature_template` SET `ScriptName`='boss_tito' WHERE `entry`=17548; +UPDATE `creature_template` SET `ScriptName`='mob_tito' WHERE `entry`=17548;  UPDATE `creature_template` SET `ScriptName`='boss_roar' WHERE `entry`=17546;  UPDATE `creature_template` SET `ScriptName`='boss_crone' WHERE `entry`=18168;  UPDATE `creature_template` SET `ScriptName`='boss_terestian_illhoof' WHERE `entry`=15688; diff --git a/src/bindings/scripts/CMakeLists.txt b/src/bindings/scripts/CMakeLists.txt index c75547ef069..80f21126ba3 100644 --- a/src/bindings/scripts/CMakeLists.txt +++ b/src/bindings/scripts/CMakeLists.txt @@ -385,6 +385,10 @@ add_library(trinityscript SHARED ${trinityscript_LIB_SRCS})  add_definitions(-D_TRINITY_SCRIPT_CONFIG='"${CONF_DIR}/trinitycore.conf"') +IF (CMAKE_SYSTEM_NAME MATCHES "Darwin") +    SET_TARGET_PROPERTIES(trinityscript PROPERTIES LINK_FLAGS "-flat_namespace -undefined suppress") +ENDIF (CMAKE_SYSTEM_NAME MATCHES "Darwin") +  target_link_libraries(trinityscript)  set_target_properties(trinityscript PROPERTIES VERSION 4.2.0 SOVERSION 4) 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 b1255220bd0..32432da45fc 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 @@ -119,6 +119,7 @@ struct TRINITY_DLL_DECL boss_high_astromancer_solarianAI : public ScriptedAI          AppearDelay = false;          MarkOfTheSolarian_Timer=45000;          Jump_Timer=8000; +        Wrath_Timer = 20000+rand()%5000;//twice in phase one          Phase = 1;          Wrath_Timer = 20000+rand()%5000;//twice in phase one 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 66542333e5a..da576d9ebbc 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 @@ -33,6 +33,7 @@ EndScriptData */  #define SAY_DEATH                       -1554019  #define SPELL_SUMMON_RAGIN_FLAMES       35275 +#define H_SPELL_SUMMON_RAGIN_FLAMES     39084  #define SPELL_FROST_ATTACK              35263  #define SPELL_ARCANE_BLAST              35314 @@ -66,18 +67,18 @@ boss_nethermancer_sepethreaAI(Creature *c) : ScriptedAI(c)          dragons_breath_Timer = 18000 + rand()%4000;          knockback_Timer = 22000 + rand()%6000;          solarburn_Timer = 30000; + +        if(pInstance) +            pInstance->SetData(DATA_NETHERMANCER_EVENT, NOT_STARTED);      }      void Aggro(Unit *who)      { -        DoScriptText(SAY_AGGRO, m_creature); +        if(pInstance) +            pInstance->SetData(DATA_NETHERMANCER_EVENT, IN_PROGRESS); -        //Summon two guards, three in heroic -        uint8 am = (HeroicMode ? 1 : 2); -        for(int i = 0; i < am; i++) -        { -            DoCast(who,SPELL_SUMMON_RAGIN_FLAMES); -        } +        DoScriptText(SAY_AGGRO, m_creature); +        DoCast(who, HeroicMode ? H_SPELL_SUMMON_RAGIN_FLAMES : SPELL_SUMMON_RAGIN_FLAMES);          DoScriptText(SAY_SUMMON, m_creature);      } @@ -93,8 +94,9 @@ boss_nethermancer_sepethreaAI(Creature *c) : ScriptedAI(c)      void JustDied(Unit* Killer)      {          DoScriptText(SAY_DEATH, m_creature); +          if(pInstance) -            pInstance->SetData(DATA_SEPETHREA_DEATH, 0); +            pInstance->SetData(DATA_NETHERMANCER_EVENT, DONE);      }      void UpdateAI(const uint32 diff) @@ -190,6 +192,7 @@ struct TRINITY_DLL_DECL mob_ragin_flamesAI : public ScriptedAI          onlyonce = false;          m_creature->ApplySpellImmune(0, IMMUNITY_DAMAGE, SPELL_SCHOOL_MASK_MAGIC, true);          m_creature->ApplySpellImmune(0, IMMUNITY_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, true); +        m_creature->SetSpeed(MOVE_RUN, HeroicMode ? 0.7f : 0.5f);      }      void Aggro(Unit* who) @@ -201,6 +204,21 @@ struct TRINITY_DLL_DECL mob_ragin_flamesAI : public ScriptedAI          if (!UpdateVictim())              return; +         //Check_Timer +        if(Check_Timer < diff) +        { +            if(pInstance) +            { +                if(pInstance->GetData(DATA_NETHERMANCER_EVENT) != IN_PROGRESS) +                { +                    //remove +                    m_creature->setDeathState(JUST_DIED); +                    m_creature->RemoveCorpse(); +                } +            } +            Check_Timer = 1000; +        }else Check_Timer -= diff; +          if (!onlyonce)          {              if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0)) @@ -221,22 +239,6 @@ struct TRINITY_DLL_DECL mob_ragin_flamesAI : public ScriptedAI              flame_timer = 500;          }else flame_timer -=diff; -        //Check_Timer -        if(Check_Timer < diff) -        { -            if(pInstance) -            { -                if(pInstance->GetData(DATA_SEPETHREAISDEAD)) -                { -                    //remove -                    m_creature->setDeathState(JUST_DIED); -                    m_creature->RemoveCorpse(); -                } -            } - -            Check_Timer = 1000; -        }else Check_Timer -= diff; -          DoMeleeAttackIfReady();      } diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/def_mechanar.h b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/def_mechanar.h index 8a054604b9d..d1b53eebf53 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/def_mechanar.h +++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/def_mechanar.h @@ -1,7 +1,6 @@  #ifndef DEF_MECHANAR_H  #define DEF_MECHANAR_H -#define DATA_SEPETHREA_DEATH 1 -#define DATA_SEPETHREAISDEAD 2 +#define DATA_NETHERMANCER_EVENT 1  #endif diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/instance_mechanar.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/instance_mechanar.cpp index 45a6d8fb641..d5506fbf44e 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/instance_mechanar.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/instance_mechanar.cpp @@ -24,12 +24,14 @@ EndScriptData */  #include "precompiled.h"  #include "def_mechanar.h" +#define ENCOUNTERS      1 +  struct TRINITY_DLL_DECL instance_mechanar : public ScriptedInstance  {      instance_mechanar(Map *map) : ScriptedInstance(map) {Initialize();}; -    bool IsBossDied[1]; +    uint32 Encounters[ENCOUNTERS];      void OnCreatureCreate (Creature *creature, uint32 creature_entry)      { @@ -37,12 +39,15 @@ struct TRINITY_DLL_DECL instance_mechanar : public ScriptedInstance      void Initialize()      { -        IsBossDied[0] = false; +        for(uint8 i = 0; i < ENCOUNTERS; ++i) +            Encounters[i] = NOT_STARTED;      }      bool IsEncounterInProgress() const      { -        //not active +        for(uint8 i = 0; i < ENCOUNTERS; ++i) +            if(Encounters[i]) return true; +          return false;      } @@ -50,13 +55,10 @@ struct TRINITY_DLL_DECL instance_mechanar : public ScriptedInstance      {          switch(type)          { -            case DATA_SEPETHREAISDEAD: -                if(IsBossDied[0]) -                    return 1; -                break; +        case DATA_NETHERMANCER_EVENT:   return Encounters[0];                   } -        return 0; +        return false;      }      uint64 GetData64 (uint32 identifier) @@ -68,9 +70,7 @@ struct TRINITY_DLL_DECL instance_mechanar : public ScriptedInstance      {          switch(type)          { -            case DATA_SEPETHREA_DEATH: -                IsBossDied[0] = true; -                break; +        case DATA_NETHERMANCER_EVENT:   Encounters[0] = data;   break;          }      }  }; diff --git a/src/framework/Platform/Define.h b/src/framework/Platform/Define.h index e4d45f6b456..7a7bdcab419 100644 --- a/src/framework/Platform/Define.h +++ b/src/framework/Platform/Define.h @@ -60,8 +60,13 @@  #  else  #    define TRINITY_IMPORT __attribute__ ((cdecl))  #  endif //__APPLE_CC__ && BIG_ENDIAN -#  define TRINITY_SCRIPT_EXT ".so" -#  define TRINITY_SCRIPT_NAME "libtrinityscript" +#  if defined(__APPLE_CC__) +#    define TRINITY_SCRIPT_EXT ".dylib" +#    define TRINITY_SCRIPT_NAME "../lib/libtrinityscript" +#  else +#    define TRINITY_SCRIPT_EXT ".so" +#    define TRINITY_SCRIPT_NAME "libtrinityscript" +#  endif //__APPLE_CC__  #  define TRINITY_PATH_MAX PATH_MAX  #endif //PLATFORM diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 5214aa81d40..3db5e89e04e 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -4959,6 +4959,9 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu                      // Get Scryers reputation rank                      if (((Player *)this)->GetReputationRank(934) == REP_EXALTED)                      { +                        if(this->IsFriendlyTo(target)) +                            return false; +                          triggered_spell_id = 45429;                          break;                      } diff --git a/src/trinitycore/CMakeLists.txt b/src/trinitycore/CMakeLists.txt index 72ceca8dd33..2c7c4544577 100644 --- a/src/trinitycore/CMakeLists.txt +++ b/src/trinitycore/CMakeLists.txt @@ -13,15 +13,23 @@ WorldRunnable.cpp  WorldRunnable.h  ) +SET(trinity-core_LINK_FLAGS "") +  add_executable(trinity-core ${trinity-core_SRCS})  add_definitions(  -D_TRINITY_CORE_CONFIG='"${CONF_DIR}/trinitycore.conf"'  )  IF (DO_MYSQL) -    SET_TARGET_PROPERTIES(trinity-core PROPERTIES LINK_FLAGS "-pthread") +    SET(trinity-core_LINK_FLAGS "-pthread ${trinity-core_LINK_FLAGS}")  ENDIF(DO_MYSQL) +IF (CMAKE_SYSTEM_NAME MATCHES "Darwin") +    SET(trinity-core_LINK_FLAGS "-framework Carbon ${trinity-core_LINK_FLAGS}") +    SET(SCRIPT_LIB "") +ENDIF (CMAKE_SYSTEM_NAME MATCHES "Darwin") + +SET_TARGET_PROPERTIES(trinity-core PROPERTIES LINK_FLAGS "${trinity-core_LINK_FLAGS}")  target_link_libraries(  trinity-core @@ -42,6 +50,7 @@ ${POSTGRE_LIBS}  ${SSLLIB}  ${ACE_LIBRARY}  ${ZLIB} +${OSX_LIBS}  )  install(TARGETS trinity-core DESTINATION bin) diff --git a/src/trinityrealm/CMakeLists.txt b/src/trinityrealm/CMakeLists.txt index cddea04ea47..f883259bbf5 100644 --- a/src/trinityrealm/CMakeLists.txt +++ b/src/trinityrealm/CMakeLists.txt @@ -9,18 +9,24 @@ RealmList.cpp  RealmList.h  ) +SET(trinity-realm_LINK_FLAGS "") +  add_executable(trinity-realm ${trinity-realm_SRCS})  add_definitions(  -D_TRINITY_REALM_CONFIG='"${CONF_DIR}/trinityrealm.conf"'  )  IF (DO_MYSQL) -    #SET_TARGET_PROPERTIES(mangos-realmd PROPERTIES LINK_FLAGS ${MYSQL_LIBS}) -    SET_TARGET_PROPERTIES(trinity-realm PROPERTIES LINK_FLAGS "-pthread") +    SET(trinity-realm_LINK_FLAGS "-pthread ${trinity-realm_LINK_FLAGS}")  ENDIF(DO_MYSQL)  IF (DO_POSTGRE) -    SET_TARGET_PROPERTIES(trinity-realmd PROPERTIES LINK_FLAGS ${POSTGRE_LIBS}) +    SET(trinity-realm_LINK_FLAGS "${POSTGRE_LIBS} ${trinity-realm_LINK_FLAGS}")  ENDIF(DO_POSTGRE) +IF (CMAKE_SYSTEM_NAME MATCHES "Darwin") +    SET(trinity-realm_LINK_FLAGS "-framework Carbon ${trinity-realm_LINK_FLAGS}") +ENDIF (CMAKE_SYSTEM_NAME MATCHES "Darwin") + +SET_TARGET_PROPERTIES(trinity-realm PROPERTIES LINK_FLAGS "${trinity-realm_LINK_FLAGS}")  target_link_libraries(  trinity-realm @@ -34,11 +40,11 @@ ZThread  zlib  ${SSLLIB}  ${MYSQL_LIBRARIES} +${OSX_LIBS}  )  install(TARGETS trinity-realm DESTINATION bin) -  ########### install files ###############  install(FILES  trinityrealm.conf.dist DESTINATION etc)  | 
