// ################################
// ## Vzory predmetu, ze kterych ##
// ## se tahaji konstantni cisla ##
// ################################

#include "items_patterns.h"

// ################################
// ################################

#ifdef _DEBUG
#ifndef DEBUG_NEW
#define DEBUG_NEW new(_NORMAL_BLOCK, __FILE__, __LINE__)
#define new DEBUG_NEW
#endif
#endif

bool itemsPatternClass::isItemStackable()
{
	switch (this->getID())
	{
		case PATTERN_ID_ENERGETIC_ACCUMULATOR          : return 0; break;
		case PATTERN_ID_NAVIGATION_COMPUTER            : return 0; break;
		case PATTERN_ID_QUARK_GLUON_CORE               : return 0; break;
		case PATTERN_ID_SUBSPACE_BEACON                : return 0; break;
		case PATTERN_ID_INERTIAL_DAMPERS               : return 0; break;
		case PATTERN_ID_IMPULS_JET_ENGINE              : return 0; break;
		case PATTERN_ID_MECHANICAL_DAMPERS             : return 0; break;
		case PATTERN_ID_DEFLECTOR_SHIELDS              : return 0; break;
		case PATTERN_ID_WEAPON_ENERGY_CIRCUIT          : return 0; break;
		case PATTERN_ID_DRONE_MISSILES                 : return 1; break;
		case PATTERN_ID_DRONE_MISSILE_LAUNCHER         : return 0; break;
		case PATTERN_ID_LASER_GUN                      : return 0; break;
		case PATTERN_ID_TRANSPORT_BEAM_GENERATOR       : return 0; break;
		case PATTERN_ID_MAGNETICAL_COLLECTORS_OF_PLASMA: return 1; break;
		case PATTERN_ID_SUBMERSIBLE_FILTRATION_TANK    : return 1; break;
		case PATTERN_ID_SUBMARINE_MINING_MACHINE       : return 1; break;
		case PATTERN_ID_UNDERGROUND_DRILLIG_MACHINE    : return 1; break;
		case PATTERN_ID_PROBE                          : return 0; break;
		case PATTERN_ID_HIGH_RESOLUTION_SENSORS        : return 0; break;
		case PATTERN_ID_LONG_RANGE_SENSORS             : return 0; break;
		case PATTERN_ID_CLOAKING_DEVICE                : return 0; break;
		case PATTERN_ID_ANDROIDS                       : return 1; break;
		case PATTERN_ID_MAGNETICAL_GRID                : return 1; break;
		case PATTERN_ID_TRANSPORT_CONTAINER            : return 1; break;
		case PATTERN_ID_ENERGETIC_CELL                 : return 1; break;
		case PATTERN_ID_PLASMA_FILTER                  : return 0; break;
		case PATTERN_ID_SCIENTIFIC_LAB                 : return 0; break;
		case PATTERN_ID_LIFE_SUPPORT                   : return 0; break;
		case PATTERN_ID_SUBSPACE_TRANSMITTER           : return 0; break;
		case PATTERN_ID_MAINFRAME                      : return 0; break;
		case PATTERN_ID_HANGAR                         : return 0; break;
		case PATTERN_ID_MAGNETICAL_FILTER              : return 1; break;
		case PATTERN_ID_DEUTERIUM_DECOMPOSER           : return 1; break;
		case PATTERN_ID_ZIRCONIUM_REACTOR              : return 1; break;
		case PATTERN_ID_ILMENITE_FURNACE               : return 1; break;
		default                                        : errLogicalError("This should never happen. Invalid pattern (ID %u).", (unsigned long long)this->getID());
		                                                 return 0; break;
	}
}

// --------------------------------

bool itemsPatternClass::isItemSeparate()
{
	return (!(this->isItemStackable()));
}

// --------------------------------

itemsPatternClass :: itemsPatternClass() 
{
    minWeight_              = 0;
    maxWeight_              = 0;
    density_                = 0;
    transport_              = 0;
    constructionUlrei_      = 0;
    constructionTitanium_   = 0;
    constructionDeuterium_  = 0;
    constructionHeavyWater_ = 0;
    repairability_          = 0;
    mounting_               = 0;
}

// --------------------------------

itemsPatternClass   nullPtrn;
itemsPatternClass * nullPattern = &nullPtrn;

// ################################
// ################################