First take a look at any of the alternate polygon piece sets, eg, nicok.ini in your CHESSBD/SLICS directory, in the pieces folder. (Thanks to Nico Koolsbergen for contributing the nicok.ini design.)
Each piece type corresponds to an option variable, the value of which is a polygon which is drawn and filled to represent that piece in the board diagram. Eg, PawnOutline is the variable for a pawn. A polygon is represented as a list of pairs deltax,deltay drawn clockwise from the lower left corner. The last (closing) segment does not have to be specified. Eg,
PawnOutline=0,10 10,0 0,-10
makes the pawn graphic a 10x10 square. You also need to set the variable "squaresize=XXxYY" to the nominal square size for your piece set. Eg, "squaresize=48x48" if your pieces are designed to match squares of dimension 48x48. This is needed so your pieces can be correctly scaled.
To test your piece designs, put your piece definitions in a separate FILE.ini, then run "%prof -g FILE.ini" in the main textport.
You can also specify a "poly polygon" in your piece descriptions. If an x-y pair is followed by a vertical bar (|), with no spaces, then it starts an additional polygon. Note, you must explicitly specify the closing segment of the polygon before the vertical bar. Then the next x-y pair after the vertical bar specifies an *offset* from that position. In other words, the first segment after the vertical bar is NOT drawn.
Essentially, this feature allows you to specify the points in a windows "poly polygon".
You can specify up to 8 polygons in this way.
KnightOutline=8,4 0,1 -2,4 -1,0 -4,-4 -2,0 -4,4 7,14 -3,2 13,0 8,-5 3,-9 -3,-8 3,-3 -23,0| 4,16 0,3 3,0
The above example creates a knight polygon with an eye.