It does look that way, but the algorithm simply skips black (supposedly transparent) pixels. It doesn't draw anything in their place.
y, that's ... odd ....
I don't know how to draw a single pixel. This is why I draw them as rectangles
i think it's just a 1-pixel rectangle /lul, at least that's how i do it
hm,
System.Drawing.Bitmap.GetPixel()
System.Drawing.Bitmap.SetPixel()
but it'd be complicated 'cause you'd have to get the pixel out of the client-area ... i'd think ... and compare it with the pixel in the sprite ... or something like that ... ie, lots of deltas and what not
What is it used for?
TopView->Visibility [F1,F2,F3,F4 when TopView has focus] - these toggle on/off the drawing of tileparts (the blob-representations in TopView itself, and any sprites of that parttype in the MainView window). So if you want to see the floorparts that are directly behind, therefore hidden by a wall, the wall-parts can be toggled off to show the flooring ... etc. It's purely for visual convenience and doesn't affect saves at all.
But i'm thinking that by toggling parts on and off, you could get a better idea of what's actually going on with those floor and content sprites.
Speaking of which, what does _spriteShadeEnabled do? Now I just copy everything pixel by pixel regardless of _spriteShadeEnabled value.
spriteshade gets enabled when user sets spriteshade between 10..100 in Mainview Options. It's a gamma-adjustment for sprites (i run my monitor dark and need sprites a bit brighter). Otherwise, spriteshade is disabled since SetGamma() is a sort-of-expensive call
I don't think it's important here, esp. if you haven't turned sprite-shading on in Options.
note: MainViewOverlay handles sprite-shading ... it's kinda confusing because SpriteShade is stored as an int (because options doesn't like floats, last i checked) which is then converted to a float-value SpriteShadeLocal, and that is used for the gamma