mirror of
https://github.com/ZDoom/Raze.git
synced 2025-01-31 12:30:40 +00:00
- floatified remaining parts of bunny.cpp
This commit is contained in:
parent
19e703aaed
commit
e3d2e85760
1 changed files with 96 additions and 11 deletions
|
@ -722,6 +722,12 @@ ACTOR_ACTION_SET BunnyWhiteActionSet =
|
|||
nullptr
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
int SetupBunny(DSWActor* actor)
|
||||
{
|
||||
ANIMATOR DoActorDecide;
|
||||
|
@ -789,6 +795,12 @@ int SetupBunny(DSWActor* actor)
|
|||
return 0;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
int GetBunnyJumpHeight(int jump_speed, int jump_grav)
|
||||
{
|
||||
int jump_iterations;
|
||||
|
@ -803,6 +815,12 @@ int GetBunnyJumpHeight(int jump_speed, int jump_grav)
|
|||
return height >> 9;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
int PickBunnyJumpSpeed(DSWActor* actor, int pix_height)
|
||||
{
|
||||
ASSERT(pix_height < 128);
|
||||
|
@ -823,9 +841,11 @@ int PickBunnyJumpSpeed(DSWActor* actor, int pix_height)
|
|||
return actor->user.jump_speed;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// JUMP ATTACK
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
int DoBunnyBeginJumpAttack(DSWActor* actor)
|
||||
{
|
||||
|
@ -881,9 +901,15 @@ int DoBunnyMoveJump(DSWActor* actor)
|
|||
return 0;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void DoPickCloseBunny(DSWActor* actor)
|
||||
{
|
||||
int dist, near_dist = 1000, a,b,c;
|
||||
double near_dist = 62.5;
|
||||
|
||||
// if actor can still see the player
|
||||
bool ICanSee = false;
|
||||
|
@ -895,7 +921,7 @@ void DoPickCloseBunny(DSWActor* actor)
|
|||
|
||||
if (itActor->user.ID != BUNNY_RUN_R0) continue;
|
||||
|
||||
DISTANCE(itActor->spr.pos, actor->spr.pos, dist, a, b, c);
|
||||
double dist = (itActor->spr.pos.XY() - actor->spr.pos.XY()).Length();
|
||||
|
||||
if (dist > near_dist) continue;
|
||||
|
||||
|
@ -912,6 +938,12 @@ void DoPickCloseBunny(DSWActor* actor)
|
|||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
int DoBunnyQuickJump(DSWActor* actor)
|
||||
{
|
||||
if (actor->user.spal != PALETTE_PLAYER8) return false;
|
||||
|
@ -1034,6 +1066,11 @@ int DoBunnyQuickJump(DSWActor* actor)
|
|||
return false;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
int NullBunny(DSWActor* actor)
|
||||
{
|
||||
|
@ -1058,6 +1095,12 @@ int NullBunny(DSWActor* actor)
|
|||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
int DoBunnyPain(DSWActor* actor)
|
||||
{
|
||||
NullBunny(actor);
|
||||
|
@ -1093,12 +1136,15 @@ int DoBunnyStandKill(DSWActor* actor)
|
|||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void BunnyHatch(DSWActor* actor)
|
||||
{
|
||||
const int MAX_BUNNYS = 1;
|
||||
int16_t rip_ang[MAX_BUNNYS];
|
||||
|
||||
rip_ang[0] = RANDOM_P2(2048);
|
||||
|
||||
for (int i = 0; i < MAX_BUNNYS; i++)
|
||||
{
|
||||
|
@ -1106,7 +1152,7 @@ void BunnyHatch(DSWActor* actor)
|
|||
actorNew->spr.pos = actor->spr.pos;
|
||||
actorNew->spr.xrepeat = 30; // Baby size
|
||||
actorNew->spr.yrepeat = 24;
|
||||
actorNew->set_int_ang(rip_ang[i]);
|
||||
actorNew->spr.angle = RANDOM_ANGLE();
|
||||
actorNew->spr.pal = 0;
|
||||
SetupBunny(actorNew);
|
||||
actorNew->spr.shade = actor->spr.shade;
|
||||
|
@ -1155,9 +1201,14 @@ void BunnyHatch(DSWActor* actor)
|
|||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
DSWActor* BunnyHatch2(DSWActor* actor)
|
||||
{
|
||||
|
||||
auto actorNew = insertActor(actor->sector(), STAT_DEFAULT);
|
||||
actorNew->spr.pos = actor->spr.pos;
|
||||
actorNew->spr.xrepeat = 30; // Baby size
|
||||
|
@ -1189,10 +1240,9 @@ DSWActor* BunnyHatch2(DSWActor* actor)
|
|||
{
|
||||
PickJumpMaxSpeed(actorNew, -600-RandomRange(600));
|
||||
actorNew->spr.xrepeat = actorNew->spr.yrepeat = 64;
|
||||
actorNew->set_int_xvel(150 + RandomRange(1000));
|
||||
actorNew->vel.X = (150 + RandomRange(1000)) * maptoworld;
|
||||
actorNew->user.Health = 1; // Easy to pop. Like shootn' skeet.
|
||||
actorNew->add_int_ang(-RandomRange(128));
|
||||
actorNew->add_int_ang(RandomRange(128));
|
||||
actorNew->spr.angle += DAngle::fromBuild(RandomRange(128) - RandomRange(128));
|
||||
}
|
||||
else
|
||||
PickJumpMaxSpeed(actorNew, -600);
|
||||
|
@ -1213,6 +1263,12 @@ DSWActor* BunnyHatch2(DSWActor* actor)
|
|||
return actorNew;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
int DoBunnyMove(DSWActor* actor)
|
||||
{
|
||||
// Parental lock crap
|
||||
|
@ -1273,7 +1329,7 @@ int DoBunnyMove(DSWActor* actor)
|
|||
NewStateGroup(actor,sg_BunnyStand);
|
||||
break;
|
||||
default:
|
||||
actor->set_int_ang(NORM_ANGLE(RandomRange(2048 << 6) >> 6));
|
||||
actor->spr.angle = DAngle::fromBuild(RandomRange(2048 << 6) >> 6);
|
||||
actor->user.jump_speed = -350;
|
||||
DoActorBeginJump(actor);
|
||||
actor->user.ActorActionFunc = DoActorMoveJump;
|
||||
|
@ -1284,12 +1340,24 @@ int DoBunnyMove(DSWActor* actor)
|
|||
return 0;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
int BunnySpew(DSWActor* actor)
|
||||
{
|
||||
InitBloodSpray(actor, true, -1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
int DoBunnyEat(DSWActor* actor)
|
||||
{
|
||||
if (actor->user.Flags & (SPR_JUMPING | SPR_FALLING))
|
||||
|
@ -1337,6 +1405,12 @@ int DoBunnyEat(DSWActor* actor)
|
|||
return 0;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
int DoBunnyScrew(DSWActor* actor)
|
||||
{
|
||||
if (actor->user.Flags & (SPR_JUMPING | SPR_FALLING))
|
||||
|
@ -1382,6 +1456,12 @@ int DoBunnyScrew(DSWActor* actor)
|
|||
return 0;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
int DoBunnyGrowUp(DSWActor* actor)
|
||||
{
|
||||
if (actor->spr.pal == PALETTE_PLAYER1) return 0; // Don't bother white bunnies
|
||||
|
@ -1414,6 +1494,11 @@ int DoBunnyGrowUp(DSWActor* actor)
|
|||
return 0;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#include "saveable.h"
|
||||
|
||||
|
|
Loading…
Reference in a new issue