D3DPT_TRIANGLELIST Rendering Flag
have you ever asked yourself, what in the hell does
D3DPT_TRIANGLELIST Rendering Flag?.
Here is the answer:
This flag Tells to Direct3DDevice that you are passing
a Tringle List (on the Vertexs), this means that each 3
Vertex Makes a Tringle:

If you see, we need to Declare
Vertex 2 and 3 as Vertex 4 and 5 for the next Tringle, this
may cause a little bit of memory usege but it's better when
you are doing animations like destructuction of some object,
cause you can separate each triangle one from other.
To use this flag the Vertex Count MUST be a number divisible
in 3.