On Tue, 22 Sep 1998, Angus Mezick wrote:
>Whoa, just getting back from vaca George? ;)
No, I had the post queued for further investigation because I didn't have
an answer at the time. :)
>Well, here is my find_skill_num() function. It will match cast 'm m' to
>magic missile. Woo Woo! Sorry about the indentation, C&P screwed it up a
>little. I reverted my spell code to use:
> {"armor", 30, 10, 2, POS_FIGHTING,
> TAR_CHAR_ROOM, NON_VIOLENT, MAG_AFFECTS,
> UU, 8,UU,10,UU,12,UU,UU,UU,15,15,UU,UU,UU,UU,UU,UU,UU,UU,
> IS_SPELL,5},
>because we like this format better, so you might need to change some things.
>(the last int is casting_time and the IS_SPELL is for sorting)
What is UU? A #define for 0, -1, or something?
>int find_skill_num(char *name)
>{
[...]
> char *first=get_buffer(256);
> char *first2=get_buffer(256);
>
> if(*name=='!')
> return -1;
It's better to get the buffers when you need them, because the previous
line above would cause them to be forgotten.
> for(skindex=1;skindex<MAX_SPELLS;skindex++)
> {
> if (is_abbrev(name, spells[spell_sort_info[skindex]].spell_name))
> {
> release_buffer(first2);
> release_buffer(first);
> return spell_sort_info[skindex];
> }
>
> ok = 1;
[...]
Which would also facilitate the removal of the two releases above.
> temp = any_one_arg(spells[spell_sort_info[skindex]].spell_name, first);
> temp2 = any_one_arg(name, first2);
> while (*first && *first2 && ok)
> {
> if (!is_abbrev(first2, first))
> ok = 0;
> temp = any_one_arg(temp, first);
> temp2 = any_one_arg(temp2, first2);
> }
>
> if (ok && !*first2)
> {
> release_buffer(first2);
> release_buffer(first);
> return spell_sort_info[skindex];
> }
[...]
And if you used a temporary integer here for the return value, i.e.:
if (ok && !*first) {
ret = spell_sort_info[skindex];
break;
}
> }
> release_buffer(first2);
> release_buffer(first);
> return -1;
>}
Then you could change that line to 'return ret;', have 'ret' initialized to
-1 at the top of the function and just fall through to here. That would
reduce you to only 2 release_buffer() calls for 2 get_buffer() calls.
This is largely nit-picking and looks fine otherwise.
--
George Greer, greerga@circlemud.org | Genius may have its limitations, but
http://mouse.van.ml.org/ (mostly) | stupidity is not thus handicapped.
http://www.van.ml.org/CircleMUD/ | -- Elbert Hubbard
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST