mirror of
https://github.com/DrBeef/Raze.git
synced 2025-02-20 18:52:43 +00:00
- asound.cpp, blood.cpp, db.cpp and parts of callback.cpp
This commit is contained in:
parent
40a307650d
commit
a1f6b363fb
4 changed files with 30 additions and 42 deletions
|
@ -48,23 +48,21 @@ void ambProcess(void)
|
|||
BloodStatIterator it(kStatAmbience);
|
||||
while (DBloodActor* actor = it.Next())
|
||||
{
|
||||
spritetype *pSprite = &actor->s();
|
||||
if (pSprite->owner < 0 || pSprite->owner >= kMaxAmbChannel)
|
||||
if (actor->spr.owner < 0 || actor->spr.owner >= kMaxAmbChannel)
|
||||
continue;
|
||||
if (actor->hasX())
|
||||
{
|
||||
XSPRITE *pXSprite = &actor->x();
|
||||
if (pXSprite->state)
|
||||
if (actor->xspr.state)
|
||||
{
|
||||
int dx = pSprite->pos.X-gMe->pSprite->pos.X;
|
||||
int dy = pSprite->pos.Y-gMe->pSprite->pos.Y;
|
||||
int dz = pSprite->pos.Z-gMe->pSprite->pos.Z;
|
||||
int dx = actor->spr.pos.X-gMe->actor->spr.pos.X;
|
||||
int dy = actor->spr.pos.Y-gMe->actor->spr.pos.Y;
|
||||
int dz = actor->spr.pos.Z-gMe->actor->spr.pos.Z;
|
||||
dx >>= 4;
|
||||
dy >>= 4;
|
||||
dz >>= 8;
|
||||
int nDist = ksqrt(dx*dx+dy*dy+dz*dz);
|
||||
int vs = MulScale(pXSprite->data4, pXSprite->busy, 16);
|
||||
ambChannels[pSprite->owner].distance += ClipRange(scale(nDist, pXSprite->data1, pXSprite->data2, vs, 0), 0, vs);
|
||||
int vs = MulScale(actor->xspr.data4, actor->xspr.busy, 16);
|
||||
ambChannels[actor->spr.owner].distance += ClipRange(scale(nDist, actor->xspr.data1, actor->xspr.data2, vs, 0), 0, vs);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -110,24 +108,22 @@ void ambInit(void)
|
|||
BloodStatIterator it(kStatAmbience);
|
||||
while (DBloodActor* actor = it.Next())
|
||||
{
|
||||
spritetype* pSprite = &actor->s();
|
||||
if (!actor->hasX()) continue;
|
||||
|
||||
XSPRITE* pXSprite = &actor->x();
|
||||
if (pXSprite->data1 >= pXSprite->data2) continue;
|
||||
if (actor->xspr.data1 >= actor->xspr.data2) continue;
|
||||
|
||||
int i; AMB_CHANNEL *pChannel = ambChannels;
|
||||
for (i = 0; i < nAmbChannels; i++, pChannel++)
|
||||
if (pXSprite->data3 == pChannel->check) break;
|
||||
if (actor->xspr.data3 == pChannel->check) break;
|
||||
|
||||
if (i == nAmbChannels) {
|
||||
|
||||
if (i >= kMaxAmbChannel) {
|
||||
pSprite->owner = -1;
|
||||
actor->spr.owner = -1;
|
||||
continue;
|
||||
}
|
||||
|
||||
int nSFX = pXSprite->data3;
|
||||
int nSFX = actor->xspr.data3;
|
||||
auto snd = soundEngine->FindSoundByResID(nSFX);
|
||||
if (!snd) {
|
||||
//I_Error("Missing sound #%d used in ambient sound generator %d\n", nSFX);
|
||||
|
@ -143,7 +139,7 @@ void ambInit(void)
|
|||
|
||||
}
|
||||
|
||||
pSprite->owner = i;
|
||||
actor->spr.owner = i;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -232,15 +232,11 @@ void StartLevel(MapRecord* level, bool newgame)
|
|||
int modernTypesErased = 0;
|
||||
for (auto actor : actorlist)
|
||||
{
|
||||
|
||||
spritetype* pSprite = &actor->s();
|
||||
if (actor->exists() && actor->hasX())
|
||||
{
|
||||
|
||||
XSPRITE* pXSprite = &actor->x();
|
||||
if ((pXSprite->lSkill & (1 << gGameOptions.nDifficulty)) || (pXSprite->lS && gGameOptions.nGameType == 0)
|
||||
|| (pXSprite->lB && gGameOptions.nGameType == 2) || (pXSprite->lT && gGameOptions.nGameType == 3)
|
||||
|| (pXSprite->lC && gGameOptions.nGameType == 1)) {
|
||||
if ((actor->xspr.lSkill & (1 << gGameOptions.nDifficulty)) || (actor->xspr.lS && gGameOptions.nGameType == 0)
|
||||
|| (actor->xspr.lB && gGameOptions.nGameType == 2) || (actor->xspr.lT && gGameOptions.nGameType == 3)
|
||||
|| (actor->xspr.lC && gGameOptions.nGameType == 1)) {
|
||||
|
||||
DeleteSprite(actor);
|
||||
continue;
|
||||
|
|
|
@ -76,12 +76,11 @@ void FlareBurst(DBloodActor* actor, sectortype*) // 2
|
|||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
auto spawnedactor = actSpawnSprite(actor, 5);
|
||||
spritetype *pSpawn = &spawnedactor->s();
|
||||
pSpawn->picnum = 2424;
|
||||
pSpawn->shade = -128;
|
||||
pSpawn->xrepeat = pSpawn->yrepeat = 32;
|
||||
pSpawn->type = kMissileFlareAlt;
|
||||
pSpawn->clipdist = 2;
|
||||
spawnedactor->spr.picnum = 2424;
|
||||
spawnedactor->spr.shade = -128;
|
||||
spawnedactor->spr.xrepeat = spawnedactor->spr.yrepeat = 32;
|
||||
spawnedactor->spr.type = kMissileFlareAlt;
|
||||
spawnedactor->spr.clipdist = 2;
|
||||
spawnedactor->SetOwner(actor);
|
||||
int nAngle2 = (i<<11)/8;
|
||||
int dx = 0;
|
||||
|
@ -600,13 +599,12 @@ void sub_76A08(DBloodActor *actor, DBloodActor *actor2, PLAYER *pPlayer) // ???
|
|||
{
|
||||
int top, bottom;
|
||||
auto pSprite = &actor->s();
|
||||
auto pSprite2 = &actor2->s();
|
||||
GetSpriteExtents(pSprite, &top, &bottom);
|
||||
pSprite->pos.X = pSprite2->pos.X;
|
||||
pSprite->pos.Y = pSprite2->pos.Y;
|
||||
pSprite->pos.Z = pSprite2->sector()->floorz-(bottom-pSprite->pos.Z);
|
||||
pSprite->ang = pSprite2->ang;
|
||||
ChangeActorSect(actor, pSprite2->sector());
|
||||
pSprite->pos.X = actor2->spr.pos.X;
|
||||
pSprite->pos.Y = actor2->spr.pos.Y;
|
||||
pSprite->pos.Z = actor2->spr.sector()->floorz-(bottom-pSprite->pos.Z);
|
||||
pSprite->ang = actor2->spr.ang;
|
||||
ChangeActorSect(actor, actor2->spr.sector());
|
||||
sfxPlay3DSound(actor2, 201, -1, 0);
|
||||
actor->xvel = actor->yvel = actor->zvel = 0;
|
||||
viewBackupSpriteLoc(actor);
|
||||
|
@ -654,13 +652,12 @@ void DropVoodooCb(DBloodActor* actor, sectortype*) // unused
|
|||
auto nextactor = it.Peek();
|
||||
if (Owner == actor2)
|
||||
continue;
|
||||
spritetype *pSprite2 = &actor2->s();
|
||||
if (actor2->hasX())
|
||||
{
|
||||
XSPRITE *pXSprite2 = &actor2->x();
|
||||
PLAYER *pPlayer2;
|
||||
if (actor2->IsPlayerActor())
|
||||
pPlayer2 = &gPlayer[pSprite2->type-kDudePlayer1];
|
||||
pPlayer2 = &gPlayer[actor2->spr.type-kDudePlayer1];
|
||||
else
|
||||
pPlayer2 = nullptr;
|
||||
|
||||
|
@ -687,7 +684,7 @@ void DropVoodooCb(DBloodActor* actor, sectortype*) // unused
|
|||
else
|
||||
{
|
||||
int vd = 0x2666;
|
||||
switch (pSprite2->type)
|
||||
switch (actor2->spr.type)
|
||||
{
|
||||
case kDudeBoneEel:
|
||||
case kDudeBat:
|
||||
|
|
|
@ -41,10 +41,9 @@ BEGIN_BLD_NS
|
|||
DBloodActor* InsertSprite(sectortype* pSector, int nStat)
|
||||
{
|
||||
auto act = static_cast<DBloodActor*>(::InsertActor(RUNTIME_CLASS(DBloodActor), pSector, nStat));
|
||||
auto pSprite = &act->s();
|
||||
pSprite->cstat = CSTAT_SPRITE_YCENTER;
|
||||
pSprite->clipdist = 32;
|
||||
pSprite->xrepeat = pSprite->yrepeat = 64;
|
||||
act->spr.cstat = CSTAT_SPRITE_YCENTER;
|
||||
act->spr.clipdist = 32;
|
||||
act->spr.xrepeat = act->spr.yrepeat = 64;
|
||||
return act;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue