Changed position default to 0,0,0 for all objects to reflect reflex map file generation

This commit is contained in:
suhrke 2017-07-11 23:13:18 -07:00
parent 11f8989558
commit 32e6e092c2

View File

@ -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;
@ -663,12 +656,6 @@ EntityConverter::convertPointLight(const std::vector<std::string> &lines) const
return convertedLines; return convertedLines;
} }
else {
throw std::runtime_error(
makeErrorMessage( "error: PointLight entity requires position coordinates", lines ));
}
}