Esempio n. 1
0
static void
__drawmondie(struct monster_obj_private *mop)
{
  int16_t sprid;

  sprid = FIRSTMONSTER + mop->m_id;

  monster_obj_updspr(mop);
  drawspr(sprid, mop->pos.x, mop->pos.y);
}
Esempio n. 2
0
static int
monster_obj_mutate(struct monster_obj *self)
{
  struct monster_obj_private *mop;

  mop = self->priv;

  mop->nobf = (mop->nobf ? 0 : 1);
  monster_obj_updspr(mop);
  drawspr(FIRSTMONSTER + mop->m_id, mop->pos.x, mop->pos.y);
  return (0);
}
Esempio n. 3
0
void drawdigger(int n,int16_t t,int16_t x,int16_t y,bool f)
{
  int nn=(n==0) ? 0 : 31;
  digspr[n]+=digspd[n];
  if (digspr[n]==2 || digspr[n]==0)
    digspd[n]=-digspd[n];
  if (digspr[n]>2)
    digspr[n]=2;
  if (digspr[n]<0)
    digspr[n]=0;
  if (t>=0 && t<=6 && !(t&1)) {
    initspr(FIRSTDIGGER+n,(t+(f ? 0 : 1))*3+digspr[n]+1+nn,4,15,0,0);
    drawspr(FIRSTDIGGER+n,x,y);
    return;
  }
  if (t>=10 && t<=15) {
    initspr(FIRSTDIGGER+n,40+nn-t,4,15,0,0);
    drawspr(FIRSTDIGGER+n,x,y);
    return;
  }
  first[0]=first[1]=first[2]=first[3]=first[4]=-1;
}
Esempio n. 4
0
void drawfire(int n,int16_t x,int16_t y,int16_t t)
{
  int nn=(n==0) ? 0 : 32;
  if (t==0) {
    firespr[n]++;
    if (firespr[n]>2)
      firespr[n]=0;
    initspr(FIRSTFIREBALL+n,82+firespr[n]+nn,2,8,0,0);
  }
  else
    initspr(FIRSTFIREBALL+n,84+t+nn,2,8,0,0);
  drawspr(FIRSTFIREBALL+n,x,y);
}
Esempio n. 5
0
void drawmondie(int16_t n,bool nobf,int16_t dir,int16_t x,int16_t y)
{
  if (nobf)
    initspr(FIRSTMONSTER+n,72,4,15,0,0);
  else
    switch(dir) {
      case DIR_RIGHT:
        initspr(FIRSTMONSTER+n,76,4,15,0,0);
        break;
      case DIR_LEFT:
        initspr(FIRSTMONSTER+n,80,4,14,0,0);
    }
  drawspr(FIRSTMONSTER+n,x,y);
}
Esempio n. 6
0
static void
__drawmon(struct monster_obj_private *mop)
{
  int16_t sprid;

  sprid = FIRSTMONSTER + mop->m_id;

  mop->monspr += mop->monspd;
  if (mop->monspr == 2 || mop->monspr == 0)
    mop->monspd = -(mop->monspd);
  if (mop->monspr > 2)
    mop->monspr = 2;
  if (mop->monspr < 0)
    mop->monspr = 0;
  monster_obj_updspr(mop);
  drawspr(sprid, mop->pos.x, mop->pos.y);
}
Esempio n. 7
0
static int
monster_obj_damage(struct monster_obj *self)
{
  struct monster_obj_private *mop;

  mop = self->priv;

   if (!mop->alive) {
      /* We can only damage live thing or try to damage zombie */
      assert(mop->zombie);
   }
   mop->zombie = true;
   mop->alive = false;
   monster_obj_updspr(mop);
   drawspr(FIRSTMONSTER + mop->m_id, mop->pos.x, mop->pos.y);
   return (0);
}
Esempio n. 8
0
void drawmon(int16_t n,bool nobf,int16_t dir,int16_t x,int16_t y)
{
  monspr[n]+=monspd[n];
  if (monspr[n]==2 || monspr[n]==0)
    monspd[n]=-monspd[n];
  if (monspr[n]>2)
    monspr[n]=2;
  if (monspr[n]<0)
    monspr[n]=0;
  if (nobf)
    initspr(FIRSTMONSTER+n,monspr[n]+69,4,15,0,0);
  else
    switch (dir) {
      case DIR_RIGHT:
        initspr(FIRSTMONSTER+n,monspr[n]+73,4,15,0,0);
        break;
      case DIR_LEFT:
        initspr(FIRSTMONSTER+n,monspr[n]+77,4,15,0,0);
    }
  drawspr(FIRSTMONSTER+n,x,y);
}
Esempio n. 9
0
void drawgold(int16_t n,int16_t t,int16_t x,int16_t y)
{
  initspr(FIRSTBAG+n,t+62,4,15,0,0);
  drawspr(FIRSTBAG+n,x,y);
}