/**C*
 *
 * Vaisala software source code file
 *
 * Copyright (c) Vaisala Oyj 1992, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
 * 2011, 2012.
 * All rights reserved.
 *
 **C*/

/** @file
 *
 * Header file for Maps library definitions
 *
 * $URL: https://subversion.vaisala.com/svn/repos/sigmet/wr_iris_rda/tags/release8.13.6/base/maps_lib/maps_lib.h $
 *
 * $Id: maps_lib.h 28370 2012-07-05 21:41:09Z jho $
 *
 */
#define SIGMET_MAPS_LIB_H 1

#ifdef __cplusplus
extern "C" {
#endif
  
#define MAPSLIB_BADOVERO         (MAPSLIB_FACILITY+1)
#define MAPSLIB_BADOVERR         (MAPSLIB_FACILITY+2)
#define MAPSLIB_CATCH_DUP        (MAPSLIB_FACILITY+3)
#define MAPSLIB_CATCH_EMPTY      (MAPSLIB_FACILITY+4)
#define MAPSLIB_CATCH_LABEL      (MAPSLIB_FACILITY+5)
#define MAPSLIB_CATCH_MISSING    (MAPSLIB_FACILITY+6)
#define MAPSLIB_FILLFUL          (MAPSLIB_FACILITY+7)
#define MAPSLIB_FNF              (MAPSLIB_FACILITY+8)
#define MAPSLIB_ICON_COUNT       (MAPSLIB_FACILITY+9)
#define MAPSLIB_ICON_ERROR       (MAPSLIB_FACILITY+10)
#define MAPSLIB_ICON_SIZE        (MAPSLIB_FACILITY+11)
#define MAPSLIB_LAYERFUL         (MAPSLIB_FACILITY+12)
#define MAPSLIB_BLOCK_BLOCK      (MAPSLIB_FACILITY+14)
#define MAPSLIB_BLOCK_EMPTY      (MAPSLIB_FACILITY+15)
#define MAPSLIB_BLOCK_SITE       (MAPSLIB_FACILITY+16)
#define MAPSLIB_BLOCK_SWEEP      (MAPSLIB_FACILITY+17)
#define MAPSLIB_OVERLAY_FULL     (MAPSLIB_FACILITY+20)
#define MAPSLIB_OVERLAY_HEAP     (MAPSLIB_FACILITY+21)
#define MAPSLIB_POINTFUL         (MAPSLIB_FACILITY+22)
#define MAPSLIB_TEXTFUL          (MAPSLIB_FACILITY+23)
#define MAPSLIB_GIFFUL           (MAPSLIB_FACILITY+24)
#define MAPSLIB_SURFACE_EMPTY    (MAPSLIB_FACILITY+30)
#define MAPSLIB_SURFACE_NOAZRES  (MAPSLIB_FACILITY+31)
#define MAPSLIB_SURFACE_NORNGRES (MAPSLIB_FACILITY+32)
#define MAPSLIB_SURFACE_NOSITE   (MAPSLIB_FACILITY+33)
#define MAPSLIB_SURFACE_RNGOVR   (MAPSLIB_FACILITY+34)
#define MAPSLIB_SURFACE_SITE     (MAPSLIB_FACILITY+35)
#define MAPSLIB_SURFACE_SYNTAX   (MAPSLIB_FACILITY+36)


void maps_lib_nls_init(void);
#define MAPS_LIB_INIT maps_lib_nls_init()

#ifdef SIGMET_PROJECTION_H
MESSAGE AddToOverlay		/* File: OverlaySave.c */
( struct overlay_file_header8 *pHeader_a,      /* Overlay header, will be modified */
  UINT1 **pHeap_a,                       /* Overlay heap, will be modified */
  SINT4 *pHeapSize_a,                    /* Size of heap, will be modified */
  const struct overlay_text8  *pText_a,  /* Possible new text point, NULL if none */
  const struct overlay_point8 *pFill_a,  /* Possible new fill point, NULL if none */
  const struct overlay_gif8 *pGif_a );   /* Possible new gifs, NULL if none */
#endif  /* #ifdef SIGMET_PROJECTION_H */

#ifdef SIGMET_PROJECTION_H
MESSAGE DeleteFromOverlay
( struct overlay_file_header8 *pHeader_a, /* Overlay header, will be modified */
  UINT1 **pHeap_a,		  /* Overlay heap, will be modified */
  SINT4 *pHeapSize_a,		  /* Size of heap, will be modified */
  struct overlay_text8  *pText_a, /* Pointer to Text to delete, NULL if none */
  struct overlay_point8 *pFill_a, /* Pointer to fill point, NULL if none */
  struct overlay_gif8 *pGif_a );  /* Pointer to gifs to delete, NULL if none */

MESSAGE DeleteSelectedFromOverlay
( struct overlay_file_header8 *pHeader_a, /* Overlay header, will be modified */
  UINT1 **pHeap_a,		/* Overlay heap, will be modified */
  SINT4 *pHeapSize_a );		/* Size of heap, will be modified */
#endif  /* #ifdef SIGMET_PROJECTION_H */

void GetCatchInvPath		/*File: catch_load.c */
( char sPath_a[PATHNAME_SIZE] );

#ifdef SIGMET_PROJECTION_H
  const struct catch_inventory8 *GetCatchInvPtr /* File: catch_load.c */
  ( void ) ;
#endif  /* #ifdef SIGMET_PROJECTION_H */
  
  void GetOverlayInvPath          /* File: overlay_files.c */
  ( char sPath_a[PATHNAME_SIZE],
    const char *sWho_a );   /* Who the creator is */

#ifdef SIGMET_PROJECTION_H
  const struct overlay_inventory8 *GetOverlayInvPtr  /* File: overlay_files.c */
  (const char *sWho_a );   /* Who the creator is */

void IconFiles			/* File: overlay_load.c */
( volatile struct layer_dir *pLayerInv_a );
#endif  /* #ifdef SIGMET_PROJECTION_H */
  
#ifdef SIGMET_PROJECTION_H
  MESSAGE LoadCatchFile		/* File: catch_load.c */
( const char *sfile_a,		/* Input catch file name */
  volatile struct catch_file_header8 *pFileHeader_a, /* Fills in header here */
  UINT1 **pHeap_a,		/* Returns heap here, must be freed */
  SINT4 *iHeapSize_a,		/* Size of heap in bytes */
  SINT4 *iline_a );		/* Line number error was on */

void LoadCatchInventory		/* File: catch_load.c */
( struct catch_inventory8 *pCatch_a, /* Fills in the array of catch files */
  UINT1 **pInventoryHeap_a,	/* Returns pointer to malloced array, must be freed */
  UINT1 lverbose_a );		/* Will print logging info if nonzero */

MESSAGE LoadOverlayFile		/* File: overlay_load.c */
( const char* sfile_a,		/* File name to load */
  volatile struct layer_dir *players_a,	/* Layer directory */
  volatile struct overlay_file_header8* header_a, /* Overlay header */
  UINT1 **pHeap_a,		/* Overlay data heap */
  SINT4 *iHeapSize_a,		/* Overlay heap size*/
  SINT4* ierror_line_a		/* Line number, if error */
  );

  MESSAGE LoadOverlayIntoFile     /* File: overlay_files.c */
( struct overlay_inventory8 **ppOverlayFile_a,
  SINT4 *iFileSize_a,
  SINT4 *iFileId_a, 
  const char *sWho_a,
  UINT1 lVerbose_a );

  void LoadOverlayInventory       /* File: overlay_files.c */
(struct overlay_inventory8 *pOverlay_a,  /* Fills in the array of overlay files */
 UINT1 **pInventoryHeap_a,    /* Returns pointer to malloced array, must be freed */
 UINT1 lverbose_a );          /* Will print logging info if nonzero */

  MESSAGE LoadTerrainFile         /* File: TerrainLoad.c */
( struct terrain_site_header **pFileHeader_a ); /* Fills in header here */

void ProcessOverlayFilename	/* File: overlay_load.c */
( const char *sfile_a,
  char sPath_a[PATHNAME_SIZE],
  volatile char sFile_a[16],
  const char *sExtension_a );
#endif  /* #ifdef SIGMET_PROJECTION_H */

#ifdef SIGMET_PROJECTION_H
MESSAGE SaveOverlay		/* File: OverlaySave.c */
( const char *sPath_a,		/* File pathname */
  const struct layer_dir *players_a, /* Layer directory needed for names */
  const struct overlay_file_header8 *pHeader_a,	/* Overlay header */
  const UINT1 *pHeap_a );	/* Overlay heap */
#endif  /* #ifdef SIGMET_PROJECTION_H */


#ifdef __cplusplus
}
#endif
