Esempio n. 1
0
SPEC_DAMAGE *new_spec_damage(void)
{
    SPEC_DAMAGE *new_specdam;

    if ( !spec_damage_free )
    {
        CREATE( new_specdam, SPEC_DAMAGE, 1 );
    }
    else
    {
        new_specdam       = spec_damage_free;
	spec_damage_free  = spec_damage_free->next;
    }
    new_specdam->type        = SD_TYPE_NONE;
    new_specdam->chance      = 100;
    new_specdam->param1      = SD_PARAM_ANY;
    new_specdam->param2      = SD_PARAM_ANY;
    new_specdam->param3      = SD_PARAM_ANY;
    ext_flags_clear( new_specdam->ext_param );
    new_specdam->bonus       = 0;
    new_specdam->next        = NULL;
    new_specdam->target_type = SD_TARGET_DAM;


    return new_specdam;
}
Esempio n. 2
0
BONUS_INDEX_DATA *new_bonus_index( void )
{
    BONUS_INDEX_DATA *pBonus;

    if ( !bonus_index_free )
        CREATE( pBonus, BONUS_INDEX_DATA, 1 );
    else
    {
        pBonus            =   bonus_index_free;
        bonus_index_free  =   bonus_index_free->next;
    }

    pBonus->next        =   NULL;
    pBonus->affects     =   NULL;
    pBonus->area        =   NULL;
    ext_flags_clear( pBonus->prog_flags );
    pBonus->name        =   &str_empty[0];
    pBonus->description =   &str_empty[0];
    pBonus->comments    =   &str_empty[0];
    pBonus->wear_prog   =   &str_empty[0];
    pBonus->remove_prog =   &str_empty[0];
    pBonus->extra_descr =   NULL;

    pBonus->vnum          =   0;

    return pBonus;
}
Esempio n. 3
0
/*
 * Zwraca flagi z zapalonymi bitami dla podanych w fomie tekstowej opcji oddzielonych spacjami
 */
long * ext_flag_value( const struct ext_flag_type * ext_flag_table, char * argument )
{
    char word[MAX_INPUT_LENGTH];
    BITVECT_DATA * bit;
    static long  marked[MAX_VECT_BANK];
    bool found = FALSE;

	ext_flags_clear( marked );

	/*
     * Accept multiple flags.
     */
    for (; ;)
    {
        argument = one_argument( argument, word );

        if ( word[0] == '\0' )
	    break;

		bit = ext_flag_lookup( word, ext_flag_table );
        if ( bit != &EXT_NONE )
        {
            EXT_SET_BIT( marked, *bit );
            found = TRUE;
        }
    }

    if ( found )
		return &marked[0];
    else
		return NULL;
}
Esempio n. 4
0
ROOM_INDEX_DATA *new_room_index( void )
{
    ROOM_INDEX_DATA *pRoom;
    int door;

    if ( !room_index_free )
    {
        CREATE( pRoom, ROOM_INDEX_DATA, 1 );
        top_room++;
    }
    else
    {
        pRoom           =   room_index_free;
        room_index_free =   room_index_free->next;
    }

    pRoom->next             =   NULL;
    pRoom->people           =   NULL;
    pRoom->contents         =   NULL;
    pRoom->extra_descr      =   NULL;
    pRoom->area             =   NULL;
	pRoom->minds            =   NULL;

    for ( door=0; door < MAX_DIR; door++ )
        pRoom->exit[door]   =   NULL;

    pRoom->name             =   &str_empty[0];
    pRoom->description      =   &str_empty[0];
    pRoom->nightdesc        =   &str_empty[0];
    pRoom->night_rand_desc  =   0;
    pRoom->day_rand_desc    =   0;
    pRoom->owner	    =	&str_empty[0];
    pRoom->vnum             =   0;
    ext_flags_clear( pRoom->room_flags );
    pRoom->light            =   0;
    pRoom->sector_type      =   8;
    pRoom->heal_rate	    =   100;
    pRoom->rent_rate	    =   100;
    pRoom->herbs_count	    =   0;
	pRoom->area_part	    =   0;
    ext_flags_clear( pRoom->prog_flags );
    pRoom->prog_delay	    =   0;
    pRoom->prog_target	    =   NULL;
    pRoom->echo_to.vnum     = 0;
    pRoom->has_memdat		= 0;
    return pRoom;
}
Esempio n. 5
0
MOB_INDEX_DATA *new_mob_index( void )
{
    MOB_INDEX_DATA *pMob;
    int i;

    if ( !mob_index_free )
    {
        CREATE( pMob, MOB_INDEX_DATA, 1 );
        top_mob_index++;
    }
    else
    {
        pMob            =   mob_index_free;
        mob_index_free  =   mob_index_free->next;
    }

    pMob->next          =   NULL;
    pMob->spec_fun      =   NULL;
    pMob->pShop         =   NULL;
    pMob->pRepair	=   NULL;
    pMob->area          =   NULL;
    pMob->player_name   =   str_dup( "no name" );

    pMob->name2	        =   str_dup( "null" );
    pMob->name3	        =   str_dup( "null" );
    pMob->name4	        =   str_dup( "null" );
    pMob->name5	        =   str_dup( "null" );
    pMob->name6	        =   str_dup( "null" );

    pMob->short_descr   =   str_dup( "(no short description)" );
    pMob->long_descr    =   str_dup( "(no long description)" );
    pMob->description   =   &str_empty[0];
    pMob->vnum          =   0;
    pMob->count         =   0;
    pMob->killed        =   0;
    pMob->sex           =   0;
    pMob->level         =   0;
    ext_flags_clear( pMob->act );
    EXT_SET_BIT( pMob->act, ACT_IS_NPC );
    pMob->languages	=   LANG_COMMON;
    pMob->speaking	=   0;
    pMob->corpse_vnum	=   0;
	pMob->skin_multiplier	=   0;

    for(i=0;i < 16 ;i++)
	pMob->spells[i]	=   0;

    for(i=0;i < MAX_RESIST ;i++)
       {	
	  pMob->resists[i] =  0;
	  pMob->healing_from[i] = 0;
       }

    for(i=0;i<MAX_VECT_BANK;i++)
	pMob->affected_by[i]   =   0;

    pMob->alignment     =   0;
    pMob->hitroll	=   0;
    pMob->race          =   race_lookup( "human" );
    pMob->form          =   0;
    pMob->parts         =   0;
    pMob->material      =   str_dup("unknown");
    ext_flags_clear( pMob->off_flags );
    pMob->size          =   SIZE_MEDIUM;
    pMob->ac[AC_PIERCE]	=   100;
    pMob->ac[AC_BASH]	=   100;
    pMob->ac[AC_SLASH]	=   100;
    pMob->ac[AC_EXOTIC]	=   100;
    pMob->stats[0]	=13;
    pMob->stats[1]	=13;
    pMob->stats[2]	=13;
    pMob->stats[3]	=13;
    pMob->stats[4]	=13;
    pMob->stats[5]	=13;
    pMob->stats[6]	=13;
    pMob->hit[DICE_NUMBER]	=   0;
    pMob->hit[DICE_TYPE]	=   0;
    pMob->hit[DICE_BONUS]	=   0;
    pMob->damage[DICE_NUMBER]	=   0;
    pMob->damage[DICE_TYPE]	=   0;
    pMob->damage[DICE_NUMBER]	=   0;
    pMob->start_pos             =   POS_STANDING;
    pMob->default_pos           =   POS_STANDING;
    
    pMob->wealth                =   0;
    
    pMob->comments              =   str_dup("");

    pMob->new_format            = TRUE;

    return pMob;
}
Esempio n. 6
0
OBJ_INDEX_DATA *new_obj_index( void )
{
    OBJ_INDEX_DATA *pObj;
    int value;

    if ( !obj_index_free )
    {
        CREATE( pObj, OBJ_INDEX_DATA, 1 );
        top_obj_index++;
    }
    else
    {
        pObj            =   obj_index_free;
        obj_index_free  =   obj_index_free->next;
    }

    pObj->next          =   NULL;
    pObj->extra_descr   =   NULL;
    pObj->affected      =   NULL;
    pObj->area          =   NULL;
    pObj->spec_dam      =   NULL;
    pObj->name          =   str_dup( "no name" );

    pObj->name2	        =   str_dup( "null" );
    pObj->name3	        =   str_dup( "null" );
    pObj->name4	        =   str_dup( "null" );
    pObj->name5	        =   str_dup( "null" );
    pObj->name6	        =   str_dup( "null" );

    pObj->short_descr   =   str_dup( "(no short description)" );
    pObj->description   =   str_dup( "(no description)" );
    pObj->description   =   str_dup( "" );

    pObj->item_description   =   NULL;
    pObj->ident_description  =   NULL;
	pObj->hidden_description  =   NULL;
    pObj->comments           =   str_dup("");

    pObj->vnum          =   0;
    pObj->item_type     =   ITEM_TRASH;
    ext_flags_clear( pObj->extra_flags );
    pObj->wear_flags    =   0;
    ext_flags_clear( pObj->wear_flags2 );
    pObj->count         =   0;
    pObj->weight        =   1;
    pObj->cost          =   1;
    pObj->material      =   0;
    pObj->condition     =   75;
    pObj->rent_cost		=   0;
    pObj->bonus_set		=   0;
    pObj->trap			=   0;
    pObj->liczba_mnoga 	= 	FALSE;
    pObj->gender 		=	0;
    //rellik: komponenty, nowa definicja obiektu nie jest komponentem
    pObj->is_spell_item = FALSE;

    for ( value = 0; value < 7; value++ )
        pObj->value[value]  =   0;

    pObj->new_format    = TRUE;

    return pObj;
}