mirror of
https://github.com/DrBeef/Raze.git
synced 2025-02-20 18:52:43 +00:00
- several x()'s in nnexts.cpp.
This commit is contained in:
parent
812a4ccd7b
commit
aa3b930a4d
1 changed files with 27 additions and 33 deletions
|
@ -785,9 +785,7 @@ void nnExtInitModernStuff(TArray<DBloodActor*>& actors)
|
|||
BloodStatIterator it2(kStatModernCondition);
|
||||
while (auto iactor = it2.Next())
|
||||
{
|
||||
XSPRITE* pXSprite = &iactor->x();
|
||||
|
||||
if (pXSprite->busyTime <= 0 || pXSprite->isTriggered) continue;
|
||||
if (iactor->xspr.busyTime <= 0 || iactor->xspr.isTriggered) continue;
|
||||
else if (gTrackingCondsCount >= kMaxTrackingConditions)
|
||||
I_Error("\nMax (%d) tracking conditions reached!", kMaxTrackingConditions);
|
||||
|
||||
|
@ -796,7 +794,7 @@ void nnExtInitModernStuff(TArray<DBloodActor*>& actors)
|
|||
|
||||
for (auto iactor2 : actors)
|
||||
{
|
||||
if (!iactor->exists() || !iactor2->hasX() || iactor2->xspr.txID != pXSprite->rxID || iactor2 == iactor)
|
||||
if (!iactor->exists() || !iactor2->hasX() || iactor2->xspr.txID != iactor->xspr.rxID || iactor2 == iactor)
|
||||
continue;
|
||||
|
||||
XSPRITE* pXSpr = &iactor2->x();
|
||||
|
@ -819,7 +817,7 @@ void nnExtInitModernStuff(TArray<DBloodActor*>& actors)
|
|||
|
||||
for (auto& sect: sector)
|
||||
{
|
||||
if (!sect.hasX() || sect.xs().txID != pXSprite->rxID) continue;
|
||||
if (!sect.hasX() || sect.xs().txID != iactor->xspr.rxID) continue;
|
||||
else if (count >= kMaxTracedObjects)
|
||||
condError(iactor, "Max(%d) objects to track reached for condition #%d, RXID: %d!");
|
||||
|
||||
|
@ -829,7 +827,7 @@ void nnExtInitModernStuff(TArray<DBloodActor*>& actors)
|
|||
|
||||
for(auto& wal : wall)
|
||||
{
|
||||
if (!wal.hasX() || wal.xw().txID != pXSprite->rxID)
|
||||
if (!wal.hasX() || wal.xw().txID != iactor->xspr.rxID)
|
||||
continue;
|
||||
|
||||
switch (wal.type) {
|
||||
|
@ -845,8 +843,8 @@ void nnExtInitModernStuff(TArray<DBloodActor*>& actors)
|
|||
pCond->obj[count++].cmd = wal.xw().command;
|
||||
}
|
||||
|
||||
if (pXSprite->data1 > kCondGameMax && count == 0)
|
||||
Printf(PRINT_HIGH, "No objects to track found for condition #%d, RXID: %d!", iactor->GetIndex(), pXSprite->rxID);
|
||||
if (iactor->xspr.data1 > kCondGameMax && count == 0)
|
||||
Printf(PRINT_HIGH, "No objects to track found for condition #%d, RXID: %d!", iactor->GetIndex(), iactor->xspr.rxID);
|
||||
|
||||
pCond->length = count;
|
||||
pCond->actor = iactor;
|
||||
|
@ -2566,7 +2564,6 @@ void usePropertiesChanger(DBloodActor* sourceactor, int objType, sectortype* pSe
|
|||
break;
|
||||
case OBJ_SPRITE:
|
||||
{
|
||||
XSPRITE* pXSprite = &targetactor->x();
|
||||
bool thing2debris = false;
|
||||
int old = -1;
|
||||
|
||||
|
@ -2600,7 +2597,7 @@ void usePropertiesChanger(DBloodActor* sourceactor, int objType, sectortype* pSe
|
|||
break;
|
||||
default:
|
||||
// store physics attributes in xsprite to avoid setting hitag for modern types!
|
||||
int flags = (pXSprite->physAttr != 0) ? pXSprite->physAttr : 0;
|
||||
int flags = (targetactor->xspr.physAttr != 0) ? targetactor->xspr.physAttr : 0;
|
||||
int oldFlags = flags;
|
||||
|
||||
if (thing2debris)
|
||||
|
@ -2614,7 +2611,7 @@ void usePropertiesChanger(DBloodActor* sourceactor, int objType, sectortype* pSe
|
|||
|
||||
targetactor->spr.flags &= ~(kPhysMove | kPhysGravity | kPhysFalling);
|
||||
targetactor->xvel = targetactor->yvel = targetactor->zvel = 0;
|
||||
pXSprite->restState = pXSprite->state;
|
||||
targetactor->xspr.restState = targetactor->xspr.state;
|
||||
|
||||
}
|
||||
else
|
||||
|
@ -2730,7 +2727,7 @@ void usePropertiesChanger(DBloodActor* sourceactor, int objType, sectortype* pSe
|
|||
|
||||
if (nIndex != -1)
|
||||
{
|
||||
pXSprite->physAttr = flags; // just update physics attributes
|
||||
targetactor->xspr.physAttr = flags; // just update physics attributes
|
||||
}
|
||||
else if ((nIndex = debrisGetFreeIndex()) < 0)
|
||||
{
|
||||
|
@ -2738,16 +2735,16 @@ void usePropertiesChanger(DBloodActor* sourceactor, int objType, sectortype* pSe
|
|||
}
|
||||
else
|
||||
{
|
||||
pXSprite->physAttr = flags; // update physics attributes
|
||||
targetactor->xspr.physAttr = flags; // update physics attributes
|
||||
|
||||
// allow things to became debris, so they use different physics...
|
||||
if (targetactor->spr.statnum == kStatThing) ChangeActorStat(targetactor, 0);
|
||||
|
||||
// set random goal ang for swimming so they start turning
|
||||
if ((flags & kPhysDebrisSwim) && !targetactor->xvel && !targetactor->yvel && !targetactor->zvel)
|
||||
pXSprite->goalAng = (targetactor->spr.ang + Random3(kAng45)) & 2047;
|
||||
targetactor->xspr.goalAng = (targetactor->spr.ang + Random3(kAng45)) & 2047;
|
||||
|
||||
if (pXSprite->physAttr & kPhysDebrisVector)
|
||||
if (targetactor->xspr.physAttr & kPhysDebrisVector)
|
||||
targetactor->spr.cstat |= CSTAT_SPRITE_BLOCK_HITSCAN;
|
||||
|
||||
gPhysSpritesList[nIndex] = targetactor;
|
||||
|
@ -2761,7 +2758,7 @@ void usePropertiesChanger(DBloodActor* sourceactor, int objType, sectortype* pSe
|
|||
else if (nIndex != -1)
|
||||
{
|
||||
|
||||
pXSprite->physAttr = flags;
|
||||
targetactor->xspr.physAttr = flags;
|
||||
targetactor->xvel = targetactor->yvel = targetactor->zvel = 0;
|
||||
if (targetactor->spr.lotag >= kThingBase && targetactor->spr.lotag < kThingMax)
|
||||
ChangeActorStat(targetactor, kStatThing); // if it was a thing - restore statnum
|
||||
|
@ -6967,12 +6964,11 @@ void playerQavSceneProcess(PLAYER* pPlayer, QAVSCENE* pQavScene)
|
|||
auto initiator = pQavScene->initiator;
|
||||
if (initiator->hasX())
|
||||
{
|
||||
XSPRITE* pXSprite = &initiator->x();
|
||||
if (pXSprite->waitTime > 0 && --pXSprite->sysData1 <= 0)
|
||||
if (initiator->xspr.waitTime > 0 && --initiator->xspr.sysData1 <= 0)
|
||||
{
|
||||
if (pXSprite->txID >= kChannelUser)
|
||||
if (initiator->xspr.txID >= kChannelUser)
|
||||
{
|
||||
for (int i = bucketHead[pXSprite->txID]; i < bucketHead[pXSprite->txID + 1]; i++)
|
||||
for (int i = bucketHead[initiator->xspr.txID]; i < bucketHead[initiator->xspr.txID + 1]; i++)
|
||||
{
|
||||
if (rxBucket[i].isActor())
|
||||
{
|
||||
|
@ -6982,13 +6978,13 @@ void playerQavSceneProcess(PLAYER* pPlayer, QAVSCENE* pQavScene)
|
|||
auto pXSpr = &rxactor->x();
|
||||
if (rxactor->spr.type == kModernPlayerControl && pXSpr->command == 67)
|
||||
{
|
||||
if (pXSpr->data2 == pXSprite->data2 || pXSpr->locked) continue;
|
||||
if (pXSpr->data2 == initiator->xspr.data2 || pXSpr->locked) continue;
|
||||
else trPlayerCtrlStartScene(rxactor, pPlayer, true);
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
nnExtTriggerObject(rxBucket[i], pXSprite->command);
|
||||
nnExtTriggerObject(rxBucket[i], initiator->xspr.command);
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -7293,11 +7289,10 @@ bool setDataValueOfObject(int objType, sectortype* sect, walltype* wal, DBloodAc
|
|||
{
|
||||
case OBJ_SPRITE:
|
||||
{
|
||||
XSPRITE* pXSprite = &objActor->x();
|
||||
int type = objActor->spr.type;
|
||||
|
||||
// exceptions
|
||||
if (objActor->IsDudeActor() && pXSprite->health <= 0) return true;
|
||||
if (objActor->IsDudeActor() && objActor->xspr.health <= 0) return true;
|
||||
switch (type)
|
||||
{
|
||||
case kThingBloodBits:
|
||||
|
@ -7310,11 +7305,11 @@ bool setDataValueOfObject(int objType, sectortype* sect, walltype* wal, DBloodAc
|
|||
switch (dataIndex)
|
||||
{
|
||||
case 1:
|
||||
pXSprite->data1 = value;
|
||||
objActor->xspr.data1 = value;
|
||||
switch (type)
|
||||
{
|
||||
case kSwitchCombo:
|
||||
if (value == pXSprite->data2) SetSpriteState(objActor, 1);
|
||||
if (value == objActor->xspr.data2) SetSpriteState(objActor, 1);
|
||||
else SetSpriteState(objActor, 0);
|
||||
break;
|
||||
case kDudeModernCustom:
|
||||
|
@ -7326,7 +7321,7 @@ bool setDataValueOfObject(int objType, sectortype* sect, walltype* wal, DBloodAc
|
|||
}
|
||||
return true;
|
||||
case 2:
|
||||
pXSprite->data2 = value;
|
||||
objActor->xspr.data2 = value;
|
||||
switch (type)
|
||||
{
|
||||
case kDudeModernCustom:
|
||||
|
@ -7341,17 +7336,17 @@ bool setDataValueOfObject(int objType, sectortype* sect, walltype* wal, DBloodAc
|
|||
}
|
||||
return true;
|
||||
case 3:
|
||||
pXSprite->data3 = value;
|
||||
objActor->xspr.data3 = value;
|
||||
switch (type)
|
||||
{
|
||||
case kDudeModernCustom:
|
||||
case kDudeModernCustomBurning:
|
||||
pXSprite->sysData1 = value;
|
||||
objActor->xspr.sysData1 = value;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
case 4:
|
||||
pXSprite->data4 = value;
|
||||
objActor->xspr.data4 = value;
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
|
@ -8863,11 +8858,10 @@ void seqSpawnerOffSameTx(DBloodActor* actor)
|
|||
while (auto iactor = it.Next())
|
||||
{
|
||||
if (iactor->spr.type != kModernSeqSpawner || !iactor->hasX() || iactor == actor) continue;
|
||||
XSPRITE* pXSprite = &iactor->x();
|
||||
if (pXSprite->txID == actor->xspr.txID && pXSprite->state == 1)
|
||||
if (iactor->xspr.txID == actor->xspr.txID && iactor->xspr.state == 1)
|
||||
{
|
||||
evKillActor(iactor);
|
||||
pXSprite->state = 0;
|
||||
iactor->xspr.state = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue