
// ################################
// ## Sablona pro listy nulovych ##
// ##      hernich objektu       ##
// ################################

#include "cache_list.h"
#include "error_handling.h"
#include "items.h"

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

nullEnergeticAccumulatorClass               nullEnergeticAccumulatorObject;
nullNavigationComputerClass                 nullNavigationComputerObject;
nullQuarkGluonCoreClass                     nullQuarkGluonCoreObject;
nullSubspaceBeaconClass                     nullSubspaceBeaconObject;
nullInertialDampersClass                    nullInertialDampersObject;
nullImpulsJetEngineClass                    nullImpulsJetEngineObject;
nullMechanicalDampersClass                  nullMechanicalDampersObject;
nullDeflectorShieldsGeneratorClass          nullDeflectorShieldsGeneratorObject;
nullWeaponEnergyCircuitClass                nullWeaponEnergyCircuitObject;
nullDroneMissilesClass                      nullDroneMissilesObject;
nullDroneMissileLauncherClass               nullDroneMissileLauncherObject;
nullLaserGunClass                           nullLaserGunObject;
nullTransportBeamGeneratorClass             nullTransportBeamGeneratorObject;
nullMagneticalCollectorsOfPlasmaClass       nullMagneticalCollectorsOfPlasmaObject;
nullSubmersibleFiltrationTankClass          nullSubmersibleFiltrationTankObject;
nullSubmarineMiningMachineClass             nullSubmarineMiningMachineObject;
nullUndergroundDrillingMachineClass         nullUndergroundDrillingMachineObject;
nullProbeClass                              nullProbeObject;
nullHighResolutionSensorsClass              nullHighResolutionSensorsObject;
nullLongRangeSensorsClass                   nullLongRangeSensorsObject;
nullCloakingDeviceClass                     nullCloakingDeviceObject;
nullAndroidsClass                           nullAndroidsObject;
nullMagneticalGridClass                     nullMagneticalGridObject;
nullTransportContainerClass                 nullTransportContainerObject;
nullEnergeticCellClass                      nullEnergeticCellObject;
nullPlasmaFilterClass                       nullPlasmaFilterObject;
nullScientificLabClass                      nullScientificLabObject;
nullLifeSupportClass                        nullLifeSupportObject;
nullSubspaceTransmitterClass                nullSubspaceTransmitterObject;
nullMainframeClass                          nullMainframeObject;
nullHangarClass                             nullHangarObject;
nullMagneticalFilterClass                   nullMagneticalFilterObject;
nullDeuteriumDecomposerClass                nullDeuteriumDecomposerObject;
nullZirconiumReactorClass                   nullZirconiumReactorObject;
nullIlmeniteFurnaceClass                    nullIlmeniteFurnaceObject; 

dataListObjectClass * cacheNullItemsListClass::operator [] (unsigned long position)
{
    switch (position)
    {
        case PATTERN_ID_ENERGETIC_ACCUMULATOR:              return &nullEnergeticAccumulatorObject;        
        case PATTERN_ID_NAVIGATION_COMPUTER:                return &nullNavigationComputerObject;
        case PATTERN_ID_QUARK_GLUON_CORE:                   return &nullQuarkGluonCoreObject;
        case PATTERN_ID_SUBSPACE_BEACON:                    return &nullSubspaceBeaconObject;
        case PATTERN_ID_INERTIAL_DAMPERS:                   return &nullInertialDampersObject;
        case PATTERN_ID_IMPULS_JET_ENGINE:                  return &nullImpulsJetEngineObject;
        case PATTERN_ID_MECHANICAL_DAMPERS:                 return &nullMechanicalDampersObject;
        case PATTERN_ID_DEFLECTOR_SHIELDS:                  return &nullDeflectorShieldsGeneratorObject;
        case PATTERN_ID_WEAPON_ENERGY_CIRCUIT:              return &nullWeaponEnergyCircuitObject;
        case PATTERN_ID_DRONE_MISSILES:                     return &nullDroneMissilesObject;
        case PATTERN_ID_DRONE_MISSILE_LAUNCHER:             return &nullDroneMissileLauncherObject;
        case PATTERN_ID_LASER_GUN:                          return &nullLaserGunObject;
        case PATTERN_ID_TRANSPORT_BEAM_GENERATOR:           return &nullTransportBeamGeneratorObject;
        case PATTERN_ID_MAGNETICAL_COLLECTORS_OF_PLASMA:    return &nullMagneticalCollectorsOfPlasmaObject;
        case PATTERN_ID_SUBMERSIBLE_FILTRATION_TANK:        return &nullSubmersibleFiltrationTankObject;
        case PATTERN_ID_SUBMARINE_MINING_MACHINE:           return &nullSubmarineMiningMachineObject;
        case PATTERN_ID_UNDERGROUND_DRILLIG_MACHINE:        return &nullUndergroundDrillingMachineObject;
        case PATTERN_ID_PROBE:                              return &nullProbeObject;
        case PATTERN_ID_HIGH_RESOLUTION_SENSORS:            return &nullHighResolutionSensorsObject;
        case PATTERN_ID_LONG_RANGE_SENSORS:                 return &nullLongRangeSensorsObject;
        case PATTERN_ID_CLOAKING_DEVICE:                    return &nullCloakingDeviceObject;
        case PATTERN_ID_ANDROIDS:                           return &nullAndroidsObject;
        case PATTERN_ID_MAGNETICAL_GRID:                    return &nullMagneticalGridObject;
        case PATTERN_ID_TRANSPORT_CONTAINER:                return &nullTransportContainerObject;
        case PATTERN_ID_ENERGETIC_CELL:                     return &nullEnergeticCellObject;
        case PATTERN_ID_PLASMA_FILTER:                      return &nullPlasmaFilterObject;
        case PATTERN_ID_SCIENTIFIC_LAB:                     return &nullScientificLabObject;
        case PATTERN_ID_LIFE_SUPPORT:                       return &nullLifeSupportObject;
        case PATTERN_ID_SUBSPACE_TRANSMITTER:               return &nullSubspaceTransmitterObject;
        case PATTERN_ID_MAINFRAME:                          return &nullMainframeObject;
        case PATTERN_ID_HANGAR:                             return &nullHangarObject;
        case PATTERN_ID_MAGNETICAL_FILTER:                  return &nullMagneticalFilterObject;
        case PATTERN_ID_DEUTERIUM_DECOMPOSER:               return &nullDeuteriumDecomposerObject;
        case PATTERN_ID_ZIRCONIUM_REACTOR:                  return &nullZirconiumReactorObject;
        case PATTERN_ID_ILMENITE_FURNACE:                   return &nullIlmeniteFurnaceObject;
        default:
            errLogicalError("Bad null item index [%u]", (unsigned long long)position);
            return NULL;
    };
}