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: socials.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 "typedef.h"
#include "varr.h"
#include "socials.h"
#include "str.h"
#include "merc.h"

varr socials = { sizeof(social_t), 8 };

social_t *social_new()
{
    social_t *soc;

    soc =  varr_enew(&socials);

    soc->alias = str_empty;
    soc->description = str_empty;
    soc->age = 0;
    soc->level = 0;
    
    return soc;

}

void social_free(social_t *soc)
{
        free_string(soc->name);
        free_string(soc->alias);
        free_string(soc->description);
        
        free_string(soc->all_char);
        free_string(soc->all_room);
        free_string(soc->all_self);

        free_string(soc->found_char);
        free_string(soc->found_vict);
        free_string(soc->found_notvict);

        free_string(soc->noarg_char);
        free_string(soc->noarg_room);

        free_string(soc->self_char);
        free_string(soc->self_room);

        free_string(soc->notfound_char);
}

social_t *social_lookup(const char *name,
                        int (*cmpfun)(const char *s1, const char *s2))
{
        int i;

        for (i = 0; i < socials.nused; i++) 
        {
                social_t *soc = VARR_GET(&socials, i);
                if (!cmpfun(name, soc->name) || is_name(name, soc->alias))
                        return soc;
        }

        return NULL;
}