- floatified parts of useSeqSpawnerGen.

Also fixing a sprite size bug in here.
This commit is contained in:
Christoph Oelckers 2022-08-30 21:00:30 +02:00
parent 5fba68ffe1
commit decaff78dc

View file

@ -3348,7 +3348,7 @@ void useEffectGen(DBloodActor* sourceactor, DBloodActor* actor)
pos = bottom; pos = bottom;
break; break;
case 2: // middle case 2: // middle
pos = actor->spr.pos.Z + (tileHeight(actor->spr.picnum) / 2 + tileTopOffset(actor->spr.picnum)); pos = actor->spr.pos.Z + (tileHeight(actor->spr.picnum) / 2 + tileTopOffset(actor->spr.picnum)) * actor->spr.yrepeat * REPEAT_SCALE;
break; break;
case 3: case 3:
case 4: case 4:
@ -3774,14 +3774,12 @@ void useSeqSpawnerGen(DBloodActor* sourceactor, int objType, sectortype* pSector
auto spawned = InsertSprite(iactor->sector(), kStatDecoration); auto spawned = InsertSprite(iactor->sector(), kStatDecoration);
if (spawned != nullptr) if (spawned != nullptr)
{ {
int top, bottom; GetActorExtents(spawned, &top, &bottom); double top, bottom;
vec3_t pos; GetActorExtents(spawned, &top, &bottom);
pos.X = iactor->int_pos().X; DVector3 pos = iactor->spr.pos;
pos.Y = iactor->int_pos().Y;
switch (sourceactor->xspr.data3) switch (sourceactor->xspr.data3)
{ {
default: default:
pos.Z = iactor->int_pos().Z;
break; break;
case 2: case 2:
pos.Z = bottom; pos.Z = bottom;
@ -3790,7 +3788,8 @@ void useSeqSpawnerGen(DBloodActor* sourceactor, int objType, sectortype* pSector
pos.Z = top; pos.Z = top;
break; break;
case 4: case 4:
pos.Z = iactor->int_pos().Z + tileHeight(iactor->spr.picnum) / 2 + tileTopOffset(iactor->spr.picnum); // this had no value shift and no yrepeat handling, which looks like a bug.
pos.Z += (tileHeight(iactor->spr.picnum) / 2 + tileTopOffset(iactor->spr.picnum)) * iactor->spr.yrepeat * REPEAT_SCALE;
break; break;
case 5: case 5:
case 6: case 6:
@ -3801,7 +3800,7 @@ void useSeqSpawnerGen(DBloodActor* sourceactor, int objType, sectortype* pSector
break; break;
} }
spawned->set_int_pos(pos); spawned->spr.pos = pos;
spawned->addX(); spawned->addX();
seqSpawn(sourceactor->xspr.data2, spawned, -1); seqSpawn(sourceactor->xspr.data2, spawned, -1);