muddy/
muddy/CVS/
muddy/area/
muddy/area/CVS/
muddy/clans/CVS/
muddy/classes/CVS/
muddy/doc/
muddy/doc/CVS/
muddy/etc/CVS/
muddy/etc/i3/
muddy/etc/i3/CVS/
muddy/imc/CVS/
muddy/lang/CVS/
muddy/licenses/CVS/
muddy/msgdb/CVS/
muddy/new/CVS/
muddy/notes/
muddy/player/
muddy/races/CVS/
muddy/religions/CVS/
muddy/src/CVS/
muddy/src/comm/CVS/
muddy/src/db/CVS/
muddy/src/intermud/
muddy/src/intermud/CVS/
muddy/src/irc/CVS/
muddy/src/olc/CVS/
/* $Id: liquid.c,v 1.666 2004/09/20 10:50:19 shrike Exp $ */

/************************************************************************************
 *    Copyright 2004 Astrum Metaphora consortium                                    *
 *                                                                                  *
 *    Licensed under the Apache License, Version 2.0 (the "License");               *
 *    you may not use this file except in compliance with the License.              *
 *    You may obtain a copy of the License at                                       *
 *                                                                                  *
 *    http://www.apache.org/licenses/LICENSE-2.0                                    *
 *                                                                                  *
 *    Unless required by applicable law or agreed to in writing, software           *
 *    distributed under the License is distributed on an "AS IS" BASIS,             *
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.      *
 *    See the License for the specific language governing permissions and           *
 *    limitations under the License.                                                *
 *                                                                                  *
 ************************************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "merc.h"

varr liquids  = {sizeof (liquid_t), 4};

liquid_t * liquid_new ()
{
     liquid_t * liquid;

     liquid                       = varr_enew (&liquids);
     liquid->name                 = str_empty;
     liquid->color                = str_empty;
     liquid->food                 = 0;
     liquid->full                 = 0;
     liquid->proof                = 0;
     liquid->thirst               = 0;
     liquid->ssize                = 0;

     return liquid ;
}

void liquid_free(liquid_t *liquid)
{
    free_string(liquid->name);
    free_string(liquid->color);

    free(liquid);
}


const char * liquid_name(int ln)
{
      liquid_t *liquid;

      if (ln < 0)
            return str_empty;

      liquid = LIQUID(ln);


      if (liquid == NULL)
            return "none";
      else
            return liquid->name;

}

const char * liquid_color(int ln)
{
      liquid_t *liquid;

      if (ln < 0)
            return str_empty;;

      liquid = LIQUID(ln);

      if (liquid == NULL)
            return "none";
      else
            return liquid->color;

}

int liquid_lookup(const char *name)
{
     int liq;

     for (liq = 0; liq < liquids.nused; liq++)
         if (!str_cmp(name, LIQUID(liq)->name))
              return liq;

     return -1;
}

void show_liquid_types(BUFFER *output)
{
     int  liq;
     int  col;

     col = 0;

     for (liq = 0; liq < liquids.nused; liq++)
     {
          buf_printf(output, "%-19.18s", LIQUID(liq)->name);
          if (++col % 4 == 0)
                buf_add(output, "\n");
     }

     if (col % 4)
               buf_add(output, "\n");
}


void show_liquidlist(CHAR_DATA *ch)
{
     int liq;
     BUFFER *buffer;

     buffer = buf_new(-1);

     buf_add(buffer,"Name                 Color          Proof Full Thirst Food Ssize\n");

     for (liq = 0; liq < liquids.nused; liq++)
          buf_printf(buffer, "%-20s %-14s %5d %4d %6d %4d %5d\n",
                    LIQUID(liq)->name,
                    LIQUID(liq)->color,
                    LIQUID(liq)->proof,
                    LIQUID(liq)->full,
                    LIQUID(liq)->thirst,
                    LIQUID(liq)->food,
                    LIQUID(liq)->ssize);

     page_to_char(buf_string(buffer), ch);
     buf_free(buffer);
}