From 63c8c1bdaba522ca3eef952be762bdce44fb7507 Mon Sep 17 00:00:00 2001 From: AJ Martinez Date: Fri, 24 Feb 2023 01:21:46 -0700 Subject: [PATCH 1/2] Rerandomize SF_IRONMAN on UFO hit --- src/objects/ufo.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/objects/ufo.c b/src/objects/ufo.c index b47e19c5f..f807a12b7 100644 --- a/src/objects/ufo.c +++ b/src/objects/ufo.c @@ -23,6 +23,7 @@ #include "../z_zone.h" #include "../k_waypoint.h" #include "../k_specialstage.h" +#include "../r_skins.h" #define UFO_BASE_SPEED (42 * FRACUNIT) // UFO's slowest speed. #define UFO_SPEEDUP (FRACUNIT >> 1) // Acceleration @@ -671,6 +672,14 @@ boolean Obj_SpecialUFODamage(mobj_t *ufo, mobj_t *inflictor, mobj_t *source, UIN return false; } + if (source->player) + { + UINT32 skinflags = skins[source->player->skin].flags; + if (skinflags & SF_IRONMAN) + SetRandomFakePlayerSkin(source->player, true); + } + + // Speed up on damage! ufo_speed(ufo) += addSpeed; @@ -700,6 +709,7 @@ boolean Obj_SpecialUFODamage(mobj_t *ufo, mobj_t *inflictor, mobj_t *source, UIN S_StopSoundByID(ufo, sfx_clawzm); P_StartQuake(64<health -= damage; + return true; } From d9051b3dd1c763e4fa96b02ab8e8b371cca336ed Mon Sep 17 00:00:00 2001 From: AJ Martinez Date: Sat, 25 Feb 2023 03:38:57 -0700 Subject: [PATCH 2/2] Fix demo sync for Magicican UFO hits --- src/objects/ufo.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/objects/ufo.c b/src/objects/ufo.c index f807a12b7..a4c46d58c 100644 --- a/src/objects/ufo.c +++ b/src/objects/ufo.c @@ -674,7 +674,9 @@ boolean Obj_SpecialUFODamage(mobj_t *ufo, mobj_t *inflictor, mobj_t *source, UIN if (source->player) { - UINT32 skinflags = skins[source->player->skin].flags; + UINT32 skinflags = (demo.playback) + ? demo.skinlist[demo.currentskinid[(source->player-players)]].flags + : skins[source->player->skin].flags; if (skinflags & SF_IRONMAN) SetRandomFakePlayerSkin(source->player, true); }