You can load your map and store all objects like this:
Map::Load("Maps/mymap.map(), StoreWorldObjects());
and then in your storeWorldObjects() function you can look up triggers. (Note that CSG objects need an empty script or a mass for them to be picked up by the load hook.)
void StoreWorldObjects(Entity* entity, Object* extra)
{
if(entity->GetKeyValue("name") == "Trigger")
{
//Make a new trgger or something
trigger = new MyTrigger();
}
}
If you have made your own trigger class you can add a trigger hook in there:
void MyCollisionHook(Entity* entity0, Entity* entity1, float* position, float* normal, float speed)
{
//A collision was made with the trigger
}
MyTrigger::MyTrigger()
{
entity->AddHook(Entity::CollisionHook, MyCollisionHook);
}