View Single Post
  #1  
Old 04-02-2004, 12:07 PM
m0oni9
Hill Giant
 
Join Date: Dec 2003
Posts: 166
Default Allowing commas in perl quest text

Commas haven't been able to be used in quest text because they are used as a delimiter for the command queue. The idea behind this is to always assume that quest::say and quest::echo take a single argument. Parser::ExCommands() seems to handle everything fine as long as num_args is set to 1 for these commands. Changes below:

zone/embparser.cpp, line 387, replace:
Code:
size_t num_args = std::count(args.begin(), args.end(), ',') + 1;
with:
Code:
size_t num_args = 1;
if (!(!strcmp(cmd.c_str(), "say") ||
      !strcmp(cmd.c_str(), "echo") ))
          for (const char *c = args.c_str(); *c; c++)
             if (*c == ',')
                num_args++;
I only did this for say and echo commands. If any others need this, they should be added easily. Also, as a side note, using std::count(), things were coming out funny (previous data hiding somewhere, don't know full details). Using the C-style delimiter count works.
Reply With Quote