#include "stdafx.h" #include "HealItemsTable.h" #include "utils.h" #include "Logger.h" HealItem::HealItem() { itemName[0] = 0; itemID = reuseDelayMsec = 0; priority = 0; lastUseTime = 0; percentUse = 0; } HealItem::HealItem( const HealItem &other ) { strcpy( itemName, other.itemName ); itemID = other.itemID; reuseDelayMsec = other.reuseDelayMsec; priority = other.priority; lastUseTime = other.lastUseTime; percentUse = other.percentUse; } /*HealItem& HealItem::operator=( const HealItem& other ) { strcpy( itemName, other.itemName ); itemID = other.itemID; reuseDelaySecs = other.reuseDelaySecs; priority = other.priority; lastUseTime = other.lastUseTime; return (*this); }*/ void HealItem::GetItemNameW( wchar_t *out ) { if( !out ) return; out[0] = 0; if( itemName[0] == 0 ) return; MultiByteToWideChar( CP_ACP, 0, itemName, -1, out, 127 ); } HealItemsTable::HealItemsTable() { clear(); } HealItemsTable::~HealItemsTable() { clear(); } void HealItemsTable::clear() { int i; for( i=0; ienableHealCP ); for( i=0; icp_healers[i].itemID == 0 ) continue; fprintf( f, "%s=%u;%u;%d;%d\n", this->cp_healers[i].itemName, this->cp_healers[i].itemID, this->cp_healers[i].reuseDelayMsec, this->cp_healers[i].priority, this->cp_healers[i].percentUse ); } fprintf( f, "\n" ); // HP healers fprintf( f, "[HP healers]\n" "HPHealEnable=%d\n", this->enableHealHP ); for( i=0; ihp_healers[i].itemID == 0 ) continue; fprintf( f, "%s=%u;%u;%d;%d\n", this->hp_healers[i].itemName, this->hp_healers[i].itemID, this->hp_healers[i].reuseDelayMsec, this->hp_healers[i].priority, this->hp_healers[i].percentUse ); } fprintf( f, "\n" ); // MP healers fprintf( f, "[MP healers]\n" "MPHealEnable=%d\n", this->enableHealMP ); for( i=0; imp_healers[i].itemID == 0 ) continue; fprintf( f, "%s=%u;%u;%d;%d\n", this->mp_healers[i].itemName, this->mp_healers[i].itemID, this->mp_healers[i].reuseDelayMsec, this->mp_healers[i].priority, this->mp_healers[i].percentUse ); } fprintf( f, "\n" ); fclose( f ); return true; } bool HealItemsTable::addHealItem( HEALITEM_TYPE type, const HealItem *example ) { if( !example ) return false; int free_idx = -1; int i; unsigned int itemID; for( i=0; i=MAXNUMHEALITEMS) ) return false; switch( type ) { case HIT_HP: hp_healers[idx] = (*example); break; case HIT_MP: mp_healers[idx] = (*example); break; case HIT_CP: cp_healers[idx] = (*example); break; default: return false; break; } return true; }