zim/area/
zim/bin/
zim/clans/plists/
zim/corefiles/
zim/doc/muddy/
zim/gods/
zim/log/
zim/player/
zim/skill_tree/
zim/tmp/
/*-
 * Copyright (c) 2005 Zsuzsu <little_zsuzsu@hotmail.com>
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 * $Id: waffects.h 917 2006-10-13 22:06:33Z zsuzsu $
 */

#include <stdarg.h>
#include <stdio.h>
#include "typedef.h"
#include "const.h"
#include "merc.h"
#include "fixes.h"

void advance(CHAR_DATA *victim, int level);
/*
 * This is for bug fixes.
 */

flag_t fixed_flags[] =
{
        { "",                   TABLE_BITVAL                    },

        { "v2HP/DR",            FIXED_V2_HP_DR,         FALSE   },

        { NULL }
};



void fix_1_v2_hp_dr (CHAR_DATA *ch)
{
	int level = ch->level;
	OBJ_DATA *obj = NULL;
	OBJ_DATA *obj_next = NULL;
	OBJ_DATA *clanmark =  NULL;
	char title[MAX_INPUT_LENGTH] = "";

	if (IS_SET(ch->fixed_flags, FIXED_V2_HP_DR))
		return;

	if (level < 2 || level >= IM) {
		TOGGLE_BIT(ch->fixed_flags, FIXED_V2_HP_DR);
		return;
	}

	if (ch->level == LEVEL_HERO)
		strnzcpy(title, sizeof(title), ch->pcdata->title);

	clanmark = get_eq_char(ch, WEAR_CLANMARK);
	if (clanmark != NULL)
		obj_from_char(clanmark);


	for (obj = ch->carrying; obj != NULL; obj = obj_next) {
		obj_next = obj->next_content;
		if (obj->wear_loc != WEAR_NONE)
			unequip_char(ch, obj);
	}
	while (ch->affected)
		affect_remove(ch, ch->affected);
	ch->affected_by     = 0;

	advance(ch, 1);
	advance(ch, level);

	if (clanmark != NULL) {
		obj_to_char(clanmark, ch);
		equip_char(ch, clanmark, WEAR_CLANMARK);
	}
	if (ch->level == LEVEL_HERO) {
		ch->pcdata->title = str_dup(title);
	}

	ch->hit        = ch->max_hit;
	ch->mana       = ch->max_mana;
	ch->move       = ch->max_move;

	TOGGLE_BIT(ch->fixed_flags, FIXED_V2_HP_DR);
	char_puts("\n{WYou feel naked and reborn!{x\n", ch);
	wiznet("fixed: $N v2 hp/dr", ch, NULL, WIZ_ANNOUNCE, 0, 0);
}