Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,14 @@ class AssistedTargetingUpdateModuleData : public UpdateModuleData
public:
Int m_clipSize;
WeaponSlotType m_weaponSlot;
ThingTemplate *m_laserFromAssisted;
ThingTemplate *m_laserToTarget;

AsciiString m_laserFromAssistedName;
AsciiString m_laserToTargetName;

AssistedTargetingUpdateModuleData()
{
m_clipSize = 1;
m_weaponSlot = PRIMARY_WEAPON;
m_laserFromAssisted = nullptr;
m_laserToTarget = nullptr;
}

static void buildFieldParse(MultiIniFieldParse& p);
Expand All @@ -72,4 +71,7 @@ class AssistedTargetingUpdate : public UpdateModule

private:
void makeFeedbackLaser( const ThingTemplate *laserTemplate, const Object *from, const Object *to );

const ThingTemplate *m_laserFromAssisted;
const ThingTemplate *m_laserToTarget;
};
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@ void AssistedTargetingUpdateModuleData::buildFieldParse(MultiIniFieldParse& p)
{
{ "AssistingClipSize", INI::parseInt, nullptr, offsetof( AssistedTargetingUpdateModuleData, m_clipSize ) },
{ "AssistingWeaponSlot", INI::parseLookupList, TheWeaponSlotTypeNamesLookupList, offsetof( AssistedTargetingUpdateModuleData, m_weaponSlot ) },
{ "LaserFromAssisted", INI::parseThingTemplate, nullptr, offsetof( AssistedTargetingUpdateModuleData, m_laserFromAssisted ) },
{ "LaserToTarget", INI::parseThingTemplate, nullptr, offsetof( AssistedTargetingUpdateModuleData, m_laserToTarget ) },
{ "LaserFromAssisted", INI::parseAsciiString, nullptr, offsetof( AssistedTargetingUpdateModuleData, m_laserFromAssistedName ) },
{ "LaserToTarget", INI::parseAsciiString, nullptr, offsetof( AssistedTargetingUpdateModuleData, m_laserToTargetName ) },
{ nullptr, nullptr, nullptr, 0 }
};
p.add(dataFieldParse);
Expand All @@ -65,6 +65,8 @@ void AssistedTargetingUpdateModuleData::buildFieldParse(MultiIniFieldParse& p)
//-------------------------------------------------------------------------------------------------
AssistedTargetingUpdate::AssistedTargetingUpdate( Thing *thing, const ModuleData* moduleData ) : UpdateModule( thing, moduleData )
{
m_laserFromAssisted = nullptr;
m_laserToTarget = nullptr;
setWakeFrame(getObject(), UPDATE_SLEEP_FOREVER);
}

Expand Down Expand Up @@ -100,10 +102,10 @@ void AssistedTargetingUpdate::assistAttack( const Object *requestingObject, Obje
me->setWeaponLock( md->m_weaponSlot, LOCKED_TEMPORARILY );
me->getAI()->aiAttackObject( victimObject, md->m_clipSize, CMD_FROM_AI );

if( md->m_laserFromAssisted )
makeFeedbackLaser( md->m_laserFromAssisted, requestingObject, me );
if( md->m_laserToTarget )
makeFeedbackLaser( md->m_laserToTarget, me, victimObject );
if( m_laserFromAssisted )
makeFeedbackLaser( m_laserFromAssisted, requestingObject, me );
if( m_laserToTarget )
makeFeedbackLaser( m_laserToTarget, me, victimObject );
}

//-------------------------------------------------------------------------------------------------
Expand Down Expand Up @@ -137,6 +139,11 @@ void AssistedTargetingUpdate::makeFeedbackLaser( const ThingTemplate *laserTempl
//-------------------------------------------------------------------------------------------------
UpdateSleepTime AssistedTargetingUpdate::update()
{
const AssistedTargetingUpdateModuleData *d = getAssistedTargetingUpdateModuleData();

m_laserFromAssisted = TheThingFactory->findTemplate( d->m_laserFromAssistedName );
m_laserToTarget = TheThingFactory->findTemplate( d->m_laserToTargetName );

return UPDATE_SLEEP_FOREVER;
}

Expand Down Expand Up @@ -174,8 +181,11 @@ void AssistedTargetingUpdate::xfer( Xfer *xfer )
// ------------------------------------------------------------------------------------------------
void AssistedTargetingUpdate::loadPostProcess()
{
const AssistedTargetingUpdateModuleData *d = getAssistedTargetingUpdateModuleData();

m_laserFromAssisted = TheThingFactory->findTemplate( d->m_laserFromAssistedName );
m_laserToTarget = TheThingFactory->findTemplate( d->m_laserToTargetName );

// extend base class
UpdateModule::loadPostProcess();

}
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,6 @@ class AssistedTargetingUpdateModuleData : public UpdateModuleData
{
m_clipSize = 1;
m_weaponSlot = PRIMARY_WEAPON;
m_laserFromAssistedName.clear();
m_laserToTargetName.clear();
}

static void buildFieldParse(MultiIniFieldParse& p);
Expand Down Expand Up @@ -76,6 +74,4 @@ class AssistedTargetingUpdate : public UpdateModule

const ThingTemplate *m_laserFromAssisted;
const ThingTemplate *m_laserToTarget;


};
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,6 @@ void AssistedTargetingUpdate::assistAttack( const Object *requestingObject, Obje
me->setWeaponLock( md->m_weaponSlot, LOCKED_TEMPORARILY );
me->getAI()->aiAttackObject( victimObject, md->m_clipSize, CMD_FROM_AI );


if( m_laserFromAssisted )
makeFeedbackLaser( m_laserFromAssisted, requestingObject, me );
if( m_laserToTarget )
Expand Down Expand Up @@ -139,14 +138,10 @@ void AssistedTargetingUpdate::makeFeedbackLaser( const ThingTemplate *laserTempl
//-------------------------------------------------------------------------------------------------
UpdateSleepTime AssistedTargetingUpdate::update()
{

const AssistedTargetingUpdateModuleData *d = getAssistedTargetingUpdateModuleData();

m_laserFromAssisted = TheThingFactory->findTemplate( d->m_laserFromAssistedName );


m_laserToTarget =TheThingFactory->findTemplate( d->m_laserFromAssistedName );

m_laserToTarget = TheThingFactory->findTemplate( d->m_laserToTargetName );

return UPDATE_SLEEP_FOREVER;
}
Expand Down Expand Up @@ -188,7 +183,7 @@ void AssistedTargetingUpdate::loadPostProcess()
const AssistedTargetingUpdateModuleData *d = getAssistedTargetingUpdateModuleData();

m_laserFromAssisted = TheThingFactory->findTemplate( d->m_laserFromAssistedName );
m_laserToTarget =TheThingFactory->findTemplate( d->m_laserFromAssistedName );
m_laserToTarget = TheThingFactory->findTemplate( d->m_laserToTargetName );

// extend base class
UpdateModule::loadPostProcess();
Expand Down
Loading