ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/common/readable.C
(Generate patch)

Comparing deliantra/server/common/readable.C (file contents):
Revision 1.5 by root, Sun Sep 10 16:00:23 2006 UTC vs.
Revision 1.7 by root, Wed Sep 13 23:39:27 2006 UTC

1
2/*
3 * static char *rcsid_readable_c =
4 * "$Id: readable.C,v 1.5 2006/09/10 16:00:23 root Exp $";
5 */
6
7/* 1/*
8 CrossFire, A Multiplayer game for X-windows 2 CrossFire, A Multiplayer game for X-windows
9 3
10 Copyright (C) 2002 Mark Wedel & Crossfire Development Team 4 Copyright (C) 2002 Mark Wedel & Crossfire Development Team
11 Copyright (C) 1992 Frank Tore Johansen 5 Copyright (C) 1992 Frank Tore Johansen
80/* Moved these structures from struct.h to this file in 0.94.3 - they 74/* Moved these structures from struct.h to this file in 0.94.3 - they
81 * are not needed anyplace else, so why have them globally declared? 75 * are not needed anyplace else, so why have them globally declared?
82 */ 76 */
83 77
84/* 'title' and 'titlelist' are used by the readable code */ 78/* 'title' and 'titlelist' are used by the readable code */
85typedef struct titlestruct:zero_initialised 79struct title : zero_initialised
86{ 80{
87 shstr name; /* the name of the book */ 81 shstr name; /* the name of the book */
88 shstr authour; /* the name of the book authour */ 82 shstr authour; /* the name of the book authour */
89 shstr archname; /* the archetype name of the book */ 83 shstr archname; /* the archetype name of the book */
90 int level; /* level of difficulty of this message */ 84 int level; /* level of difficulty of this message */
91 int size; /* size of the book message */ 85 int size; /* size of the book message */
92 int msg_index; /* an index value derived from book message */ 86 int msg_index; /* an index value derived from book message */
93 struct titlestruct *next; 87 title *next;
94} title; 88};
95 89
96typedef struct titleliststruct:zero_initialised 90struct titlelist : zero_initialised
97{ 91{
98 int number; /* number of items in the list */ 92 int number; /* number of items in the list */
99 struct titlestruct *first_book; /* pointer to first book in this list */ 93 title *first_book; /* pointer to first book in this list */
100 struct titleliststruct *next; /* pointer to next book list */ 94 titlelist *next; /* pointer to next book list */
101} titlelist; 95};
102 96
103/* special structure, used only by art_name_array[] */ 97/* special structure, used only by art_name_array[] */
104 98struct arttypename
105typedef struct namebytype
106{ 99{
107 const char *name; /* generic name to call artifacts of this type */ 100 const char *name; /* generic name to call artifacts of this type */
108 int type; /* matching type */ 101 int type; /* matching type */
109} 102};
110arttypename;
111
112 103
113/* booklist is the buffer of books read in from the bookarch file */ 104/* booklist is the buffer of books read in from the bookarch file */
114static titlelist *booklist = NULL; 105static titlelist *booklist = NULL;
115 106
116static objectlink *first_mon_info = NULL; 107static objectlink *first_mon_info = NULL;
565 556
566 while (tl && number) 557 while (tl && number)
567 { 558 {
568 if (!tl->next) 559 if (!tl->next)
569 tl->next = get_empty_booklist (); 560 tl->next = get_empty_booklist ();
561
570 tl = tl->next; 562 tl = tl->next;
571 number--; 563 number--;
572 } 564 }
573 565
574 return tl; 566 return tl;
733 titlelist *bl = get_empty_booklist (); 725 titlelist *bl = get_empty_booklist ();
734 static int did_init_barch; 726 static int did_init_barch;
735 727
736 if (did_init_barch) 728 if (did_init_barch)
737 return; 729 return;
730
738 did_init_barch = 1; 731 did_init_barch = 1;
739 732
740 if (!booklist) 733 if (!booklist)
741 booklist = bl; 734 booklist = bl;
742 735
891 if (msgtype < 0) 884 if (msgtype < 0)
892 return (title *) NULL; 885 return (title *) NULL;
893 886
894 if (tl) 887 if (tl)
895 t = tl->first_book; 888 t = tl->first_book;
889
896 while (t) 890 while (t)
897 if (t->size == length && t->msg_index == index) 891 if (t->size == length && t->msg_index == index)
898 break; 892 break;
899 else 893 else
900 t = t->next; 894 t = t->next;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines