PaintUndoTile *PaintUndoTile::GetCurrentStateClone() { PaintUndoTile *pTile = NewObj(PaintUndoTile); if (!pTile) return nullptr; pTile->Init(GetBitmap(), m_x, m_y); return pTile; }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
/*---------------------------------------------------------------------------------------------- Construct the right sort of VwEnv. Typical usage is VwEnvPtr qvwenv; qvwenv->Attach(MakeEnv()); ----------------------------------------------------------------------------------------------*/ VwEnv * VwInvertedRootBox::MakeEnv() { return NewObj(VwInvertedEnv); }
RuleSet::RuleSet() : nRules(0), nHelpRules(0), nRuleTerms(0), nActiveRules(0), nCategories(0), isFixed(false), matchTime(0) { ensure(MAX_RULES > MAX_HELP_RULES); NewObj(); }