Posté le 05/02/2017 15:43
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2025 | Il y a 207 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 05/02/2017 15:46 | #
Question conne : as-tu lu le manuel du SDK concernant les fonctions de la fxlib ?
http://bible.planet-casio.com/casio/sdk_manuals/Libraries.pdf
Mon blog ⋅ Mes autres projets
Citer : Posté le 05/02/2017 15:48 | #
J'ai pas lu le manuel, mais le wiki
Ajouté le 05/02/2017 à 23:28 :
Petit up car j'en ai besoin pour pouvoir continuer mon jeu sereinement
J'ai décortiqué le code d'Atlantis de Lephénixoir, mais le soucis c'est qu'il sauvegarde dans la MainMemory, or j'aimerais le sauvegarder dans la Storage
Citer : Posté le 05/02/2017 23:31 | #
Pourquoi souhaites-tu sauvegarder dans la mémoire de stockage ? La mémoire principale suffit pour une sauvegarde.
Mon blog ⋅ Mes autres projets
Citer : Posté le 05/02/2017 23:38 | #
J'trouva ça plus propre
Enfin bon, je vais regarder ce topic (merci Zezombye).
Citer : Posté le 07/02/2017 20:38 | #
Pourquoi ne pas utiliser la lib de je-sais-plus-qui ? Y'a eu ça qui trainait un moment, j'essaie de remettre la main dessus (plus dur que prévu, je croyais que c'était sur le GitLab…)
Ajouté le 07/02/2017 à 20:39 :
Trouvé, c'est memory de Lephe
Citer : Posté le 07/02/2017 21:26 | #
Bah c'est ce que j'utilisais, mais j'avais un soucis, et quand j'ai mentionné "memory", Lephé m'a dit que finalement cette lib était bof bof
Citer : Posté le 07/02/2017 21:35 | #
Je lui ai dit de ne pas l'utiliser parce qu'elle est pas très bien écrite... x)
Voici quelque chose :
FONTCHARACTER file[] = { '\\', '\\', 'f', 'l', 's', '0', '\\', 'l', 'e', '_',
'j', 'e', 'u', '.', 's', 'a', 'v', 0x00 };
// Peut se tromper en cas d'erreur incongrue, mais ne repondra 1 que si la
// sauvegarde n'existe pas avec certitude.
int no_save(void)
{
FONTCHARACTER name[30];
FILE_INFO info;
int handle;
int x = Bfile_FindFirst(file, &handle, name, &info);
Bfile_FindClose(handle);
return (x == IML_FILEERR_ENUMRATEEND);
}
// Sauvegarde les donnees. Peut echouer si un truc inattendu se passe, mais il
// faudrait que tu le geres et tu ne renvoies meme pas un int donc difficile de
// faire quoi que ce soit... ^^
void save(const struct Data *data)
{
Bfile_DeleteFile(file);
Bfile_CreateFile(file, sizeof *data);
int handle = Bfile_OpenFile(file, _OPENMODE_WRITE);
if(handle < 0) return; // Too bad
Bfile_WriteFile(handle, data, sizeof *data);
Bfile_CloseFile(handle);
}
// Ecrit une sauvegarde par defaut.
void new_save(void)
{
struct Data default_data[] = {
// Je te laisse completer...
};
save(default_data);
}
// Lit une sauvegarde. Memes remarques que save().
void read_save(struct Data *data)
{
int handle = Bfile_OpenFile(file, _OPENMODE_READ);
if(handle < 0) return; // Too bad
Bfile_ReadFile(handle, data, sizeof *data, 0);
Bfile_CloseFile(handle);
}
Citer : Posté le 07/02/2017 21:38 | #
Ah nice
Au pire pour l'erreur, genre j'fais une boucle qui exécute save ou read tant que la fonction renvois une erreur
Ajouté le 07/02/2017 à 21:51 :
Oulà non en fait j'pense à un truc du genre y'a pas assez de mémoire
Ouai je vois le truc bon... J'vais voir si je gérerais ça
Ajouté le 07/02/2017 à 22:16 :
Cela viens du return (x == IML_FILEERR_ENUMRATEEND);
J'ai remplacé par (x != 0) et ça marche
Citer : Posté le 08/02/2017 12:05 | #
Je crois que je me suis trompé, ça doit être handle qui prend la valeur IML_FILEERR_ENUMRATEEND. Je te déconseille de tester brutalement x != 0 parce que s'il se produit une mauvaise erreur d'I/O tu vas croire que le fichier n'existe pas et tu risques de l'écraser. Ce n'est pas un risque que ton utilisateur voudra prendre.
Citer : Posté le 08/02/2017 12:19 | #
Je teste avec handle quand je rentre
Ah ouai j'vais plutôt mettre x > 0 du coup car les erreurs sont négatives.
Citer : Posté le 08/02/2017 13:08 | #
La fonction ne renvoie jamais de valeurs positives pour autant que je me souvienne. Si tu mets x > 0 faut peut-être t'attendre à des surprises...
Citer : Posté le 08/02/2017 13:52 | #
Ah non pardon je voulais dire x < 0
Citer : Posté le 08/02/2017 21:50 | #
Eh ben justement, non. Si tu fais ça tu vas faire croire à ton jeu que le fichier n'existe pas dès qu'il y aura une erreur à la con du genre « il y a déjà 4 handles de recherche ouverts » ou une sale erreur d'I/O. Tu risques alors d'écraser un fichier existant. Non, la seule erreur qu'il est valide de tester c'est « aucun fichier ne correspond au motif recherché ».
Citer : Posté le 08/02/2017 22:17 | #
Bon d'accord d'accord