Moved triggers into compositions.

This commit is contained in:
Steffen Fündgens 2014-12-16 13:46:49 +01:00
parent d91d5e2028
commit cb3ccb3668
3 changed files with 124 additions and 97 deletions

View File

@ -10,6 +10,16 @@
<idGreen>1</idGreen>
<idBlue>5</idBlue>
<typeID>20</typeID>
<trigger>
<name>-</name>
<xPosition>0.0</xPosition>
<yPosition>0.0</yPosition>
<zPosition>0.0</zPosition>
<distance>1.0</distance>
<isBiggerThan>false</isBiggerThan>
<objectNum>1</objectNum>
<functionPointer>-</functionPointer>
</trigger>
</composition>
<composition>
@ -19,11 +29,21 @@
<zRot>0.0</zRot>
<manualPos>false</manualPos>
<xPos>5.500000</xPos>
<yOffset>1.0</yOffset>
<yOffset>0.0</yOffset>
<zPos>-5.500000</zPos>
<idGreen>1</idGreen>
<idBlue>4</idBlue>
<typeID>40</typeID>
<trigger>
<name>-</name>
<xPosition>0.0</xPosition>
<yPosition>0.0</yPosition>
<zPosition>0.0</zPosition>
<distance>1.0</distance>
<isBiggerThan>false</isBiggerThan>
<objectNum>1</objectNum>
<functionPointer>-</functionPointer>
</trigger>
</composition>
<composition>
@ -38,6 +58,16 @@
<idGreen>1</idGreen>
<idBlue>3</idBlue>
<typeID>85</typeID>
<trigger>
<name>-</name>
<xPosition>0.0</xPosition>
<yPosition>0.0</yPosition>
<zPosition>0.0</zPosition>
<distance>1.0</distance>
<isBiggerThan>false</isBiggerThan>
<objectNum>1</objectNum>
<functionPointer>-</functionPointer>
</trigger>
</composition>
<composition>
@ -47,11 +77,21 @@
<zRot>0.0</zRot>
<manualPos>false</manualPos>
<xPos>-1.500000</xPos>
<yOffset>1.0</yOffset>
<yOffset>0.0</yOffset>
<zPos>-4.500000</zPos>
<idGreen>1</idGreen>
<idBlue>2</idBlue>
<typeID>40</typeID>
<trigger>
<name>-</name>
<xPosition>0.0</xPosition>
<yPosition>0.0</yPosition>
<zPosition>0.0</zPosition>
<distance>1.0</distance>
<isBiggerThan>false</isBiggerThan>
<objectNum>1</objectNum>
<functionPointer>-</functionPointer>
</trigger>
</composition>
<composition>
@ -61,11 +101,21 @@
<zRot>0.0</zRot>
<manualPos>false</manualPos>
<xPos>-4.500000</xPos>
<yOffset>1.0</yOffset>
<yOffset>0.0</yOffset>
<zPos>1.500000</zPos>
<idGreen>1</idGreen>
<idBlue>1</idBlue>
<typeID>40</typeID>
<trigger>
<name>-</name>
<xPosition>0.0</xPosition>
<yPosition>0.0</yPosition>
<zPosition>0.0</zPosition>
<distance>1.0</distance>
<isBiggerThan>false</isBiggerThan>
<objectNum>1</objectNum>
<functionPointer>-</functionPointer>
</trigger>
</composition>
<ambientLight>
@ -94,29 +144,3 @@
<skydome>
<texture>skydome.png</texture>
</skydome>
<trigger>
<name>bla</name>
<xPosition>25.0</xPosition>
<yPosition>14.0</yPosition>
<zPosition>5.5</zPosition>
<distance>5.0</distance>
<isBiggerThan>false</isBiggerThan>
<idGreen>1</idGreen>
<idBlue>5</idBlue>
<objectNum>0</objectNum>
<functionPointer>0</functionPointer>
</trigger>
<trigger>
<name>-</name>
<xPosition>0.0</xPosition>
<yPosition>0.0</yPosition>
<zPosition>0.0</zPosition>
<distance>1.0</distance>
<isBiggerThan>false</isBiggerThan>
<idGreen>0</idGreen>
<idBlue>0</idBlue>
<objectNum>0</objectNum>
<functionPointer>-</functionPointer>
</trigger>

View File

@ -30,7 +30,7 @@ Converter::Converter(std::string level){
std::string backupXML = "../Levels/ObjectSetups/BackupLevel" + level + ".xml";
std::ifstream src(xmlFile, std::ios::binary);
std::ofstream dst(backupXML, std::ios::binary);
dst << src.rdbuf();
//Load the Level xml file
nextID.push_back(1);
@ -95,41 +95,8 @@ Converter::Converter(std::string level){
doc->InsertEndChild(fogColour);
doc->InsertEndChild(directionalLight);
doc->InsertEndChild(skydome);
//Create a Dummy-trigger
XMLElement* trigger = doc->NewElement("trigger");
doc->InsertEndChild(trigger);
XMLElement* name = doc->NewElement("name");
XMLElement* xPosition = doc->NewElement("xPosition");
XMLElement* yPosition = doc->NewElement("yPosition");
XMLElement* zPosition = doc->NewElement("zPosition");
XMLElement* distance = doc->NewElement("distance");
XMLElement* isBiggerThan = doc->NewElement("isBiggerThan");
XMLElement* idGreen = doc->NewElement("idGreen");
XMLElement* idBlue = doc->NewElement("idBlue");
XMLElement* objectNum = doc->NewElement("objectNum");
XMLElement* functionPointer = doc->NewElement("functionPointer");
name->SetText("-");
xPosition->SetText("0.0");
yPosition->SetText("0.0");
zPosition->SetText("0.0");
distance->SetText("1.0");
isBiggerThan->SetText("false");
idGreen->SetText("0");
idBlue->SetText("0");
objectNum->SetText("1");
functionPointer->SetText("-");
trigger->InsertEndChild(name);
trigger->InsertEndChild(xPosition);
trigger->InsertEndChild(yPosition);
trigger->InsertEndChild(zPosition);
trigger->InsertEndChild(distance);
trigger->InsertEndChild(isBiggerThan);
trigger->InsertEndChild(idGreen);
trigger->InsertEndChild(idBlue);
trigger->InsertEndChild(objectNum);
trigger->InsertEndChild(functionPointer);
}else{
dst << src.rdbuf();
XMLElement* thisComposition = doc->FirstChildElement("composition");
int idGreen, idBlue;
for(; thisComposition; thisComposition=thisComposition->NextSiblingElement("composition")){
@ -189,6 +156,39 @@ std::vector<int> Converter::newComposition(int type, float posX, float posZ){
newComposition->InsertFirstChild(xRot);
newComposition->InsertFirstChild(scale);
//Create a Dummy-trigger
XMLElement* trigger = doc->NewElement("trigger");
newComposition->InsertEndChild(trigger);
XMLElement* name = doc->NewElement("name");
XMLElement* xPosition = doc->NewElement("xPosition");
XMLElement* yPosition = doc->NewElement("yPosition");
XMLElement* zPosition = doc->NewElement("zPosition");
XMLElement* distance = doc->NewElement("distance");
XMLElement* isBiggerThan = doc->NewElement("isBiggerThan");
XMLElement* objectNum = doc->NewElement("objectNum");
XMLElement* functionPointer = doc->NewElement("functionPointer");
//XMLElement* targetIdGreen = doc->NewElement("targetIdGreen");
//XMLElement* targetIdBlue = doc->NewElement("targetIdBlue");
name->SetText("-");
xPosition->SetText("0.0");
yPosition->SetText("0.0");
zPosition->SetText("0.0");
distance->SetText("1.0");
isBiggerThan->SetText("false");
objectNum->SetText("1");
functionPointer->SetText("-");
//targetIdGreen->SetText("0");
//targetIdBlue->SetText("0");
trigger->InsertEndChild(name);
trigger->InsertEndChild(xPosition);
trigger->InsertEndChild(yPosition);
trigger->InsertEndChild(zPosition);
trigger->InsertEndChild(distance);
trigger->InsertEndChild(isBiggerThan);
trigger->InsertEndChild(objectNum);
trigger->InsertEndChild(functionPointer);
//trigger->InsertEndChild(targetIdGreen);
//trigger->InsertEndChild(targetIdBlue);
std::vector<int> ret = nextID;
nextID[1] += 1;
if (nextID[1] == 255){

View File

@ -270,7 +270,9 @@ void Level::load() {
}//iterating over all compositions in Level.xml
//load triggers
XMLElement* xmlTrigger = doc->FirstChildElement("trigger");
XMLElement* composition = doc->FirstChildElement("composition");
for(; composition; composition=composition->NextSiblingElement("composition")){
XMLElement* xmlTrigger = composition->FirstChildElement("trigger");
for(; xmlTrigger; xmlTrigger=xmlTrigger->NextSiblingElement("trigger")){
const char* charName = xmlTrigger->FirstChildElement("name")->GetText();
if(charName == NULL){
@ -288,8 +290,8 @@ void Level::load() {
errorCheck(xmlTrigger->FirstChildElement("distance")->QueryFloatText(&distance));
position = glm::vec3(xPos, yPos, zPos);
errorCheck(xmlTrigger->FirstChildElement("isBiggerThan")->QueryBoolText(&isBigger));
errorCheck(xmlTrigger->FirstChildElement("idGreen")->QueryIntText(&idGreen));
errorCheck(xmlTrigger->FirstChildElement("idBlue")->QueryIntText(&idBlue));
errorCheck(composition->FirstChildElement("idGreen")->QueryIntText(&idGreen));
errorCheck(composition->FirstChildElement("idBlue")->QueryIntText(&idBlue));
errorCheck(xmlTrigger->FirstChildElement("objectNum")->QueryIntText(&objectNum));
Object* object=0;
for (unsigned int i = 0; i<objectIdentifiers.size(); i++){
@ -308,6 +310,7 @@ void Level::load() {
}
}
}
}
void Level::render(ACGL::OpenGL::SharedShaderProgram shader, bool lightingPass,
glm::mat4* viewProjectionMatrix, std::vector<glm::mat4>* shadowVPs) {