Init Hyudoro center properly

This commit is contained in:
Sally Coolatta 2022-09-27 23:29:06 -04:00
parent c22d652add
commit 456c824abf
4 changed files with 22 additions and 9 deletions

View file

@ -24066,7 +24066,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
},
{ // MT_HYUDORO
2055, // doomednum
-1, // doomednum
S_HYUDORO, // spawnstate
1000, // spawnhealth
S_NULL, // seestate
@ -24093,7 +24093,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
},
{ // MT_HYUDORO_CENTER
-1, // doomednum
2055, // doomednum
S_INVISIBLE, // spawnstate
1000, // spawnhealth
S_NULL, // seestate

View file

@ -3,6 +3,7 @@
#define k_objects_H
/* Hyudoro */
void Obj_InitHyudoroCenter(mobj_t *center, mobj_t *master);
void Obj_HyudoroDeploy(mobj_t *master);
void Obj_HyudoroThink(mobj_t *actor);
void Obj_HyudoroCenterThink(mobj_t *actor);

View file

@ -388,11 +388,8 @@ hyudoro_hover_await_stack (mobj_t *hyu)
}
void
Obj_HyudoroDeploy (mobj_t *master)
Obj_InitHyudoroCenter (mobj_t * center, mobj_t * master)
{
mobj_t *center = P_SpawnMobjFromMobj(
master, 0, 0, 0, MT_HYUDORO_CENTER);
mobj_t *hyu = P_SpawnMobjFromMobj(
center, 0, 0, 0, MT_HYUDORO);
@ -405,20 +402,30 @@ Obj_HyudoroDeploy (mobj_t *master)
center->radius = hyu->radius;
P_InitAngle(hyu, master->angle);
P_InitAngle(hyu, center->angle);
P_SetTarget(&hyudoro_center(hyu), center);
P_SetTarget(&hyudoro_center_master(center), master);
hyudoro_mode(hyu) = HYU_PATROL;
// Set splitscreen player visibility
if (master->player)
if (master && !P_MobjWasRemoved(master) && master->player)
{
hyu->renderflags |= RF_DONTDRAW &
~(K_GetPlayerDontDrawFlag(master->player));
}
spawn_hyudoro_shadow(hyu); // this sucks btw
}
void
Obj_HyudoroDeploy (mobj_t *master)
{
mobj_t *center = P_SpawnMobjFromMobj(
master, 0, 0, 0, MT_HYUDORO_CENTER);
center->angle = master->angle;
Obj_InitHyudoroCenter(center, master);
S_StartSound(master, sfx_s3k92); // scary ghost noise
}

View file

@ -11558,7 +11558,7 @@ static boolean P_AllowMobjSpawn(mapthing_t* mthing, mobjtype_t i)
case MT_EGGMANITEM:
case MT_SSMINE:
case MT_LANDMINE:
case MT_HYUDORO:
case MT_HYUDORO_CENTER:
case MT_DROPTARGET:
{
// Duel objects.
@ -12743,6 +12743,11 @@ static boolean P_SetupSpawnedMapThing(mapthing_t *mthing, mobj_t *mobj, boolean
*doangle = false;
break;
}
case MT_HYUDORO_CENTER:
{
Obj_InitHyudoroCenter(mobj, NULL);
break;
}
default:
break;
}