Answer below.
From: "Mathew Earle Reuther" <graymere@zipcon.net>
> I'm trying to make and if else statement based upon a condition which may
> or may not exist in an event structure. So, for example, I have an event
> structure like so:
>
>
> struct growling_tummy_event_obj {
> struct char_data *ch; /* person who has tummy problem */
> int severity; /* how bad is the problem? *?
> };
>
>
> So In my if else, it looks like so:
>
>
> /* Find out how bad it is and tell them */
> if (GET_TUMMY_RUMBLING_EVENT(ch)) {
> if (ch->tummy_rumbling_event->severity >= 5 )
> send_to_char(ch, "You feel like your belly may burst!!\r\n");
> else {
> send_to_char(ch, "Your tummy aches a bit.\r\n");
> }
> }
>
> So, the problem is that it says that the structure has no member named
> severity.
There aren't. GET_TUMMY_RUMBLING_EVENT(ch) is an event struct:
struct event {
EVENTFUNC(*func);
void *event_obj;
struct q_element *q_el;
};
You need to reference the *event_obj in this structure, to get to the
severity var.
> There is no actual structure NAMED "tummy_rumbling_event", just
> tummy_rumbling_event_obj and the tre created from it by event_create . . .
tummy_rumbling_event is an EVENTFUNC(), right ?
> How do I reference the information in the events?
>
I must admit, I never thought of this before. event_obj is a structure
to be used by the eventfunc, primarily. However, you should be able to
reference a part of the event_obj like this:
/* temp var to make the line fit the wrap. */
void *temp = GET_TUMMY_RUMBLING_EVENT(ch)->event_obj;
((struct growling_tummy_event_obj *)temp).severity
Welcor
--
+---------------------------------------------------------------+
| FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
| Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
| Newbie List: http://groups.yahoo.com/group/circle-newbies/ |
+---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 06/25/03 PDT