/*--------------------------------------------------------------------
 * FICHERO:  RegCrea.c
 * OBJETIVO: Definir las funciones Reg_Crea() y Reg_Destruye()
 * AUTOR:    Pedro Reina
 * FECHA:    V.14.7.1995
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------------
 * Ficheros de cabecera
 *------------------------------------------------------------------*/

#include "Region.h"

/*--------------------------------------------------------------------
 * Definicin de funciones
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------Olimpo
 * FUNCION:  Reg_Crea()
 * OBJETIVO: Crear una regin
 * ENTRADAS: La fila superior, la columna izquierda, la fila 
 *           inferior y la columna derecha, todo en caracteres
 * SALIDAS:  Una regin o NIL si no se puede crear
 * EJEMPLO:  Reg_Crea (3,4,14,70)
 *------------------------------------------------------------------*/
region Reg_Crea (F1,C1,F2,C2)
octeto F1, C1, F2, C2;
  {
  region Nuevo = NIL;

  if ( Nuevo = (region) Mem_Crea (sizeof(Reg_st)) )
    {
    Reg_PonFilSup (Nuevo,F1);
    Reg_PonFilInf (Nuevo,F2);
    Reg_PonColIzq (Nuevo,C1);
    Reg_PonColDer (Nuevo,C2);
    
    Reg_Papel (Nuevo, NEGRO);
    Reg_Tinta (Nuevo, BLANCO);

    Reg_PonTrozo (Nuevo, (trozo)NIL);
    }

  return ( Nuevo );
  }

/*--------------------------------------------------------------Olimpo
 * FUNCION:  Reg_Destruye()
 * OBJETIVO: Eliminar una regin, liberando memoria
 * ENTRADAS: La region
 * SALIDAS:  Ninguna
 * EJEMPLO:  Reg_Destruye ( CuadroInfo )
 *------------------------------------------------------------------*/
void Reg_Destruye (Region)
region Region;
  {
  if ( Region )
    {
    if ( Reg_Trozo (Region) )
      { Trz_Destruye ( Reg_Trozo(Region) ); }
    
    Mem_Destruye (Region);
    }
  }  