@@ -166,6 +166,14 @@ bool LLEventNotifier::handleResponse(U32 eventId, const LLSD& notification, cons
166166 return true ;
167167}
168168
169+ bool LLEventNotifier::add (LLEventInfo event)
170+ {
171+ if (mEventInfoSignal (event))
172+ return false ;
173+
174+ return add (event.mID , event.mUnixTime , event.mTimeStr , event.mName );
175+ }
176+
169177bool LLEventNotifier::add (U32 eventId, F64 eventEpoch, const std::string& eventDateStr, const std::string &eventName)
170178{
171179 LLEventNotification *new_enp = new LLEventNotification (eventId, eventEpoch, eventDateStr, eventName);
@@ -198,20 +206,9 @@ void LLEventNotifier::add(U32 eventId)
198206// static
199207void LLEventNotifier::processEventInfoReply (LLMessageSystem *msg, void **)
200208{
201- // extract the agent id
202- LLUUID agent_id;
203- U32 event_id;
204- std::string event_name;
205- std::string eventd_date;
206- U32 event_time_utc;
207-
208- msg->getUUIDFast (_PREHASH_AgentData, _PREHASH_AgentID, agent_id );
209- msg->getU32 (" EventData" , " EventID" , event_id);
210- msg->getString (" EventData" , " Name" , event_name);
211- msg->getString (" EventData" , " Date" , eventd_date);
212- msg->getU32 (" EventData" , " DateUTC" , event_time_utc);
213-
214- gEventNotifier .add (event_id, (F64)event_time_utc, eventd_date, event_name);
209+ LLEventInfo info;
210+ info.unpack (msg);
211+ gEventNotifier .add (info);
215212}
216213
217214
@@ -296,6 +293,52 @@ void LLEventNotifier::serverPushRequest(U32 event_id, bool add)
296293 gAgent .sendReliableMessage ();
297294}
298295
296+ void LLEventInfo::unpack (LLMessageSystem* msg)
297+ {
298+ U32 event_id;
299+ msg->getU32 (" EventData" , " EventID" , event_id);
300+ mID = event_id;
301+
302+ msg->getString (" EventData" , " Name" , mName );
303+
304+ msg->getString (" EventData" , " Category" , mCategoryStr );
305+
306+ msg->getString (" EventData" , " Date" , mTimeStr );
307+
308+ U32 duration;
309+ msg->getU32 (" EventData" , " Duration" , duration);
310+ mDuration = duration;
311+
312+ U32 date;
313+ msg->getU32 (" EventData" , " DateUTC" , date);
314+ mUnixTime = date;
315+
316+ msg->getString (" EventData" , " Desc" , mDesc );
317+
318+ std::string buffer;
319+ msg->getString (" EventData" , " Creator" , buffer);
320+ mRunByID = LLUUID (buffer);
321+
322+ U32 foo;
323+ msg->getU32 (" EventData" , " Cover" , foo);
324+
325+ mHasCover = foo ? true : false ;
326+ if (mHasCover )
327+ {
328+ U32 cover;
329+ msg->getU32 (" EventData" , " Amount" , cover);
330+ mCover = cover;
331+ }
332+
333+ msg->getString (" EventData" , " SimName" , mSimName );
334+
335+ msg->getVector3d (" EventData" , " GlobalPos" , mPosGlobal );
336+
337+ // Mature content
338+ U32 event_flags;
339+ msg->getU32 (" EventData" , " EventFlags" , event_flags);
340+ mEventFlags = event_flags;
341+ }
299342
300343LLEventNotification::LLEventNotification (U32 eventId, F64 eventEpoch, const std::string& eventDateStr, const std::string &eventName) :
301344 mEventID(eventId),
0 commit comments