static Pen SpriteToPen_Collision(CSData.CSSprite sprite) { if (SmokeRemove && sprite.SpriteType == 4) { return(new Pen(Color.Transparent)); } switch (SpriteMode) { case 1: if ((sprite.DetailsFlag & (0x2000 | 0x0100)) > 0) { return(new Pen(Color.MediumPurple)); } else if (sprite.DamageToTouch > 0) { return(new Pen( (sprite.DetailsFlag & (0x0001 | 0x0040)) != 0 ? Color.Red : Color.Red, (sprite.DetailsFlag & (0x0001 | 0x0040)) != 0 ? 3 : 1));; } else if ((sprite.DetailsFlag & (0x0001 | 0x0040)) != 0) { return(new Pen(Color.Orange)); } else { return(new Pen(Color.Purple)); } default: return(new Pen(Color.Red)); } }
static Pen SpriteToPen_View(CSData.CSSprite sprite) { if (SmokeRemove && sprite.SpriteType == 4) { return(new Pen(Color.Transparent)); } switch (SpriteMode) { case 1: return(new Pen(Color.Transparent)); default: return(new Pen(Color.Green)); } }
static void DrawOneSprite(Graphics g, CSData.CSSprite sp, int camx, int camy) { if (sp.Existence == 0) { return; } g.DrawRectangle(SpriteToPen_View(sp), toScreen(sp.X - sp.ViewRect.left - camx), toScreen(sp.Y - sp.ViewRect.top - camy), toScreen(sp.ViewRect.left + sp.ViewRect.right), toScreen(sp.ViewRect.top + sp.ViewRect.bottom)); g.DrawRectangle(SpriteToPen_Collision(sp), toScreen(sp.X - sp.CollisionRect.left - camx), toScreen(sp.Y - sp.CollisionRect.top - camy), toScreen(sp.CollisionRect.left + sp.CollisionRect.right), toScreen(sp.CollisionRect.top + sp.CollisionRect.bottom)); }