// Description:
//
//
-// Author: Tobias Glaesser <tobi.web@gmx.de>, (C) 2004
+// Author: Tobias Glaesser <tobi.web@gmx.de> & Bill Kendrick, (C) 2004
//
// Copyright: See COPYING file that comes with this distribution
//
/*bm_bsod = img_bsod_left[0];*/
}
-void badguy_init(bad_guy_type* pbad)
+void badguy_init(bad_guy_type* pbad, float x, float y, int kind)
{
- pbad->base.updated = SDL_GetTicks();
- pbad->base.alive = NO;
pbad->base.width = 32;
pbad->base.height = 32;
-
+ pbad->base.alive = YES;
+ pbad->mode = NORMAL;
+ pbad->dying = NO;
+ pbad->kind = kind;
+ pbad->base.x = x;
+ pbad->base.y = y;
+ pbad->base.xm = 1.3;
+ pbad->base.ym = 4.8;
+ pbad->dir = LEFT;
+ pbad->seen = NO;
+ timer_init(&pbad->timer);
}
void badguy_action(bad_guy_type* pbad)
{
- double frame_ratio = get_frame_ratio(&pbad->base);
-
if (pbad->base.alive)
{
if (pbad->seen)
}
else if (pbad->mode == KICK)
{
- /* Obsolete
- if (pbad->dir == RIGHT)
- pbad->base.x = pbad->base.x + 16;
- else if (pbad->dir == LEFT)
- pbad->base.x = pbad->base.x - 16;*/
+ /* Obsolete
+ if (pbad->dir == RIGHT)
+ pbad->base.x = pbad->base.x + 16;
+ else if (pbad->dir == LEFT)
+ pbad->base.x = pbad->base.x - 16;*/
}
else if (pbad->mode == HELD)
{ /* FIXME: The pbad object shouldn't know about pplayer objects. */
/* Move vertically: */
- pbad->base.y = pbad->base.y + pbad->base.ym *frame_ratio;
+ pbad->base.y = pbad->base.y + pbad->base.ym * frame_ratio;
/* Fall if we get off the ground: */
{
if (pbad->base.ym < MAX_YM)
{
- pbad->base.ym = pbad->base.ym + GRAVITY;
+ pbad->base.ym = pbad->base.ym + GRAVITY * frame_ratio;
}
}
else
}
}
else
- pbad->base.ym = pbad->base.ym + GRAVITY;
+ pbad->base.ym = pbad->base.ym + GRAVITY * frame_ratio;
if (pbad->base.y > screen->h)
pbad->base.alive = NO;
break;
case CO_BADGUY:
pbad_c = p_c_object;
- if (pbad->mode != KICK)
+ if (pbad->mode != FLAT)
pbad->dir = !pbad->dir;
else
{
}
else if (pbad->kind == BAD_LAPTOP)
{
- if (pbad->mode != FLAT)
+ if (pbad->mode != KICK)
{
/* Flatten! */
play_sound(sounds[SND_STOMP], SOUND_CENTER_SPEAKER);
pbad->mode = FLAT;
- pbad->base.xm = 4;
+ pbad->base.xm = 4;
timer_start(&pbad->timer,10000);