Well I've started diving in and trying to convert obuild to the 128
bitvector stuff. Some of the fixes seem to be simple however
I'm having trouble with sprintbits/sprintbitarray
void sprintbits is what obuild uses -
void sprintbits(long vektor,char *outstring)
{
int i;
char flags[53]="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
strcpy(outstring,"");
for (i=0;i<32;i++)
{
if (vektor & 1) {
*outstring=flags[i];
outstring++;
};
vektor>>=1;
};
*outstring=0;
};
the 128 bit stuff is quite a bit different seen below
void sprintbitarray(int bitvector[], char *names[], int maxar, char
*result)
{
int nr, teller, found = FALSE;
*result = '\0';
for(teller = 0; teller < maxar && !found; teller++)
for (nr = 0; nr < 32 && !found; nr++) {
if (IS_SET_AR(bitvector, (teller*32)+nr))
if (*names[(teller*32)+nr] != '\n') {
if (*names[(teller*32)+nr] != '\0') {
strcat(result, names[(teller*32)+nr]);
strcat(result, " ");
}
} else {
strcat(result, "UNDEFINED ");
}
if (*names[(teller*32)+nr] == '\n')
found = TRUE;
}
if (!*result)
strcpy(result, "NOBITS ");
}
Should I convernt the sprintbits to the sprintbitarray style
or just use sprintbits1, sprintbits2, sprintbits3, etc
and do something like
sprintbits1(MOB_FLAGS(mob_proto + i), actions);
sprintbits2(MOB_FLAGS(mob_proto + i), actions1);
sprintbits3(MOB_FLAGS(mob_proto + i), actions2);
(from int mobs_to_file in act.build.c)
fprinf(new_file, "%s %s %s %s %s %s %s %s %i %c\n", actions,
actions1, actions2, actions3, affects1, affects2, affects3, affects4,
GET_ALIGNMENT(mob_proto + i), type_e ? 'E' : 'S');
I've tried it this way and havn't had much success.
Any help would be greatly appreciated
zervun@earthlink.net
+------------------------------------------------------------+
| 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