This is interesting. But... (If you not moved whole map through dev.) It is better use getpos and setpos/setang console commands to getting great comparison screenshots.
Yeah, it is easy for testing throughout artpass in that way, without many versions. =) But even if you have only few version, it is interesting to watch how map changed. ^___^Well you know I barely compiled my map during the artpass, the whole thing was almost done on a single version so it was hard to use that for the comparison, that artpass lasted for almost two years, I don't even know how i've been able to keep working on this map for so much time ^^
Another option is to use the "getpos" and "setpos" console commands if you didn't put the cameras in the earlier versions of your map.I think you can also use point_devshot_camera entities and compile with -makedevshots to keep screenshots in the exact same place.
Thanks for sharing!
Actually, the devshot system is supposed to be used with an external file listing the camera positions. You can easily backdate the cameras without even touching the bsp.
// See if we've got a camera file to import cameras from
char szFullName[512];
Q_snprintf(szFullName,sizeof(szFullName), "maps/%s.txt", STRING( gpGlobals->mapname ));
KeyValues *pkvMapCameras = new KeyValues( "MapCameras" );
if ( pkvMapCameras->LoadFromFile( filesystem, szFullName, "MOD" ) )
{
Warning( "Devshots: Loading point_devshot_camera positions from %s. \n", szFullName );
// Get each camera, and add it to our list
KeyValues *pkvCamera = pkvMapCameras->GetFirstSubKey();
while ( pkvCamera )
{
// Get camera name
const char *pCameraName = pkvCamera->GetName();
// Make a camera, and move it to the position specified
CPointDevShotCamera *pCamera = (CPointDevShotCamera*)CreateEntityByName( "point_devshot_camera" );
Assert( pCamera );
pCamera->KeyValue( "cameraname", pCameraName );
pCamera->KeyValue( "origin", pkvCamera->GetString( "origin", "0 0 0" ) );
pCamera->KeyValue( "angles", pkvCamera->GetString( "angles", "0 0 0" ) );
pCamera->KeyValue( "FOV", pkvCamera->GetString( "FOV", "75" ) );
DispatchSpawn( pCamera );
pCamera->Activate();
// Move to next camera
pkvCamera = pkvCamera->GetNextKey();
}
}
"blackboard" {}
"eantrance" {
origin "42 42 42"
angles "0 0 42"
}