mirror of
https://github.com/DrBeef/Raze.git
synced 2025-02-20 18:52:43 +00:00
- moved basePath into XSECTOR.
# Conflicts: # source/games/blood/src/nnexts.cpp
This commit is contained in:
parent
0d2da892e8
commit
db75e4d2bf
6 changed files with 38 additions and 27 deletions
|
@ -108,14 +108,16 @@ public:
|
|||
|
||||
void Clear()
|
||||
{
|
||||
explosionhackflag = false;
|
||||
prevmarker = nullptr;
|
||||
dudeSlope = 0;
|
||||
hit = {};
|
||||
dudeExtra = {};
|
||||
spriteMass = {};
|
||||
hit = {};
|
||||
genDudeExtra = {};
|
||||
prevmarker = nullptr;
|
||||
basePoint = {};
|
||||
xvel = yvel = zvel = 0;
|
||||
explosionhackflag = false;
|
||||
interpolated = false;
|
||||
}
|
||||
bool hasX() { return sprite[index].extra > 0; }
|
||||
void addX()
|
||||
|
|
|
@ -522,6 +522,7 @@ void dbLoadMap(const char *pPath, int *pX, int *pY, int *pZ, short *pAngle, shor
|
|||
memset(sector, 0, sizeof(sector));
|
||||
memset(wall, 0, sizeof(wall));
|
||||
memset(sprite, 0, sizeof(sprite));
|
||||
memset(xsprite, 0, sizeof(xsprite));
|
||||
|
||||
#ifdef NOONE_EXTENSIONS
|
||||
for (auto& ctrl : gPlayerCtrl) ctrl.qavScene.initiator = nullptr;
|
||||
|
|
|
@ -202,6 +202,7 @@ struct XSECTOR {
|
|||
uint16_t waitTimeB; // ON->OFF waitTime
|
||||
DBloodActor* marker0;
|
||||
DBloodActor* marker1;
|
||||
DBloodActor* basePath;
|
||||
uint16_t windAng; // Wind ang
|
||||
uint16_t bobTheta; // Motion Theta
|
||||
int16_t bobSpeed; // Motion speed
|
||||
|
|
|
@ -571,6 +571,7 @@ FSerializer& Serialize(FSerializer& arc, const char* keyname, XSECTOR& w, XSECTO
|
|||
("panangle", w.panAngle, def->panAngle)
|
||||
("marker0", w.marker0, def->marker0)
|
||||
("marker1", w.marker1, def->marker1)
|
||||
("basepath", w.basePath, def->basePath)
|
||||
("windang", w.windAng, def->windAng)
|
||||
("bobtheta", w.bobTheta, def->bobTheta)
|
||||
("bobspeed", w.bobSpeed, def->bobSpeed)
|
||||
|
|
|
@ -383,6 +383,7 @@ bool nnExtEraseModernStuff(DBloodActor* actor)
|
|||
bool erased = false;
|
||||
switch (pSprite->type) {
|
||||
// erase all modern types if the map is not extended
|
||||
case kModernSpriteDamager:
|
||||
case kModernCustomDudeSpawn:
|
||||
case kModernRandomTX:
|
||||
case kModernSequentialTX:
|
||||
|
@ -393,7 +394,6 @@ bool nnExtEraseModernStuff(DBloodActor* actor)
|
|||
case kModernDudeTargetChanger:
|
||||
case kModernSectorFXChanger:
|
||||
case kModernObjDataChanger:
|
||||
case kModernSpriteDamager:
|
||||
case kModernObjDataAccumulator:
|
||||
case kModernEffectSpawner:
|
||||
case kModernWindGenerator:
|
||||
|
@ -493,23 +493,19 @@ void nnExtResetGlobals()
|
|||
memset(gImpactSpritesList, 0, sizeof(gImpactSpritesList));
|
||||
|
||||
// reset tracking conditions, if any
|
||||
if (gTrackingCondsCount > 0)
|
||||
for (int i = 0; i < countof(gCondition); i++)
|
||||
{
|
||||
for (int i = 0; i < gTrackingCondsCount; i++)
|
||||
{
|
||||
TRCONDITION* pCond = &gCondition[i];
|
||||
TRCONDITION* pCond = &gCondition[i];
|
||||
for (unsigned k = 0; k < kMaxTracedObjects; k++)
|
||||
{
|
||||
pCond->obj[k].actor = nullptr;
|
||||
pCond->obj[k].index_ = pCond->obj[k].cmd = 0;
|
||||
pCond->obj[k].type = -1;
|
||||
}
|
||||
|
||||
pCond->length = 0;
|
||||
{
|
||||
pCond->obj[k].actor = nullptr;
|
||||
pCond->obj[k].index_ = pCond->obj[k].cmd = 0;
|
||||
pCond->obj[k].type = -1;
|
||||
}
|
||||
|
||||
gTrackingCondsCount = 0;
|
||||
pCond->actor = nullptr;
|
||||
pCond->length = 0;
|
||||
}
|
||||
gTrackingCondsCount = 0;
|
||||
|
||||
// clear sprite mass cache
|
||||
for (int i = 0; i < kMaxSprites; i++)
|
||||
|
|
|
@ -33,9 +33,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|||
|
||||
BEGIN_BLD_NS
|
||||
|
||||
int basePath[kMaxSectors];
|
||||
|
||||
|
||||
unsigned int GetWaveValue(unsigned int nPhase, int nType)
|
||||
{
|
||||
switch (nType)
|
||||
|
@ -1352,13 +1349,13 @@ int PathBusy(unsigned int nSector, unsigned int a2)
|
|||
int nXSector = pSector->extra;
|
||||
assert(nXSector > 0 && nXSector < kMaxXSectors);
|
||||
XSECTOR *pXSector = &xsector[nXSector];
|
||||
spritetype *pSprite = &sprite[basePath[nSector]];
|
||||
|
||||
if (!pXSector->marker0 || !pXSector->marker1) return 0;
|
||||
if (!pXSector->basePath || !pXSector->marker0 || !pXSector->marker1) return 0;
|
||||
spritetype* pSprite = &pXSector->basePath->s();
|
||||
spritetype* pSprite1 = &pXSector->marker0->s();
|
||||
spritetype* pSprite2 = &pXSector->marker1->s();
|
||||
XSPRITE *pXSprite1 = &xsprite[pSprite1->extra];
|
||||
XSPRITE *pXSprite2 = &xsprite[pSprite2->extra];
|
||||
XSPRITE *pXSprite1 = &pXSector->marker0->x();
|
||||
XSPRITE *pXSprite2 = &pXSector->marker1->x();
|
||||
|
||||
int nWave = pXSprite1->wave;
|
||||
TranslateSector(nSector, GetWaveValue(pXSector->busy, nWave), GetWaveValue(a2, nWave), pSprite->x, pSprite->y, pSprite1->x, pSprite1->y, pSprite1->ang, pSprite2->x, pSprite2->y, pSprite2->ang, 1);
|
||||
|
@ -1656,8 +1653,7 @@ void InitPath(unsigned int nSector, XSECTOR *pXSector)
|
|||
|
||||
}
|
||||
|
||||
pXSector->marker0 = &bloodActors[nSprite];
|
||||
basePath[nSector] = nSprite;
|
||||
pXSector->basePath = pXSector->marker0 = &bloodActors[nSprite];
|
||||
if (pXSector->state)
|
||||
evPostSector(nSector, 0, kCmdOn);
|
||||
}
|
||||
|
@ -2122,6 +2118,7 @@ void trInit(void)
|
|||
#ifdef NOONE_EXTENSIONS
|
||||
case kModernRandom:
|
||||
case kModernRandom2:
|
||||
|
||||
if (!gModernMap || pXSprite->state == pXSprite->restState) break;
|
||||
evPostActor(&bloodActors[i], (120 * pXSprite->busyTime) / 10, kCmdRepeat);
|
||||
if (pXSprite->waitTime > 0)
|
||||
|
@ -2305,9 +2302,22 @@ void SerializeTriggers(FSerializer& arc)
|
|||
{
|
||||
if (arc.BeginObject("triggers"))
|
||||
{
|
||||
#ifdef OLD_SAVEGAME
|
||||
if (arc.BeginArray("basepath"))
|
||||
{
|
||||
int nul = 0;
|
||||
for (int i = 0; i < numsectors; i++)
|
||||
{
|
||||
if (sector[i].extra > 0)
|
||||
arc(nullptr, xsector[sector[i].extra].basePath);
|
||||
else
|
||||
arc(nullptr, nul);
|
||||
}
|
||||
arc.EndArray();
|
||||
}
|
||||
#endif
|
||||
arc("busycount", gBusyCount)
|
||||
.Array("busy", gBusy, gBusyCount)
|
||||
.Array("basepath", basePath, numsectors)
|
||||
.EndObject();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue