Changed position default to 0,0,0 for all objects to reflect reflex map file generation
This commit is contained in:
parent
11f8989558
commit
32e6e092c2
@ -242,15 +242,14 @@ EntityConverter::convertPickup(const std::vector<std::string> &lines) const
|
|||||||
{
|
{
|
||||||
std::vector<std::string> convertedLines;
|
std::vector<std::string> convertedLines;
|
||||||
//can ignore angle of pickups in xonotic format
|
//can ignore angle of pickups in xonotic format
|
||||||
std::string coords[3];
|
std::string coords[3] = {"0.0", "0.0", "0.0"};
|
||||||
int pickupID;
|
int pickupID;
|
||||||
std::string trash;
|
std::string trash;
|
||||||
bool havePosition = false;
|
|
||||||
bool havePickupID = false;
|
bool havePickupID = false;
|
||||||
|
|
||||||
if ( lines.size() < 3 ) {
|
if ( lines.size() < 2 ) {
|
||||||
throw std::runtime_error(
|
throw std::runtime_error(
|
||||||
makeErrorMessage( "error: Pickup entity requires at least 3 lines", lines ));
|
makeErrorMessage( "error: Pickup entity requires at least type and ID", lines ));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 1; i < lines.size(); i++) {
|
for (int i = 1; i < lines.size(); i++) {
|
||||||
@ -263,7 +262,6 @@ EntityConverter::convertPickup(const std::vector<std::string> &lines) const
|
|||||||
throw std::runtime_error(
|
throw std::runtime_error(
|
||||||
makeErrorMessage( "error: Pickup entity requires coordinates", lines ));
|
makeErrorMessage( "error: Pickup entity requires coordinates", lines ));
|
||||||
}
|
}
|
||||||
havePosition = true;
|
|
||||||
}
|
}
|
||||||
else if ( type == "pickupType" ) {
|
else if ( type == "pickupType" ) {
|
||||||
std::istringstream iss(lines[i]);
|
std::istringstream iss(lines[i]);
|
||||||
@ -276,7 +274,7 @@ EntityConverter::convertPickup(const std::vector<std::string> &lines) const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( havePosition && havePickupID ) {
|
if ( havePickupID ) {
|
||||||
auto pickupIter = pickupMap_.find(pickupID);
|
auto pickupIter = pickupMap_.find(pickupID);
|
||||||
if ( pickupIter == pickupMap_.end() ) {
|
if ( pickupIter == pickupMap_.end() ) {
|
||||||
throw std::runtime_error(
|
throw std::runtime_error(
|
||||||
@ -416,7 +414,7 @@ EntityConverter::convertJumpPad(const std::vector<std::string> &lines) const
|
|||||||
|
|
||||||
if ( lines.size() < 2 ) {
|
if ( lines.size() < 2 ) {
|
||||||
throw std::runtime_error(
|
throw std::runtime_error(
|
||||||
makeErrorMessage( "error: JumpPad entity requires at least 2 lines", lines ));
|
makeErrorMessage( "error: JumpPad entity requires at least type and target name", lines ));
|
||||||
}
|
}
|
||||||
std::istringstream iss(lines[1]);
|
std::istringstream iss(lines[1]);
|
||||||
// String32 target targetName
|
// String32 target targetName
|
||||||
@ -443,7 +441,7 @@ EntityConverter::convertTeleporter(const std::vector<std::string> &lines) const
|
|||||||
|
|
||||||
if ( lines.size() < 2 ) {
|
if ( lines.size() < 2 ) {
|
||||||
throw std::runtime_error(
|
throw std::runtime_error(
|
||||||
makeErrorMessage( "error: Teleport entity requires at least 2 lines", lines ));
|
makeErrorMessage( "error: Teleport entity requires at least type and target name", lines ));
|
||||||
}
|
}
|
||||||
std::istringstream iss(lines[1]);
|
std::istringstream iss(lines[1]);
|
||||||
// String32 target targetName
|
// String32 target targetName
|
||||||
@ -466,18 +464,17 @@ EntityConverter::convertTarget(const std::vector<std::string> &lines) const
|
|||||||
{
|
{
|
||||||
std::vector<std::string> convertedLines;
|
std::vector<std::string> convertedLines;
|
||||||
//position and name required, angles optional
|
//position and name required, angles optional
|
||||||
std::string coords[3];
|
std::string coords[3] = {"0.0", "0.0", "0.0"};
|
||||||
std::string targetName;
|
std::string targetName;
|
||||||
std::string angle;
|
std::string angle;
|
||||||
std::string trash;
|
std::string trash;
|
||||||
bool havePosition = false;
|
|
||||||
bool haveName = false;
|
bool haveName = false;
|
||||||
bool haveAngle = false;
|
bool haveAngle = false;
|
||||||
|
|
||||||
|
|
||||||
if ( lines.size() < 3 ) {
|
if ( lines.size() < 3 ) {
|
||||||
throw std::runtime_error(
|
throw std::runtime_error(
|
||||||
makeErrorMessage( "error: Target entity requires at least 3 lines", lines ));
|
makeErrorMessage( "error: Target entity requires at least type and name", lines ));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 1; i < lines.size(); i++) {
|
for (int i = 1; i < lines.size(); i++) {
|
||||||
@ -490,7 +487,6 @@ EntityConverter::convertTarget(const std::vector<std::string> &lines) const
|
|||||||
throw std::runtime_error(
|
throw std::runtime_error(
|
||||||
makeErrorMessage( "error: Target entity requires coordinates", lines ));
|
makeErrorMessage( "error: Target entity requires coordinates", lines ));
|
||||||
}
|
}
|
||||||
havePosition = true;
|
|
||||||
}
|
}
|
||||||
else if ( type == "name" ) {
|
else if ( type == "name" ) {
|
||||||
std::istringstream iss(lines[i]);
|
std::istringstream iss(lines[i]);
|
||||||
@ -513,7 +509,7 @@ EntityConverter::convertTarget(const std::vector<std::string> &lines) const
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( havePosition && haveName) {
|
if ( haveName) {
|
||||||
auto targetIter = targetMap_.find(targetName);
|
auto targetIter = targetMap_.find(targetName);
|
||||||
if ( targetIter == targetMap_.end() ) {
|
if ( targetIter == targetMap_.end() ) {
|
||||||
std::cerr << makeErrorMessage("EntityConverter doesn't know what the source of a Target entity with the following attributes. This entity will not be converted. It is probably an unsupported entity type or feature. (e.g. game over camera)", lines);
|
std::cerr << makeErrorMessage("EntityConverter doesn't know what the source of a Target entity with the following attributes. This entity will not be converted. It is probably an unsupported entity type or feature. (e.g. game over camera)", lines);
|
||||||
@ -588,20 +584,19 @@ EntityConverter::convertPointLight(const std::vector<std::string> &lines) const
|
|||||||
{
|
{
|
||||||
std::vector<std::string> convertedLines;
|
std::vector<std::string> convertedLines;
|
||||||
//position and intensity required, color optional
|
//position and intensity required, color optional
|
||||||
std::string coords[3];
|
std::string coords[3] = {"0.0", "0.0", "0.0"};
|
||||||
//default to a typical value
|
//default to a typical value
|
||||||
std::string intensity = "1.0";
|
std::string intensity = "1.0";
|
||||||
//color is hex 8 digits
|
//color is hex 8 digits
|
||||||
//default to white if no color specified
|
//default to white if no color specified
|
||||||
std::string color = "ff000000";
|
std::string color = "ff000000";
|
||||||
std::string trash;
|
std::string trash;
|
||||||
bool havePosition = false;
|
|
||||||
bool haveColor = false;
|
bool haveColor = false;
|
||||||
|
|
||||||
|
|
||||||
if ( lines.size() < 2 ) {
|
if ( lines.size() < 2 ) {
|
||||||
throw std::runtime_error(
|
throw std::runtime_error(
|
||||||
makeErrorMessage( "error: PointLight entity requires at least 2 lines", lines ));
|
makeErrorMessage( "error: PointLight entity requires at least type", lines ));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 1; i < lines.size(); i++) {
|
for (int i = 1; i < lines.size(); i++) {
|
||||||
@ -614,7 +609,6 @@ EntityConverter::convertPointLight(const std::vector<std::string> &lines) const
|
|||||||
throw std::runtime_error(
|
throw std::runtime_error(
|
||||||
makeErrorMessage( "error: PointLight entity requires valid position coordinates", lines ));
|
makeErrorMessage( "error: PointLight entity requires valid position coordinates", lines ));
|
||||||
}
|
}
|
||||||
havePosition = true;
|
|
||||||
}
|
}
|
||||||
else if ( type == "intensity" ) {
|
else if ( type == "intensity" ) {
|
||||||
std::istringstream iss(lines[i]);
|
std::istringstream iss(lines[i]);
|
||||||
@ -637,7 +631,6 @@ EntityConverter::convertPointLight(const std::vector<std::string> &lines) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ( havePosition ) {
|
|
||||||
convertedLines.push_back ( "\"classname\" \"light\"\n" );
|
convertedLines.push_back ( "\"classname\" \"light\"\n" );
|
||||||
// coordinates reordered to x, z, y
|
// coordinates reordered to x, z, y
|
||||||
std::stringstream positionStream;
|
std::stringstream positionStream;
|
||||||
@ -662,12 +655,6 @@ EntityConverter::convertPointLight(const std::vector<std::string> &lines) const
|
|||||||
convertedLines.push_back (colorStream.str() );
|
convertedLines.push_back (colorStream.str() );
|
||||||
|
|
||||||
return convertedLines;
|
return convertedLines;
|
||||||
}
|
|
||||||
else {
|
|
||||||
throw std::runtime_error(
|
|
||||||
makeErrorMessage( "error: PointLight entity requires position coordinates", lines ));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user