aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNay <dnpd.dd@gmail.com>2012-02-25 05:28:22 +0000
committerNay <dnpd.dd@gmail.com>2012-02-25 05:28:22 +0000
commit0f1bd50ae02cd79b6430a15fe5fb9390b13eb43d (patch)
treefcd685c3cdf39963bd56dd2e93a42fa8884fe55d
parentad78d44da84499438f347bde5a48e382bb1316fd (diff)
Core/Calendar: Holiday.dbc -> SMSG_CALENDAR_SEND_CALENDAR
-rwxr-xr-xsrc/server/game/DataStores/DBCStructure.h18
-rwxr-xr-xsrc/server/game/DataStores/DBCfmt.h2
-rwxr-xr-xsrc/server/game/Handlers/CalendarHandler.cpp41
3 files changed, 33 insertions, 28 deletions
diff --git a/src/server/game/DataStores/DBCStructure.h b/src/server/game/DataStores/DBCStructure.h
index adb7f0ac380..128ae553700 100755
--- a/src/server/game/DataStores/DBCStructure.h
+++ b/src/server/game/DataStores/DBCStructure.h
@@ -1068,17 +1068,17 @@ struct HolidayNamesEntry
struct HolidaysEntry
{
- uint32 ID; // 0 m_ID
- //uint32 duration[10]; // 1-10 m_duration
- //uint32 date[26]; // 11-36 m_date (dates in unix time starting at January, 1, 2000)
- //uint32 region; // 37 m_region (wow region)
- //uint32 looping; // 38 m_looping
- //uint32 calendarFlags[10]; // 39-48 m_calendarFlags
+ uint32 Id; // 0 m_ID
+ uint32 Duration[10]; // 1-10 m_duration
+ uint32 Date[26]; // 11-36 m_date (dates in unix time starting at January, 1, 2000)
+ uint32 Region; // 37 m_region (wow region)
+ uint32 Looping; // 38 m_looping
+ uint32 CalendarFlags[10]; // 39-48 m_calendarFlags
//uint32 holidayNameId; // 49 m_holidayNameID (HolidayNames.dbc)
//uint32 holidayDescriptionId; // 50 m_holidayDescriptionID (HolidayDescriptions.dbc)
- //char *textureFilename; // 51 m_textureFilename
- //uint32 priority; // 52 m_priority
- //uint32 calendarFilterType; // 53 m_calendarFilterType (-1 = Fishing Contest, 0 = Unk, 1 = Darkmoon Festival, 2 = Yearly holiday)
+ char* TextureFilename; // 51 m_textureFilename
+ uint32 Priority; // 52 m_priority
+ uint32 CalendarFilterType; // 53 m_calendarFilterType (-1 = Fishing Contest, 0 = Unk, 1 = Darkmoon Festival, 2 = Yearly holiday)
//uint32 flags; // 54 m_flags (0 = Darkmoon Faire, Fishing Contest and Wotlk Launch, rest is 1)
};
diff --git a/src/server/game/DataStores/DBCfmt.h b/src/server/game/DataStores/DBCfmt.h
index 150159feb11..54be02a619e 100755
--- a/src/server/game/DataStores/DBCfmt.h
+++ b/src/server/game/DataStores/DBCfmt.h
@@ -67,7 +67,7 @@ const char GtOCTRegenHPfmt[]="f";
//const char GtOCTRegenMPfmt[]="f";
const char GtRegenHPPerSptfmt[]="f";
const char GtRegenMPPerSptfmt[]="f";
-const char Holidaysfmt[]="nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
+const char Holidaysfmt[]="niiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiixxsiix";
const char Itemfmt[]="niiiiiii";
const char ItemBagFamilyfmt[]="nxxxxxxxxxxxxxxxxx";
//const char ItemDisplayTemplateEntryfmt[]="nxxxxxxxxxxixxxxxxxxxxx";
diff --git a/src/server/game/Handlers/CalendarHandler.cpp b/src/server/game/Handlers/CalendarHandler.cpp
index b5bff0e710a..294e669fd18 100755
--- a/src/server/game/Handlers/CalendarHandler.cpp
+++ b/src/server/game/Handlers/CalendarHandler.cpp
@@ -153,26 +153,31 @@ void WorldSession::HandleCalendarGetCalendar(WorldPacket& /*recvData*/)
data.put<uint32>(p_counter, counter);
- data << uint32(0); // holiday count?
- /*
- for (;;)
+
+ // TODO: Fix this, how we do know how many and what holidays to send?
+ uint32 holidayCount = 0;
+ data << uint32(holidayCount);
+ for (uint32 i = 0; i < holidayCount; ++i)
{
- uint32 unk5, unk6, unk7, unk8, unk9;
- for (uint32 j = 0; j < 26; ++j)
- {
- uint32 unk10;
- }
- for (uint32 j = 0; j < 10; ++j)
- {
- uint32 unk11;
- }
- for (uint32 j = 0; j < 10; ++j)
- {
- uint32 unk12;
- }
- std::string holidayName; // 64 chars
+ HolidaysEntry const* holiday = sHolidaysStore.LookupEntry(666);
+
+ data << uint32(holiday->Id); // m_ID
+ data << uint32(holiday->Region); // m_region, might be looping
+ data << uint32(holiday->Looping); // m_looping, might be region
+ data << uint32(holiday->Priority); // m_priority
+ data << uint32(holiday->CalendarFilterType); // m_calendarFilterType
+
+ for (uint8 j = 0; j < sizeof(holiday->Date)/sizeof(holiday->Date[0]; ++j)
+ data << uint32(holiday->Date[j]); // 26 * m_date
+
+ for (uint8 j = 0; j < sizeof(holiday->Duration)/sizeof(holiday->Duration[0]; ++j)
+ data << uint32(holiday->Duration[j]); // 10 * m_duration
+
+ for (uint8 j = 0; j < sizeof(holiday->CalendarFlags)/sizeof(holiday->CalendarFlags[0]; ++j)
+ data << uint32(holiday->CalendarFlags[j]); // 10 * m_calendarFlags
+
+ data << holiday->TextureFilename.c_str(); // m_textureFilename (holiday name)
}
- */
SendPacket(&data);
}