Cool. I have already started actually. I am not using memblocks, although I thought of that. I would probably have to write my own polygon collision rountine to detect which polygon in the object I am colliding with, then use another routine to find the intersection of a vector and polygon, but to be honest I wouldn't have a clue

, so I'm using collision objects instead.
I did look at your code and as far as I can tell you are using a circle of collision points, and if one of them comes near enough to a wall then you push the camera in the direction of the vector between the camera and the collided collision point. You push the camera back by the distance between the collision point and the wall using "intersect object".
Seeing as DBC doesn't have that command, I am using collision "objects" in the form of rotated boxes all around the main object (Im doing 3rd person). They work the same as the collision points in your code, but you cannot detect which one is closest to the wall, you only know if they actually collide with the wall (the first object to collide will usually be the one at the nearest angle to the wall). This is less acurate as if the object is moving too fast, several collision points will collide and this will cause inaccurate collision because the object may be pushed in the wrong direction. That means that I have to be careful with the size of the collision points, to make sure they are as far apart as possible (so that the correct point will collide with the correct wall), at the same time as covering as much of the outside of the main object as possible.
Here is what would happen in an illustration, this is with 4 collision boxes/points:
Top row: Too small boxes: The wrong collision object hits wall, object pushed in wrong direction (right instead of back).
Bottom row: Too big boxes: Three collision object hit wall, object on the left is the first to be checked in loop and therefore it pushes the object right instead of back, causing massive collision mistake .
Any solution to this would be appreciated

.
Also I have to take into account the thickness of the collision boxes according to the speed the object is moving and the distance of the collision points from the main object.
<end of long winded unneccesary explanation>So far I have got the sliding collision working with a loaded .x object, but I still have to do some slope collision, which I have been using in other projects so thats fine.