fix tabs vs space, fix net strikepoints

This commit is contained in:
Johxz 2017-02-03 18:23:34 -06:00
parent 3cd82d9229
commit 84f610f2f2

View file

@ -870,25 +870,30 @@ void Lightning::strikeObject(ShapeBase* targetObj)
Point3F strikePoint = targetObj->getPosition(); Point3F strikePoint = targetObj->getPosition();
Point3F objectCenter; Point3F objectCenter;
targetObj->getObjBox().getCenter(&objectCenter); Box3F wb = getWorldBox();
objectCenter.convolve(targetObj->getScale()); if (!wb.isContained(strikePoint))
targetObj->getTransform().mulP(objectCenter); return;
Point3F targetRel = strikePoint - getPosition();
Point3F length(wb.len_x() / 2.0f, wb.len_y() / 2.0f, wb.len_z() / 2.0f);
Point3F strikePos = targetRel / length;
bool playerInWarmup = false; bool playerInWarmup = false;
Player *playerObj = dynamic_cast< Player * >(targetObj); Player *playerObj = dynamic_cast< Player * >(targetObj);
if (playerObj) if (playerObj)
{ {
if (!playerObj->getControllingClient()) if (!playerObj->getControllingClient())
{ {
playerInWarmup = true; playerInWarmup = true;
} }
} }
if (!playerInWarmup) if (!playerInWarmup)
{ {
applyDamage_callback(objectCenter, VectorF(0.0, 0.0, 1.0), targetObj); applyDamage_callback(targetObj->getWorldSphere().center, VectorF(0.0, 0.0, 1.0), targetObj);
} }
SimGroup* pClientGroup = Sim::getClientGroup(); SimGroup* pClientGroup = Sim::getClientGroup();
for (SimGroup::iterator itr = pClientGroup->begin(); itr != pClientGroup->end(); itr++) { for (SimGroup::iterator itr = pClientGroup->begin(); itr != pClientGroup->end(); itr++) {
NetConnection* nc = static_cast<NetConnection*>(*itr); NetConnection* nc = static_cast<NetConnection*>(*itr);
@ -897,16 +902,15 @@ void Lightning::strikeObject(ShapeBase* targetObj)
LightningStrikeEvent* pEvent = new LightningStrikeEvent; LightningStrikeEvent* pEvent = new LightningStrikeEvent;
pEvent->mLightning = this; pEvent->mLightning = this;
pEvent->mStart.x = strikePoint.x; pEvent->mStart.x = strikePoint.x;
pEvent->mStart.y = strikePoint.y; pEvent->mStart.y = strikePoint.y;
pEvent->mTarget = targetObj; pEvent->mTarget = targetObj;
nc->postNetEvent(pEvent); nc->postNetEvent(pEvent);
} }
} }
} }
//-------------------------------------------------------------------------- //--------------------------------------------------------------------------
U32 Lightning::packUpdate(NetConnection* con, U32 mask, BitStream* stream) U32 Lightning::packUpdate(NetConnection* con, U32 mask, BitStream* stream)
{ {