[snip] > All definitions like above must be done in a single line. But, if you're > going to use multiple lines to define something you'll have to put a > backslash \ at the end of the line to indicate that there's a continuation > on the next line. Therefore, your definition should be something like this: > > #define CHECK_ZONE_VIEW_PERM(num) \ + do { \ > if (IN_NEXT_ZONE(num) || last_in_zone == -1) { \ > zone_rnum = real_zone(num); \ > last_in_zone = zone_table[zone_rnum].top; \ > if (!can_view_zone(ch, zone_rnum)) { \ > sprintf(buf + strlen(buf), "&RZone #%d: Access > denied.&w\r\n", \ > zone_table[zone_rnum].number); \ > first = last_in_zone + 1; \ > first += 100 - (first % 100); \ > continue; \ > } \ > } \ + } [snip] That's an awfully bad macro to use. You should make that a function. You're relying that a number of different variables will exist where you want to use it. Anyway, another thing, you may need to enclose that whole thing in a do { xxx } setup. I'm not sure why, exactly, but a lot of the larger macros in CircleMUD require it. -k. +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 04/10/01 PDT