Re: [LONG] OasisOLC v2.0 Fix and Beautification

From: George Greer (greerga@circlemud.org)
Date: 04/28/99


On Wed, 28 Apr 1999, Tony Robbins wrote:

>I hope your mailer doesn't wrap at 80 characters, because some of this will
>wrap ugly.  -K.

My screen ends at 132 characters. :)

>  /*
>   * Copy all strings over.
>   */
>  obj->name = str_udup(obj_proto[real_num].name);
>  obj->short_description = str_udup(obj_proto[real_num].short_description);
>  obj->description = str_udup(obj_proto[real_num].description);
>  obj->action_description = str_dup(obj_proto[real_num].action_description);
>
>The problem:  str_dup has problems with null strings, and action
>descriptions are often blank.  One fix is to make that:
>  obj->action_description =
>str_udup(obj_proto[real_num].action_description);

True, it used to be str_udup.  That's probably why there is not a NULL
check.

I suppose most of that could be fixed with copy_object_strings() but that
doesn't check for NULL.  Hm, they shouldn't happen anyway, I'll just use
the function.

So the whole thing is reduced to:

void oedit_setup_existing(struct descriptor_data *d, int real_num)
{
  struct obj_data *obj;
  CREATE(obj, struct obj_data, 1);
  copy_object(obj, &obj_proto[real_num]);
  OLC_OBJ(d) = obj;
  OLC_VAL(d) = 0;
  oedit_disp_menu(d);
}

>str_udup() appears to be a George-ian (heh) function that checks NULL and
>returns "undefined" in cases where the source string is NULL.  However, this
>is ugly and creates an action description when one is not wanted.

action_descriptions are free to be NULL.

>Note that I dislike that str_dup(""), but I can't find an alternative at the
>moment.  This fix permits an empty action description while setting more
>descriptive strings than "undefined" in in specific circumstances.  I guess
>it's individual choice, and George's for the actual distribution.

It's a lot easier to use str_udup().

>Apr 28 17:45:21 :: GenOLC: 'world/mob//40.mob' saved, 174 bytes written.
>
>My problem with that is the double slash.  Yes, it doesn't really matter,
>but I'm a nitpicker sometimes, and so I went into db.h and changed the
>prefix definitions to remove the end slash.  This caused some problems at
>boot up with it not being able to get to the filename (stock CircleMUD
>doesn't add the slash, because it assumes its there in the definition, while
>OasisOLC adds one, because it assumes it's not there).  I then went into the
>stock CircleMUD functions (grep for '%s%s", prefix', minus the apostrophes)
>and added my slash manually.  Now my logs are prettier.

I just removed the / from Oasis. :)

--
George Greer            | My beta stuff and related information.
greerga@circlemud.org   | http://www.circlemud.org/~greerga/


     +------------------------------------------------------------+
     | 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 : 12/15/00 PST