In an attempt to write an website which uses player passwords and usernames
which match with the MUD, I am parsing the playerfile (instead of making a
passwd file).  In doing so, I've determined the char_file_u size to be 1292
(in our case).  However, the following utility code, used to derive the
width of each field ends up resulting with 1285.
Utility Code:
int main(){
   int size = 0;
   printf("Structure Data\n\n");
   printf("Name: %d\n", MAX_NAME_LENGTH+1);
   size+= (MAX_NAME_LENGTH+1);
   printf("Desc: %d\n", EXDSCR_LENGTH);
   size += EXDSCR_LENGTH;
   printf("Title: %d\n", MAX_TITLE_LENGTH+1);
   size += (MAX_TITLE_LENGTH+1);
   printf("Sex: %d\n", sizeof(byte));
   size += sizeof(byte);
   printf("Level: %d\n", sizeof(byte));
   size += sizeof(byte);
   printf("Hometown: %d\n", sizeof(sh_int));
   size += sizeof(sh_int);
   printf("Birth: %d\n", sizeof(time_t));
   size += sizeof(time_t);
   printf("Played: %d\n", sizeof(int));
   size += sizeof(int);
   printf("Weight: %d\n", sizeof(ubyte));
   size += sizeof(ubyte);
   printf("Height: %d\n", sizeof(ubyte));
   size += sizeof(ubyte);
   printf("Passwd: %d\n", MAX_PWD_LENGTH+1);
   size += (MAX_PWD_LENGTH+1);
   printf("Struct: %d\n", sizeof(struct char_special_data_saved));
   size += sizeof(struct char_special_data_saved);
   printf("Struct: %d\n", sizeof(struct player_special_data_saved));
   size += sizeof(struct player_special_data_saved);
   printf("Struct: %d\n", sizeof(struct char_ability_data));
   size += sizeof(struct char_ability_data);
   printf("Struct: %d\n", sizeof(struct char_point_data));
   size += sizeof(struct char_point_data);
   printf("Struct: %d\n", (sizeof(struct affected_type)*MAX_AFFECT));
   size += (sizeof(struct affected_type)*MAX_AFFECT);
   printf("LastLog: %d\n", sizeof(time_t));
   size += sizeof(time_t);
   printf("Host: %d\n", HOST_LENGTH+1);
   size += (HOST_LENGTH+1);
   printf("Size: %d\n", size);
   printf("Actual: %d\n", sizeof(struct char_file_u));
   return 1;
}
End Utility code:
The utility code also includes sysdep.h, conf.h, and structs.h
This is the reflected structure in structs.h:
struct char_file_u {
   /* char_player_data */
   char name[MAX_NAME_LENGTH+1];
   char description[EXDSCR_LENGTH];
   char title[MAX_TITLE_LENGTH+1];
   byte sex;
   byte level;
   sh_int hometown;
   time_t birth;   /* Time of birth of character     */
   int  played;    /* Number of secs played in total */
   ubyte weight;
   ubyte height;
   char pwd[MAX_PWD_LENGTH+1];    /* character's password */
   struct char_special_data_saved char_specials_saved;
   struct player_special_data_saved player_specials_saved;
   struct char_ability_data abilities;
   struct char_point_data points;
   struct affected_type affected[MAX_AFFECT];
   time_t last_logon;           /* Time (in secs) of last logon */
   char host[HOST_LENGTH+1];    /* host of last logon */
};
End structure code
I have not had the time to truly hammer out the utility code, so it is
very... dirty code.  This is a 5 minute bit of coding... however, due to
the fact that I'd like to get this site up and running... I'd appreciate
any comments on where you believe the 7 bit offset may be.  Yes.. I know
this seems noobish of me... but... frankly, given the 2 hours of sleep I've
gotten... I figure I deserve it ;)
Thanks,
Lodaren of Rhu-Dina'ar
rhudin.newvisiongames.net 7777
--
   +---------------------------------------------------------------+
   | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
   | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
   +---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/06/01 PST