diff -ur src/act_comm.c new/act_comm.c
--- src/act_comm.c Sat Feb 15 14:23:34 2003
+++ new/act_comm.c Sat Feb 15 14:23:25 2003
@@ -93,6 +93,256 @@
wiznet("$N is contemplating deletion.", ch, NULL, 0, 0, get_trust(ch));
}
+bool display_channel(CHAR_DATA * ch, CHAR_DATA * victim,
+ enum special_flags spec_flag)
+{
+ if (!ch || !victim)
+ return FALSE;
+
+ if (IS_SET(victim->comm, COMM_QUIET))
+ return FALSE;
+
+ switch (spec_flag)
+ {
+ case spec_clan_flag:
+ if (!is_same_clan(ch, victim))
+ return FALSE;
+ break;
+ case spec_imm_flag:
+ if (!IS_IMMORTAL(victim))
+ return FALSE;
+ break;
+ case spec_public_flag:
+ return TRUE;
+ break;
+ }
+
+ return TRUE;
+}
+
+void channel_social(CHAR_DATA * ch, CHAR_DATA * victim, OBJ_DATA * obj,
+ flag_t bit, const char *string, const char *type,
+ enum special_flags spec_flag)
+{
+ DESCRIPTOR_DATA *d;
+
+ for (d = descriptor_first; d; d = d->next)
+ {
+ CHAR_DATA *vch = CH(d);
+
+ if (d->connected != CON_PLAYING)
+ continue;
+
+ if (vch && (vch != ch) && (vch != victim)
+ && display_channel(ch, vch, spec_flag)
+ && (!bit || !IS_SET(vch->comm, bit))
+ && !IS_SET(vch->comm, COMM_NOGOCIAL))
+ {
+ char buf[MSL];
+
+ sprintf(buf, "%s %s", type, string);
+ perform_act(buf, ch, obj, victim, FALSE, vch);
+ }
+ }
+}
+
+void public_ch(CHAR_DATA * ch, const char *argument,
+ const char *type, flag_t bitname, enum special_flags spec_flag)
+{
+ char command[MIL + 100];
+ DESCRIPTOR_DATA *d;
+ bool display_wholist = FALSE, fEmote = FALSE;
+ char arg_left[MSL];
+
+ if (IS_NULLSTR(argument))
+ {
+ if (!bitname)
+ chprintln(ch, "What do you want to say?");
+ else
+ {
+ if (IS_SET(ch->comm, (bitname)))
+ {
+ chprintlnf(ch, "%s channel is now ON.{x", type);
+ REMOVE_BIT(ch->comm, (bitname));
+ }
+ else
+ {
+ chprintlnf(ch, "%s channel is now OFF.{x", type);
+ SET_BIT(ch->comm, (bitname));
+ }
+ }
+ }
+ else
+ {
+ if (IS_SET(ch->comm, COMM_QUIET))
+ {
+ chprintln(ch, "You must turn off quiet mode first.");
+ return;
+ }
+ if (IS_SET(ch->comm, COMM_NOCHANNELS))
+ {
+ chprintln(ch, "The gods have revoked your channel priviliges.");
+ return;
+ }
+ if (bitname)
+ REMOVE_BIT(ch->comm, (bitname));
+
+ strcpy(arg_left, argument);
+
+ argument = one_argument(argument, command);
+ if (!str_cmp(command, "+"))
+ {
+ CHAR_DATA *victim;
+ char buf[MIL + 200];
+ int cmd;
+ bool found;
+ char argx[MIL];
+
+ argument = one_argument(argument, command);
+ if (IS_NULLSTR(command))
+ {
+ chprintln
+ (ch,
+ "{W<Channel> + <social> is used for channel based socials.{x");
+ return;
+ }
+ found = FALSE;
+ if (!str_cmp(command, "random"))
+ cmd = number_range(1, maxSocial - 1);
+ else
+ {
+ for (cmd = 0; cmd < maxSocial; cmd++)
+ {
+ if (command[0] == social_table[cmd].name[0]
+ && !str_prefix(command, social_table[cmd].name))
+ {
+ found = TRUE;
+ break;
+ }
+ }
+ if (!found)
+ {
+ chprintln(ch, "{WWhat kind of social is that?!?!{x");
+ return;
+ }
+ }
+ one_argument(argument, argx);
+ victim = NULL;
+ if (IS_NULLSTR(argx))
+ {
+ sprintf(buf, "%s %s", type, social_table[cmd].char_no_arg);
+ act_new(buf, ch, NULL, NULL, TO_CHAR, POS_DEAD);
+ channel_social(ch, NULL, NULL, bitname,
+ social_table[cmd].others_no_arg, type,
+ spec_flag);
+ }
+ else if ((victim = get_char_world(ch, argx)) == NULL)
+ {
+ chprintln(ch, "They aren't here.");
+ return;
+ }
+ else
+ {
+ if (!display_channel(ch, victim, spec_flag))
+ {
+ chprintln(ch, "They can't use that channel.");
+ return;
+ }
+ if (victim == ch)
+ {
+ sprintf(buf, "%s %s", type, social_table[cmd].char_auto);
+ act_new(buf, ch, NULL, NULL, TO_CHAR, POS_DEAD);
+ channel_social(ch, victim, NULL, bitname,
+ social_table[cmd].others_auto, type,
+ spec_flag);
+ }
+ else
+ {
+ sprintf(buf, "%s %s", type, social_table[cmd].char_found);
+ act_new(buf, ch, NULL, victim, TO_CHAR, POS_DEAD);
+ if ((!bitname || !IS_SET(victim->comm, bitname))
+ && !IS_SET(victim->comm, COMM_NOGOCIAL)
+ && display_channel(ch, victim, spec_flag))
+ {
+ sprintf(buf, "%s %s", type,
+ social_table[cmd].vict_found);
+ act_new(buf, ch, NULL, victim, TO_VICT, POS_DEAD);
+ }
+ channel_social(ch, victim, NULL, bitname,
+ social_table[cmd].others_found, type,
+ spec_flag);
+ }
+ }
+ return;
+ }
+ else if (!str_cmp(command, "!"))
+ {
+ fEmote = TRUE;
+
+ chprintlnf(ch, "%s %s %s{x", type,
+ IS_NPC(ch) ? ch->short_descr : ch->name, argument);
+ }
+ else if (!str_cmp(command, "wholist"))
+ {
+ display_wholist = TRUE;
+ chprintlnf(ch, "{WPlayers on %s{x", type);
+ chprintln(ch, "{C-------------------{x");
+ }
+ else
+ {
+ chprintlnf(ch, "%s You say '%s'{x", type, arg_left);
+ }
+ for (d = descriptor_first; d != NULL; d = d->next)
+ {
+ CHAR_DATA *victim;
+
+ if (d->connected != CON_PLAYING)
+ continue;
+ if ((victim = d->character) == NULL)
+ continue;
+ if (victim == ch)
+ continue;
+ if ((bitname && IS_SET(victim->comm, (bitname)))
+ || display_channel(ch, victim, spec_flag) == FALSE)
+ continue;
+
+ if (!display_wholist)
+ {
+ if (fEmote && !IS_SET(victim->comm, COMM_NOGOCIAL))
+ {
+ chprintlnf(victim, "%s %s %s{x", type,
+ smash_colour(PERS(ch, victim)), argument);
+ }
+ else
+ {
+ chprintlnf(victim, "%s %s says '%s'{x", type,
+ smash_colour(PERS(ch, victim)), arg_left);
+ }
+ }
+ else
+ {
+ if (victim->invis_level < LEVEL_IMMORTAL
+ && victim->incog_level < LEVEL_IMMORTAL)
+ chprintlnf(ch, "{W%s{x", PERS(victim, ch));
+ }
+ }
+ }
+}
+
+CH_CMD(do_nogocial)
+{
+ if (IS_SET(ch->comm, COMM_NOGOCIAL))
+ {
+ REMOVE_BIT(ch->comm, COMM_NOGOCIAL);
+ chprintln(ch, "You no longer see socials/emotes over channels.");
+ }
+ else
+ {
+ SET_BIT(ch->comm, COMM_NOGOCIAL);
+ chprintln(ch, "You now see socials/emotes over channels.");
+ }
+}
+
/* RT code to display channel status */
CH_CMD(do_channels)
@@ -165,6 +415,12 @@
else
chprintln(ch, "OFF");
+ chprint(ch, "gocials ");
+ if (IS_SET(ch->comm, COMM_NOGOCIAL))
+ chprintln(ch, "OFF");
+ else
+ chprintln(ch, "ON");
+
if (IS_SET(ch->comm, COMM_AFK))
chprintln(ch, "You are AFK.");
@@ -270,425 +526,66 @@
/* RT chat replaced with ROM gossip */
CH_CMD(do_gossip)
{
- DESCRIPTOR_DATA *d;
-
- if (argument[0] == '\0')
- {
- if (IS_SET(ch->comm, COMM_NOGOSSIP))
- {
- chprintln(ch, "Gossip channel is now ON.");
- REMOVE_BIT(ch->comm, COMM_NOGOSSIP);
- }
- else
- {
- chprintln(ch, "Gossip channel is now OFF.");
- SET_BIT(ch->comm, COMM_NOGOSSIP);
- }
- }
- else /* gossip message sent, turn gossip on if it isn't already */
- {
- if (IS_SET(ch->comm, COMM_QUIET))
- {
- chprintln(ch, "You must turn off quiet mode first.");
- return;
- }
-
- if (IS_SET(ch->comm, COMM_NOCHANNELS))
- {
- chprintln(ch, "The gods have revoked your channel priviliges.");
- return;
-
- }
-
- REMOVE_BIT(ch->comm, COMM_NOGOSSIP);
-
- chprintlnf(ch,
- "" CTAG(_GOSSIP1) "You gossip '" CTAG(_GOSSIP2) "%s"
- CTAG(_GOSSIP1) "'{x", argument);
- for (d = descriptor_first; d != NULL; d = d->next)
- {
- CHAR_DATA *victim;
-
- victim = d->original ? d->original : d->character;
+ public_ch(ch, argument, CTAG(_GOSSIP1) "[Gossip]" CTAG(_GOSSIP2),
+ COMM_NOGOSSIP, spec_public_flag);
+}
- if (d->connected == CON_PLAYING && d->character != ch &&
- !IS_SET(victim->comm, COMM_NOGOSSIP) &&
- !IS_SET(victim->comm, COMM_QUIET))
- {
- act_new("" CTAG(_GOSSIP1) "$n gossips '"
- CTAG(_GOSSIP2) "$t" CTAG(_GOSSIP1)
- "'{x", ch, argument, d->character,
- TO_VICT, POS_SLEEPING);
- }
- }
- }
+CH_CMD(do_ooc)
+{
+ public_ch(ch, argument, "{C({WOOC{C){w", COMM_NOOOC, spec_public_flag);
}
CH_CMD(do_grats)
{
- DESCRIPTOR_DATA *d;
-
- if (argument[0] == '\0')
- {
- if (IS_SET(ch->comm, COMM_NOGRATS))
- {
- chprintln(ch, "Grats channel is now ON.");
- REMOVE_BIT(ch->comm, COMM_NOGRATS);
- }
- else
- {
- chprintln(ch, "Grats channel is now OFF.");
- SET_BIT(ch->comm, COMM_NOGRATS);
- }
- }
- else /* grats message sent, turn grats on if it isn't already */
- {
- if (IS_SET(ch->comm, COMM_QUIET))
- {
- chprintln(ch, "You must turn off quiet mode first.");
- return;
- }
-
- if (IS_SET(ch->comm, COMM_NOCHANNELS))
- {
- chprintln(ch, "The gods have revoked your channel priviliges.");
- return;
-
- }
-
- REMOVE_BIT(ch->comm, COMM_NOGRATS);
-
- chprintlnf(ch,
- "" CTAG(_GRATS1) "You grats '" CTAG(_GRATS2) "%s"
- CTAG(_GRATS1) "'{x", argument);
- for (d = descriptor_first; d != NULL; d = d->next)
- {
- CHAR_DATA *victim;
-
- victim = d->original ? d->original : d->character;
-
- if (d->connected == CON_PLAYING && d->character != ch &&
- !IS_SET(victim->comm, COMM_NOGRATS) &&
- !IS_SET(victim->comm, COMM_QUIET))
- {
- act_new("" CTAG(_GRATS1) "$n grats '"
- CTAG(_GRATS2) "$t" CTAG(_GRATS1) "'{x",
- ch, argument, d->character, TO_VICT, POS_SLEEPING);
- }
- }
- }
+ public_ch(ch, argument, CTAG(_GRATS1) "[Grats]" CTAG(_GRATS2), COMM_NOGRATS,
+ spec_public_flag);
}
CH_CMD(do_quote)
{
- DESCRIPTOR_DATA *d;
-
- if (argument[0] == '\0')
- {
- if (IS_SET(ch->comm, COMM_NOQUOTE))
- {
- chprintln(ch, "Quote channel is now ON.");
- REMOVE_BIT(ch->comm, COMM_NOQUOTE);
- }
- else
- {
- chprintln(ch, "Quote channel is now OFF.");
- SET_BIT(ch->comm, COMM_NOQUOTE);
- }
- }
- else /* quote message sent, turn quote on if it isn't already */
- {
- if (IS_SET(ch->comm, COMM_QUIET))
- {
- chprintln(ch, "You must turn off quiet mode first.");
- return;
- }
-
- if (IS_SET(ch->comm, COMM_NOCHANNELS))
- {
- chprintln(ch, "The gods have revoked your channel priviliges.");
- return;
-
- }
-
- REMOVE_BIT(ch->comm, COMM_NOQUOTE);
-
- chprintlnf(ch,
- "" CTAG(_QUOTE1) "You quote '" CTAG(_QUOTE2) "%s"
- CTAG(_QUOTE1) "'{x", argument);
- for (d = descriptor_first; d != NULL; d = d->next)
- {
- CHAR_DATA *victim;
-
- victim = d->original ? d->original : d->character;
-
- if (d->connected == CON_PLAYING && d->character != ch &&
- !IS_SET(victim->comm, COMM_NOQUOTE) &&
- !IS_SET(victim->comm, COMM_QUIET))
- {
- act_new("" CTAG(_QUOTE1) "$n quotes '"
- CTAG(_QUOTE2) "$t" CTAG(_QUOTE1) "'{x",
- ch, argument, d->character, TO_VICT, POS_SLEEPING);
- }
- }
- }
+ public_ch(ch, argument, CTAG(_QUOTE1) "[Quote]" CTAG(_QUOTE2), COMM_NOQUOTE,
+ spec_public_flag);
}
/* RT question channel */
CH_CMD(do_question)
{
- DESCRIPTOR_DATA *d;
-
- if (argument[0] == '\0')
- {
- if (IS_SET(ch->comm, COMM_NOQUESTION))
- {
- chprintln(ch, "Q/A channel is now ON.");
- REMOVE_BIT(ch->comm, COMM_NOQUESTION);
- }
- else
- {
- chprintln(ch, "Q/A channel is now OFF.");
- SET_BIT(ch->comm, COMM_NOQUESTION);
- }
- }
- else /* question sent, turn Q/A on if it isn't already */
- {
- if (IS_SET(ch->comm, COMM_QUIET))
- {
- chprintln(ch, "You must turn off quiet mode first.");
- return;
- }
-
- if (IS_SET(ch->comm, COMM_NOCHANNELS))
- {
- chprintln(ch, "The gods have revoked your channel priviliges.");
- return;
- }
-
- REMOVE_BIT(ch->comm, COMM_NOQUESTION);
-
- chprintlnf(ch,
- "" CTAG(_QA1) "You question '" CTAG(_QA2) "%s"
- CTAG(_QA1) "'{x", argument);
- for (d = descriptor_first; d != NULL; d = d->next)
- {
- CHAR_DATA *victim;
-
- victim = d->original ? d->original : d->character;
-
- if (d->connected == CON_PLAYING && d->character != ch &&
- !IS_SET(victim->comm, COMM_NOQUESTION) &&
- !IS_SET(victim->comm, COMM_QUIET))
- {
- act_new("" CTAG(_QA1) "$n questions '"
- CTAG(_QA2) "$t" CTAG(_QA1) "'{x", ch,
- argument, d->character, TO_VICT, POS_SLEEPING);
- }
- }
- }
+ public_ch(ch, argument, CTAG(_QA1) "[Question]" CTAG(_QA2), COMM_NOQUESTION,
+ spec_public_flag);
}
/* RT answer channel - uses same line as questions */
CH_CMD(do_answer)
{
- DESCRIPTOR_DATA *d;
-
- if (argument[0] == '\0')
- {
- if (IS_SET(ch->comm, COMM_NOQUESTION))
- {
- chprintln(ch, "Q/A channel is now ON.");
- REMOVE_BIT(ch->comm, COMM_NOQUESTION);
- }
- else
- {
- chprintln(ch, "Q/A channel is now OFF.");
- SET_BIT(ch->comm, COMM_NOQUESTION);
- }
- }
- else /* answer sent, turn Q/A on if it isn't already */
- {
- if (IS_SET(ch->comm, COMM_QUIET))
- {
- chprintln(ch, "You must turn off quiet mode first.");
- return;
- }
-
- if (IS_SET(ch->comm, COMM_NOCHANNELS))
- {
- chprintln(ch, "The gods have revoked your channel priviliges.");
- return;
- }
-
- REMOVE_BIT(ch->comm, COMM_NOQUESTION);
-
- chprintlnf(ch,
- "" CTAG(_QA1) "You answer '" CTAG(_QA2) "%s"
- CTAG(_QA1) "'{x", argument);
- for (d = descriptor_first; d != NULL; d = d->next)
- {
- CHAR_DATA *victim;
-
- victim = d->original ? d->original : d->character;
-
- if (d->connected == CON_PLAYING && d->character != ch &&
- !IS_SET(victim->comm, COMM_NOQUESTION) &&
- !IS_SET(victim->comm, COMM_QUIET))
- {
- act_new("" CTAG(_QA1) "$n answers '" CTAG(_QA2)
- "$t" CTAG(_QA1) "'{x", ch, argument,
- d->character, TO_VICT, POS_SLEEPING);
- }
- }
- }
+ public_ch(ch, argument, CTAG(_QA1) "[Answer]" CTAG(_QA2), COMM_NOQUESTION,
+ spec_public_flag);
}
/* RT music channel */
CH_CMD(do_music)
{
- char buf[MAX_STRING_LENGTH];
- DESCRIPTOR_DATA *d;
-
- if (argument[0] == '\0')
- {
- if (IS_SET(ch->comm, COMM_NOMUSIC))
- {
- chprintln(ch, "Music channel is now ON.");
- REMOVE_BIT(ch->comm, COMM_NOMUSIC);
- }
- else
- {
- chprintln(ch, "Music channel is now OFF.");
- SET_BIT(ch->comm, COMM_NOMUSIC);
- }
- }
- else /* music sent, turn music on if it isn't already */
- {
- if (IS_SET(ch->comm, COMM_QUIET))
- {
- chprintln(ch, "You must turn off quiet mode first.");
- return;
- }
-
- if (IS_SET(ch->comm, COMM_NOCHANNELS))
- {
- chprintln(ch, "The gods have revoked your channel priviliges.");
- return;
- }
-
- REMOVE_BIT(ch->comm, COMM_NOMUSIC);
-
- chprintlnf(ch,
- "" CTAG(_MUSIC1) "You MUSIC" CTAG(_MUSIC2) ": "
- CTAG(_MUSIC1) "'" CTAG(_MUSIC3) "%s" CTAG(_MUSIC1)
- "'{x", argument);
- sprintf(buf, "$n MUSIC: '%s'", argument);
- for (d = descriptor_first; d != NULL; d = d->next)
- {
- CHAR_DATA *victim;
-
- victim = d->original ? d->original : d->character;
-
- if (d->connected == CON_PLAYING && d->character != ch &&
- !IS_SET(victim->comm, COMM_NOMUSIC) &&
- !IS_SET(victim->comm, COMM_QUIET))
- {
- act_new("" CTAG(_MUSIC1) "$n MUSIC"
- CTAG(_MUSIC2) ": " CTAG(_MUSIC1) "'"
- CTAG(_MUSIC3) "$t" CTAG(_MUSIC1) "'{x",
- ch, argument, d->character, TO_VICT, POS_SLEEPING);
- }
- }
- }
+ public_ch(ch, argument,
+ CTAG(_MUSIC1) "[" CTAG(_MUSIC2) "MUSIC" CTAG(_MUSIC1) "]"
+ CTAG(_MUSIC3), COMM_NOMUSIC, spec_public_flag);
}
/* clan channels */
CH_CMD(do_clantalk)
{
- char buf[MAX_STRING_LENGTH];
- DESCRIPTOR_DATA *d;
-
if (!is_clan(ch) || clan_table[ch->clan].independent)
{
chprintln(ch, "You aren't in a clan.");
return;
}
- if (argument[0] == '\0')
- {
- if (IS_SET(ch->comm, COMM_NOCLAN))
- {
- chprintln(ch, "Clan channel is now ON");
- REMOVE_BIT(ch->comm, COMM_NOCLAN);
- }
- else
- {
- chprintln(ch, "Clan channel is now OFF");
- SET_BIT(ch->comm, COMM_NOCLAN);
- }
- return;
- }
-
- if (IS_SET(ch->comm, COMM_NOCHANNELS))
- {
- chprintln(ch, "The gods have revoked your channel priviliges.");
- return;
- }
-
- REMOVE_BIT(ch->comm, COMM_NOCLAN);
-
- chprintlnf(ch, "You clan '%s'", argument);
- sprintf(buf, "$n clans '%s'", argument);
- for (d = descriptor_first; d != NULL; d = d->next)
- {
- if (d->connected == CON_PLAYING && d->character != ch &&
- is_same_clan(ch, d->character) &&
- !IS_SET(d->character->comm, COMM_NOCLAN) &&
- !IS_SET(d->character->comm, COMM_QUIET))
- {
- act_new("$n clans '$t'", ch, argument, d->character,
- TO_VICT, POS_DEAD);
- }
- }
- return;
+ public_ch(ch, argument, "{r[{RClan{r]{Y", COMM_NOCLAN, spec_clan_flag);
}
CH_CMD(do_immtalk)
{
- DESCRIPTOR_DATA *d;
-
- if (argument[0] == '\0')
- {
- if (IS_SET(ch->comm, COMM_NOWIZ))
- {
- chprintln(ch, "Immortal channel is now ON");
- REMOVE_BIT(ch->comm, COMM_NOWIZ);
- }
- else
- {
- chprintln(ch, "Immortal channel is now OFF");
- SET_BIT(ch->comm, COMM_NOWIZ);
- }
- return;
- }
-
- REMOVE_BIT(ch->comm, COMM_NOWIZ);
-
- act_new("" CTAG(_IMMTALK1) "$n" CTAG(_IMMTALK2) ":"
- CTAG(_IMMTALK3) " $t{x", ch, argument, NULL, TO_CHAR, POS_DEAD);
- for (d = descriptor_first; d != NULL; d = d->next)
- {
- if (d->connected == CON_PLAYING && IS_IMMORTAL(d->character) &&
- !IS_SET(d->character->comm, COMM_NOWIZ))
- {
- act_new("" CTAG(_IMMTALK1) "$n" CTAG(_IMMTALK2) ":"
- CTAG(_IMMTALK3) " $t{x", ch, argument,
- d->character, TO_VICT, POS_DEAD);
- }
- }
-
- return;
+ public_ch(ch, argument,
+ CTAG(_IMMTALK1) "[" CTAG(_IMMTALK2) "ImmTalk" CTAG(_IMMTALK1) "]"
+ CTAG(_IMMTALK3), COMM_NOWIZ, spec_imm_flag);
}
CH_CMD(do_say)
@@ -715,13 +612,13 @@
mob->position == mob->pIndexData->default_pos)
p_act_trigger(argument, mob, NULL, NULL, ch, NULL, NULL,
TRIG_SPEECH);
- }
- for (obj = mob->first_carrying; obj; obj = obj_next)
- {
- obj_next = obj->next_content;
- if (HAS_TRIGGER_OBJ(obj, TRIG_SPEECH))
- p_act_trigger(argument, NULL, obj, NULL, ch, NULL, NULL,
- TRIG_SPEECH);
+ for (obj = mob->first_carrying; obj; obj = obj_next)
+ {
+ obj_next = obj->next_content;
+ if (HAS_TRIGGER_OBJ(obj, TRIG_SPEECH))
+ p_act_trigger(argument, NULL, obj, NULL, ch, NULL, NULL,
+ TRIG_SPEECH);
+ }
}
for (obj = ch->in_room->first_content; obj; obj = obj_next)
{
diff -ur src/act_wiz.c new/act_wiz.c
--- src/act_wiz.c Sat Feb 15 14:23:34 2003
+++ new/act_wiz.c Sat Feb 15 14:23:25 2003
@@ -1477,8 +1477,9 @@
chprintlnf(ch,
"Vnum: %ld Format: %s Race: %s Group: %d Sex: %s Room: %ld",
IS_NPC(victim) ? victim->pIndexData->vnum : 0,
- IS_NPC(victim) ? victim->pIndexData->
- new_format ? "new" : "old" : "pc", race_table[victim->race].name,
+ IS_NPC(victim) ? victim->
+ pIndexData->new_format ? "new" : "old" : "pc",
+ race_table[victim->race].name,
IS_NPC(victim) ? victim->group : 0, sex_table[victim->sex].name,
victim->in_room == NULL ? 0 : victim->in_room->vnum);
@@ -4081,8 +4082,8 @@
count++;
sprintf(buf + strlen(buf), "[%3d %2d] %s@%s\n\r",
d->descriptor, d->connected,
- d->original ? d->original->name : d->character ? d->
- character->name : "(none)", d->host);
+ d->original ? d->original->name : d->
+ character ? d->character->name : "(none)", d->host);
}
}
if (count == 0)
diff -ur src/arena.c new/arena.c
--- src/arena.c Sat Feb 15 14:23:34 2003
+++ new/arena.c Sat Feb 15 14:23:25 2003
@@ -79,9 +79,8 @@
chprintlnf
(ch,
"You have already been challenged, either ACCEPT or DECLINE %s first.",
- ch->pcdata->challenger ? ch->pcdata->challenger->
- name : ch->pcdata->challenged ? ch->pcdata->challenged->
- name : "!BUG!");
+ ch->pcdata->challenger ? ch->pcdata->challenger->name : ch->
+ pcdata->challenged ? ch->pcdata->challenged->name : "!BUG!");
return;
}
diff -ur src/auction.c new/auction.c
--- src/auction.c Sat Feb 15 14:23:34 2003
+++ new/auction.c Sat Feb 15 14:23:25 2003
@@ -237,9 +237,9 @@
reset_auc(auc, TRUE);
}
else if ((unsigned long) (!IS_OBJ_STAT(auc->item, ITEM_QUEST)
- ? auc->high_bidder->gold : auc->
- high_bidder->pcdata->questpoints) <
- auc->bid)
+ ? auc->high_bidder->
+ gold : auc->high_bidder->pcdata->
+ questpoints) < auc->bid)
{
announce(auc->high_bidder, INFO_AUCTION,
"$n can't cover their stake in the auction, sale stopped.");
diff -ur src/clans.c new/clans.c
--- src/clans.c Sat Feb 15 14:23:34 2003
+++ new/clans.c Sat Feb 15 14:23:25 2003
@@ -309,8 +309,8 @@
{
chprintlnf(ch, "%-12s %-8s %s", victim->name,
position_table[victim->position].name,
- victim->in_room ? victim->in_room->area->
- name : "Unknown");
+ victim->in_room ? victim->in_room->
+ area->name : "Unknown");
found = TRUE;
}
}
diff -ur src/comm.c new/comm.c
--- src/comm.c Sat Feb 15 14:23:34 2003
+++ new/comm.c Sat Feb 15 14:23:25 2003
@@ -2038,184 +2038,222 @@
return;
}
-/* quick sex fixer */
-void fix_sex(CHAR_DATA * ch)
+char *fname(const char *namelist)
{
- if (ch->sex < 0 || ch->sex > 2)
- ch->sex = IS_NPC(ch) ? 0 : ch->pcdata->true_sex;
+ static char holder[256];
+ char *point;
+
+ for (point = holder; isalpha(*namelist); namelist++, point++)
+ *point = *namelist;
+
+ *point = '\0';
+
+ return (holder);
}
-void act_new(const char *format, CHAR_DATA * ch, const void *arg1,
- const void *arg2, flag_t type, int min_pos)
+void perform_act(const char *orig, CHAR_DATA * ch, const void *arg1,
+ const void *arg2, flag_t type, CHAR_DATA * to)
{
static char *const he_she[] = { "it", "he", "she" };
static char *const him_her[] = { "it", "him", "her" };
static char *const his_her[] = { "its", "his", "her" };
-
- char buf[MAX_STRING_LENGTH];
- char fname[MAX_INPUT_LENGTH];
- CHAR_DATA *to;
CHAR_DATA *vch = (CHAR_DATA *) arg2;
OBJ_DATA *obj1 = (OBJ_DATA *) arg1;
OBJ_DATA *obj2 = (OBJ_DATA *) arg2;
- const char *str;
- const char *i;
+ const char *str, *i = NULL;
char *point;
+ char buf[MSL];
- /*
- * Discard null and zero-length messages.
- */
- if (format == NULL || format[0] == '\0')
- return;
+ point = buf;
+ str = orig;
- /* discard null rooms and chars */
- if (ch == NULL || ch->in_room == NULL)
- return;
-
- to = ch->in_room->first_person;
- if (IS_SET(type, TO_VICT))
+ while (*str != '\0')
{
- if (vch == NULL)
+ if (*str != '$')
{
- bug("Act: null vch with TO_VICT.", 0);
- return;
- }
-
- if (vch->in_room == NULL)
- return;
-
- to = vch->in_room->first_person;
- }
-
- for (; to != NULL; to = to->next_in_room)
- {
- if ((!IS_NPC(to) && to->desc == NULL) ||
- (IS_NPC(to) && to->desc == NULL
- && !HAS_TRIGGER_MOB(to, TRIG_ACT)) || to->position < min_pos)
- continue;
-
- if (IS_SET(type, TO_CHAR) && to != ch)
- continue;
- if (IS_SET(type, TO_VICT) && (to != vch || to == ch))
- continue;
- if (IS_SET(type, TO_ROOM) && to == ch)
- continue;
- if (IS_SET(type, TO_NOTVICT) && (to == ch || to == vch))
+ *point++ = *str++;
continue;
+ }
- point = buf;
- str = format;
- while (*str != '\0')
+ ++str;
+ i = "<@@@>";
+ if (!arg2 && *str >= 'A' && *str <= 'Z')
{
- if (*str != '$')
- {
- *point++ = *str++;
- continue;
- }
- ++str;
-
- if (arg2 == NULL && *str >= 'A' && *str <= 'Z')
+ logf("perform_act:missing arg2 for code %d.", *str);
+ i = " <@@@> ";
+ }
+ else
+ {
+ switch (*str)
{
- bug("Act: missing arg2 for code %d.", *str);
+ default:
+ logf("perform_act:bad code %c.", *str);
i = " <@@@> ";
- }
- else
- {
- switch (*str)
+ break;
+
+ case '$':
+ i = "$";
+ break;
+ case 't':
+ if (arg1)
{
- default:
- bug("Act: bad code %d.", *str);
- i = " <@@@> ";
- break;
- /* Thx alex for 't' idea */
- case 't':
- if (IS_SET(type, TO_DAMAGE) && !IS_NPC(to)
- && !IS_SET(to->act, PLR_AUTODAMAGE))
- i = "";
+ if (IS_SET(type, TO_DAMAGE)
+ && (IS_NPC(to) || !IS_SET(to->act, PLR_AUTODAMAGE)))
+ i = &str_empty[0];
else
- i = (char *) arg1;
- break;
- case 'T':
- i = (char *) arg2;
- break;
- case 'n':
+ i = (const char *) arg1;
+ }
+ else
+ log_string("perform_act:bad code $t for 'arg1'");
+ break;
+ case 'T':
+ if (arg2)
+ i = (const char *) arg2;
+ else
+ log_string("perform_act:bad code $T for 'arg2'");
+ break;
+ case 'n':
+ if (ch && to)
i = PERS(ch, to);
- break;
- case 'N':
+ else
+ log_string("perform_act:bad code $n for 'ch' or 'to'");
+ break;
+ case 'N':
+ if (vch && to)
i = PERS(vch, to);
- break;
- case 'e':
+ else
+ log_string("perform_act:bad code $N for 'ch' or 'to'");
+ break;
+ case 'e':
+ if (ch)
i = he_she[URANGE(0, ch->sex, 2)];
- break;
- case 'E':
+ else
+ log_string("perform_act:bad code $e for 'ch'");
+ break;
+ case 'E':
+ if (vch)
i = he_she[URANGE(0, vch->sex, 2)];
- break;
- case 'm':
+ else
+ log_string("perform_act:bad code $E for 'vch'");
+ break;
+ case 'm':
+ if (ch)
i = him_her[URANGE(0, ch->sex, 2)];
- break;
- case 'M':
+ else
+ log_string("perform_act:bad code $m for 'ch'");
+ break;
+ case 'M':
+ if (vch)
i = him_her[URANGE(0, vch->sex, 2)];
- break;
- case 's':
+ else
+ log_string("perform_act:bad code $M for 'vch'");
+ break;
+ case 's':
+ if (ch)
i = his_her[URANGE(0, ch->sex, 2)];
- break;
- case 'S':
+ else
+ log_string("perform_act:bad code $s for 'ch'");
+ break;
+ case 'S':
+ if (vch)
i = his_her[URANGE(0, vch->sex, 2)];
- break;
+ else
+ log_string("perform_act:bad code $S for 'vch'");
+ break;
+ case 'g':
+ if (ch && ch->deity != -1)
+ i = deity_table[ch->deity].name;
+ else
+ log_string("perform_act:bad code $g for 'ch'");
+ break;
+ case 'G':
+ if (vch && vch->deity != -1)
+ i = deity_table[vch->deity].name;
+ else
+ log_string("perform_act:bad code $G for 'vch'");
+ break;
+ case 'c':
+ if (ch && ch->clan != -1)
+ i = clan_table[ch->clan].name;
+ else
+ log_string("perform_act:bad code $c for 'ch'");
+ break;
+ case 'C':
+ if (vch && vch->clan != -1)
+ i = clan_table[vch->clan].name;
+ else
+ log_string("perform_act:bad code $C for 'vch'");
+ break;
+ case 'o':
+ if (to && obj1)
+ i = can_see_obj(to, obj1) ? fname(obj1->name) : "something";
+ else
+ log_string("perform_act:bad code $o for 'to' and 'obj1'");
+ break;
+
+ case 'O':
+ if (to && obj2)
+ i = can_see_obj(to, obj2) ? fname(obj2->name) : "something";
+ else
+ log_string("perform_act:bad code $O for 'to' and 'obj2'");
+ break;
- case 'p':
+ case 'p':
+ if (to && obj1)
i = can_see_obj(to, obj1) ? obj1->short_descr : "something";
- break;
+ else
+ log_string("perform_act:bad code $p for 'to' and 'obj1'");
+ break;
- case 'P':
+ case 'P':
+ if (to && obj2)
i = can_see_obj(to, obj2) ? obj2->short_descr : "something";
- break;
- case 'g':
- i = ch->deity != -1 ? deity_table[ch->deity].name : "Mota";
- break;
- case 'G':
- i =
- vch->deity !=
- -1 ? deity_table[vch->deity].name : "Mota";
- break;
- case 'd':
- if (arg2 == NULL || ((char *) arg2)[0] == '\0')
- {
- i = "door";
- }
- else
- {
- one_argument((char *) arg2, fname);
- i = fname;
- }
- break;
+ else
+ log_string("perform_act:bad code $P for 'to' and 'obj2'");
+ break;
+
+ case 'd':
+ if (arg2 == NULL || ((const char *) arg2)[0] == '\0')
+ {
+ i = "door";
}
- }
+ else
+ {
+ char name[MIL];
- ++str;
- while ((*point = *i) != '\0')
- ++point, ++i;
+ one_argument((const char *) arg2, name);
+ i = name;
+ }
+ break;
+ }
}
- *point++ = '\n';
- *point++ = '\r';
- *point = '\0';
- buf[0] = UPPER(buf[0]);
- if (to->desc != NULL)
- {
- if (to->desc->connected == CON_PLAYING)
- write_to_buffer(to->desc, buf, point - buf);
- }
- else if (IS_NPC(to) && MOBtrigger)
- p_act_trigger(buf, to, NULL, NULL, ch, arg1, arg2, TRIG_ACT);
+ ++str;
+ while ((*point = *i) != '\0')
+ ++point, ++i;
}
- if (IS_SET(type, TO_ROOM) || IS_SET(type, TO_NOTVICT))
+
+ *point++ = '{';
+ *point++ = 'x';
+ *point++ = '\n';
+ *point++ = '\r';
+ *point = '\0';
+ buf[0] = UPPER(buf[0]);
+ if (to->desc)
+ {
+ if (to->desc->connected == CON_PLAYING)
+ write_to_buffer(to->desc, buf, point - buf);
+ }
+ else if (IS_NPC(to) && MOBtrigger && HAS_TRIGGER_MOB(to, TRIG_ACT))
+ p_act_trigger(buf, to, NULL, NULL, ch, arg1, arg2, TRIG_ACT);
+
+ if (ch && ch->in_room && IS_SET(type, TO_ROOM | TO_NOTVICT))
{
OBJ_DATA *obj, *obj_next;
CHAR_DATA *tch, *tch_next;
point = buf;
- str = format;
+ str = orig;
while (*str != '\0')
{
*point++ = *str++;
@@ -2245,6 +2283,74 @@
if (HAS_TRIGGER_ROOM(ch->in_room, TRIG_ACT))
p_act_trigger(buf, NULL, NULL, ch->in_room, ch, NULL, NULL,
TRIG_ACT);
+ }
+
+ return;
+}
+
+#define SENDOK(ch, type) ((IS_NPC(ch) || ((ch)->desc && (ch->desc->connected == CON_PLAYING))) \
+ && ((ch)->position >= min_pos))
+
+void act_new(const char *format, CHAR_DATA * ch, const void *arg1,
+ const void *arg2, flag_t type, int min_pos)
+{
+ DESCRIPTOR_DATA *d;
+ ROOM_INDEX_DATA *room;
+ CHAR_DATA *to = (CHAR_DATA *) arg2;
+
+ if (!format || !*format)
+ return;
+
+ if (IS_SET(type, TO_CHAR))
+ {
+ if (ch && SENDOK(ch, type))
+ perform_act(format, ch, arg1, arg2, type, ch);
+ }
+
+ if (IS_SET(type, TO_VICT))
+ {
+ if (to && SENDOK(to, type) && to != ch)
+ perform_act(format, ch, arg1, arg2, type, to);
+ }
+
+ if (IS_SET(type, TO_ZONE | TO_ALL))
+ {
+ for (d = descriptor_first; d; d = d->next)
+ {
+ CHAR_DATA *vch = CH(d);
+
+ if (vch && SENDOK(vch, type) && (vch != ch)
+ &&
+ ((IS_SET
+ (type, TO_ALL) || (vch->in_room
+ && vch->in_room->area ==
+ ch->in_room->area))))
+ perform_act(format, ch, arg1, arg2, type, vch);
+ }
+ }
+
+ if (IS_SET(type, TO_ROOM | TO_NOTVICT))
+ {
+ OBJ_DATA *obj1 = (OBJ_DATA *) arg1;
+ OBJ_DATA *obj2 = (OBJ_DATA *) arg2;
+
+ if (ch && ch->in_room != NULL)
+ room = ch->in_room;
+ else if (obj1 && obj1->in_room != NULL)
+ room = obj1->in_room;
+ else if (obj2 && obj2->in_room != NULL)
+ room = obj2->in_room;
+ else
+ {
+ bugf("no valid target '%s'", format);
+ return;
+ }
+ for (to = room->first_person; to; to = to->next_in_room)
+ {
+ if (SENDOK(to, type) && (to != ch)
+ && (IS_SET(type, TO_ROOM) || (to != (CHAR_DATA *) arg2)))
+ perform_act(format, ch, arg1, arg2, type, to);
+ }
}
return;
}
diff -ur src/db.c new/db.c
--- src/db.c Sat Feb 15 14:23:34 2003
+++ new/db.c Sat Feb 15 14:23:25 2003
@@ -156,8 +156,8 @@
* Set time and weather.
*/
{
- log_string("Setting time and weather...");
long lhour, lday, lmonth;
+ log_string("Setting time and weather...");
lhour = (current_time - 650336715) / (PULSE_TICK / PULSE_PER_SECOND);
time_info.hour = lhour % 24;
diff -ur src/db2.c new/db2.c
--- src/db2.c Sat Feb 15 14:23:34 2003
+++ new/db2.c Sat Feb 15 14:23:25 2003
@@ -442,7 +442,7 @@
pObjIndex->last_extra_descr, next, prev);
top_ed++;
}
- else if (letter == 'O')
+ else if (pletter == 'O')
{
PROG_LIST *pOprog;
const char *word;
diff -ur src/dofun.h new/dofun.h
--- src/dofun.h Sat Feb 15 14:23:35 2003
+++ new/dofun.h Sat Feb 15 14:23:26 2003
@@ -313,5 +313,7 @@
COMMAND_FUN (do_slist)
COMMAND_FUN (do_worship)
COMMAND_FUN (do_dedit)
+COMMAND_FUN (do_nogocial)
+COMMAND_FUN (do_ooc)
// *INDENT-ON*
diff -ur src/fight.c new/fight.c
--- src/fight.c Sat Feb 15 14:23:34 2003
+++ new/fight.c Sat Feb 15 14:23:25 2003
@@ -3112,9 +3112,8 @@
if ((pexit = was_in->exit[door]) == 0 || pexit->u1.to_room == NULL
|| IS_SET(pexit->exit_info, EX_CLOSED) ||
number_range(0, ch->daze) != 0 || (IS_NPC(ch) &&
- IS_SET(pexit->u1.
- to_room->room_flags,
- ROOM_NO_MOB)))
+ IS_SET(pexit->u1.to_room->
+ room_flags, ROOM_NO_MOB)))
continue;
move_char(ch, door, FALSE);
diff -ur src/handler.c new/handler.c
--- src/handler.c Sat Feb 15 14:23:34 2003
+++ new/handler.c Sat Feb 15 14:23:25 2003
@@ -2464,8 +2464,8 @@
victim->in_room
&&
IS_SET
- (victim->in_room->
- room_flags,
+ (victim->
+ in_room->room_flags,
ROOM_ARENA)))
return TRUE;
diff -ur src/magic.c new/magic.c
--- src/magic.c Sat Feb 15 14:23:34 2003
+++ new/magic.c Sat Feb 15 14:23:25 2003
@@ -286,8 +286,8 @@
if ((sn = find_spell(ch, arg1)) < 1 ||
skill_table[sn].spell_fun == spell_null || (!IS_NPC(ch) &&
(!can_use_skpell(ch, sn)
- || ch->pcdata->
- learned[sn] == 0)))
+ || ch->
+ pcdata->learned[sn] == 0)))
{
chprintln(ch, "You don't know any spells of that name.");
return;
@@ -2788,9 +2788,7 @@
|| IS_SET(victim->in_room->room_flags, ROOM_NO_RECALL)
|| IS_SET(ch->in_room->room_flags, ROOM_NO_RECALL) || (IS_NPC(victim)
&& is_gqmob(ch,
- victim->
- pIndexData->
- vnum)
+ victim->pIndexData->vnum)
!= -1)
|| (IS_NPC(victim) && IS_QUESTOR(ch)
&& ch->pcdata->questmob == victim->pIndexData->vnum)
diff -ur src/magic2.c new/magic2.c
--- src/magic2.c Sat Feb 15 14:23:34 2003
+++ new/magic2.c Sat Feb 15 14:23:25 2003
@@ -64,7 +64,9 @@
|| IS_SET(victim->in_room->room_flags, ROOM_NO_RECALL)
|| IS_SET(ch->in_room->room_flags, ROOM_NO_RECALL) || (IS_NPC(victim)
&& is_gqmob(ch,
- victim->pIndexData->vnum)
+ victim->
+ pIndexData->
+ vnum)
!= -1)
|| (IS_NPC(victim) && IS_QUESTOR(ch)
&& ch->pcdata->questmob == victim->pIndexData->vnum)
@@ -123,10 +125,17 @@
|| IS_SET(to_room->room_flags, ROOM_ARENA)
|| IS_SET(from_room->room_flags, ROOM_ARENA) || (IS_NPC(victim)
&& is_gqmob(ch,
- victim->pIndexData->vnum)
- != -1)
- || (IS_NPC(victim) && IS_QUESTOR(ch)
- && ch->pcdata->questmob == victim->pIndexData->vnum)
+ victim->
+ pIndexData->
+ vnum) !=
+ -1) || (IS_NPC(victim)
+ &&
+ IS_QUESTOR(ch)
+ && ch->pcdata->
+ questmob ==
+ victim->
+ pIndexData->
+ vnum)
|| victim->level >= level + 3 || (!IS_NPC(victim) && victim->level >= LEVEL_HERO) /* NOT trust */
|| (IS_NPC(victim) && IS_SET(victim->imm_flags, IMM_SUMMON))
|| (IS_NPC(victim) && saves_spell(level, victim, DAM_NONE))
diff -ur src/merc.h new/merc.h
--- src/merc.h Sat Feb 15 14:23:35 2003
+++ new/merc.h Sat Feb 15 14:23:26 2003
@@ -467,6 +467,14 @@
#define TO_CHAR BIT_D
#define TO_ALL BIT_E
#define TO_DAMAGE BIT_F
+#define TO_ZONE BIT_G
+
+enum special_flags
+{
+ spec_public_flag,
+ spec_clan_flag,
+ spec_imm_flag
+};
/*
* Help table types.
@@ -1406,6 +1414,8 @@
#define COMM_NOCHANNELS (BIT_W)
#define COMM_SNOOP_PROOF (BIT_Y)
#define COMM_AFK (BIT_Z)
+#define COMM_NOGOCIAL (BIT_a)
+#define COMM_NOOOC (BIT_b)
/* WIZnet flags */
#define WIZ_ON (BIT_A)
diff -ur src/mob_cmds.c new/mob_cmds.c
--- src/mob_cmds.c Sat Feb 15 14:23:34 2003
+++ new/mob_cmds.c Sat Feb 15 14:23:25 2003
@@ -1340,8 +1340,8 @@
|| IS_SET(pexit->exit_info, EX_CLOSED) || (IS_NPC(ch)
&&
IS_SET
- (pexit->u1.
- to_room->room_flags,
+ (pexit->u1.to_room->
+ room_flags,
ROOM_NO_MOB)))
continue;
@@ -1792,8 +1792,8 @@
{
if ((vobj =
get_obj_here(NULL,
- obj->in_room ? obj->in_room : obj->
- carried_by->in_room, arg)))
+ obj->in_room ? obj->in_room : obj->carried_by->
+ in_room, arg)))
{
extract_obj(vobj);
}
@@ -2026,8 +2026,8 @@
if ((victim =
get_char_room(NULL,
- (obj->in_room) ? obj->in_room : obj->
- carried_by->in_room, arg)) == NULL)
+ (obj->in_room) ? obj->in_room : obj->carried_by->
+ in_room, arg)) == NULL)
return;
interpret(victim, argument);
@@ -2119,8 +2119,8 @@
fAll = TRUE;
else if ((victim =
get_char_room(NULL,
- obj->in_room ? obj->in_room : obj->
- carried_by->in_room, target)) == NULL)
+ obj->in_room ? obj->in_room : obj->carried_by->
+ in_room, target)) == NULL)
return;
if (is_number(min))
@@ -2228,8 +2228,8 @@
if (!IS_NULLSTR(arg))
vch =
get_char_room(NULL,
- obj->in_room ? obj->in_room : obj->
- carried_by->in_room, arg);
+ obj->in_room ? obj->in_room : obj->carried_by->
+ in_room, arg);
argument = one_argument(argument, arg);
if (!IS_NULLSTR(arg))
obj1 =
@@ -2355,8 +2355,8 @@
}
else if ((ch =
get_char_room(NULL,
- obj->in_room ? obj->in_room : obj->
- carried_by->in_room, target)) == NULL)
+ obj->in_room ? obj->in_room : obj->carried_by->
+ in_room, target)) == NULL)
return;
if (!str_cmp(arg1, "none"))
diff -ur src/mob_prog.c new/mob_prog.c
--- src/mob_prog.c Sat Feb 15 14:23:34 2003
+++ new/mob_prog.c Sat Feb 15 14:23:26 2003
@@ -296,8 +296,8 @@
|| (iFlag == 2 && IS_NPC(vch)) || (iFlag == 3
&& IS_NPC(mob)
&& IS_NPC(vch)
- && mob->
- pIndexData->vnum ==
+ && mob->pIndexData->
+ vnum ==
vch->pIndexData->vnum)
|| (iFlag == 4 && is_same_group(mob, vch)))
&& can_see(mob, vch))
@@ -1021,8 +1021,8 @@
else if (lval_obj != NULL
&& (lval_obj->in_room != NULL || lval_obj->carried_by != NULL))
lval =
- lval_obj->in_room ? lval_obj->in_room->vnum : lval_obj->
- carried_by->in_room->vnum;
+ lval_obj->in_room ? lval_obj->in_room->
+ vnum : lval_obj->carried_by->in_room->vnum;
break;
case CHK_SEX:
if (lval_char != NULL)
@@ -1331,8 +1331,8 @@
else if (lval_obj != NULL
&& (lval_obj->in_room != NULL || lval_obj->carried_by != NULL))
lval =
- lval_obj->in_room ? lval_obj->in_room->vnum : lval_obj->
- carried_by->in_room->vnum;
+ lval_obj->in_room ? lval_obj->in_room->
+ vnum : lval_obj->carried_by->in_room->vnum;
break;
case CHK_SEX:
if (lval_char != NULL)
@@ -1441,8 +1441,8 @@
case 'N':
i = (ch != NULL
&& can_see(mob,
- ch)) ? (IS_NPC(ch) ? ch->short_descr : ch->
- name) : someone;
+ ch)) ? (IS_NPC(ch) ? ch->
+ short_descr : ch->name) : someone;
break;
case 't':
i = someone;
@@ -1455,8 +1455,8 @@
case 'T':
i = (vch != NULL
&& can_see(mob,
- vch)) ? (IS_NPC(vch) ? vch->short_descr : vch->
- name) : someone;
+ vch)) ? (IS_NPC(vch) ? vch->
+ short_descr : vch->name) : someone;
break;
case 'r':
if (rch == NULL)
@@ -1473,8 +1473,8 @@
rch = get_random_char(mob, NULL, NULL);
i = (rch != NULL
&& can_see(mob,
- rch)) ? (IS_NPC(ch) ? ch->short_descr : ch->
- name) : someone;
+ rch)) ? (IS_NPC(ch) ? ch->
+ short_descr : ch->name) : someone;
break;
case 'q':
i = someone;
@@ -1488,10 +1488,10 @@
i = (mob->mprog_target != NULL
&& can_see(mob,
mob->mprog_target)) ? (IS_NPC(mob->mprog_target) ?
+ mob->
+ mprog_target->short_descr :
mob->mprog_target->
- short_descr : mob->
- mprog_target->name) :
- someone;
+ name) : someone;
break;
case 'j':
i = he_she[URANGE(0, mob->sex, 2)];
@@ -1513,9 +1513,7 @@
case 'X':
i = (mob->mprog_target != NULL
&& can_see(mob, mob->mprog_target)) ? he_she[URANGE(0,
- mob->
- mprog_target->
- sex,
+ mob->mprog_target->sex,
2)] :
someone;
break;
@@ -1542,9 +1540,7 @@
case 'Y':
i = (mob->mprog_target != NULL
&& can_see(mob, mob->mprog_target)) ? him_her[URANGE(0,
- mob->
- mprog_target->
- sex,
+ mob->mprog_target->sex,
2)] :
someone;
break;
@@ -1571,9 +1567,7 @@
case 'Z':
i = (mob->mprog_target != NULL
&& can_see(mob, mob->mprog_target)) ? his_her[URANGE(0,
- mob->
- mprog_target->
- sex,
+ mob->mprog_target->sex,
2)] :
someones;
break;
@@ -1739,14 +1733,13 @@
case 'Q':
i = (obj
&& obj->oprog_target !=
- NULL) ? (IS_NPC(obj->oprog_target) ? obj->oprog_target->
- short_descr : obj->oprog_target->name) : (room
- && room->
- rprog_target
- !=
- NULL)
- ? (IS_NPC(room->rprog_target) ? room->rprog_target->
- short_descr : room->rprog_target->name) : someone;
+ NULL) ? (IS_NPC(obj->oprog_target) ? obj->
+ oprog_target->short_descr : obj->oprog_target->
+ name) : (room
+ && room->rprog_target !=
+ NULL) ? (IS_NPC(room->rprog_target) ? room->
+ rprog_target->short_descr : room->
+ rprog_target->name) : someone;
break;
case 'j':
bug("Obj/room received case 'j'", 0);
@@ -1764,15 +1757,13 @@
case 'X':
i = (obj
&& obj->oprog_target != NULL) ? he_she[URANGE(0,
- obj->
- oprog_target->
- sex, 2)] : (room
- &&
- room->
- rprog_target
- !=
- NULL)
- ? he_she[URANGE(0, room->rprog_target->sex, 2)] : someone;
+ obj->oprog_target->sex,
+ 2)] : (room
+ &&
+ room->rprog_target
+ !=
+ NULL) ?
+ he_she[URANGE(0, room->rprog_target->sex, 2)] : someone;
break;
case 'k':
bug("received case 'k'.", 0);
@@ -1794,15 +1785,13 @@
case 'Y':
i = (obj
&& obj->oprog_target != NULL) ? him_her[URANGE(0,
- obj->
- oprog_target->
- sex, 2)] : (room
- &&
- room->
- rprog_target
- !=
- NULL)
- ? him_her[URANGE(0, room->rprog_target->sex, 2)] : someone;
+ obj->oprog_target->sex,
+ 2)] : (room
+ &&
+ room->rprog_target
+ !=
+ NULL) ?
+ him_her[URANGE(0, room->rprog_target->sex, 2)] : someone;
break;
case 'l':
bug("received case 'l'.", 0);
@@ -1824,15 +1813,13 @@
case 'Z':
i = (obj
&& obj->oprog_target != NULL) ? his_her[URANGE(0,
- obj->
- oprog_target->
- sex, 2)] : (room
- &&
- room->
- rprog_target
- !=
- NULL)
- ? his_her[URANGE(0, room->rprog_target->sex, 2)] : someones;
+ obj->oprog_target->sex,
+ 2)] : (room
+ &&
+ room->rprog_target
+ !=
+ NULL) ?
+ his_her[URANGE(0, room->rprog_target->sex, 2)] : someones;
break;
case 'o':
i = something;
diff -ur src/nanny.c new/nanny.c
--- src/nanny.c Sat Feb 15 14:23:34 2003
+++ new/nanny.c Sat Feb 15 14:23:26 2003
@@ -216,8 +216,8 @@
if (str_cmp
(ch->name,
- d_old->original ? d_old->original->name : d_old->
- character->name))
+ d_old->original ? d_old->original->name : d_old->character->
+ name))
continue;
close_socket(d_old);
diff -ur src/olc_act.c new/olc_act.c
--- src/olc_act.c Sat Feb 15 14:23:34 2003
+++ new/olc_act.c Sat Feb 15 14:23:26 2003
@@ -820,8 +820,9 @@
#if 0 /* ROM OLC */
chprintlnf(ch, "Recall: [%5d] %s", pArea->recall,
- get_room_index(pArea->recall) ? get_room_index(pArea->recall)->
- name : "none");
+ get_room_index(pArea->recall) ? get_room_index(pArea->
+ recall)->name :
+ "none");
#endif /* ROM */
chprintlnf(ch, "File: %s", pArea->file_name);
@@ -2067,8 +2068,9 @@
"[v4] Weight Mult [%ld]", obj->value[0],
flag_string(container_flags, obj->value[1]),
get_obj_index(obj->value[2]) ? get_obj_index(obj->value
- [2])->short_descr
- : "none", obj->value[2], obj->value[3], obj->value[4]);
+ [2])->
+ short_descr : "none", obj->value[2], obj->value[3],
+ obj->value[4]);
break;
case ITEM_DRINK_CON:
diff -ur src/proto.h new/proto.h
--- src/proto.h Sat Feb 15 14:23:35 2003
+++ new/proto.h Sat Feb 15 14:23:26 2003
@@ -66,6 +66,10 @@
const char *string, ...)) __attribute__ ((format(printf, 4, 5)));
bool is_ansi_printed_char args((char c));
+void public_ch args((CHAR_DATA * ch, const char *argument,
+ const char *type, flag_t bitname,
+ enum special_flags spec_flag));
+
/* act_enter.c */
RID *get_random_room args((CHAR_DATA * ch));
@@ -111,6 +115,9 @@
void act_new
args((const char *format, CHAR_DATA * ch, const void *arg1,
const void *arg2, flag_t type, int min_pos));
+void perform_act args((const char *orig, CHAR_DATA * ch, const void *arg1,
+ const void *arg2, flag_t type, CHAR_DATA * to));
+
void chprintf args((CHAR_DATA *, char *, ...))
__attribute__ ((format(printf, 2, 3)));
void chprintlnf args((CHAR_DATA *, char *, ...))
diff -ur src/save.c new/save.c
--- src/save.c Sat Feb 15 14:23:35 2003
+++ new/save.c Sat Feb 15 14:23:26 2003
@@ -270,7 +270,7 @@
fprintf(fp, "Shares %d\n", ch->pcdata->shares);
if (ch->deity != -1)
- fprintf(fp, "Deity %s\n", deity_table[ch->deity].name);
+ fprintf(fp, "Deity %s~\n", deity_table[ch->deity].name);
if (ON_GQUEST(ch) || (gquest_info.running != GQUEST_OFF
&& count_gqmobs(ch) == gquest_info.mob_count))
@@ -466,7 +466,7 @@
if (!ch)
fprintf(fp, "Where %ld\n", where);
if (obj->owner != NULL)
- fprintf(fp, "Owner %s\n", obj->owner);
+ fprintf(fp, "Owner %s~\n", obj->owner);
if (!obj->pIndexData->new_format)
fprintf(fp, "Oldstyle\n");
if (obj->enchanted)
@@ -1564,6 +1564,7 @@
{
obj = create_object(get_obj_index(vnum), -1);
new_format = TRUE;
+ fVnum = TRUE;
}
}
diff -ur src/tables.c new/tables.c
--- src/tables.c Sat Feb 15 14:23:35 2003
+++ new/tables.c Sat Feb 15 14:23:26 2003
@@ -288,6 +288,8 @@
{"afk", COMM_AFK, TRUE},
{"nocolour", COMM_NOCOLOUR, TRUE},
{"telnet_eor", COMM_TELNET_EOR, TRUE},
+ {"nogocial", COMM_NOGOCIAL, TRUE},
+ {"noooc", COMM_NOOOC, TRUE},
{NULL, 0, 0}
};
diff -ur src/tablesave.c new/tablesave.c
--- src/tablesave.c Sat Feb 15 14:23:35 2003
+++ new/tablesave.c Sat Feb 15 14:23:26 2003
@@ -723,8 +723,8 @@
fprintf(fp, "%s\t\t", temp->field);
for (i = 0;
i <
- (temp->argument ? (int) temp->
- argument : *(int *) temp->argument2); i++)
+ (temp->argument ? (int) temp->argument : *(int *) temp->
+ argument2); i++)
fprintf(fp, "%d ", pbool[i] == TRUE ? 1 : 0);
fprintf(fp, "@\n");
break;
diff -ur src/webserver.c new/webserver.c
--- src/webserver.c Sat Feb 15 14:23:35 2003
+++ new/webserver.c Sat Feb 15 14:23:26 2003
@@ -1055,8 +1055,8 @@
else if (victim->in_room == victim->fighting->in_room)
{
strcat(buf,
- IS_NPC(victim) ? victim->fighting->
- short_descr : victim->fighting->name);
+ IS_NPC(victim) ? victim->fighting->short_descr : victim->
+ fighting->name);
strcat(buf, ".");
}
else
@@ -1549,7 +1549,7 @@
{
if (cmd_table[i].level >= LEVEL_IMMORTAL)
continue;
-
+ count = 0;
for (pHelp = help_first; pHelp; pHelp = pHelp->next)
{
count++;