AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
go_bells::go_bellsAI Struct Reference
Inheritance diagram for go_bells::go_bellsAI:
GameObjectAI

Public Member Functions

 go_bellsAI (GameObject *go)
 
void UpdateAI (uint32 const diff) override
 
- Public Member Functions inherited from GameObjectAI
 GameObjectAI (GameObject *go)
 
virtual ~GameObjectAI ()
 
virtual void InitializeAI ()
 
virtual void Reset ()
 
virtual void DoAction (int32)
 
virtual void SetGUID (ObjectGuid const &, int32)
 
virtual ObjectGuid GetGUID (int32) const
 
virtual bool GossipHello (Player *, bool)
 
virtual bool GossipSelect (Player *, uint32, uint32)
 
virtual bool GossipSelectCode (Player *, uint32, uint32, char const *)
 
virtual bool QuestAccept (Player *, Quest const *)
 
virtual bool QuestReward (Player *, Quest const *, uint32)
 
virtual uint32 GetDialogStatus (Player *)
 
virtual void Destroyed (Player *, uint32)
 
virtual uint32 GetData (uint32) const
 
virtual void SetData (uint32, uint32)
 
virtual void OnGameEvent (bool, uint16)
 
virtual void OnStateChanged (uint32, Unit *)
 
virtual void EventInform (uint32)
 
virtual void SpellHit (Unit *, SpellInfo const *)
 
virtual bool CanBeSeen (Player const *)
 
virtual void JustSummoned (Creature *)
 
virtual void SummonedCreatureDespawn (Creature *)
 
virtual void SummonedCreatureDies (Creature *, Unit *)
 
virtual void SummonedCreatureEvade (Creature *)
 

Private Attributes

EventMap _events
 
uint32 _soundId
 
bool once
 

Additional Inherited Members

- Static Public Member Functions inherited from GameObjectAI
static int32 Permissible (GameObject const *go)
 
- Protected Attributes inherited from GameObjectAI
GameObject *const me
 

Detailed Description

Constructor & Destructor Documentation

◆ go_bellsAI()

go_bells::go_bellsAI::go_bellsAI ( GameObject *  go)
inline
1598 : GameObjectAI(go), _soundId(0), once(true)
1599 {
1600 uint32 zoneId = go->GetZoneId();
1601
1602 switch (go->GetEntry())
1603 {
1604 case GO_HORDE_BELL:
1605 {
1606 switch (zoneId)
1607 {
1609 case AREA_UNDERCITY:
1611 case AREA_DUSKWOOD:
1613 break;
1614 default:
1616 break;
1617 }
1618 break;
1619 }
1620 case GO_ALLIANCE_BELL:
1621 {
1622 switch (zoneId)
1623 {
1624 case AREA_IRONFORGE:
1625 case AREA_DUN_MOROGH:
1627 break;
1628 case AREA_DARNASSUS:
1629 case AREA_TELDRASSIL:
1630 case AREA_ASHENVALE:
1633 break;
1634 case AREA_WESTFALL:
1636 {
1638 }
1639 else
1640 {
1642 }
1643 break;
1645 if (go->GetAreaId() == AREA_ALCAZ_ISLAND)
1646 {
1648 }
1649 else
1650 {
1652 }
1653 break;
1654 default:
1656 break;
1657 }
1658 break;
1659 }
1660 case GO_KHARAZHAN_BELL:
1661 {
1663 break;
1664 }
1665 break;
1666 }
1667 }
@ AREA_UNDERCITY
Definition AreaDefines.h:80
@ AREA_IRONFORGE
Definition AreaDefines.h:82
@ AREA_ALCAZ_ISLAND
Definition AreaDefines.h:88
@ AREA_WESTFALL
Definition AreaDefines.h:39
@ AREA_ASHENVALE
Definition AreaDefines.h:63
@ AREA_DUSKWOOD
Definition AreaDefines.h:29
@ AREA_WESTFALL_LIGHTHOUSE
Definition AreaDefines.h:50
@ AREA_HILLSBRAD_FOOTHILLS
Definition AreaDefines.h:62
@ AREA_DUSTWALLOW_MARSH
Definition AreaDefines.h:33
@ AREA_TELDRASSIL
Definition AreaDefines.h:54
@ AREA_DUN_MOROGH
Definition AreaDefines.h:25
@ AREA_TIRISFAL_GLADES
Definition AreaDefines.h:48
@ AREA_SHATTRATH_CITY
Definition AreaDefines.h:118
@ AREA_DARNASSUS
Definition AreaDefines.h:85
std::uint32_t uint32
Definition Define.h:107
Definition GameObjectAI.h:33
uint32 GetEntry() const
Definition Object.h:123
uint32 GetAreaId() const
Definition Object.cpp:3186
uint32 GetZoneId() const
Definition Object.cpp:3178
@ GO_ALLIANCE_BELL
Definition go_scripts.cpp:1580
@ GO_KHARAZHAN_BELL
Definition go_scripts.cpp:1581
@ GO_HORDE_BELL
Definition go_scripts.cpp:1579
@ LIGHTHOUSEFOGHORN
Definition go_scripts.cpp:1574
@ BELLTOLLNIGHTELF
Definition go_scripts.cpp:1571
@ BELLTOLLALLIANCE
Definition go_scripts.cpp:1570
@ BELLTOLLKHARAZHAN
Definition go_scripts.cpp:1573
@ BELLTOLLHORDE
Definition go_scripts.cpp:1568
@ BELLTOLLTRIBAL
Definition go_scripts.cpp:1569
@ BELLTOLLDWARFGNOME
Definition go_scripts.cpp:1572
uint32 _soundId
Definition go_scripts.cpp:1717
bool once
Definition go_scripts.cpp:1718

References _soundId, AREA_ALCAZ_ISLAND, AREA_ASHENVALE, AREA_DARNASSUS, AREA_DUN_MOROGH, AREA_DUSKWOOD, AREA_DUSTWALLOW_MARSH, AREA_HILLSBRAD_FOOTHILLS, AREA_IRONFORGE, AREA_SHATTRATH_CITY, AREA_TELDRASSIL, AREA_TIRISFAL_GLADES, AREA_UNDERCITY, AREA_WESTFALL, AREA_WESTFALL_LIGHTHOUSE, BELLTOLLALLIANCE, BELLTOLLDWARFGNOME, BELLTOLLHORDE, BELLTOLLKHARAZHAN, BELLTOLLNIGHTELF, BELLTOLLTRIBAL, WorldObject::GetAreaId(), Object::GetEntry(), WorldObject::GetZoneId(), GO_ALLIANCE_BELL, GO_HORDE_BELL, GO_KHARAZHAN_BELL, and LIGHTHOUSEFOGHORN.

Member Function Documentation

◆ UpdateAI()

void go_bells::go_bellsAI::UpdateAI ( uint32 const  diff)
inlineoverridevirtual

Reimplemented from GameObjectAI.

1670 {
1671 _events.Update(diff);
1672
1673 if (sGameEventMgr->IsActiveEvent(GAME_EVENT_HOURLY_BELLS) && once)
1674 {
1675 // Reset
1676 once = false;
1678 }
1679
1680 while (uint32 eventId = _events.ExecuteEvent())
1681 {
1682 switch (eventId)
1683 {
1684 case EVENT_TIME:
1685 {
1686 tzset(); // set timezone for localtime_r() -> fix issues due to daylight time
1687 tm local_tm = Acore::Time::TimeBreakdown();
1688 uint8 _rings = (local_tm.tm_hour) % 12;
1689 _rings = (_rings == 0) ? 12 : _rings; // 00:00 and 12:00
1690
1691 // Dwarf hourly horn should only play a single time, each time the next hour begins.
1693 {
1694 _rings = 1;
1695 }
1696
1697 // Schedule ring event
1698 for (auto i = 0; i < _rings; ++i)
1699 {
1701 }
1702 break;
1703 }
1704 case EVENT_RING_BELL:
1705 {
1707 break;
1708 }
1709 default:
1710 break;
1711 }
1712 }
1713 }
std::uint8_t uint8
Definition Define.h:109
std::chrono::seconds Seconds
Seconds shorthand typedef.
Definition Duration.h:30
#define sGameEventMgr
Definition GameEventMgr.h:204
void Update(uint32 time)
Definition EventMap.h:67
EventId ExecuteEvent()
Definition EventMap.cpp:86
void ScheduleEvent(EventId eventId, Milliseconds time, GroupIndex group=0u, PhaseIndex phase=0u)
Definition EventMap.cpp:48
GameObject *const me
Definition GameObjectAI.h:35
void PlayDirectSound(uint32 sound_id, Player *target=nullptr)
Definition Object.cpp:3023
@ EVENT_TIME
Definition go_scripts.cpp:1588
@ GAME_EVENT_HOURLY_BELLS
Definition go_scripts.cpp:1586
@ EVENT_RING_BELL
Definition go_scripts.cpp:1587
AC_COMMON_API std::tm TimeBreakdown(time_t t=0)
Definition Timer.cpp:233
EventMap _events
Definition go_scripts.cpp:1716

References _events, _soundId, BELLTOLLDWARFGNOME, EVENT_RING_BELL, EVENT_TIME, EventMap::ExecuteEvent(), GAME_EVENT_HOURLY_BELLS, GameObjectAI::me, once, WorldObject::PlayDirectSound(), EventMap::ScheduleEvent(), sGameEventMgr, Acore::Time::TimeBreakdown(), and EventMap::Update().

Member Data Documentation

◆ _events

EventMap go_bells::go_bellsAI::_events
private

Referenced by UpdateAI().

◆ _soundId

uint32 go_bells::go_bellsAI::_soundId
private

Referenced by go_bellsAI(), and UpdateAI().

◆ once

bool go_bells::go_bellsAI::once
private

Referenced by UpdateAI().


The documentation for this struct was generated from the following file: