void DPlat::PlayPlatSound () { // Already played this sound so don't repeat it if (m_PlayedSound[m_Status]) return; m_PlayedSound[m_Status] = true; const char *snd; switch (m_Status) { case midup: case middown: snd = "plats/pt1_mid"; S_LoopedSound (m_Sector->soundorg, CHAN_BODY, snd, 1, ATTN_NORM); return; case up: m_PlayedSound[down] = false; snd = "plats/pt1_strt"; break; case down: m_PlayedSound[up] = false; snd = "plats/pt1_strt"; break; case waiting: case in_stasis: case finished: snd = "plats/pt1_stop"; break; default: return; } S_Sound (m_Sector->soundorg, CHAN_BODY, snd, 1, ATTN_NORM); }
void A_InquisitorJump (AActor *self) { fixed_t dist; fixed_t speed; angle_t an; if (self->target == NULL) return; S_LoopedSound (self, CHAN_ITEM, "inquisitor/jump", 1, ATTN_NORM); self->z += 64*FRACUNIT; A_FaceTarget (self); an = self->angle >> ANGLETOFINESHIFT; speed = self->Speed * 2/3; self->momx += FixedMul (speed, finecosine[an]); self->momy += FixedMul (speed, finesine[an]); dist = P_AproxDistance (self->target->x - self->x, self->target->y - self->y); dist /= speed; if (dist < 1) { dist = 1; } self->momz = (self->target->z - self->z) / dist; self->reactiontime = 60; self->flags |= MF_NOGRAVITY; }
void DPlat::PlayPlatSound () { if (predicting) return; const char *snd = NULL; switch (m_Status) { case midup: case middown: snd = "plats/pt1_mid"; S_LoopedSound (m_Sector->soundorg, CHAN_BODY, snd, 1, ATTN_NORM); return; case up: snd = "plats/pt1_strt"; break; case down: snd = "plats/pt1_strt"; break; case waiting: case in_stasis: case finished: snd = "plats/pt1_stop"; break; default: return; } S_Sound (m_Sector->soundorg, CHAN_BODY, snd, 1, ATTN_NORM); }
void DCeiling::PlayCeilingSound () { if (m_Silent == 2) ; else if (m_Silent == 1) ; else S_LoopedSound (m_Sector->soundorg, CHAN_BODY, "plats/pt1_mid", 1, ATTN_NORM); }
void A_InquisitorCheckLand (AActor *self) { self->reactiontime--; if (self->reactiontime < 0 || self->momx == 0 || self->momy == 0 || self->z <= self->floorz) { self->SetState (self->SeeState); self->reactiontime = 0; self->flags &= ~MF_NOGRAVITY; A_ShutUp (self); return; } if (!S_IsActorPlayingSomething (self, CHAN_ITEM, -1)) { S_LoopedSound (self, CHAN_ITEM, "inquisitor/jump", 1, ATTN_NORM); } }