Add UFO hum + hit reaction SFX

This commit is contained in:
AJ Martinez 2023-01-18 02:15:18 -07:00
parent 892a19c85f
commit 5837f983e8
3 changed files with 73 additions and 0 deletions

View file

@ -56,6 +56,8 @@ enum
UFO_PIECE_TYPE_STEM,
};
static sfxenum_t hums[16] = {sfx_claw01, sfx_claw02, sfx_claw03, sfx_claw04, sfx_claw05, sfx_claw06, sfx_claw07, sfx_claw08, sfx_claw09, sfx_claw10, sfx_claw11, sfx_claw12, sfx_claw13, sfx_claw14, sfx_claw15, sfx_claw16};
static void UFOMoveTo(mobj_t *ufo, fixed_t destx, fixed_t desty, fixed_t destz)
{
ufo->momx = destx - ufo->x;
@ -414,12 +416,33 @@ static void UFOEmeraldVFX(mobj_t *ufo)
}
}
static boolean UFOHumPlaying(mobj_t *ufo) {
INT32 i;
for (i = 0; i < 15; i++)
{
if (S_SoundPlaying(ufo, hums[i]))
return true;
}
return false;
}
static void UFOUpdateSound(mobj_t *ufo) {
INT32 maxhealth = mobjinfo[MT_SPECIAL_UFO].spawnhealth;
INT32 healthlevel = 15 * ufo->health / maxhealth;
if (!UFOEmeraldChase(ufo) && !UFOHumPlaying(ufo))
{
S_StartSound(ufo, hums[15-healthlevel]);
}
}
void Obj_SpecialUFOThinker(mobj_t *ufo)
{
UFOMove(ufo);
UFOUpdateAngle(ufo);
UFOUpdateDistanceToFinish(ufo);
UFOUpdateSpeed(ufo);
UFOUpdateSound(ufo);
if (UFOEmeraldChase(ufo) == true)
{
@ -609,10 +632,16 @@ boolean Obj_SpecialUFODamage(mobj_t *ufo, mobj_t *inflictor, mobj_t *source, UIN
P_LinedefExecute(LE_PINCHPHASE, ufo, NULL);
S_StopSound(ufo);
S_StartSound(ufo, sfx_clawk2);
P_StartQuake(64<<FRACBITS, 20);
ufo_speed(ufo) += addSpeed; // Even more speed!
return true;
}
S_StartSound(ufo, sfx_clawht);
P_StartQuake(64<<FRACBITS, 10);
ufo->health -= damage;
return true;
}

View file

@ -1152,6 +1152,28 @@ sfxinfo_t S_sfx[NUMSFX] =
{"grownd", false, 64, 16, -1, NULL, 0, -1, -1, LUMPERROR, ""}, // SF_X8AWAYSOUND
{"invind", false, 64, 16, -1, NULL, 0, -1, -1, LUMPERROR, ""}, // SF_X8AWAYSOUND
// SRB2Kart - Claw SFX
{"claw01", false, 64, 64, -1, NULL, 0, -1, -1, LUMPERROR, ""}, // SF_X2AWAYSOUND
{"claw02", false, 64, 64, -1, NULL, 0, -1, -1, LUMPERROR, ""}, // SF_X2AWAYSOUND
{"claw03", false, 64, 64, -1, NULL, 0, -1, -1, LUMPERROR, ""}, // SF_X2AWAYSOUND
{"claw04", false, 64, 64, -1, NULL, 0, -1, -1, LUMPERROR, ""}, // SF_X2AWAYSOUND
{"claw05", false, 64, 64, -1, NULL, 0, -1, -1, LUMPERROR, ""}, // SF_X2AWAYSOUND
{"claw06", false, 64, 64, -1, NULL, 0, -1, -1, LUMPERROR, ""}, // SF_X2AWAYSOUND
{"claw07", false, 64, 64, -1, NULL, 0, -1, -1, LUMPERROR, ""}, // SF_X2AWAYSOUND
{"claw08", false, 64, 64, -1, NULL, 0, -1, -1, LUMPERROR, ""}, // SF_X2AWAYSOUND
{"claw09", false, 64, 64, -1, NULL, 0, -1, -1, LUMPERROR, ""}, // SF_X2AWAYSOUND
{"claw10", false, 64, 64, -1, NULL, 0, -1, -1, LUMPERROR, ""}, // SF_X2AWAYSOUND
{"claw11", false, 64, 64, -1, NULL, 0, -1, -1, LUMPERROR, ""}, // SF_X2AWAYSOUND
{"claw12", false, 64, 64, -1, NULL, 0, -1, -1, LUMPERROR, ""}, // SF_X2AWAYSOUND
{"claw13", false, 64, 64, -1, NULL, 0, -1, -1, LUMPERROR, ""}, // SF_X2AWAYSOUND
{"claw14", false, 64, 64, -1, NULL, 0, -1, -1, LUMPERROR, ""}, // SF_X2AWAYSOUND
{"claw15", false, 64, 64, -1, NULL, 0, -1, -1, LUMPERROR, ""}, // SF_X2AWAYSOUND
{"claw16", false, 64, 64, -1, NULL, 0, -1, -1, LUMPERROR, ""}, // SF_X2AWAYSOUND
{"clawht", false, 64, 8, -1, NULL, 0, -1, -1, LUMPERROR, ""}, // SF_X4AWAYSOUND
{"clawzm", false, 64, 8, -1, NULL, 0, -1, -1, LUMPERROR, ""}, // SF_X4AWAYSOUND
{"clawk1", false, 64, 16, -1, NULL, 0, -1, -1, LUMPERROR, ""}, // SF_X8AWAYSOUND
{"clawk2", false, 64, 16, -1, NULL, 0, -1, -1, LUMPERROR, ""}, // SF_X8AWAYSOUND
// SRB2Kart - Engine sounds
// Engine class A
{"krta00", false, 48, 65, -1, NULL, 0, -1, -1, LUMPERROR, ""},

View file

@ -1220,6 +1220,28 @@ typedef enum
sfx_grownd,
sfx_invind,
// Claw SFX
sfx_claw01,
sfx_claw02,
sfx_claw03,
sfx_claw04,
sfx_claw05,
sfx_claw06,
sfx_claw07,
sfx_claw08,
sfx_claw09,
sfx_claw10,
sfx_claw11,
sfx_claw12,
sfx_claw13,
sfx_claw14,
sfx_claw15,
sfx_claw16,
sfx_clawht,
sfx_clawzm,
sfx_clawk1,
sfx_clawk2,
// Next up: UNIQUE ENGINE SOUNDS! Hoooooo boy...
// Engine class A - Low Speed, Low Weight
sfx_krta00,