--FRENCH PSPIXEL v2.0 BY ALEXANDRE RIMBOT. PSPIXEL v2.0. 2011. FOR PSP GENESIS COMPETITION
fond = Image.load("images/fond.png")
fond2 = Image.load("images/fond.png")
arriere = Image.load("images/arriere.png")
curseur = Image.load("images/curseur.png")
curseur_grand = Image.load("images/curseur.png")
curseur_petit = Image.load("images/curseur2.png")
page_menu = Image.load("images/start.png")
curseur_menu = Image.load("images/curseurstart.png")
fiche_couleurs = Image.load("images/couleurs.png")
fondcharger = Image.load("images/fondcharger.png")
curseur_choix = Image.load("images/curseur_sauvegarder.png")
fondsauvegarder = Image.load("images/fondsauvegarder.png")
curseur_save = Image.load("images/curseur_save.png")
antidebordement = Image.load("images/antidebordement.png")

xcurseur = 233
ycurseur = 88
ycurseur_menu = 45
largeur = 8
hauteur = 8
etape = 1
ligne_remplace = 0
colonne_remplace= 0
nom_fichier_save = ""
ycurseur_save = 48
xcurseur_format = 244

r = 0
v = 0
b = 0

taille_curseur = 1

rouge = Color.new(255,0,0)
vert = Color.new(0,255,0)
bleu = Color.new(0,0,255)
blanc = Color.new(255,255,255)
gris = Color.new(64,60,60)
memoire = Color.new(0,0,0)

couleur_prise = Image.createEmpty(12,12)
couleur_memoire = Image.createEmpty(12,12)

menu_graphisme = false
fonction_charger_image = false
sauvegarder = false

dofile("fonctions.lua")

while true do
screen:clear()
pad = Controls.read()
    pixel_couleur = Image.createEmpty(largeur,hauteur)
    pixel_blanc = Image.createEmpty(largeur,hauteur)
    pixel_memoire = Image.createEmpty(largeur,hauteur)
    couleur = Color.new(r,v,b)
    pixel_couleur:clear(couleur)
    pixel_memoire:clear(memoire)
    couleur_prise:clear(couleur)
    couleur_memoire:clear(memoire)
    pixel_blanc:clear(blanc)
    screen:blit(0,0,arriere)
    screen:blit(153,8,fond)
    screen:blit(xcurseur,ycurseur,curseur)
    screen:print(61,10,r,rouge)
    screen:print(61,89,v,vert)
    screen:print(61,169,b,bleu)
    screen:blit(105,240,couleur_prise)
    screen:blit(105,253,couleur_memoire)
    screen:fillRect(9,19,(r/2),10,rouge)
    screen:fillRect(9,98,(v/2),10,vert)
    screen:fillRect(9,177,(b/2),10,bleu)
    if menu_graphisme==false then

      deplacements_palette()
      changer_couleur()
      taille()
      blitter()
      pipette()
    
      if pad:start() and oldpad:start()~=pad:start() then menu_graphisme=true end
    end
    
    if menu_graphisme==true then
		if sauvegarder==false then
			screen:blit((480-page_menu:width())/2,(272-page_menu:height())/2,page_menu)
			screen:blit(132,ycurseur_menu,curseur_menu)
			screen:blit(207,113,couleur_memoire)
			screen:blit(250,113,couleur_prise)
			deplacements_menu()
				if ycurseur_menu==45 and pad:cross() and oldpad:cross()~=pad:cross() then affiche_couleurs=true
					elseif ycurseur_menu==76 and pad:cross() and oldpad:cross()~=pad:cross() then memoire=couleur
					elseif ycurseur_menu==107 and pad:cross() and oldpad:cross()~=pad:cross() then ChangeCouleur()
					elseif ycurseur_menu==138 and pad:cross() and oldpad:cross()~=pad:cross() then sauvegarder=true
					elseif ycurseur_menu==169 and pad:cross() and oldpad:cross()~=pad:cross() then fonction_charger_image=true
					elseif ycurseur_menu==200 and pad:cross() and oldpad:cross()~=pad:cross() then System.Quit()
				end
		
				if fonction_charger_image==true then charger_image() end
        
				if affiche_couleurs==true then
					screen:blit(0,0,fiche_couleurs)
					if pad:circle() then affiche_couleurs = false end
				end
		end
	
		
		if sauvegarder==true then
			if pad:circle() then
				menu_graphisme = false
				sauvegarder = false
				fond2 = Image.load("images/fond.png")
				xcurseur_format = 244
				ycruseur_save = 48
				etape = 1
				nom_fichier_save = ""
				choix_image = 0
				ligne_remplace = 0
				colonne_remplace= 0
			end
			screen:blit(0,0,fondsauvegarder)
			screen:blit(13,ycurseur_save,curseur_save)
			screen:blit(xcurseur_format,41,curseur_choix)
			screen:print(15,150,"Si vous choisissez le format 1/1, vous devrez patienter",gris)
			screen:print(15,160,"une disaine de secondes, le temps que l'image diminue.",gris)
			screen:print(15,180,"Si vous choisissez le format 4/4, votre image sera",gris)
			screen:print(15,190,"identique a celle que vous avez cree.",gris)
		if etape==1 then
			if nom_fichier_save~="" then
			screen:print(100,20,nom_fichier_save..".png",gris)
			end
			if pad:up() and oldpad:up()~=pad:up() and ycurseur_save~= 8 then ycurseur_save = ycurseur_save - 40
			elseif pad:down() and oldpad:down()~=pad:down() and ycurseur_save~= 88 then ycurseur_save = ycurseur_save + 40
			end
	
			if ycurseur_save==8 and pad:cross() then nom_fichier_save = System.startOSK(nom_fichier_save,"") end
			if ycurseur_save==48 and pad:r() and xcurseur_format~=334 then xcurseur_format=xcurseur_format + 90
				elseif ycurseur_save==48 and pad:l() and xcurseur_format~=244 then xcurseur_format=xcurseur_format - 90
			end
			if xcurseur_format==244 then choix_image = 0
				elseif xcurseur_format==334 then choix_image = 1
			end
	
			if ycurseur_save==88 and pad:cross() and nom_fichier_save~="" and etape==1 then etape = 2 end
		end

		if etape==2 then
			if nom_fichier_save~="" and choix_image==0 then
				while ligne_remplace < fond:height()/2 do
					couleur_fond = fond:pixel(colonne_remplace,ligne_remplace)
					couleur_fond2 = fond:pixel(colonne_remplace,ligne_remplace+108)
					pixel_remplace = Image.createEmpty(1,1)
					pixel_remplace:clear(couleur_fond)
					pixel_remplace2 = Image.createEmpty(1,1)
					pixel_remplace2:clear(couleur_fond2)
					fond2:blit(colonne_remplace/4,ligne_remplace/4,pixel_remplace)
					fond2:blit(colonne_remplace/4,(ligne_remplace/4)+27,pixel_remplace2)
					colonne_remplace = colonne_remplace + 4
						if colonne_remplace == fond:width() then
							colonne_remplace = 0
							ligne_remplace = ligne_remplace + 4
						end
				end
				if ligne_remplace >= fond:height()/2 then
					fond2:save("ms0:/picture/PsPixel v2.0/"..nom_fichier_save..".png")
					fond2 = Image.load("images/fond.png")
					xcurseur_format = 244
					ycruseur_save = 48
					etape = 1
					nom_fichier_save = ""
					choix_image = 0
					ligne_remplace = 0
					colonne_remplace= 0
					sauvegarder = false
					menu_graphisme=false
				end
			end
			if nom_fichier_save~="" and choix_image == 1 then
				fond2 = Image.load("images/fond.png")
				fond:save("ms0:/picture/PsPixel v2.0/"..nom_fichier_save..".png")
				xcurseur_format = 244
				ycruseur_save = 48
				etape = 1
				nom_fichier_save = ""
				choix_image = 0
				ligne_remplace = 0
				colonne_remplace= 0
				sauvegarder = false
				menu_graphisme=false
			end
		end
	end
	        if pad:circle() then menu_graphisme=false end
	end
screen.waitVblankStart()
screen.flip()
oldpad=pad
end