1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
/* This file is part of the Spring engine (GPL v2 or later), see LICENSE.html */
#include "ExpGenSpawner.h"
#include "ExpGenSpawnableMemberInfo.h"
#include "ExplosionGenerator.h"
CR_BIND_DERIVED(CExpGenSpawner, CProjectile, )
CR_REG_METADATA(CExpGenSpawner,
(
CR_MEMBER_BEGINFLAG(CM_Config),
CR_MEMBER(delay),
CR_MEMBER(damage),
CR_MEMBER(explosionGenerator),
CR_MEMBER_ENDFLAG(CM_Config)
))
CExpGenSpawner::CExpGenSpawner() :
CProjectile(),
delay(1),
damage(0.0f),
explosionGenerator(NULL)
{
checkCol = false;
deleteMe = false;
}
void CExpGenSpawner::Update()
{
if ((deleteMe |= ((delay--) <= 0))) {
explosionGenerator->Explosion(pos, dir, damage, 0.0f, 0.0f, owner(), NULL);
}
}
int CExpGenSpawner::GetProjectilesCount() const
{
return 0;
}
bool CExpGenSpawner::GetMemberInfo(SExpGenSpawnableMemberInfo& memberInfo)
{
if (CProjectile::GetMemberInfo(memberInfo))
return true;
CHECK_MEMBER_INFO_INT (CExpGenSpawner, delay )
CHECK_MEMBER_INFO_FLOAT(CExpGenSpawner, damage)
CHECK_MEMBER_INFO_PTR (CExpGenSpawner, explosionGenerator, explGenHandler->LoadGenerator)
return false;
}
|