Example #1
0
PaintUndoTile *PaintUndoTile::GetCurrentStateClone()
{
	PaintUndoTile *pTile = NewObj(PaintUndoTile);
	if (!pTile) return nullptr;
	pTile->Init(GetBitmap(), m_x, m_y);
	return pTile;
}
Example #2
0
void PlayerShot3(int x, int y, int inertX, int attack)
{
    manage->New.Data.hitAtt = MPShot;
    manage->New.Data.hitMask = MEnemy;

    manage->New.Data.X = x;
    manage->New.Data.Y = y;
    if (attack >= 22)
      manage->New.Data.Attack = 5;
    else if (attack >= 16)
      manage->New.Data.Attack = 4;
    else
      manage->New.Data.Attack = 3;
    manage->New.Data.EnemyAtt = NullDel;
    manage->New.Data.Width = 8;
    manage->New.Data.Height = 16;

    manage->New.Data.inertX = inertX;
    manage->New.Data.inertY = 5;
    manage->New.Data.Cnt[4] = 0;

    manage->New.Grp.image = PShot3Image;

    NewObj(MPShot,PlayerShotAct3,PlayerShotHit3,DrawImage);
}
Example #3
0
int RingToAngle(int x, int y, int angle, int speed)
{
  if (speed <= 0)
    speed = 1;
  
    manage->New.Data.hitAtt = MEnemy;
    manage->New.Data.hitMask = MPlayer | MPShot;

    manage->New.Data.X = x;
    manage->New.Data.Y = y;
    manage->New.Data.HP = 1;
    manage->New.Data.Point = 0;
    manage->New.Data.Angle = angle;
    manage->New.Data.Speed = speed;
    manage->New.Data.Cnt[0] = x << 8;
    manage->New.Data.Cnt[1] = y << 8;
    manage->New.Data.Cnt[2] = icos(angle);
    manage->New.Data.Cnt[3] = isin(angle);
    manage->New.Data.Cnt[4] = 0;
    manage->New.Data.EnemyAtt = NullDel;
    manage->New.Data.Width = 28;
    manage->New.Data.Height = 28;

    manage->New.Grp.image = ERingImage;

    return NewObj(MEnemy,EnemyShotAct,DeleteHit,DrawImage);
}
Example #4
0
void PlayerShot2(int x, int y, int speed, int angle)
{
    manage->New.Data.hitAtt = MPShot;
    manage->New.Data.hitMask = MEnemy;

    manage->New.Data.X = x;
    manage->New.Data.Y = y;
    manage->New.Data.Attack = 1;
    manage->New.Data.Speed = speed;
    manage->New.Data.Angle = angle;
    manage->New.Data.EnemyAtt = NullDel;
    manage->New.Data.Width = 12;
    manage->New.Data.Height = 16;

    manage->New.Data.Cnt[0] = x << 8;
    manage->New.Data.Cnt[1] = y << 8;
    manage->New.Data.Cnt[2] = icos(angle);
    manage->New.Data.Cnt[3] = isin(angle);

    manage->New.Data.Cnt[4] = 0;

    manage->New.Grp.image = PShot2Image;

    NewObj(MPShot,PlayerShotAct1,PlayerShotHit1,DrawImage);
}
Example #5
0
int RingToPoint(int x1, int y1, int x2, int y2, int speed)
{
    int diffx = x2 - x1;
    int diffy = y2 - y1;
    int absx = abs(diffx);
    int absy = abs(diffy);

    if (speed <= 0)
      speed = 1;
    
    manage->New.Data.hitAtt = MEnemy;
    manage->New.Data.hitMask = MPlayer | MPShot;

    manage->New.Data.X = x1;
    manage->New.Data.Y = y1;
    manage->New.Data.HP = 1;
    manage->New.Data.Point = 0;
    manage->New.Data.Speed = speed;
    manage->New.Data.Cnt[0] = x1 << 8;
    manage->New.Data.Cnt[1] = y1 << 8;

    if (absx >= absy)
    {
	manage->New.Data.Cnt[2] = 1 << 8;
	manage->New.Data.Cnt[3] = (absy/(double)absx) * 256;
    }
    else
    {
	manage->New.Data.Cnt[2] = (absx/(double)absy) * 256;
	manage->New.Data.Cnt[3] = 1 << 8;
    }
    if (diffx < 0)
	manage->New.Data.Cnt[2] *= -1;
    if (diffy < 0)
	manage->New.Data.Cnt[3] *= -1;

    manage->New.Data.Cnt[4] = 0;
    manage->New.Data.EnemyAtt = NullDel;
    manage->New.Data.Width = 28;
    manage->New.Data.Height = 28;

    manage->New.Grp.image = ERingImage;

    return NewObj(MEnemy,EnemyShotAct,DeleteHit,DrawImage);
}
Example #6
0
int LaserShot(int x, int y, int speed)
{
  if (speed <= 0)
    speed = 1;
  
    manage->New.Data.hitAtt = MEShot;
    manage->New.Data.hitMask = MPlayer;

    manage->New.Data.X = x;
    manage->New.Data.Y = y;
    manage->New.Data.EnemyAtt = NullDel;
    manage->New.Data.Width = 7;
    manage->New.Data.Height = 50;
    manage->New.Data.Speed = speed;

    manage->New.Grp.image = ELaserImage;

    return NewObj(MEShot,EnemyLaserAct,NullHit,DrawImage);
}
Example #7
0
int HomingShot(int x, int y, int ix, int iy)
{
    manage->New.Data.hitAtt = MEnemy;
    manage->New.Data.hitMask = MPlayer | MPShot;

    manage->New.Data.X = x;
    manage->New.Data.Y = y;
    manage->New.Data.HP = 1;
    manage->New.Data.Point = 0;
    manage->New.Data.EnemyAtt = NullDel;
    manage->New.Data.Width = 16;
    manage->New.Data.Height = 16;
    manage->New.Data.inertX = ix;
    manage->New.Data.inertY = iy;

    manage->New.Grp.image = EMissileImage;

    return NewObj(MEnemy,HomingAct,DeleteHit,DrawImage);
}
Example #8
0
int BoundShot(int x, int y, int ix, int iy, int bound)
{
  if ((ix == 0) && (iy == 0))
    ix = 1;

    manage->New.Data.hitAtt = MEnemy;
    manage->New.Data.hitMask = MPlayer | MPShot;

    manage->New.Data.X = x;
    manage->New.Data.Y = y;
    manage->New.Data.EnemyAtt = NullDel;
    manage->New.Data.Width = 28;
    manage->New.Data.Height = 28;
    manage->New.Data.inertX = ix;
    manage->New.Data.inertY = iy;

    manage->New.Data.Cnt[0] = 0;
    manage->New.Data.Cnt[1] = bound;

    manage->New.Grp.image = EBoundImage;

    return NewObj(MEShot,BoundShotAct,NullHit,DrawImage);
}
Example #9
0
/*----------------------------------------------------------------------------------------------
	Construct the right sort of VwEnv. Typical usage is
	VwEnvPtr qvwenv;
	qvwenv->Attach(MakeEnv());
----------------------------------------------------------------------------------------------*/
VwEnv * VwInvertedRootBox::MakeEnv()
{
	return NewObj(VwInvertedEnv);
}
Example #10
0
RuleSet::RuleSet() :
  nRules(0), nHelpRules(0), nRuleTerms(0),
  nActiveRules(0), nCategories(0), isFixed(false), matchTime(0) {
  ensure(MAX_RULES > MAX_HELP_RULES);
  NewObj();
}