mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Merge p_enemy.c
This commit is contained in:
parent
58d51b2f75
commit
51754b01ad
1 changed files with 0 additions and 180 deletions
180
src/p_enemy.c
180
src/p_enemy.c
|
|
@ -5327,186 +5327,6 @@ void A_OverlayThink(mobj_t *actor)
|
|||
// var1 = unused
|
||||
// var2 = unused
|
||||
//
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
void A_SignPlayer(mobj_t *actor)
|
||||
{
|
||||
INT32 locvar1 = var1;
|
||||
INT32 locvar2 = var2;
|
||||
skin_t *skin = NULL;
|
||||
mobj_t *ov;
|
||||
UINT16 facecolor, signcolor = 0;
|
||||
UINT32 signframe = states[actor->info->raisestate].frame;
|
||||
|
||||
facecolor = signcolor = (UINT16)locvar2;
|
||||
|
||||
if (LUA_CallAction("A_SignPlayer", actor))
|
||||
return;
|
||||
|
||||
if (actor->tracer == NULL || locvar1 < -3 || locvar1 >= numskins || signcolor >= numskincolors)
|
||||
return;
|
||||
|
||||
// if no face overlay, spawn one
|
||||
if (actor->tracer->tracer == NULL || P_MobjWasRemoved(actor->tracer->tracer))
|
||||
{
|
||||
ov = P_SpawnMobj(actor->x, actor->y, actor->z, MT_OVERLAY);
|
||||
P_SetTarget(&ov->target, actor->tracer);
|
||||
P_SetTarget(&actor->tracer->tracer, ov);
|
||||
}
|
||||
else
|
||||
ov = actor->tracer->tracer;
|
||||
|
||||
if (locvar1 == -1) // set to target's skin
|
||||
{
|
||||
if (!actor->target)
|
||||
return;
|
||||
|
||||
if (!actor->target->player)
|
||||
return;
|
||||
|
||||
skin = &skins[actor->target->player->skin];
|
||||
facecolor = actor->target->player->skincolor;
|
||||
|
||||
if (signcolor)
|
||||
;
|
||||
else if (!skin->sprites[SPR2_SIGN].numframes)
|
||||
signcolor = facecolor;
|
||||
else if ((facecolor == skin->prefcolor) && (skin->prefoppositecolor)) // Set it as the skin's preferred oppositecolor?
|
||||
signcolor = skin->prefoppositecolor;
|
||||
else if (facecolor) // Set the sign to be an appropriate background color for this player's skincolor.
|
||||
signcolor = skincolors[facecolor].invcolor;
|
||||
}
|
||||
else if (locvar1 != -3) // set to a defined skin
|
||||
{
|
||||
// I turned this function into a fucking mess. I'm so sorry. -Lach
|
||||
if (locvar1 == -2) // random skin
|
||||
{
|
||||
#define skincheck(num) (player ? !R_SkinUsable(player-players, num) : skins[num].availability > 0)
|
||||
player_t *player = actor->target ? actor->target->player : NULL;
|
||||
UINT8 skinnum;
|
||||
UINT8 skincount = 0;
|
||||
for (skinnum = 0; skinnum < numskins; skinnum++)
|
||||
if (!skincheck(skinnum))
|
||||
skincount++;
|
||||
skinnum = P_RandomKey(skincount);
|
||||
for (skincount = 0; skincount < numskins; skincount++)
|
||||
{
|
||||
if (skincount > skinnum)
|
||||
break;
|
||||
if (skincheck(skincount))
|
||||
skinnum++;
|
||||
}
|
||||
skin = &skins[skinnum];
|
||||
#undef skincheck
|
||||
}
|
||||
else // specific skin
|
||||
skin = &skins[locvar1];
|
||||
|
||||
facecolor = skin->prefcolor;
|
||||
if (signcolor)
|
||||
;
|
||||
else if (!skin->sprites[SPR2_SIGN].numframes)
|
||||
signcolor = facecolor;
|
||||
else if (skin->prefoppositecolor)
|
||||
signcolor = skin->prefoppositecolor;
|
||||
else if (facecolor)
|
||||
signcolor = skincolors[facecolor].invcolor;
|
||||
}
|
||||
|
||||
if (skin)
|
||||
{
|
||||
if (skin->sprites[SPR2_SIGN].numframes) // player face
|
||||
{
|
||||
ov->color = facecolor;
|
||||
ov->skin = skin;
|
||||
if ((statenum_t)(ov->state-states) != actor->info->seestate)
|
||||
P_SetMobjState(ov, actor->info->seestate); // S_PLAY_SIGN
|
||||
}
|
||||
else // CLEAR! sign
|
||||
{
|
||||
ov->color = SKINCOLOR_NONE;
|
||||
ov->skin = NULL; // needs to be NULL in the case of SF_HIRES characters
|
||||
if ((statenum_t)(ov->state-states) != actor->info->missilestate)
|
||||
P_SetMobjState(ov, actor->info->missilestate); // S_CLEARSIGN
|
||||
}
|
||||
}
|
||||
else // Eggman face
|
||||
{
|
||||
ov->color = SKINCOLOR_NONE;
|
||||
ov->skin = NULL;
|
||||
if ((statenum_t)(ov->state-states) != actor->info->meleestate)
|
||||
P_SetMobjState(ov, actor->info->meleestate); // S_EGGMANSIGN
|
||||
if (!signcolor)
|
||||
signcolor = SKINCOLOR_CARBON;
|
||||
facecolor = signcolor;
|
||||
}
|
||||
|
||||
actor->tracer->color = signcolor;
|
||||
if (signcolor && signcolor < numskincolors)
|
||||
signframe += (15 - skincolors[skincolors[signcolor].invcolor].invshade);
|
||||
actor->tracer->frame = signframe;
|
||||
}
|
||||
|
||||
// Function: A_OverlayThink
|
||||
//
|
||||
// Description: Moves the overlay to the position of its target.
|
||||
//
|
||||
// var1 = unused
|
||||
// var2 = invert, z offset
|
||||
//
|
||||
void A_OverlayThink(mobj_t *actor)
|
||||
{
|
||||
fixed_t destx, desty;
|
||||
|
||||
if (LUA_CallAction("A_OverlayThink", actor))
|
||||
return;
|
||||
|
||||
if (!actor->target)
|
||||
return;
|
||||
|
||||
if (!splitscreen && rendermode != render_soft)
|
||||
{
|
||||
angle_t viewingangle;
|
||||
|
||||
if (players[displayplayer].awayviewtics)
|
||||
viewingangle = R_PointToAngle2(actor->target->x, actor->target->y, players[displayplayer].awayviewmobj->x, players[displayplayer].awayviewmobj->y);
|
||||
else if (!camera.chase && players[displayplayer].mo)
|
||||
viewingangle = R_PointToAngle2(actor->target->x, actor->target->y, players[displayplayer].mo->x, players[displayplayer].mo->y);
|
||||
else
|
||||
viewingangle = R_PointToAngle2(actor->target->x, actor->target->y, camera.x, camera.y);
|
||||
|
||||
destx = actor->target->x + P_ReturnThrustX(actor->target, viewingangle, FixedMul(FRACUNIT, actor->scale));
|
||||
desty = actor->target->y + P_ReturnThrustY(actor->target, viewingangle, FixedMul(FRACUNIT, actor->scale));
|
||||
}
|
||||
else
|
||||
{
|
||||
destx = actor->target->x;
|
||||
desty = actor->target->y;
|
||||
}
|
||||
P_UnsetThingPosition(actor);
|
||||
actor->x = destx;
|
||||
actor->y = desty;
|
||||
P_SetThingPosition(actor);
|
||||
if (actor->eflags & MFE_VERTICALFLIP)
|
||||
actor->z = actor->target->z + actor->target->height - mobjinfo[actor->type].height - ((var2>>16) ? -1 : 1)*(var2&0xFFFF)*FRACUNIT;
|
||||
else
|
||||
actor->z = actor->target->z + ((var2>>16) ? -1 : 1)*(var2&0xFFFF)*FRACUNIT;
|
||||
actor->angle = actor->target->angle + actor->movedir;
|
||||
actor->eflags = actor->target->eflags;
|
||||
|
||||
actor->momx = actor->target->momx;
|
||||
actor->momy = actor->target->momy;
|
||||
actor->momz = actor->target->momz; // assume target has correct momz! Do not use P_SetObjectMomZ!
|
||||
}
|
||||
|
||||
// Function: A_JetChase
|
||||
//
|
||||
// Description: A_Chase for Jettysyns
|
||||
//
|
||||
// var1 = unused
|
||||
// var2 = unused
|
||||
//
|
||||
>>>>>>> srb2/next
|
||||
void A_JetChase(mobj_t *actor)
|
||||
{
|
||||
fixed_t thefloor;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue