1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-06 09:09:40 +02:00

Cleaned up object constructors to reduce duplicated code

This commit is contained in:
Ivan Savenko
2023-06-08 00:42:47 +03:00
parent 4d947be287
commit 77b58bc66d
19 changed files with 111 additions and 183 deletions

View File

@@ -9,19 +9,19 @@
*/
#pragma once
#include "AObjectTypeHandler.h"
#include "CDefaultObjectTypeHandler.h"
VCMI_LIB_NAMESPACE_BEGIN
class ShipyardInstanceConstructor final : public AObjectTypeHandler
class CGShipyard;
class ShipyardInstanceConstructor final : public CDefaultObjectTypeHandler<CGShipyard>
{
JsonNode parameters;
protected:
void initTypeData(const JsonNode & config) override;
CGObjectInstance * create(std::shared_ptr<const ObjectTemplate> tmpl = nullptr) const override;
void configureObject(CGObjectInstance * object, CRandomGenerator & rng) const override;
std::unique_ptr<IObjectInfo> getObjectInfo(std::shared_ptr<const ObjectTemplate> tmpl) const override;
void initializeObject(CGShipyard * object) const override;
public:
template <typename Handler> void serialize(Handler &h, const int version)