Slash88...bsps have a collision detection and response system built-in already. It uses a bounding sphere. There is a function to create a collision mesh for an object, as well as process bsp collision. For normal collisions, the code does it all automatically after you set up the collision mesh.
The command to load a model is simply load object...with a type that DBPro supports, like .x or .md2
Plug-ins are dlls. In the Compiler directory, there are three subdirectories for plug-ins. DarkPhysics would go in one of those directories...as would any other plug-in.
Here are a couple of snippets to look at regarding MD2 models, and bsp collision. Functions that start out "jz" are mine. :
player1.model = jzGetNextObjectID()
player1.bModelLoaded = jzLoadModel(player1.modelName, player1.model)
if player1.bModelLoaded = TRUE
rotate object player1.model, 0, 270, 0
fix object pivot player1.model
scale object player1.model, 4, 4, 4
set object player1.model, 1, 1, 1, 2, 0, 0, 0
set object smoothing player1.model, 100
temp = jzGetNextImageID()
load image player1.skinName, temp
texture object player1.model, temp
player1.skin = temp
player1.weapon = jzGetNextObjectID()
jzLoadModel(player1.weaponName, player1.weapon)
scale object player1.weapon, 4, 4, 4
set object player1.weapon, 1, 1, 1, 2, 0, 0, 0
set object smoothing player1.weapon, 100
rotate object player1.weapon, 0, 270, 0
fix object pivot player1.weapon
temp = jzGetNextImageID()
load image player1.weaponSkinName, temp
player1.weaponSkin = temp
texture object player1.weapon, player1.weaponSkin
player1.sound = mp3player + 1
player1.position.x = 27
player1.position.y = 0
player1.position.z = 13
else
exit
endif
set bsp object collision 1, player1.model, 1.0, 0
set bsp object collision 2, enemy1.model, 1.0, 0
set bsp object collision 3, player1.weapon, 1.0, 0
set bsp object collision 4, enemy1.weapon, 1.0, 0
set bsp object collision 5, enemy2.model, 1.0, 0
Most models are oriented incorrectly when they load. MD2 models are 90 offset. I am using this one 3rd person, so I want the camera behind the model...I rotate 90+180, or 270.