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.7 by root, Wed Sep 13 23:39:27 2006 UTC vs.
Revision 1.11 by root, Sun Oct 15 02:16:34 2006 UTC

16 16
17 You should have received a copy of the GNU General Public License 17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software 18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 19 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 20
21 The authors can be reached via e-mail at crossfire-devel@real-time.com 21 The authors can be reached via e-mail at <crossfire@schmorp.de>
22*/ 22*/
23 23
24 24
25/* This file contains code relevant to the BOOKS hack -- designed 25/* This file contains code relevant to the BOOKS hack -- designed
26 * to allow randomly occuring messages in non-magical texts. 26 * to allow randomly occuring messages in non-magical texts.
815 archetype *at; 815 archetype *at;
816 static int did_init_mon_info = 0; 816 static int did_init_mon_info = 0;
817 817
818 if (did_init_mon_info) 818 if (did_init_mon_info)
819 return; 819 return;
820
820 did_init_mon_info = 1; 821 did_init_mon_info = 1;
821 822
822 823
823 for (at = first_archetype; at != NULL; at = at->next) 824 for (at = first_archetype; at != NULL; at = at->next)
824 { 825 {
825 if (QUERY_FLAG (&at->clone, FLAG_MONSTER) && (!QUERY_FLAG (&at->clone, FLAG_CHANGING) || QUERY_FLAG (&at->clone, FLAG_UNAGGRESSIVE))) 826 if (QUERY_FLAG (&at->clone, FLAG_MONSTER) && (!QUERY_FLAG (&at->clone, FLAG_CHANGING) || QUERY_FLAG (&at->clone, FLAG_UNAGGRESSIVE)))
826 { 827 {
827 objectlink *mon = (objectlink *) malloc (sizeof (objectlink)); 828 objectlink *mon = new objectlink;
828 829
829 mon->ob = &at->clone; 830 mon->ob = &at->clone;
830 mon->id = nrofmon;
831 mon->next = first_mon_info; 831 mon->next = first_mon_info;
832 first_mon_info = mon; 832 first_mon_info = mon;
833 nrofmon++; 833 nrofmon++;
834 } 834 }
835 } 835 }
836
836 LOG (llevDebug, "init_mon_info() got %d monsters\n", nrofmon); 837 LOG (llevDebug, "init_mon_info() got %d monsters\n", nrofmon);
837} 838}
838 839
839 840
840/* init_readable() - initialize linked lists utilized by 841/* init_readable() - initialize linked lists utilized by
849{ 850{
850 static int did_this; 851 static int did_this;
851 852
852 if (did_this) 853 if (did_this)
853 return; 854 return;
855
854 did_this = 1; 856 did_this = 1;
855 857
856 LOG (llevDebug, "Initializing reading data..."); 858 LOG (llevDebug, "Initializing reading data...");
857 init_msgfile (); 859 init_msgfile ();
858 init_book_archive (); 860 init_book_archive ();
1611 archetype *at; 1613 archetype *at;
1612 1614
1613 /* preamble */ 1615 /* preamble */
1614 sprintf (retbuf, "Herein is described a project using %s: \n", formula->skill ? &formula->skill : "an unknown skill"); 1616 sprintf (retbuf, "Herein is described a project using %s: \n", formula->skill ? &formula->skill : "an unknown skill");
1615 1617
1616 if ((at = find_archetype (op_name)) != (archetype *) NULL) 1618 if ((at = archetype::find (op_name)) != (archetype *) NULL)
1617 op_name = at->clone.name; 1619 op_name = at->clone.name;
1618 else 1620 else
1619 LOG (llevError, "formula_msg() can't find arch %s for formula.\n", op_name); 1621 LOG (llevError, "formula_msg() can't find arch %s for formula.\n", op_name);
1620 1622
1621 /* item name */ 1623 /* item name */
1650 if (formula->ingred != NULL) 1652 if (formula->ingred != NULL)
1651 { 1653 {
1652 linked_char *next; 1654 linked_char *next;
1653 archetype *at; 1655 archetype *at;
1654 1656
1655 at = find_archetype (formula->cauldron); 1657 at = archetype::find (formula->cauldron);
1656 1658
1657 sprintf (retbuf + strlen (retbuf), 1659 sprintf (retbuf + strlen (retbuf),
1658 " may be made at %s using the following ingredients:\n", at ? query_name (&at->clone) : "an unknown place"); 1660 " may be made at %s using the following ingredients:\n", at ? query_name (&at->clone) : "an unknown place");
1659 1661
1660 for (next = formula->ingred; next != NULL; next = next->next) 1662 for (next = formula->ingred; next != NULL; next = next->next)
1978 strcpy (msgbuf, msgfile_msg (level, book_buf_size)); 1980 strcpy (msgbuf, msgfile_msg (level, book_buf_size));
1979 break; 1981 break;
1980 } 1982 }
1981 1983
1982 strcat (msgbuf, "\n"); /* safety -- we get ugly map saves/crashes w/o this */ 1984 strcat (msgbuf, "\n"); /* safety -- we get ugly map saves/crashes w/o this */
1985
1983 if (strlen (msgbuf) > 1) 1986 if (strlen (msgbuf) > 1)
1984 { 1987 {
1985 book->msg = msgbuf; 1988 book->msg = msgbuf;
1986 /* lets give the "book" a new name, which may be a compound word */ 1989 /* lets give the "book" a new name, which may be a compound word */
1987 change_book (book, msg_type); 1990 change_book (book, msg_type);
2016 delete title1; 2019 delete title1;
2017 } 2020 }
2018 2021
2019 delete tlist; 2022 delete tlist;
2020 } 2023 }
2024
2021 for (lmsg = first_msg; lmsg; lmsg = nextmsg) 2025 for (lmsg = first_msg; lmsg; lmsg = nextmsg)
2022 { 2026 {
2023 nextmsg = lmsg->next; 2027 nextmsg = lmsg->next;
2024 delete lmsg; 2028 delete lmsg;
2025 } 2029 }
2030
2026 for (monlink = first_mon_info; monlink; monlink = nextmon) 2031 for (monlink = first_mon_info; monlink; monlink = nextmon)
2027 { 2032 {
2028 nextmon = monlink->next; 2033 nextmon = monlink->next;
2029 free (monlink); 2034 delete monlink;
2030 } 2035 }
2031} 2036}
2032 2037
2033 2038
2034/***************************************************************************** 2039/*****************************************************************************

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines