mirror of
https://github.com/ZDoom/Raze.git
synced 2025-01-18 22:51:50 +00:00
- floatified bobbing and a few other minor checks.
This commit is contained in:
parent
0fbddd8a2b
commit
54a55b3d09
1 changed files with 16 additions and 16 deletions
|
@ -58,7 +58,7 @@ struct TrailPoint
|
||||||
struct Bob
|
struct Bob
|
||||||
{
|
{
|
||||||
sectortype* pSector;
|
sectortype* pSector;
|
||||||
int z;
|
double Z;
|
||||||
uint8_t nPhase;
|
uint8_t nPhase;
|
||||||
uint8_t field_3;
|
uint8_t field_3;
|
||||||
uint16_t sBobID;
|
uint16_t sBobID;
|
||||||
|
@ -205,7 +205,7 @@ FSerializer& Serialize(FSerializer& arc, const char* keyname, Bob& w, Bob* def)
|
||||||
arc("sector", w.pSector)
|
arc("sector", w.pSector)
|
||||||
("at2", w.nPhase)
|
("at2", w.nPhase)
|
||||||
("at3", w.field_3)
|
("at3", w.field_3)
|
||||||
("z", w.z)
|
("z", w.Z)
|
||||||
("id", w.sBobID)
|
("id", w.sBobID)
|
||||||
.EndObject();
|
.EndObject();
|
||||||
}
|
}
|
||||||
|
@ -560,12 +560,12 @@ int CheckSectorSprites(sectortype* pSector, int nVal)
|
||||||
|
|
||||||
if (nVal)
|
if (nVal)
|
||||||
{
|
{
|
||||||
int nZDiff = pSector->int_floorz() - pSector->int_ceilingz();
|
double nZDiff = pSector->floorz - pSector->ceilingz;
|
||||||
|
|
||||||
ExhumedSectIterator it(pSector);
|
ExhumedSectIterator it(pSector);
|
||||||
while (auto pActor= it.Next())
|
while (auto pActor= it.Next())
|
||||||
{
|
{
|
||||||
if ((pActor->spr.cstat & CSTAT_SPRITE_BLOCK_ALL) && (nZDiff < GetActorHeight(pActor)))
|
if ((pActor->spr.cstat & CSTAT_SPRITE_BLOCK_ALL) && (nZDiff < GetActorHeightF(pActor)))
|
||||||
{
|
{
|
||||||
if (nVal != 1) {
|
if (nVal != 1) {
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -2034,17 +2034,17 @@ void DoDrips()
|
||||||
{
|
{
|
||||||
sBob[i].nPhase += 4;
|
sBob[i].nPhase += 4;
|
||||||
|
|
||||||
int edx = bsin(sBob[i].nPhase << 3, -4);
|
double amount = BobVal(sBob[i].nPhase << 3) * 4.;
|
||||||
auto pSector =sBob[i].pSector;
|
auto pSector =sBob[i].pSector;
|
||||||
|
|
||||||
if (sBob[i].field_3)
|
if (sBob[i].field_3)
|
||||||
{
|
{
|
||||||
pSector->set_int_ceilingz(edx + sBob[i].z);
|
pSector->setceilingz(amount + sBob[i].Z);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
double nFloorZ = pSector->floorz;
|
double nFloorZ = pSector->floorz;
|
||||||
pSector->set_int_floorz(edx + sBob[i].z);
|
pSector->setfloorz(amount + sBob[i].Z);
|
||||||
MoveSectorSprites(pSector, pSector->floorz - nFloorZ);
|
MoveSectorSprites(pSector, pSector->floorz - nFloorZ);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2095,16 +2095,16 @@ void AddSectorBob(sectortype* pSector, int nHitag, int bx)
|
||||||
auto nBobs = sBob.Reserve(1);
|
auto nBobs = sBob.Reserve(1);
|
||||||
sBob[nBobs].field_3 = bx;
|
sBob[nBobs].field_3 = bx;
|
||||||
|
|
||||||
int z;
|
double Z;
|
||||||
|
|
||||||
if (bx == 0) {
|
if (bx == 0) {
|
||||||
z = pSector->int_floorz();
|
Z = pSector->floorz;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
z = pSector->int_ceilingz();
|
Z = pSector->ceilingz;
|
||||||
}
|
}
|
||||||
|
|
||||||
sBob[nBobs].z = z;
|
sBob[nBobs].Z = Z;
|
||||||
sBob[nBobs].nPhase = nHitag << 4;
|
sBob[nBobs].nPhase = nHitag << 4;
|
||||||
sBob[nBobs].sBobID = nHitag;
|
sBob[nBobs].sBobID = nHitag;
|
||||||
|
|
||||||
|
@ -2359,7 +2359,7 @@ void PostProcess()
|
||||||
{
|
{
|
||||||
for (auto& sect: sector)
|
for (auto& sect: sector)
|
||||||
{
|
{
|
||||||
int var_20 = 30000;
|
double maxval = 300000;
|
||||||
|
|
||||||
if (sect.Speed && sect.Depth && !(sect.Flag & kSectLava))
|
if (sect.Speed && sect.Depth && !(sect.Flag & kSectLava))
|
||||||
{
|
{
|
||||||
|
@ -2374,12 +2374,12 @@ void PostProcess()
|
||||||
|
|
||||||
if (§ != §j && sectj.Speed && !(sect.Flag & kSectLava))
|
if (§ != §j && sectj.Speed && !(sect.Flag & kSectLava))
|
||||||
{
|
{
|
||||||
int xVal = abs(sect.firstWall()->wall_int_pos().X - sectj.firstWall()->wall_int_pos().X);
|
double xVal = abs(sect.firstWall()->pos.X - sectj.firstWall()->pos.X);
|
||||||
int yVal = abs(sect.firstWall()->wall_int_pos().Y - sectj.firstWall()->wall_int_pos().Y);
|
double yVal = abs(sect.firstWall()->pos.Y - sectj.firstWall()->pos.Y);
|
||||||
|
|
||||||
if (xVal < 15000 && yVal < 15000 && (xVal + yVal < var_20))
|
if (xVal < 15000/16. && yVal < 15000/16. && (xVal + yVal < maxval))
|
||||||
{
|
{
|
||||||
var_20 = xVal + yVal;
|
maxval = xVal + yVal;
|
||||||
sect.pSoundSect = §j;
|
sect.pSoundSect = §j;
|
||||||
sect.Sound = StaticSound[kSound43];
|
sect.Sound = StaticSound[kSound43];
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue