Untitled

 avatar
unknown
plain_text
a month ago
48 kB
5
Indexable
#include<SFML/Graphics.hpp>
#include<SFML/Audio.hpp>
#include<vector>
#include <sstream>
#include <fstream>
#include<string>
#include <iomanip>
#include<iostream>

using namespace std;
using namespace sf;

const int MAIN = 4, SETTINGS = 4, PAUSE = 4, CREDIT = 8, WIN = 5, LOSE = 3, TIMEOUT = 3, MAP = 6;
struct menus {

	Font font;

	Text  menutxt[MAIN], settingstxt[SETTINGS], creditxt[CREDIT], pausetxt[PAUSE], wintxt[WIN], losetxt[LOSE], timeouttxt[TIMEOUT], maptxt[MAP];
	Texture maintexture, maptexture, menustexture, backtexture, back2texture, back3texture, back4texture;
	Sprite mainbackground, mapbackground, menusbackground, back, back2, back3, back4;

	string
		mainstr[MAIN] = { "Play","Settings","Credit","Exit" },
		settingstr[SETTINGS] = { "Sound up","Sound down","Mute","Back" },
		creditstr[CREDIT] = { "Menna tullah sherif Mohamed Mohamed Ibrahim","Malak Mohamed Ahmed Yassin Ahmed Nassar ",
		"Mennahtullah Ahmed Mohamed Yussef Fayed","Nada Ahmed Mohamed Salah El-Deen Ahmed",
		"Naema Ahmed Yahia Mohamed Taha","Nada Ahmed El-Sayed Abd-Elraouf",
		"Jana Sameh Abdelazim Mohammed","Back" },
		pausestr[PAUSE] = { "Sound on","Mute","Map","Continue" },
		winstr[WIN] = { "WIN!","Score","Retry","Map","Next" },
		losestr[LOSE] = { "Sheep Lose!","Retry","Map" },
		timeoutstr[TIMEOUT] = { "Time is Out!","Retry","Map" },
		mapstr[MAP] = { "The FOREST","On The ROOFS","The MILL","The GIANT WALLS","The BARN","Back" };

}menu;

struct Gsound {

	SoundBuffer winbuff, losebuff, walkbuff, runbuff, jump1buff, jump2buff, jump3buff, fallbuff, menubuff, shaunbuff, timmybuff, shirleybuff, introbuff, endbuff;//complete names
	Sound win, lose, walk, run, jumpshirley, jumpshaun, jumptimmy, menu, shaun, timmy, shirley, intro, end;

	bool winning = true, losing = true, walking = false, running = false,
		shirleyjumping = false, shaunjumping = false, timmyjumping = false,
		menusound = true, introsound = true, endsound = true,
		shaunvoice = false, shirleyvoice = false, timmyvoice = false;

}soundgeneral;

struct States {

	bool isdie = false, iswin = false, istimeout = false;

}state;

struct Forest {
	Texture Level1_background_txt, Level4_background_txt, Hay_lv1_txt, Arrow_sign_lvl1_txt, LongStick_lvl1_txt, ShortStick_lvl1_txt, Stone_wall_lvl1_txt, Floating_pillar_lvl1_txt;
	Sprite Level1_background_sp, Level4_background_sp, Hay_lvl1_sp, Arrow_sign_lvl1_sp, LongStick_lvl1_sp, ShortStick_lvl1_sp, Stone_wall_lvl1_sp, Floating_pillar_lvl1_sp;
	SoundBuffer haybuff, woodbuff, backbuff;
	Sound hayfall, wood, backforest;

	bool hayfalling = false, woodfalling = false, forestsound = true;

}soundforest;

struct OnTheRoof {
	Texture lvl2_background_txt, home_lvl2_txt, bridge_lvl2_txt, wood_lvl2_txt, sign_lvl2_txt, box_lvl2_txt;
	Sprite lvl2_background_sp, home_lvl2_sp, bridge_lvl2_sp, wood_lvl2_sp, sign_lvl2_sp, box_lvl2_sp;
	SoundBuffer moveobjectbuff, jumpwoodbuff, walkwoodbuff, back2buff;
	Sound objectmove, jumpwood, walkwood, backontheroof;

	bool objectmoving = false, woodjumping = false, woodwalking = false, ontheroofsound = true;

}soundontheroof;

struct Mill {
	Texture Background_lvl3_txt, Tunnel_lvl3_txt, Blue_lvl3_txt, Wooden_lvl3_txt, Rock_lvl3_txt,
		Button_lvl3_txt, Box_lvl3_txt, Arrow_Sign_lvl3_txt, Button2_lvl3_txt,
		Red1_lvl3_txt, Red2_lvl3_txt, Red3_lvl3_txt, Bomb_lvl3_txt;
	Sprite Background_lvl3_sp, Tunnel_lvl3_sp, Blue_lvl3_sp, Wooden_Column_lvl3_sp, RockColumn_lvl3_sp,
		Button_lvl3_sp, Box_lvl3_sp, Arrow_Sign_lvl3_sp, Button_Pressed_lvl3_sp,
		Red_Ballon1_lvl3_sp, Red_Ballon2_lvl3_sp, Red_Ballon3_lvl3_sp, Bomb_lvl3_sp;
	SoundBuffer ballonbuff, timerbombbuff, bombbuff, tunnelfallbuff, tunnelwalkbuff, boxbuff, buttonbuff, doorbuff, back3buff;
	Sound ballon, timerbomb, bomb, tunnelfall, tunnelwalk, button, box, door, backmill;

	bool ballonsound = false, isballonbomb = false, isbombed = false,
		tunnelfalling = false, tunnelwalking = false, boxmoving = false,
		buttonispressed = false, buttonnotpressed = false, dooropen = false, millsound = true;

}soundmill;

struct TheGiantWalls {//back theme change //check the theme
	Texture Level4_background_txt, Button_lv4_txt, Button2_lv4_txt, Arrow_sign_lvl4_txt, Swichable_Barrier_lvl4_txt, Car_Tire_lvl4_txt, Stone_Pillar_lvl4_txt, Stick_lvl4_txt;
	Sprite Level4_background_sp, Button_lv4_sp, Button2_lv4_sp, Arrow_sign_lvl4_sp, Swichable_Barrier_lvl4_sp, Car_Tire_lvl4_sp, Stone_Pillar_lvl4_sp, Stick_lvl4_sp;
	SoundBuffer doorbuff, tirebuff, buttonbuff, tirefallbuff, logbuff, logwalkbuff, logjumpbuff, back4buff;
	Sound door, tire, button, tirefall, log, logwalk, logjump, backgiantwalls;

	bool doorsound = false, tirerolling = false, tirefalling = false, logmoving = false, buttonpressed = false, giantwallssound = true;

}soundgiantwalls;

struct Barn {
	Texture background_level5_txt, sign_lvl5_txt, stonenight_lvl5_txt, stick_lvl5_txt, button_lvl5_txt, cage_lvl5_txt;
	Sprite background_level5_sp, sign_lvl5_sp, stonenight_lvl5_sp, stick_lvl5_sp, button_lvl5_sp, cage_lvl5_sp;
	Sprite shadowSign, shadowStick, shadowCage;
	SoundBuffer woodjumpbuff, prisonbuff, buttonbuff, foxbuff, barndoorbuff, dangerbuff, back5buff;
	Sound woodjump, prison, button, fox, barndoor, danger, backbarn;

	bool prisonfalling = false, woodjumping = false,
		buttonispressed = false, foxsound = false,
		barndoorsound = false, isdanger = false,
		barnsound = true;

}soundbarn;

int Windows[11] = { 0,1,2,3,4,5,6,7,8,9,10 }, currentwindow = 0, selected = 0, selectedlvl = 0, selectedop = 2;//0=main,1=map,2=lvl,3=settings,4=credit,5=pause,6=win,7=lose,8=timeout,9=intro,10=ending
Event event;

void loadmenus(RenderWindow& window) {

	if (!menu.font.loadFromFile("assets\\menu background\\Lora-SemiBoldItalic.ttf"))
		cout << "Load Failed";

	menu.maintexture.loadFromFile("assets\\menu background\\main.jpeg");
	menu.maptexture.loadFromFile("assets\\menu background\\mapbackground.jpeg");
	menu.menustexture.loadFromFile("assets\\menu background\\menusbackground.png");
	menu.backtexture.loadFromFile("assets\\menu background\\back button.jpeg");
	menu.back2texture.loadFromFile("assets\\menu background\\back button2.jpeg");
	menu.back3texture.loadFromFile("assets\\menu background\\back button2.jpeg");
	menu.back4texture.loadFromFile("assets\\menu background\\back button4.jpeg");

	Vector2u mainSize = menu.maintexture.getSize(), mapSize = menu.maptexture.getSize(), menusSize = menu.menustexture.getSize(), backSize = menu.backtexture.getSize();
	Vector2u windowSize = window.getSize();

	float mainScaleX = (float)windowSize.x / mainSize.x, mapScaleX = (float)windowSize.x / mapSize.x, menusScaleX = (float)windowSize.x / menusSize.x, backScaleX = (float)windowSize.x / backSize.x;
	float mainScaleY = (float)windowSize.y / mainSize.y, mapScaleY = (float)windowSize.y / mapSize.y, menusScaleY = (float)windowSize.y / menusSize.y, backScaleY = (float)windowSize.y / backSize.y;

	menu.mainbackground.setTexture(menu.maintexture);
	menu.mapbackground.setTexture(menu.maptexture);
	menu.menusbackground.setTexture(menu.menustexture);
	menu.back.setTexture(menu.backtexture);
	menu.back2.setTexture(menu.back2texture);
	menu.back3.setTexture(menu.back3texture);
	menu.back4.setTexture(menu.back4texture);

	menu.mainbackground.setScale(mainScaleX, mainScaleY);
	menu.mapbackground.setScale(mapScaleX, mapScaleY);
	menu.menusbackground.setScale(menusScaleX, menusScaleY);
	menu.back.setScale(backScaleX, backScaleY);
	menu.back2.setScale(backScaleX, backScaleY);
	menu.back3.setScale(backScaleX, backScaleY);
	menu.back4.setScale(backScaleX, backScaleY);


	for (int i = 0; i < MAIN; i++) {
		menu.menutxt[i].setString(menu.mainstr[i]);
		menu.menutxt[i].setFont(menu.font);
		menu.menutxt[i].setCharacterSize(50);
		menu.menutxt[i].setPosition(600, 260 + 90 * i);
		menu.menutxt[i].setFillColor(Color::White);
	}
	menu.menutxt[0].setFillColor(Color::Black);

	for (int i = 0; i < SETTINGS; i++) {
		menu.settingstxt[i].setString(menu.settingstr[i]);
		menu.settingstxt[i].setFont(menu.font);
		menu.settingstxt[i].setCharacterSize(50);
		menu.settingstxt[i].setPosition(520, 280 + 50 * i);
		menu.settingstxt[i].setFillColor(Color::White);
	}
	menu.settingstxt[3].setPosition(580, 550);
	menu.settingstxt[0].setFillColor(Color::Black);

	for (int i = 0; i < CREDIT; i++) {
		menu.creditxt[i].setString(menu.creditstr[i]);
		menu.creditxt[i].setFont(menu.font);
		menu.creditxt[i].setCharacterSize(20);
		menu.creditxt[i].setPosition(420, 250 + 30 * i);
		menu.creditxt[i].setFillColor(Color::White);

	}
	menu.creditxt[7].setPosition(580, 550);
	menu.creditxt[7].setCharacterSize(50);

	for (int i = 0; i < PAUSE; i++) {
		menu.pausetxt[i].setString(menu.pausestr[i]);
		menu.pausetxt[i].setFont(menu.font);
		menu.pausetxt[i].setCharacterSize(50);
		menu.pausetxt[i].setFillColor(Color::White);

	}
	menu.pausetxt[0].setPosition(540, 240);
	menu.pausetxt[1].setPosition(580, 300);
	menu.pausetxt[2].setPosition(590, 365);
	menu.pausetxt[3].setPosition(535, 430);
	menu.pausetxt[0].setFillColor(Color::Black);

	for (int i = 0; i < WIN; i++) {
		menu.wintxt[i].setString(menu.winstr[i]);
		menu.wintxt[i].setFont(menu.font);
		menu.wintxt[i].setCharacterSize(50);
		menu.wintxt[i].setFillColor(Color::White);

	}
	menu.wintxt[0].setPosition(580, 240);
	menu.wintxt[1].setPosition(580, 300);
	menu.wintxt[2].setPosition(450, 365);
	menu.wintxt[3].setPosition(690, 365);
	menu.wintxt[4].setPosition(590, 430);
	menu.wintxt[2].setFillColor(Color::Black);

	for (int i = 0; i < LOSE; i++) {
		menu.losetxt[i].setString(menu.losestr[i]);
		menu.losetxt[i].setFont(menu.font);
		menu.losetxt[i].setCharacterSize(50);
		menu.losetxt[i].setFillColor(Color::White);
	}
	menu.losetxt[0].setPosition(500, 250);
	menu.losetxt[1].setPosition(575, 330);
	menu.losetxt[2].setPosition(575, 380);
	menu.losetxt[1].setFillColor(Color::Black);

	for (int i = 0; i < TIMEOUT; i++) {
		menu.timeouttxt[i].setString(menu.timeoutstr[i]);
		menu.timeouttxt[i].setFont(menu.font);
		menu.timeouttxt[i].setCharacterSize(50);
		//menu.timeouttxt[i].setPosition(500, 200 + 100 * i);
		menu.timeouttxt[i].setFillColor(Color::White);

	}
	menu.timeouttxt[0].setPosition(500, 250);
	menu.timeouttxt[1].setPosition(575, 330);
	menu.timeouttxt[2].setPosition(575, 380);
	menu.timeouttxt[1].setFillColor(Color::Black);

	for (int i = 0; i < MAP; i++) {
		menu.maptxt[i].setString(menu.mapstr[i]);
		menu.maptxt[i].setFont(menu.font);
		menu.maptxt[i].setCharacterSize(30);
		menu.maptxt[i].setFillColor(Color::White);

	}
	menu.maptxt[0].setPosition(50, 560);
	menu.maptxt[1].setPosition(300, 600);
	menu.maptxt[2].setPosition(600, 560);
	menu.maptxt[3].setPosition(800, 610);
	menu.maptxt[4].setPosition(1100, 560);
	menu.maptxt[5].setPosition(600, 630);
	menu.maptxt[0].setFillColor(Color::Black);

}

void loadgeneral(RenderWindow& window) {

	soundgeneral.winbuff.loadFromFile("assets\\general\\win approved.wav");
	soundgeneral.losebuff.loadFromFile("assets\\general\\lose approved.wav");
	soundgeneral.walkbuff.loadFromFile("assets\\general\\walk approved.wav");
	soundgeneral.runbuff.loadFromFile("assets\\general\\run approved.wav");
	soundgeneral.jump1buff.loadFromFile("assets\\general\\shirley jump.wav");
	soundgeneral.jump2buff.loadFromFile("assets\\general\\shaun jump.wav");
	soundgeneral.jump3buff.loadFromFile("assets\\general\\timmy jump.wav");
	soundgeneral.menubuff.loadFromFile("assets\\general\\menu.ogg");
	soundgeneral.shaunbuff.loadFromFile("assets\\general\\shaun approved.wav");
	soundgeneral.timmybuff.loadFromFile("assets\\general\\timmy approved.wav");
	soundgeneral.shirleybuff.loadFromFile("assets\\general\\shirley.wav");
	soundgeneral.introbuff.loadFromFile("assets\\general\\intro approved.ogg");
	soundgeneral.endbuff.loadFromFile("assets\\general\\end.ogg");

	soundgeneral.win.setBuffer(soundgeneral.winbuff);
	soundgeneral.lose.setBuffer(soundgeneral.losebuff);
	soundgeneral.walk.setBuffer(soundgeneral.walkbuff);
	soundgeneral.run.setBuffer(soundgeneral.runbuff);
	soundgeneral.jumpshirley.setBuffer(soundgeneral.jump1buff);
	soundgeneral.jumpshaun.setBuffer(soundgeneral.jump2buff);
	soundgeneral.jumptimmy.setBuffer(soundgeneral.jump3buff);
	soundgeneral.menu.setBuffer(soundgeneral.menubuff);
	soundgeneral.shaun.setBuffer(soundgeneral.shaunbuff);
	soundgeneral.timmy.setBuffer(soundgeneral.timmybuff);
	soundgeneral.shirley.setBuffer(soundgeneral.shirleybuff);
	soundgeneral.intro.setBuffer(soundgeneral.introbuff);
	soundgeneral.end.setBuffer(soundgeneral.endbuff);

	soundgeneral.win.setVolume(50.f);
	soundgeneral.lose.setVolume(50.f);
	soundgeneral.walk.setVolume(50.f);
	soundgeneral.run.setVolume(50.f);
	soundgeneral.jumpshirley.setVolume(50.f);
	soundgeneral.jumpshaun.setVolume(50.f);
	soundgeneral.jumptimmy.setVolume(50.f);
	soundgeneral.menu.setVolume(50.f);
	soundgeneral.shaun.setVolume(50.f);
	soundgeneral.timmy.setVolume(50.f);
	soundgeneral.shirley.setVolume(50.f);
	soundgeneral.intro.setVolume(80.f);
	soundgeneral.end.setVolume(80.f);

}

void loadforest(RenderWindow& window) {
	soundforest.Level1_background_txt.loadFromFile("assets\\level 1 jungle\\Level 1 background.jpg");
	soundforest.Level1_background_sp.setTexture(soundforest.Level1_background_txt);
	soundforest.haybuff.loadFromFile("assets\\level 1 forest\\wheat fall.wav");
	soundforest.woodbuff.loadFromFile("assets\\level 1 forest\\wood.wav");
	soundforest.backbuff.loadFromFile("assets\\level 1 forest\\Forest sound.ogg");
	soundforest.Hay_lv1_txt.loadFromFile("assets\\level 1 jungle\\Hay.png");
	soundforest.Arrow_sign_lvl1_txt.loadFromFile("assets\\level 1 jungle\\Arrow direction sign.png");
	soundforest.LongStick_lvl1_txt.loadFromFile("assets\\level 1 jungle\\long stick.png");
	soundforest.LongStick_lvl1_sp.setTexture(soundforest.LongStick_lvl1_txt);
	soundforest.LongStick_lvl1_sp.setScale(0.25f, 0.21f);
	soundforest.LongStick_lvl1_sp.setPosition(725, 440);
	soundforest.Arrow_sign_lvl1_sp.setTexture(soundforest.Arrow_sign_lvl1_txt);
	soundforest.Arrow_sign_lvl1_sp.setScale(0.098f, 0.098f);
	soundforest.Arrow_sign_lvl1_sp.setPosition(1000, 380);
	soundforest.Hay_lvl1_sp.setTexture(soundforest.Hay_lv1_txt);
	soundforest.Hay_lvl1_sp.setScale(1.0f, 0.9f);
	soundforest.Hay_lvl1_sp.setPosition(627, 330);
	soundforest.ShortStick_lvl1_txt.loadFromFile("assets\\level 1 jungle\\short stick.png");
	soundforest.ShortStick_lvl1_sp.setTexture(soundforest.ShortStick_lvl1_txt);
	soundforest.ShortStick_lvl1_sp.setOrigin(0, 0);
	soundforest.ShortStick_lvl1_sp.setPosition(695, 440);
	soundforest.Stone_wall_lvl1_txt.loadFromFile("assets\\level 1 jungle\\Stone wall.png");

	soundforest.Stone_wall_lvl1_sp.setTexture(soundforest.Stone_wall_lvl1_txt);
	soundforest.Stone_wall_lvl1_sp.setScale(1.05f, 1.0f);
	soundforest.Stone_wall_lvl1_sp.setPosition(380, 510);
	soundforest.Floating_pillar_lvl1_txt.loadFromFile("assets\\level 1 jungle\\floating pillar.png");
	soundforest.Floating_pillar_lvl1_sp.setTexture(soundforest.Floating_pillar_lvl1_txt);
	soundforest.Floating_pillar_lvl1_sp.setScale(0.9f, 0.9f);
	soundforest.Floating_pillar_lvl1_sp.setPosition(776, 437.2);

	Vector2u textureSize = soundforest.Level1_background_txt.getSize();
	Vector2u windowSize = window.getSize();

	float scaleX = (float)windowSize.x / textureSize.x;
	float scaleY = (float)windowSize.y / textureSize.y;

	soundforest.Level1_background_sp.setScale(scaleX, scaleY);
	soundforest.hayfall.setBuffer(soundforest.haybuff);
	soundforest.wood.setBuffer(soundforest.woodbuff);
	soundforest.backforest.setBuffer(soundforest.backbuff);

	soundforest.hayfall.setVolume(50.f);
	soundforest.wood.setVolume(50.f);
	soundforest.backforest.setVolume(80.f);

}

void loadontheroof(RenderWindow& window) {
	soundontheroof.lvl2_background_txt.loadFromFile("assets\\level2\\background.png");
	soundontheroof.lvl2_background_sp.setTexture(soundontheroof.lvl2_background_txt);

	Vector2u textureSize = soundontheroof.lvl2_background_txt.getSize();
	Vector2u windowSize = window.getSize();

	float scalex = (float)windowSize.x / textureSize.x;
	float scaley = (float)windowSize.y / textureSize.y;
	soundontheroof.lvl2_background_sp.setScale(scalex, scaley);

	soundontheroof.home_lvl2_txt.loadFromFile("assets\\level2\\home.png");

	soundontheroof.home_lvl2_sp.setTexture(soundontheroof.home_lvl2_txt);
	soundontheroof.home_lvl2_sp.setScale(0.97f, 0.97f);
	soundontheroof.home_lvl2_sp.setPosition(840, 450);

	soundontheroof.bridge_lvl2_txt.loadFromFile("assets\\level2\\bridge.png");

	soundontheroof.bridge_lvl2_sp.setTexture(soundontheroof.bridge_lvl2_txt);
	soundontheroof.bridge_lvl2_sp.setScale(0.7f, 0.7f);
	soundontheroof.bridge_lvl2_sp.setPosition(30, 475);

	soundontheroof.wood_lvl2_txt.loadFromFile("assets\\level2\\wood.png");

	soundontheroof.wood_lvl2_sp.setTexture(soundontheroof.wood_lvl2_txt);
	soundontheroof.wood_lvl2_sp.setScale(0.3f, 0.3f);
	soundontheroof.wood_lvl2_sp.setPosition(235, 325);

	soundontheroof.sign_lvl2_txt.loadFromFile("assets\\level2\\sign.png");

	soundontheroof.sign_lvl2_sp.setTexture(soundontheroof.sign_lvl2_txt);
	soundontheroof.sign_lvl2_sp.setScale(0.35f, 0.345f);
	soundontheroof.sign_lvl2_sp.setPosition(1100, 344);

	soundontheroof.box_lvl2_txt.loadFromFile("assets\\level2\\box.png");

	soundontheroof.box_lvl2_sp.setTexture(soundontheroof.box_lvl2_txt);
	soundontheroof.box_lvl2_sp.setScale(0.25f, 0.25f);
	soundontheroof.box_lvl2_sp.setPosition(550, 380);

	soundontheroof.moveobjectbuff.loadFromFile("assets\\level 2 on the roof\\wood slide.wav");
	soundontheroof.jumpwoodbuff.loadFromFile("assets\\level 2 on the roof\\wood.wav");
	soundontheroof.back2buff.loadFromFile("assets\\level 2 on the roof\\On The Roof.ogg");
	soundontheroof.walkwoodbuff.loadFromFile("assets\\level 2 on the roof\\wood walk.wav");

	soundontheroof.objectmove.setBuffer(soundontheroof.moveobjectbuff);
	soundontheroof.jumpwood.setBuffer(soundontheroof.jumpwoodbuff);
	soundontheroof.backontheroof.setBuffer(soundontheroof.back2buff);
	soundontheroof.walkwood.setBuffer(soundontheroof.walkwoodbuff);

	soundontheroof.objectmove.setVolume(50.f);
	soundontheroof.jumpwood.setVolume(50.f);
	soundontheroof.walkwood.setVolume(50.f);
	soundontheroof.backontheroof.setVolume(80.f);
}

void loadmill(RenderWindow& window) {

	soundmill.tunnelfallbuff.loadFromFile("assets\\level 3 the mill\\falling in the tunnel.wav");
	soundmill.tunnelwalkbuff.loadFromFile("assets\\level 3 the mill\\walking tunnel.wav");
	soundmill.boxbuff.loadFromFile("assets\\level 3 the mill\\wood slide.wav");
	soundmill.buttonbuff.loadFromFile("assets\\level 3 the mill\\button on.wav");
	soundmill.doorbuff.loadFromFile("assets\\level 3 the mill\\wood.wav");
	soundmill.back3buff.loadFromFile("assets\\level 3 the mill\\The mill Back.ogg");
	soundmill.ballonbuff.loadFromFile("assets\\level 3 the mill\\ballon pop.wav");
	soundmill.timerbombbuff.loadFromFile("assets\\level 3 the mill\\timer bomb.wav");
	soundmill.bombbuff.loadFromFile("assets\\level 3 the mill\\bomb exposure.wav");
	soundmill.Background_lvl3_txt.loadFromFile("assets\\background3.png");
	soundmill.Background_lvl3_sp.setTexture(soundmill.Background_lvl3_txt);
	soundmill.Background_lvl3_sp.setScale(0.8f, 0.81f);
	soundmill.Tunnel_lvl3_txt.loadFromFile("assets\\tunnel.png");
	soundmill.Tunnel_lvl3_sp.setTexture(soundmill.Tunnel_lvl3_txt);
	soundmill.Tunnel_lvl3_sp.setPosition(550, 510);
	soundmill.Tunnel_lvl3_sp.setScale(1.05, 1.05);
	soundmill.Blue_lvl3_txt.loadFromFile("assets\\blue.png");
	soundmill.Blue_lvl3_sp.setTexture(soundmill.Blue_lvl3_txt);
	soundmill.Blue_lvl3_sp.setPosition(710, 150);
	soundmill.Blue_lvl3_sp.setScale(0.33, 0.33);
	soundmill.Wooden_lvl3_txt.loadFromFile("assets\\wooden.png");
	soundmill.Wooden_Column_lvl3_sp.setTexture(soundmill.Wooden_lvl3_txt);
	soundmill.Wooden_Column_lvl3_sp.setPosition(668, 135);
	soundmill.Wooden_Column_lvl3_sp.setScale(0.34, 0.34);
	soundmill.Rock_lvl3_txt.loadFromFile("assets\\rock.png");
	soundmill.RockColumn_lvl3_sp.setTexture(soundmill.Rock_lvl3_txt);
	soundmill.RockColumn_lvl3_sp.setPosition(350, 200);
	soundmill.RockColumn_lvl3_sp.setScale(0.42, 0.42);
	soundmill.Button_lvl3_txt.loadFromFile("assets\\button.png");
	soundmill.Button_lvl3_sp.setTexture(soundmill.Button_lvl3_txt);
	soundmill.Button_lvl3_sp.setPosition(730, 492);
	soundmill.Button_lvl3_sp.setScale(0.035, 0.035);
	soundmill.Box_lvl3_txt.loadFromFile("assets\\box.png");
	soundmill.Box_lvl3_sp.setTexture(soundmill.Box_lvl3_txt);
	soundmill.Box_lvl3_sp.setPosition(540, 445);
	soundmill.Box_lvl3_sp.setScale(0.25, 0.25);
	soundmill.Arrow_Sign_lvl3_txt.loadFromFile("assets\\arrow.png");
	soundmill.Arrow_Sign_lvl3_sp.setTexture(soundmill.Arrow_Sign_lvl3_txt);
	soundmill.Arrow_Sign_lvl3_sp.setPosition(1100, 420);
	soundmill.Arrow_Sign_lvl3_sp.setScale(0.35, 0.35);

	soundmill.Button2_lvl3_txt.loadFromFile("assets\\button2.png");

	soundmill.Button_Pressed_lvl3_sp.setTexture(soundmill.Button2_lvl3_txt);
	soundmill.Button_Pressed_lvl3_sp.setPosition(1100, 420);
	soundmill.Button_Pressed_lvl3_sp.setScale(0.35, 0.35);
	soundmill.Red1_lvl3_txt.loadFromFile("assets\\red_ball.png");
	soundmill.Red_Ballon1_lvl3_sp.setTexture(soundmill.Red1_lvl3_txt);
	soundmill.Red_Ballon1_lvl3_sp.setPosition(340, 435);
	soundmill.Red_Ballon1_lvl3_sp.setScale(0.13, 0.13);
	soundmill.Red2_lvl3_txt.loadFromFile("assets\\red_ball.png");

	soundmill.Red_Ballon2_lvl3_sp.setTexture(soundmill.Red2_lvl3_txt);
	soundmill.Red_Ballon2_lvl3_sp.setPosition(295, 435);
	soundmill.Red_Ballon2_lvl3_sp.setScale(0.13, 0.13);
	soundmill.Red3_lvl3_txt.loadFromFile("assets\\red_ball.png");
	soundmill.Red_Ballon3_lvl3_sp.setTexture(soundmill.Red3_lvl3_txt);
	soundmill.Red_Ballon3_lvl3_sp.setPosition(250, 435);
	soundmill.Red_Ballon3_lvl3_sp.setScale(0.13, 0.13);
	soundmill.Bomb_lvl3_txt.loadFromFile("assets\\bomb.png");
	soundmill.Bomb_lvl3_sp.setTexture(soundmill.Bomb_lvl3_txt);
	soundmill.Bomb_lvl3_sp.setPosition(290, 580);
	soundmill.Bomb_lvl3_sp.setScale(0.1, 0.1);
	soundmill.tunnelfall.setBuffer(soundmill.tunnelfallbuff);
	soundmill.tunnelwalk.setBuffer(soundmill.tunnelwalkbuff);
	soundmill.button.setBuffer(soundmill.buttonbuff);
	soundmill.box.setBuffer(soundmill.boxbuff);
	soundmill.door.setBuffer(soundmill.doorbuff);
	soundmill.backmill.setBuffer(soundmill.back3buff);

	soundmill.tunnelfall.setVolume(50.f);
	soundmill.tunnelwalk.setVolume(50.f);
	soundmill.button.setVolume(50.f);
	soundmill.box.setVolume(50.f);
	soundmill.door.setVolume(50.f);
	soundmill.backmill.setVolume(80.f);

}

void loadthegiantwalls(RenderWindow& window) {

	soundgiantwalls.doorbuff.loadFromFile("assets\\level 4 the giant walls\\wood.wav");
	soundgiantwalls.tirebuff.loadFromFile("assets\\level 4 the giant walls\\tire roll2.wav");
	soundgiantwalls.buttonbuff.loadFromFile("assets\\level 4 the giant walls\\button on.wav");
	soundgiantwalls.logbuff.loadFromFile("assets\\level 4 the giant walls\\wood slide.wav");
	soundgiantwalls.logwalkbuff.loadFromFile("assets\\level 4 the giant walls\\wood walk.wav");
	soundgiantwalls.logjumpbuff.loadFromFile("assets\\level 4 the giant walls\\wood.wav");
	soundgiantwalls.tirefallbuff.loadFromFile("assets\\level 4 the giant walls\\tire fall.wav");
	soundgiantwalls.back4buff.loadFromFile("assets\\level 4 the giant walls\\the giant walls back.ogg");
	soundgiantwalls.Level4_background_txt.loadFromFile("assets\\level 4 the giant walls\\level 4 background.jpg");
	soundgiantwalls.Level4_background_sp.setTexture(soundgiantwalls.Level4_background_txt);

	Vector2u textureSize = soundgiantwalls.Level4_background_txt.getSize();
	Vector2u windowSize = window.getSize();

	float scaleX = (float)windowSize.x / textureSize.x;
	float scaleY = (float)windowSize.y / textureSize.y;

	soundgiantwalls.Level4_background_sp.setScale(scaleX, scaleY);

	soundgiantwalls.Button_lv4_txt.loadFromFile("assets\\level 4 the giant walls\\Red button.png");

	soundgiantwalls.Button_lv4_sp.setTexture(soundgiantwalls.Button_lv4_txt);
	soundgiantwalls.Button_lv4_sp.setScale(0.04f, 0.04f);
	soundgiantwalls.Button_lv4_sp.setPosition(630, 630);



	soundgiantwalls.Button2_lv4_txt.loadFromFile("assets\\level 4 the giant walls\\Red button.png");

	soundgiantwalls.Button2_lv4_sp.setTexture(soundgiantwalls.Button2_lv4_txt);
	soundgiantwalls.Button2_lv4_sp.setScale(0.04f, 0.04f);
	soundgiantwalls.Button2_lv4_sp.setPosition(200, 285);
	soundgiantwalls.Button2_lv4_sp.setRotation(5);



	soundgiantwalls.Arrow_sign_lvl4_txt.loadFromFile("assets\\level 4 the giant walls\\Arrow direction sign.png");

	soundgiantwalls.Arrow_sign_lvl4_sp.setTexture(soundgiantwalls.Arrow_sign_lvl4_txt);
	soundgiantwalls.Arrow_sign_lvl4_sp.setScale(0.098f, 0.098f);
	soundgiantwalls.Arrow_sign_lvl4_sp.setPosition(1010, 390);



	soundgiantwalls.Swichable_Barrier_lvl4_txt.loadFromFile("assets\\level 4 the giant walls\\Swichable Barrier.png");

	soundgiantwalls.Swichable_Barrier_lvl4_sp.setTexture(soundgiantwalls.Swichable_Barrier_lvl4_txt);
	soundgiantwalls.Swichable_Barrier_lvl4_sp.setScale(0.8f, 0.6f);
	soundgiantwalls.Swichable_Barrier_lvl4_sp.setPosition(460, 40);



	soundgiantwalls.Car_Tire_lvl4_txt.loadFromFile("assets\\level 4 the giant walls\\tire.png");

	soundgiantwalls.Car_Tire_lvl4_sp.setTexture(soundgiantwalls.Car_Tire_lvl4_txt);
	soundgiantwalls.Car_Tire_lvl4_sp.setOrigin(0, 0);
	soundgiantwalls.Car_Tire_lvl4_sp.setScale(0.122f, 0.122f);
	soundgiantwalls.Car_Tire_lvl4_sp.setPosition(500, 30);


	soundgiantwalls.Stick_lvl4_txt.loadFromFile("assets\\level 4 the giant walls\\long stick.png");

	soundgiantwalls.Stick_lvl4_sp.setTexture(soundgiantwalls.Stick_lvl4_txt);
	soundgiantwalls.Stick_lvl4_sp.setScale(0.42f, 0.55f);
	soundgiantwalls.Stick_lvl4_sp.setPosition(900, 580);
	soundgiantwalls.Stick_lvl4_sp.setRotation(90);

	soundgiantwalls.door.setBuffer(soundgiantwalls.doorbuff);
	soundgiantwalls.tire.setBuffer(soundgiantwalls.tirebuff);
	soundgiantwalls.button.setBuffer(soundgiantwalls.buttonbuff);
	soundgiantwalls.tirefall.setBuffer(soundgiantwalls.tirefallbuff);
	soundgiantwalls.backgiantwalls.setBuffer(soundgiantwalls.back4buff);
	soundgiantwalls.log.setBuffer(soundgiantwalls.logbuff);
	soundgiantwalls.logwalk.setBuffer(soundgiantwalls.logwalkbuff);
	soundgiantwalls.logjump.setBuffer(soundgiantwalls.logjumpbuff);

	soundgiantwalls.door.setVolume(50.f);
	soundgiantwalls.tire.setVolume(50.f);
	soundgiantwalls.button.setVolume(50.f);
	soundgiantwalls.tirefall.setVolume(50.f);
	soundgiantwalls.log.setVolume(50.f);
	soundgiantwalls.logwalk.setVolume(50.f);
	soundgiantwalls.logjump.setVolume(50.f);
	soundgiantwalls.backgiantwalls.setVolume(80.f);

}

void loadbarn(RenderWindow& window) {

	soundbarn.prisonbuff.loadFromFile("assets\\level 5 the barn\\prison.wav");
	soundbarn.buttonbuff.loadFromFile("assets\\level 5 the barn\\button on.wav");
	soundbarn.foxbuff.loadFromFile("assets\\level 5 the barn\\fox.wav");
	soundbarn.barndoorbuff.loadFromFile("assets\\level 5 the barn\\barn door.wav");
	soundbarn.woodjumpbuff.loadFromFile("assets\\level 5 the barn\\wood.wav");
	soundbarn.dangerbuff.loadFromFile("assets\\level 5 the barn\\warning.wav");
	soundbarn.back5buff.loadFromFile("assets\\level 5 the barn\\Barn sound.ogg");
	soundbarn.background_level5_txt.loadFromFile("assets\\Level 5 final destination the barn\\level 5 background.png");
	soundbarn.background_level5_sp.setTexture(soundbarn.background_level5_txt);

	Vector2u textureSize = soundbarn.background_level5_txt.getSize();
	Vector2u windowSize = window.getSize();
	float  scaleX = (float)windowSize.x / textureSize.x;
	float scaleY = (float)windowSize.y / textureSize.y;

	soundbarn.background_level5_sp.setScale(scaleX, scaleY);

	soundbarn.sign_lvl5_txt.loadFromFile("assets\\Level 5 final destination the barn\\sign3f-removebg-preview.png");
	soundbarn.sign_lvl5_sp.setTexture(soundbarn.sign_lvl5_txt);
	soundbarn.sign_lvl5_sp.setScale(0.4f, 0.4f);
	soundbarn.sign_lvl5_sp.setPosition(1045, 400);

	soundbarn.shadowSign = soundbarn.sign_lvl5_sp;
	soundbarn.shadowSign.setColor(Color(0, 0, 0, 100));
	soundbarn.shadowSign.setOrigin(175, 350);
	soundbarn.shadowSign.setPosition(soundbarn.sign_lvl5_sp.getPosition().x + 60, soundbarn.sign_lvl5_sp.getPosition().y + 145);
	soundbarn.shadowSign.setScale(soundbarn.sign_lvl5_sp.getScale().x, -soundbarn.sign_lvl5_sp.getScale().y * 0.2f);


	soundbarn.stick_lvl5_txt.loadFromFile("assets\\Level 5 final destination the barn\\stickgreen.png");
	soundbarn.stick_lvl5_sp.setTexture(soundbarn.stick_lvl5_txt);
	soundbarn.stick_lvl5_sp.setScale(0.85f, 0.85f);
	soundbarn.stick_lvl5_sp.setPosition(210, 55);

	soundbarn.shadowStick = soundbarn.stick_lvl5_sp;
	soundbarn.shadowStick.setColor(Color(0, 0, 0, 100));
	soundbarn.shadowStick.setScale(soundbarn.stick_lvl5_sp.getScale().x, soundbarn.stick_lvl5_sp.getScale().y * 0.15f);
	soundbarn.shadowStick.setPosition(soundbarn.stick_lvl5_sp.getPosition().x, soundbarn.stick_lvl5_sp.getPosition().y + 510);


	soundbarn.cage_lvl5_txt.loadFromFile("assets\\Level 5 final destination the barn\\cage2-removebg-preview.png");
	soundbarn.cage_lvl5_sp.setTexture(soundbarn.cage_lvl5_txt);
	soundbarn.cage_lvl5_sp.setScale(0.9f, 0.9f);
	soundbarn.cage_lvl5_sp.setPosition(500, -35);

	soundbarn.shadowCage = soundbarn.cage_lvl5_sp;

	soundbarn.shadowCage.setColor(Color(0, 0, 0, 45));
	soundbarn.shadowCage.setScale(soundbarn.cage_lvl5_sp.getScale().x, soundbarn.cage_lvl5_sp.getScale().y * 0.12f);
	soundbarn.shadowCage.setPosition(soundbarn.cage_lvl5_sp.getPosition().x, soundbarn.cage_lvl5_sp.getPosition().y + 600);

	soundbarn.stonenight_lvl5_txt.loadFromFile("assets\\Level 5 final destination the barn\\stonef.png");
	soundbarn.stonenight_lvl5_sp.setTexture(soundbarn.stonenight_lvl5_txt);
	soundbarn.stonenight_lvl5_sp.setScale(0.38f, 0.38f);
	soundbarn.stonenight_lvl5_sp.setPosition(400, 470);

	soundbarn.button_lvl5_txt.loadFromFile("assets\\Level 5 final destination the barn\\button.png");
	soundbarn.button_lvl5_sp.setTexture(soundbarn.button_lvl5_txt);
	soundbarn.button_lvl5_sp.setScale(0.07f, 0.07f);
	soundbarn.button_lvl5_sp.setPosition(305, 157);
	soundbarn.prison.setBuffer(soundbarn.prisonbuff);
	soundbarn.button.setBuffer(soundbarn.buttonbuff);
	soundbarn.fox.setBuffer(soundbarn.foxbuff);
	soundbarn.barndoor.setBuffer(soundbarn.barndoorbuff);
	soundbarn.danger.setBuffer(soundbarn.dangerbuff);
	soundbarn.woodjump.setBuffer(soundbarn.woodjumpbuff);
	soundbarn.backbarn.setBuffer(soundbarn.back5buff);

	soundbarn.prison.setVolume(50.f);
	soundbarn.button.setVolume(50.f);
	soundbarn.fox.setVolume(80.f);
	soundbarn.barndoor.setVolume(50.f);
	soundbarn.danger.setVolume(70.f);
	soundbarn.woodjump.setVolume(50.f);
	soundbarn.backbarn.setVolume(80.f);

}

void DrawLevel1(RenderWindow& window) {

	window.draw(soundforest.Level1_background_sp);
	window.draw(soundforest.Hay_lvl1_sp);
	window.draw(soundforest.Arrow_sign_lvl1_sp);
	window.draw(soundforest.LongStick_lvl1_sp);
	window.draw(soundforest.ShortStick_lvl1_sp);
	window.draw(soundforest.Stone_wall_lvl1_sp);
	window.draw(soundforest.Floating_pillar_lvl1_sp);

}

void DrawLevel2(RenderWindow& window) {


	window.draw(soundontheroof.lvl2_background_sp);

	window.draw(soundontheroof.home_lvl2_sp);

	window.draw(soundontheroof.bridge_lvl2_sp);

	window.draw(soundontheroof.wood_lvl2_sp);

	window.draw(soundontheroof.sign_lvl2_sp);

	window.draw(soundontheroof.box_lvl2_sp);
}

void Drawlevel3(RenderWindow& window)
{

	window.clear();


	window.draw(soundmill.Background_lvl3_sp);
	window.draw(soundmill.Tunnel_lvl3_sp);
	window.draw(soundmill.Blue_lvl3_sp);
	window.draw(soundmill.Wooden_Column_lvl3_sp);
	window.draw(soundmill.RockColumn_lvl3_sp);
	window.draw(soundmill.Button_lvl3_sp);
	window.draw(soundmill.Arrow_Sign_lvl3_sp);
	window.draw(soundmill.Box_lvl3_sp);
	window.draw(soundmill.Red_Ballon1_lvl3_sp);
	window.draw(soundmill.Red_Ballon2_lvl3_sp);
	window.draw(soundmill.Red_Ballon3_lvl3_sp);
	window.draw(soundmill.Bomb_lvl3_sp);


}

void DrawLevel4(RenderWindow& window) {
	window.draw(soundgiantwalls.Level4_background_sp);
	window.draw(soundgiantwalls.Button_lv4_sp);
	window.draw(soundgiantwalls.Button2_lv4_sp);
	window.draw(soundgiantwalls.Arrow_sign_lvl4_sp);
	window.draw(soundgiantwalls.Swichable_Barrier_lvl4_sp);
	window.draw(soundgiantwalls.Car_Tire_lvl4_sp);
	window.draw(soundgiantwalls.Stick_lvl4_sp);

}

void DrawLevel5(RenderWindow& window) {
	window.draw(soundbarn.background_level5_sp);
	window.draw(soundbarn.shadowSign);
	window.draw(soundbarn.sign_lvl5_sp);

	window.draw(soundbarn.shadowStick);
	window.draw(soundbarn.stick_lvl5_sp);

	window.draw(soundbarn.stonenight_lvl5_sp);
	window.draw(soundbarn.button_lvl5_sp);

	window.draw(soundbarn.shadowCage);
	window.draw(soundbarn.cage_lvl5_sp);

}

void intro(RenderWindow& window) {

	const int intro_totalscenes = 6;
	Texture intro_txt[6];
	intro_txt[0].loadFromFile("intro and outro\\intro.1.png");
	intro_txt[1].loadFromFile("intro and outro\\intro.2.png");
	intro_txt[2].loadFromFile("intro and outro\\intro.3.png");
	intro_txt[3].loadFromFile("intro and outro\\intro.4.png");
	intro_txt[4].loadFromFile("intro and outro\\intro.50.png");
	intro_txt[5].loadFromFile("intro and outro\\intro.6.png");

	Sprite intro_sp;
	int currentscene = 0;
	intro_sp.setTexture(intro_txt[0]);


	Texture backbtn_txt, nextbtn_txt, skipbtn_txt;
	backbtn_txt.loadFromFile("intro and outro\\arrowleft-removebg-preview.png");
	nextbtn_txt.loadFromFile("intro and outro\\arrowright-removebg-preview.png");
	skipbtn_txt.loadFromFile("intro and outro\\skipbutton-removebg-preview.png");

	Sprite backbtn_sp, nextbtn_sp, skipbtn_sp;

	backbtn_sp.setTexture(backbtn_txt);
	nextbtn_sp.setTexture(nextbtn_txt);
	skipbtn_sp.setTexture(skipbtn_txt);

	backbtn_sp.setScale(0.6f, 0.6f);
	nextbtn_sp.setScale(0.6f, 0.6f);

	backbtn_sp.setPosition(10, 620);
	nextbtn_sp.setPosition(1075, 620);
	skipbtn_sp.setPosition(1120, 0);

	bool introrun = true;

	while (window.isOpen() && introrun) {

		Event event;

		intro_sp.setTexture(intro_txt[currentscene], true);
		float scaleX = (float)window.getSize().x / intro_txt[currentscene].getSize().x;
		float scaleY = (float)window.getSize().y / intro_txt[currentscene].getSize().y;
		intro_sp.setScale(scaleX, scaleY);


		while (window.pollEvent(event)) {
			if (event.type == Event::Closed)window.close();

			if (event.type == Event::MouseButtonPressed && event.mouseButton.button == Mouse::Left)
			{
				Vector2f mousePos = window.mapPixelToCoords(Mouse::getPosition(window));

				if (nextbtn_sp.getGlobalBounds().contains(mousePos)) {
					if (currentscene < intro_totalscenes - 1) {
						currentscene++;
					}
					else {
						introrun = false;
					}
				}

				if (backbtn_sp.getGlobalBounds().contains(mousePos)) {
					if (currentscene > 0) {
						currentscene--;
					}
				}

				if (skipbtn_sp.getGlobalBounds().contains(mousePos)) {
					introrun = false;
				}
			}
		}

		window.clear();
		window.draw(intro_sp);

		if (currentscene > 0) {
			window.draw(backbtn_sp);
		}

		window.draw(nextbtn_sp);

		if (currentscene < intro_totalscenes - 1) {
			window.draw(skipbtn_sp);
		}

		window.display();

	}


}

void update(RenderWindow& window) {

	while (window.pollEvent(event)) {
		if (event.type == Event::Closed)
			window.close();

		switch (currentwindow) {

		case 0://main

			if (event.type == Event::KeyPressed) {

				if (event.key.code == Keyboard::Up) {

					menu.menutxt[selected].setFillColor(Color::White);
					selected--;
					if (selected < 0)
						selected = MAIN - 1;
					menu.menutxt[selected].setFillColor(Color::Black);

				}

				else if (event.key.code == Keyboard::Down) {

					menu.menutxt[selected].setFillColor(Color::White);
					selected++;
					if (selected > MAIN - 1)
						selected = 0;
					menu.menutxt[selected].setFillColor(Color::Black);

				}

				if (event.key.code == Keyboard::Enter) {

					if (selected == 0) {//play
						currentwindow = 1;//map
						selected = 0;
					}
					else if (selected == 1) {//settings
						currentwindow = 3;//settings
						selected = 0;
					}
					else if (selected == 2) {//credit
						currentwindow = 4;//credit
					}
					else if (selected == 3)//exit
						window.close();

				}
			}
			break;

		case 1://map

			if (event.type == Event::KeyPressed) {
				if (event.key.code == Keyboard::Left) {

					menu.maptxt[selected].setFillColor(Color::White);
					selected--;
					if (selected < 0)
						selected = MAP - 1;
					menu.maptxt[selected].setFillColor(Color::Black);

				}

				else if (event.key.code == Keyboard::Right) {

					menu.maptxt[selected].setFillColor(Color::White);
					selected++;
					if (selected > MAP - 1)
						selected = 0;
					menu.maptxt[selected].setFillColor(Color::Black);

				}

				if (event.key.code == Keyboard::Enter) {

					if (selected == 0) {

						//show intro
						intro(window);
						
						currentwindow = 2;
						//logic forest
						selectedlvl = 0;
						selected = 0;
					}
					else if (selected == 1) {
						currentwindow = 2;

						//logic on the roof
						selectedlvl = 1;
						selected = 1;
					}
					else if (selected == 2) {
						currentwindow = 2;

						//logic the mill
						selectedlvl = 2;
						selected = 2;
					}
					else if (selected == 3) {
						currentwindow = 2;

						//logic the giant walls
						selectedlvl = 3;
						selected = 3;
					}
					else if (selected == 4) {
						currentwindow = 2;

						// logic the barn
						selectedlvl = 4;
						selected = 4;
					}
					else if (selected == 5) {
						currentwindow = 0;
						selected = 0;
						menu.maptxt[MAP - 1].setFillColor(Color::White);
						menu.maptxt[0].setFillColor(Color::Black);
					}

				}

			}
			break;

		case 3://settings
			if (event.type == Event::KeyPressed) {
				if (event.key.code == Keyboard::Up) {

					menu.settingstxt[selected].setFillColor(Color::White);
					selected--;
					if (selected < 0)
						selected = SETTINGS - 1;
					menu.settingstxt[selected].setFillColor(Color::Black);

				}

				else if (event.key.code == Keyboard::Down) {

					menu.settingstxt[selected].setFillColor(Color::White);
					selected++;
					if (selected > SETTINGS - 1)
						selected = 0;
					menu.settingstxt[selected].setFillColor(Color::Black);

				}

				if (event.key.code == Keyboard::Enter) {

					switch (selected) {//sounds handled here is the main&map only

					case 0:
						//set sounds to a higher level 
						break;

					case 1:
						//set sounds to a lower level
						break;

					case 2:
						//mute sounds
						break;

					case 3://back
						currentwindow = 0;//main
						selected = 1;
						menu.settingstxt[SETTINGS - 1].setFillColor(Color::White);
						menu.settingstxt[0].setFillColor(Color::Black);
						break;
					}

				}
			}
			break;

		case 4://credit
			selected = 7;
			menu.creditxt[selected].setFillColor(Color::Black);
			if (event.type == Event::KeyPressed) {
				if (event.key.code == Keyboard::Enter) {
					currentwindow = 0;//main
					selected = 2;
				}
			}
			break;

		case 5://pause

			if (event.type == Event::KeyPressed) {
				if (event.key.code == Keyboard::Up) {

					menu.pausetxt[selected].setFillColor(Color::White);
					selected--;
					if (selected < 0)
						selected = PAUSE - 1;
					menu.pausetxt[selected].setFillColor(Color::Black);

				}

				else if (event.key.code == Keyboard::Down) {

					menu.pausetxt[selected].setFillColor(Color::White);
					selected++;
					if (selected > PAUSE - 1)
						selected = 0;
					menu.pausetxt[selected].setFillColor(Color::Black);

				}
				/*if (event.key.code == Keyboard::Left) {

					menu.pausetxt[selectedop].setFillColor(Color::White);
					selectedop--;
					if (selectedop <= 1)
						selectedop = PAUSE - 1;
					menu.pausetxt[selectedop].setFillColor(Color::Black);

				}

				else if (event.key.code == Keyboard::Right) {

					menu.pausetxt[selectedop].setFillColor(Color::White);
					selectedop++;
					if (selectedop > PAUSE - 1)
						selectedop = 2;
					menu.pausetxt[selectedop].setFillColor(Color::Black);

				}
				*/

				if (event.key.code == Keyboard::Enter) {
					switch (selected) {// sound on mute  map continue
					case 0://sound on

						if (selectedlvl == 0) {
							//play sounds
							soundforest.backforest.play();
						}
						else if (selectedlvl == 1) {
							//play sounds
						}
						else if (selectedlvl == 2) {
							//play sounds
						}
						else if (selectedlvl == 3) {
							//play sounds
						}
						else if (selectedlvl == 4) {
							//play sounds
						}
						break;
					case 1://mute

						if (selectedlvl == 0) {
							//pause sounds
							soundforest.backforest.pause();
						}
						else if (selectedlvl == 1) {
							//pause sounds
						}
						else if (selectedlvl == 2) {
							//pause sounds
						}
						else if (selectedlvl == 3) {
							//pause sounds
						}
						else if (selectedlvl == 4) {
							//pause sounds
						}
						break;
					case 2://map
						selected = 0;
						currentwindow = 1;
						menu.pausetxt[PAUSE - 2].setFillColor(Color::White);
						menu.pausetxt[0].setFillColor(Color::Black);
						break;
					case 3://continue

						switch (selectedlvl) {
						case 0:
							selected = 0;
							currentwindow = 2;

							break;
						case 1:
							selected = 1;
							currentwindow = 2;
							break;

						case 2:
							selected = 2;
							currentwindow = 2;
							break;

						case 3:
							selected = 3;
							currentwindow = 2;
							break;
						case 4:
							selected = 4;
							currentwindow = 2;
							break;
							//handel continue
							break;

						}
					}
				}
			}
			break;

		case 6://win

			if (event.type == Event::KeyPressed) {
				if (event.key.code == Keyboard::Up) {

					menu.wintxt[selectedop].setFillColor(Color::White);
					selectedop--;
					if (selectedop < 2)
						selectedop = WIN - 1;
					menu.wintxt[selectedop].setFillColor(Color::Black);

				}

				else if (event.key.code == Keyboard::Down) {

					menu.wintxt[selectedop].setFillColor(Color::White);
					selectedop++;
					if (selectedop > WIN - 1)
						selectedop = 2;
					menu.wintxt[selectedop].setFillColor(Color::Black);

				}

				if (event.key.code == Keyboard::Enter) {
					switch (selected) {//retry map next
					case 2:
						currentwindow = 2;
						//restart the level
						break;
					case 3://map
						currentwindow = 1;
						break;
					case 4:
						currentwindow = 2;
						//handel logic of choosing which level to draw next

						//if selected is 2 then next 3

						break;
					}
				}
			}
			break;

		case 7://lose

			if (event.type == Event::KeyPressed) {
				if (event.key.code == Keyboard::Up) {

					menu.losetxt[selected].setFillColor(Color::White);
					selected--;
					if (selected <= 0)
						selected = LOSE - 1;
					menu.losetxt[selected].setFillColor(Color::Black);

				}

				else if (event.key.code == Keyboard::Down) {

					menu.losetxt[selected].setFillColor(Color::White);
					selected++;
					if (selected > LOSE - 1)
						selected = 1;
					menu.losetxt[selected].setFillColor(Color::Black);

				}

				if (event.key.code == Keyboard::Enter) {
					switch (selected) {//retry
					case 1:
						currentwindow = 2;
						//handel restarting the level
						break;
					case 2://map
						currentwindow = 1;
						break;
					}
				}
			}
			break;

		case 8:

			if (event.type == Event::KeyPressed) {
				if (event.key.code == Keyboard::Up) {

					menu.timeouttxt[selected].setFillColor(Color::White);
					selected--;
					if (selected <= 0)
						selected = TIMEOUT - 1;
					menu.timeouttxt[selected].setFillColor(Color::Black);

				}

				else if (event.key.code == Keyboard::Down) {

					menu.timeouttxt[selected].setFillColor(Color::White);
					selected++;
					if (selected > TIMEOUT - 1)
						selected = 1;
					menu.timeouttxt[selected].setFillColor(Color::Black);

				}

				if (event.key.code == Keyboard::Enter) {
					switch (selected) {
					case 1://retry
						currentwindow = 2;
						//handel restarting the level
						break;
					case 2://map
						currentwindow = 1;
						break;
					}
				}
			}
			break;
		}

	}
}

void draw(RenderWindow& window) {
	window.clear();
	switch (currentwindow) {

	case 0://main
		window.draw(menu.mainbackground);
		for (int i = 0; i < MAIN; i++) {
			window.draw(menu.menutxt[i]);
		}
		window.display();
		break;

	case 1://map
		menu.back.setPosition(545, 630);
		menu.back.setScale(0.5, 0.5);
		window.draw(menu.mapbackground);
		window.draw(menu.back);
		for (int i = 0; i < MAP; i++) {
			window.draw(menu.maptxt[i]);
		}
		window.display();
		break;

	case 2://levels
		if (selected == 0) {//draw forest here
			DrawLevel1(window);
		}
		else if (selected == 1) {//draw on the roof here
			DrawLevel2(window);
		}
		else if (selected == 2) {//draw the mill here
			Drawlevel3(window);
		}
		else if (selected == 3) {//draw the giant walls here
			DrawLevel4(window);
		}
		else if (selected == 4) {//draw the barn here
			DrawLevel5(window);
		}
		window.display();
		break;

	case 3://settings
		menu.back.setPosition(470, 550);
		menu.back.setScale(1, 1);
		window.draw(menu.mainbackground);
		window.draw(menu.menusbackground);
		window.draw(menu.back);
		for (int i = 0; i < SETTINGS; i++) {
			window.draw(menu.settingstxt[i]);
		}
		window.display();
		break;

	case 4://credit
		menu.back.setPosition(470, 550);
		menu.back.setScale(1, 1);
		window.draw(menu.mainbackground);
		window.draw(menu.menusbackground);
		window.draw(menu.back);
		for (int i = 0; i < CREDIT; i++) {
			window.draw(menu.creditxt[i]);
		}
		window.display();
		break;

	case 5://pause
		DrawLevel1(window);
		window.draw(menu.menusbackground);
		menu.back.setPosition(530, 240);
		menu.back2.setPosition(530, 305);
		menu.back3.setPosition(530, 370);
		menu.back4.setPosition(530, 435);
		menu.back.setScale(0.65, 0.65);
		menu.back2.setScale(0.65, 0.65);
		menu.back3.setScale(0.65, 0.65);
		menu.back4.setScale(0.65, 0.65);
		for (int i = 0; i < PAUSE; i++) {
			window.draw(menu.pausetxt[i]);
		}
		if (currentwindow == 2) {

			switch (selectedlvl) {

			case 0:

				break;
			case 1:

				break;
			case 2:

				break;
			case 3:

				break;
			case 4:

				break;
			}

		}
		window.display();
		break;

	case 6:
		window.draw(menu.menusbackground);
		for (int i = 0; i < WIN; i++) {
			window.draw(menu.wintxt[i]);
		}
		window.display();
		break;
	case 7:
		window.draw(menu.menusbackground);
		for (int i = 0; i < LOSE; i++) {
			window.draw(menu.losetxt[i]);
		}
		window.display();
		break;
	case 8:
		window.draw(menu.menusbackground);
		for (int i = 0; i < TIMEOUT; i++) {
			window.draw(menu.timeouttxt[i]);
		}
		window.display();
		break;
	}

}

int main() {

	RenderWindow window = { VideoMode(1280,720), "Back to The Barn" };

	loadmenus(window);
	loadgeneral(window);
	loadforest(window);
	loadontheroof(window);
	loadmill(window);
	loadthegiantwalls(window);
	loadbarn(window);

	while (window.isOpen()) {

		update(window);
		draw(window);
	}

	return 0;
}
Editor is loading...
Leave a Comment