#ifndef __URDE_CPROJECTILEWEAPONDATAFACTORY_HPP__
#define __URDE_CPROJECTILEWEAPONDATAFACTORY_HPP__

#include "RetroTypes.hpp"
#include "CFactoryMgr.hpp"
#include "IObj.hpp"
#include "CToken.hpp"
#include "IOStreams.hpp"

namespace urde
{
class CWeaponDescription;
class CSimplePool;
class CProjectileWeaponDataFactory
{
    static CWeaponDescription* CreateGeneratorDescription(CInputStream& in, CSimplePool* resPool);
    static bool CreateWPSM(CWeaponDescription* desc, CInputStream& in, CSimplePool* resPool);
public:
    static CWeaponDescription* GetGeneratorDesc(CInputStream& in, CSimplePool* resPool);
};

CFactoryFnReturn FProjectileWeaponDataFactory(const SObjectTag& tag, CInputStream& in, const CVParamTransfer& vparms);
}

#endif // __URDE_CPROJECTILEWEAPONDATAFACTORY_HPP__