]>
jfr.im git - irc/gameservirc.git/blob - gameserv/news.cpp
8 List
<myString
> todaysnews
;
9 void addNews(List
<myString
> &news
, const char *fmt
, ...);
10 void clearNews(List
<myString
> &news
) {news
.deleteNodes();};
11 void showNews(char *nick
, List
<myString
> &news
);
12 void saveNews(char *filename
, List
<myString
> &news
);
13 void loadNews(char *filename
, List
<myString
> &news
);
15 void addNews(List
<myString
> &news
, const char *fmt
, ...)
22 input
= new char[1024];
23 memset(input
, 0, 1024);
33 case 'd': sprintf(input
, "%s%d", input
, va_arg(args
, int)); break;
34 case 's': sprintf(input
, "%s%s", input
, va_arg(args
, char *)); break;
35 case 'S': sprintf(input
, "%s%s", input
, s_GameServ
); break;
38 sprintf(input
, "%s%ld", input
, va_arg(args
, long int)); break;
43 sprintf(input
, "%s%c", input
, *t
);
48 log("New News Item: %s", input
);
51 notice(s_GameServ
, c_Forest
, "News Flash: %s", input
);
53 nstring
= new myString(input
);
54 news
.insertAtBack(nstring
);
62 void showNews(char *nick
, List
<myString
> &news
)
66 ListNode
<myString
> *it
;
69 notice(s_GameServ
, nick
, "The Daily Happenings: ");
72 notice(s_GameServ
, nick
, "%s", it
->getData()->getString());
75 notice(s_GameServ
, nick
, "End of News");
79 void saveNews(char *filename
, List
<myString
> &news
)
82 outfile
.open(filename
);
86 log("Error opening %s", filename
);
90 ListNode
<myString
> *it
;
94 outfile
<< it
->getData()->getString() << endl
;
100 void loadNews(char *filename
, List
<myString
> &news
)
102 // First clear the old news out
103 ListNode
<myString
> *it
, *temp
;
113 // Now load from the file
115 infile
.open(filename
);
118 log("Error opening %s", filename
);
124 buf
= new char [1024];
126 while (infile
.getline(buf
, 1024, '\n'))
128 if (buf
[0] == '\0' || buf
[0] == '\n')
133 string
= new myString(buf
);
134 news
.insertAtBack(string
);
141 void do_news(char *u
)
143 showNews(u
, todaysnews
);