SpriteCoder/index.php

325 lines
10 KiB
PHP

<?php if (isset($_FILES['fichier'])) include("code.php"); ?>
<!DOCTYPE html>
<html>
<head>
<title>Sprite Coder - codeur de sprite</title>
<meta charset="utf-8"/>
<link rel="stylesheet" href="style.css" type="text/css" media="screen" />
<script>
function BitPrizmChange(value)
{
if (value === "Prizm/Cg-10/Cg-20")
{
document.getElementById("BitPrizm").style.maxHeight = "300px";
document.getElementById("CouleurG75").style.maxHeight = "0px";
}
else if (value === "G75/G85/G95/G35")
{
document.getElementById("BitPrizm").style.maxHeight = "0px";
document.getElementById("CouleurG75").style.maxHeight = "300px";
}
else
{
document.getElementById("BitPrizm").style.maxHeight = "0px";
document.getElementById("CouleurG75").style.maxHeight = "0px";
}
}
function ApparaitreOutils(value)
{
if (value == 'Afficher les outils')
{
document.getElementById("outil").style.maxHeight = "900px";
return 'Masquer les outils';
}
else
{
document.getElementById("outil").style.maxHeight = "0px";
return 'Afficher les outils';
}
}
function AfficheTab(value)
{
if (value == 'oui')
{
document.getElementById('tabSpr').style.maxHeight="900px";
}
else
{
document.getElementById('tabSpr').style.maxHeight="0px";
}
}
function ChangeLangage()
{
var choix = document.getElementById("langage").options[document.getElementById("langage").selectedIndex].value;
if ( choix == "C/C++")
{
document.getElementById("PartieCPP").style.maxHeight = "900px";
document.getElementById("PartieBAS").style.maxHeight = "0px";
document.getElementById("PartieLUA").style.maxHeight = "0px";
}
else if (choix == "Basic")
{
document.getElementById("PartieCPP").style.maxHeight = "0px";
document.getElementById("PartieBAS").style.maxHeight = "900px";
document.getElementById("PartieLUA").style.maxHeight = "0px";
}
else if (choix == "Lua")
{
document.getElementById("PartieBAS").style.maxHeight = "0px";
document.getElementById("PartieCPP").style.maxHeight = "0px";
document.getElementById("PartieLUA").style.maxHeight = "900px";
}
else
{
document.getElementById("PartieBAS").style.maxHeight = "0px";
document.getElementById("PartieCPP").style.maxHeight = "0px";
document.getElementById("PartieBAS").style.maxHeight = "0px";
}
}
</script>
</head>
<body>
<div id="toutSaufFooter">
<div id="titre">
<center> Sprite Coder V3 </center>
</div>
<div id="cadre">
<form method="post" name="post" action='index.php' enctype="multipart/form-data">
<div id="contenu">
Langage de programmation :
<select name="langage" id="langage" onChange="ChangeLangage()">
<option value=" " selected></option>
<option value="Basic">Basic</option>
<option value="C/C++">C/C++</option>
<option value="Lua">Lua</option>
</select>
<fieldset>
<legend>Choix des images</legend>
<input type="file" name='fichier[]' accept="image/*" multiple/>
</fieldset>
<!-- C ou CPP -->
<div id="PartieCPP">
<fieldset>
<legend>Calculatrice</legend>
Choisissez le modèle de votre calculatrice :
<select name="calculatriceC" id="calculatrice" onChange="BitPrizmChange(this.value)">
<option value="Prizm/Cg-10/Cg-20">Prizm/Cg-10/Cg-20</option>
<option value="G75/G85/G95/G35" >G75/G85/G95/G35</option>
<option value=" " selected></option>
</select>
</fieldset>
<fieldset>
<legend>Options</legend>
<fieldset>
<legend>Nom des sprites</legend>
<input type="radio" name="nameC" value="default" checked/>Par défaut : Utiliser le nom de l'image<br/>
<input type="radio" name="nameC" value="persona" />Personnalisé : <input type="text" name="namePersC"/>
</fieldset>
<fieldset>
<legend>Tableau de pointeur</legend>
Voulez-vous générer un tableau de pointeur contenant tous les sprites?
<input type="radio" name="tabpointeurC" value="non" onClick="AfficheTab(this.value)" checked/>Non
<input type="radio" name="tabpointeurC" value="oui" onClick="AfficheTab(this.value)" />Oui
<div id="tabSpr">
Entrer le nom du tableau
<input type="text" name="tabpointeur_name" id="tabpointeur_name"/>
<br/>Retourner à la ligne entre chaque élément du tableau de pointeur?
<input type="radio" name="retourLigne" id="retourLigne" value="non"/>Non
<input type="radio" name="retourLigne" id="retourLigne" value="oui" checked/>Oui
</div>
</fieldset>
<fieldset>
<legend>Retour à la ligne</legend>
<input type="radio" name="retourLigneSpriteC" value="default" checked/>Par défaut : une ligne du tableau représente une ligne de l'image</br>
<input type="radio" name="retourLigneSpriteC" value="uneLigne" />Chaque sprite tient sur une seule ligne</br>
</fieldset>
<fieldset>
<legend>Mot Clé</legend>
<input type="radio" name="motcleC" value="null" checked />Ne pas rajouter de mot clé avant le nom des variables
<br/>
<input type="radio" name="motcleC" value="extern" />Rajouter le mot clé "extern" avant le nom des variables
<br/>
<input type="radio" name="motcleC" value="static" />Rajouter le mot clé "static" avant le nom des variables
<br/>
<div id="tabSpr">
</div>
</fieldset>
</fieldset>
<fieldset>
<legend>Outils</legend>
<input type="button" value="Afficher les outils" onClick="this.value=ApparaitreOutils(this.value)"/>
<div id="outil">
<fieldset>
<legend>Découpage des sprites</legend>
Voulez-vous génerer plusieurs sprites d'une même image?
<input type="radio" name="coupeSprC" value="non" checked/>Non
<input type="radio" name="coupeSprC" value="oui"/>Oui<br/>
Si oui définissez la taille de chaque sprite :
<input type="text" name="outil_largSprC" size="2px" value="16"/>*<input type="text" name="outil_longSprC" size="2px" value="16"/>
</fieldset>
</div>
</fieldset>
<div id="BitPrizm">
<fieldset>
<legend>Bits</legend>
Voulez-vous coder les sprites en :<br/>
<input type="radio" name="bitC" value="16bit">16-bits</input><br/>
<input type="radio" name="bitC" value="8bit" checked/>8-bits</input>
</fieldset>
</div>
<div id="CouleurG75">
<fieldset>
<legend>Couleurs</legend>
<input type="radio" name="couleur75" value="n" checked >Noir et blanc</input><br/>
<input type="radio" name="couleur75" value="g" />Niveaux de gris (Noir, gris clair, gris foncé, blanc)</input>
</fieldset>
</div>
</div>
<!-- BASIC -->
<div id = "PartieBAS">
<fieldset>
<legend>Calculatrice</legend>
Choisissez le modèle de votre calculatrice :
<select name="calculatriceB" id="calculatrice" onChange="bitPrizmChange(this.value)">
<option value="Prizm/Cg-10/Cg-20"/>Prizm/Cg-10/Cg-20
<option value="G75/G85/G95/G35" />G75/G85/G95/G35
<option value=" " selected/>
</select>
</fieldset>
<fieldset>
<legend>Option</legend>
<fieldset>
<legend>Couleur</legend>
<input type="radio" name="basicCouleurB" value="default" checked/>Par défaut : Noir et blanc</br>
<input type="radio" name="basicCouleurB" value="couleur" />En couleur ( fx-CG20 )</br>
</fieldset>
<input type="checkbox" name="variable"/>Utiliser des variables pour positionner l'image</br>
</fieldset>
</div>
<!-- LUA -->
<div id = "PartieLUA">
<fieldset>
<legend>Option</legend>
<input type="checkbox" name="variableLua"/>Utiliser des variables pour positionner l'image</br>
</fieldset>
</div>
</div>
<input type="hidden" name="estCode">
<center>
<input type="submit"/><br/>
</center>
</form>
</div>
<div id="bas">
<form method="post" name="post2" action='telecharger.php' enctype="multipart/form-data">
<div id="lecode">
<div id="messageErreur">
<?php
if (isset($_FILES['fichier'])){
$uploadedFile = uploadFile();
$uploadedFile = deboguage($uploadedFile);
displayError($uploadedFile);
$AllPicture = convertToReadablePicture($uploadedFile);
}
?>
</div>
<center>
<textarea name="codeSource"><?php
if (isset($_FILES['fichier'])){
if (!estTropErreur($uploadedFile))
echo codeSprite($AllPicture);
else
echo "Impossible de coder les sprites, car il y a trop d'erreurs.";
}
?></textarea><br/>
<br/>
<?php
if (isset($_FILES['fichier'])){
if (!estTropErreur($uploadedFile))
{
echo "Nom du programme (8 caractères au maximum) :<input type=\"text\" name=\"nomProgramme\" maxlength=\"8\"/>";
if ($_POST["langage"] == "C/C++")
{
echo "<input type=\"submit\" value='Télécharger en .c'/>";
echo "<input type=\"hidden\" name=\"ext\" value=\"3\"/>";
}
else
{
echo "<input type=\"submit\" value='Télécharger en .g1r'/>";
echo "<input type=\"hidden\" name=\"ext\" value=\"";
if ($_POST["calculatrice"] === "Prizm/Cg-10/Cg-20")
echo "2";
else
echo "1";
echo "\">";
}
}
}
?>
</center>
</div>
</form>
</div>
</div>
<center>
<br/>Sprite Coder, codeur de sprites et d'images pour les calculatrices CASIO, en C/C++ et Basic.<br/>
Codé par Smashmaster pour le site <a href="http://www.planete-casio.fr">www.planete-casio.fr</a>
</center>
</body>
</html>