smaug1.8/area/imc/
smaug1.8/boards/
smaug1.8/councils/
smaug1.8/deity/
smaug1.8/doc/mudprogs/
smaug1.8/gods/
smaug1.8/houses/
smaug1.8/log/
smaug1.8/vault/
/*****************************************************
**     _________       __                           **
**     \_   ___ \_____|__| _____  ________  ___     **
**      /    \  \/_  __ \ |/     \/  ___/_ \/   \   **
**      \     \___|  | \/ |  | |  \___ \  / ) |  \  **
**       \______  /__| |__|__|_|  /____ \__/__|  /  **
**         ____\/____ _        \/ ___ \/      \/    **
**         \______   \ |_____  __| _/___            **
**          |    |  _/ |\__  \/ __ | __ \           **
**          |    |   \ |_/ __ \  / | ___/_          **
**          |_____  /__/____  /_  /___  /           **
**               \/Antipode\/  \/    \/             **
******************************************************
**         Crimson Blade Codebase (CbC)             **
**     (c) 2000-2002 John Bellone (Noplex)          **
**           Coders: Noplex, Krowe                  **
**        http://www.crimsonblade.org               **
*****************************************************/

/*
 * File: news.h
 * Name: Extended News (v2.81)
 * Author: John 'Noplex' Bellone (john.bellone@flipsidesoftware.com)
 * Terms:
 * If this file is to be re-disributed; you must send an email
 * to the author. All headers above the #include calls must be
 * kept intact.
 * Description:
 * This is the extended news module; it allows for news to be
 * posted in note-like format; and bringing you into a editbuffer
 * instead of one-line posts (like Elder Chronicles). It also
 * allows support for online HTML output for news to be automatically
 * generated and included via a PHP; SSL; or a TXT include.
 */

#define NEWS_FILE "news.dat"
#define NEWS_INCLUDE_FILE "news.txt"
#define NEWS_TOP "\n\r"
#define NEWS_HEADER "\n\r"
#define NEWS_HEADER_ALL "&g( &W#&g)                          (&WSubject&g)\n\r"
#define NEWS_HEADER_READ "&g( &W#&g)                          (&WSubject&g)\n\r"
#define NEWS_VIEW               15
#define NEWS_MAX_TYPES          10

DECLARE_DO_FUN( do_editnews );

typedef struct news_data NEWS;
struct news_data
{
  NEWS *next;
  NEWS *prev;
  int  number;
  int  type;
  char *title;
  char *name;
  char *post;
  char *date;
};

typedef struct news_type NEWS_TYPE;
struct news_type
{
  NEWS *first_news;
  NEWS *last_news;
  NEWS_TYPE *next;
  NEWS_TYPE *prev;
  int   vnum;
  sh_int level;
  char *header;
  char *cmd_name;
  char *name;
};

NEWS_TYPE *first_news_type;
NEWS_TYPE *last_news_type;

/* news.c */
NEWS *grab_news args((NEWS_TYPE *type, char *str));
NEWS_TYPE *figure_type args((char *str));
void display_news args((CHAR_DATA *ch, NEWS *news, NEWS_TYPE *type));
void renumber_news args((void));
void save_news args((void));
void load_news args((void));
void fread_news args((NEWS *news, FILE *fp));
char *stamp_time         args((void));
void write_html_news  args((void));
void snarf_news args((FILE *fpWrite));
void display_news_type args((CHAR_DATA *ch, NEWS_TYPE *type, char *argument));
void fread_news_type args(( NEWS_TYPE *type, FILE *fp ));
bool news_cmd_hook args((CHAR_DATA *ch, char *cmd, char *argument));
void link_news_to_type args((NEWS *news));