mirror of
https://github.com/DrBeef/Raze.git
synced 2024-11-15 08:52:00 +00:00
- Blood: added serialization for the tracking conditions array.
This commit is contained in:
parent
656ec8ef06
commit
dc0d201275
2 changed files with 36 additions and 6 deletions
|
@ -1919,7 +1919,7 @@ void trPlayerCtrlLink(XSPRITE* pXSource, PLAYER* pPlayer, bool checkCondition) {
|
||||||
for (unsigned k = 0; k < pCond->length; k++) {
|
for (unsigned k = 0; k < pCond->length; k++) {
|
||||||
if (pCond->obj[k].type != OBJ_SPRITE || pCond->obj[k].index != pXSource->reference) continue;
|
if (pCond->obj[k].type != OBJ_SPRITE || pCond->obj[k].index != pXSource->reference) continue;
|
||||||
pCond->obj[k].index = pPlayer->nSprite;
|
pCond->obj[k].index = pPlayer->nSprite;
|
||||||
pCond->obj[k].cmd = pPlayer->pXSprite->command;
|
pCond->obj[k].cmd = (uint8_t)pPlayer->pXSprite->command;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7912,6 +7912,34 @@ FSerializer& Serialize(FSerializer& arc, const char* keyname, SPRITEMASS& w, SPR
|
||||||
return arc;
|
return arc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FSerializer& Serialize(FSerializer& arc, const char* keyname, OBJECTS_TO_TRACK& w, OBJECTS_TO_TRACK* def)
|
||||||
|
{
|
||||||
|
static OBJECTS_TO_TRACK nul;
|
||||||
|
if (arc.isReading()) w = {};
|
||||||
|
if (arc.BeginObject(keyname))
|
||||||
|
{
|
||||||
|
arc("type", w.type, &nul.type)
|
||||||
|
("index", w.index, &nul.index)
|
||||||
|
("xrepeat", w.cmd, &nul.cmd)
|
||||||
|
.EndObject();
|
||||||
|
}
|
||||||
|
return arc;
|
||||||
|
}
|
||||||
|
|
||||||
|
FSerializer& Serialize(FSerializer& arc, const char* keyname, TRCONDITION& w, TRCONDITION* def)
|
||||||
|
{
|
||||||
|
static TRCONDITION nul;
|
||||||
|
if (arc.isReading()) w = {};
|
||||||
|
if (arc.BeginObject(keyname))
|
||||||
|
{
|
||||||
|
arc("length", w.length, &nul.length)
|
||||||
|
("xindex", w.xindex, &nul.xindex)
|
||||||
|
.Array("obj", w.obj, w.length)
|
||||||
|
.EndObject();
|
||||||
|
}
|
||||||
|
return arc;
|
||||||
|
}
|
||||||
|
|
||||||
void SerializeNNExts(FSerializer& arc)
|
void SerializeNNExts(FSerializer& arc)
|
||||||
{
|
{
|
||||||
if (arc.BeginObject("nnexts"))
|
if (arc.BeginObject("nnexts"))
|
||||||
|
@ -7938,6 +7966,8 @@ void SerializeNNExts(FSerializer& arc)
|
||||||
("impactspritescount", gImpactSpritesCount)
|
("impactspritescount", gImpactSpritesCount)
|
||||||
.Array("impactspriteslist", gImpactSpritesList, gImpactSpritesCount)
|
.Array("impactspriteslist", gImpactSpritesList, gImpactSpritesCount)
|
||||||
("eventredirects", gEventRedirectsUsed)
|
("eventredirects", gEventRedirectsUsed)
|
||||||
|
("trconditioncount", gTrackingCondsCount)
|
||||||
|
.Array("trcondition", gCondition, gTrackingCondsCount)
|
||||||
.EndObject();
|
.EndObject();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -235,14 +235,14 @@ struct TRPLAYERCTRL { // this one for controlling the player using triggers (mov
|
||||||
};
|
};
|
||||||
|
|
||||||
struct OBJECTS_TO_TRACK {
|
struct OBJECTS_TO_TRACK {
|
||||||
signed int type: 3;
|
int8_t type;
|
||||||
unsigned int index: 16;
|
uint8_t cmd;
|
||||||
unsigned int cmd: 8;
|
int index;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct TRCONDITION {
|
struct TRCONDITION {
|
||||||
signed int xindex: 16;
|
signed int xindex;
|
||||||
unsigned int length: 8;
|
unsigned int length;
|
||||||
OBJECTS_TO_TRACK obj[kMaxTracedObjects];
|
OBJECTS_TO_TRACK obj[kMaxTracedObjects];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue