Exemple #1
0
bool DynamicWorldLoader::Parse (iDocumentNode* child, iPcDynamicWorld* dynworld)
{
  csStringID id = xmltokens.Request (child->GetValue ());
  switch (id)
  {
    case XMLTOKEN_CURVE:
      if (!ParseCurve (child, dynworld)) return false;
      break;
    case XMLTOKEN_ROOM:
      if (!ParseRoom (child, dynworld)) return false;
      break;
    case XMLTOKEN_FOLIAGEDENSITY:
      if (!ParseFoliageDensity (child, dynworld)) return false;
      break;
    default:
      return false;
  }
  return true;
}
StageState::StageState() : tileSet(152,76), tileMap("map/tileMap.txt", &tileSet),
moneyText("font/enhanced_dot_digital-7.ttf", 40, Text::TEXT_BLENDED, "-", WHITE, 100), occupancyMap(tileMap.GetWidth(), tileMap.GetWidth()), sheet(PERMONKEY), subGuiEdit("img/icons/door.png", "img/icons/wall.jpg"),
okTile("img/tileset/tile_grama_1.png"), noTile("img/tileset/tile_grama_2.png"),
music("music/can_o do vinho.ogg"), costText("font/Deltoid-sans.ttf", 35, Text::TEXT_BLENDED, "-", RED),
click("music/click_interface.wav"){
	cMusic = 0;
	music.Play(1);
	cout << music.isOverInd << endl;
	instance = this;
	string file, file2, tile, line, endLine("\n"), initFile("img/tileset/");
	FILE *tileFile, *objectFile;
	Point roomBegin, roomEnd;
	ifstream objFile, roomFile;
	char c;
	vector<string> objectList, roomList;

	obstacleMap = occupancyMap.Update(&tileMap, &objectArray);

	creationTimer.Restart();

	rType = CORRIDOR;

	roomBegin.SetPoint(0, 0);
	roomEnd.SetPoint(25, 25);

	action = NONE;


	bg.Open("img/fundo_espaco.png");

	//Room *newRoom = new Room(roomBegin, roomEnd, &tileMap, &objectArray, roomArray.size(), rType);
	//roomArray.emplace_back(newRoom);

	file = "img/tileset/tilelist.txt";
	tileFile = fopen(file.c_str(), "r");
    if(tileFile == NULL)
        exit(EXIT_FAILURE);

    while (!feof(tileFile)) {
        fscanf(tileFile, "%c", &c);
        line = c;
        while(line.find(endLine)== string::npos){
            fscanf(tileFile, "%c", &c);
            line = line + c;
        }

        line.pop_back();
        tile = initFile+line;
        if(tile.compare(initFile)!= 0)
            tileSet.Open(tile);
    }
	fclose(tileFile);
	cout << "Aqui inicio" << endl;
	switch (StateData::langInd){
	case 0:
		objFile.open("obj/pt-br-objects.txt");
		break;
	case 1:
		objFile.open("obj/en-objects.txt");
		break;
	}
	cout << "Aqui inicio" << endl;
	

	while (!objFile.eof()){
		getline(objFile, file);
		objectList.emplace_back(file);
	}

	
	for (int i = 0; i < objectList.size(); i++){
		cout << objectList[i] << endl;
	}

	cout << "Ended" << endl;

	ParseObject(objectList);

	roomFile.open("room/rooms.txt");

	while (!roomFile.eof()){
		getline(roomFile, file);
		roomList.emplace_back(file);
	}


	for (int i = 0; i < roomList.size(); i++){
		cout << roomList[i] << endl;
	}

	ParseRoom(roomList);

	Point monkeyTile(4, 4);
	Point teste(4, 4);
	monkeyTile = tileMap.GetTileCenter(monkeyTile);
	Permonkey* pM = new Permonkey(monkeyTile.x, monkeyTile.y, teste, tileMap, objList);
	objectArray.emplace_back(pM);

	data = new StateData();
	data->money = 5000;
	data->fame = 128;
	moneyText.SetText(to_string(data->money));
	moneyText.SetPos(20, 20, false, false);
}