Re: [Circle] I found the LOOP

From: Niese-Petersen (
Date: 11/26/96

On Tue, 26 Nov 1996, Bruce, Ray, Phil wrote:

> Ok, I found where the problem is in my Major BUG.
> Its the FOR loop in this WHILE loop.
> But I have no clue what it means, I can barely read this thing...
> If anyone can tell me what its looking for? What it means in english?
> If you can read out the algorithm in english? I'm not wild with C, but
> I can usually get by, this is just a little too messy for me. I understand
> what its doing, but I have no clue WHAT those variables mean, if anyone
> does, it would be great if you could tell me what its looking up.
> **
>   while (*(lbuf + ofs)) {
>     log("Starting the say_spell while/for loop!");
>     for (j = 0; *(syls[j].org); j++) {
>       if (!strncmp(syls[j].org, lbuf + ofs, strlen(syls[j].org))) {
>         strcat(buf, syls[j].new);
>         ofs += strlen(syls[j].org);
>       }
>     }
>   }
> **

Heh.. Seen this problem before..

look at 'struct syllable syls[] = {'

You will find a list over letter and words. These are for the crypting of
the spell name for others than the class.. Like a cleric cast 'heal', then
other classes see something like 'poir'

Your problem is that someone have either changed or removed a single
letter translation.. You have to have all letters from a to z in the list
or else it will end up in a loop..
If you want special "words" translated different than the single letter
translation. Then add on before the single letters!!!

Erik Niese-Petersen
Aka Quint The typo God
Realms of Darkness IMP

| Ensure that you have read the CircleMUD Mailing List FAQ: |
|   |

This archive was generated by hypermail 2b30 : 12/18/00 PST