Posté le 10/10/2021 10:55
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 82 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 20/06/2022 15:33 | #
Ah x)
Merci de ta réponse je vais regarder ça
C'est quoi un "world switch" ? ^^'
Citer : Posté le 20/06/2022 15:35 | #
Un world switch c'est quand tu sors temporairement de gint. On ne peut pas utiliser le système de fichiers en même temps que gint est actif parce que ça fait conflit sur l'usage du matériel. Voilà comment ça marche :
void une_fonction(<arguments>)
{
...
}
// comme [une_fonction(<les arguments>)] mais lance la fonction hors de gint
gint_world_switch(GINT_CALL(une_fontion, <les arguments>));
Il y a quelques restrictions sur le nombre et type des arguments, mais on pourra voir ça plus tard.
Citer : Posté le 20/06/2022 17:51 | #
Ça a l'air super bien ! J'ai trop envie de tester !
libMicrofx : https://www.planet-casio.com/Fr/forums/topic17259-2-libmicrofx-remplacez-fxlib-pour-faire-des-add-ins-tres-legers.html !
Racer3D : https://www.planet-casio.com/Fr/programmes/programme4444-1-racer3d-mb88-jeux-add-ins.html
Citer : Posté le 20/06/2022 18:56 | # | Fichier joint
Il me reste encore la sauvegarde à gérer, mais si tu veux t'amuser (sans aucune sauvegarde donc) je te met l'exécutable en fichier joint.
Citer : Posté le 20/06/2022 18:57 | #
Merci ! Je vais tester et te dire si il y a des bugs :-).
libMicrofx : https://www.planet-casio.com/Fr/forums/topic17259-2-libmicrofx-remplacez-fxlib-pour-faire-des-add-ins-tres-legers.html !
Racer3D : https://www.planet-casio.com/Fr/programmes/programme4444-1-racer3d-mb88-jeux-add-ins.html
Citer : Posté le 20/06/2022 19:09 | #
Merci !
En truc notable pas géré, il y a la rotation des aéroports. L'orientation des ports est automatique. Je suis en train de réfléchir à d'autres trucs qu'il me resterait à gérer, mais je ne vois pas… peut-être surveiller que les ports restent à proximité de l'eau ou ajuster les évènements aléatoires… Et la sauvegarde of course
Citer : Posté le 20/06/2022 20:16 | #
C'est quoi la rotation des aéroports ?
libMicrofx : https://www.planet-casio.com/Fr/forums/topic17259-2-libmicrofx-remplacez-fxlib-pour-faire-des-add-ins-tres-legers.html !
Racer3D : https://www.planet-casio.com/Fr/programmes/programme4444-1-racer3d-mb88-jeux-add-ins.html
Citer : Posté le 20/06/2022 20:18 | #
Ah nan mais c'est trivial te prend pas la tête xD En fait, dans le jeu, l'aéroport est un bâtiment qui prend 1 case par 2, mais parfois c'est pratique de le mettre dans l'autre sens pour avoir 2 cases par 1 voila ça je gère pas xD J'ai tous les dessins pour le faire, faut juste que je le programme.
Citer : Posté le 20/06/2022 20:21 | #
Ah ! Ok !
Je viens de commencer à jouer, et j'ai tout de suite remarqué que tu avais laissé la page de titre comme sur l'original.
Au début, j'ai eu un peu de mal à comprendre ce qu'il y avait dans les menus, et combien d'argent il me reste.
Sinon il marche très bien et est très fluide.
libMicrofx : https://www.planet-casio.com/Fr/forums/topic17259-2-libmicrofx-remplacez-fxlib-pour-faire-des-add-ins-tres-legers.html !
Racer3D : https://www.planet-casio.com/Fr/programmes/programme4444-1-racer3d-mb88-jeux-add-ins.html
Citer : Posté le 20/06/2022 20:24 | #
C'est une refonte de l'original, j'ai pas du tout toucher aux dessins ni rien, juste revu complètement le code pour le rendre plus moderne et rapide. L'argent restant, je peux l'afficher sur la page principale, après le contenu des menus j'ai pas tout communiqué dessus donc normal d'être un peu perdu. Je ferais une petite doc digne de ce nom au moment de la sortie "officielle"
Citer : Posté le 21/06/2022 08:31 | #
Hey je suis de retour avec quelques questions
Déjà je pensais laisser le world switch un peu de côté, il ne servira que pour les appels aux fonctions de sauvegardes, donc si j'ai bien compris, c'est pas la peine de me prendre la tête avec ça tant que je ne m'occupe que des fonctions de sauvegardes en elles-mêmes.
Pour l'instant j'ai deux fonctions read_save et write_save, j'ai attaqué read_save en premier… La fonction ressemble à ça :
{
FILE *fp;
fp = fopen(filename, "r");
if (fp == NULL)
default_values(calccity, camera, map);
else
{
}
fclose(fp);
}
Dans le else il faut donc récupérer le contenu de la sauvegarde existante, mais j'ai pas compris comment fonctionne fgetc, ça ne renvoie qu'un seul caractère du fichier à chaque appel ? Y a-t-il moyen de lire des "blocs" d'une taille donnée pour récupérer les structures ? Faut-il envisager une méta-structure qui contiendrait toutes les autres pour la sauvegarde ?
Merci d'avance
Citer : Posté le 21/06/2022 09:16 | #
Correct.
Ton code est très bien. En effet, fgetc() ne renvoie qu'un caractère, ce qui est pas très pratique. Si tu veux lire une structure, tu peux le faire directement avec fread():
{
FILE *fp;
fp = fopen(filename, "r");
if (fp == NULL)
default_values(calccity, camera, map);
else
{
int count = fread(calccity, 1, sizeof *calccity, fp);
if(count != 1)
{
/* La lecture a échoué */
}
}
fclose(fp);
}
fread() suppose que tu veux lire un tableau ; le deuxième paramètre est le nombre d'éléments à lire, le troisième est la taille d'un élément. fread() renvoie le nombre d'éléments qui ont été entièrement lus. Ici j'ai chargé une seule struct calccity donc le deuxième paramètre vaut 1. Tu peux continuer comme ça avec d'autres structures.
Note que lire/écrire des structures dans des fichiers comme ça ça ne marche que si les structures ne contiennent pas de pointeur. C'est le cas ici, mais ça ne marcherait pas avec struct building par exemple
Citer : Posté le 21/06/2022 10:46 | #
J'ai remarqué quelque chose de bizarre :
J'avais passé les taxes de 5% à 20%
J'avais baissé les dépenses (de 100% à 5%)
Le bonheur est passé de 4 à 11 !
libMicrofx : https://www.planet-casio.com/Fr/forums/topic17259-2-libmicrofx-remplacez-fxlib-pour-faire-des-add-ins-tres-legers.html !
Racer3D : https://www.planet-casio.com/Fr/programmes/programme4444-1-racer3d-mb88-jeux-add-ins.html
Citer : Posté le 21/06/2022 11:01 | #
Lephé' : Merci je vois ! Et ensuite je peux enchaîner les fread si j'ai plusieurs structures dans le fichier ? Et si j'ai des pointeurs ? (typiquement, dans struct map j'ai deux "matrices" de 50 par 50 à stocker… ^^'
Mb88 : Oui moins il y a de taxes, plus les gens sont heureux
Edit : Après relecture de mon code toute les structures contiennent des pointeurs ^^' (voir le header avec les structures)
Citer : Posté le 21/06/2022 17:39 | #
Mb88 : Oui moins il y a de taxes, plus les gens sont heureux
Oui mais là c'était l'inverse : j'ai augmenté les taxes.
Edit : Sinon, il y a une nouvelle version ?
libMicrofx : https://www.planet-casio.com/Fr/forums/topic17259-2-libmicrofx-remplacez-fxlib-pour-faire-des-add-ins-tres-legers.html !
Racer3D : https://www.planet-casio.com/Fr/programmes/programme4444-1-racer3d-mb88-jeux-add-ins.html
Citer : Posté le 21/06/2022 17:43 | #
Ah ok, je reverrais mes calculs alors, merci du retour
Nop aujourd'hui j'ai été un peu pris ailleurs… ^^'
Citer : Posté le 21/06/2022 18:33 | #
J'ai re-regardé mon code, de quelle taxe s'agissait-il ? Parce que toutes les taxes n'influent pas sur le bonheur, donc les deux évolutions ne sont peut-être pas corrélées en fait.
Citer : Posté le 23/06/2022 09:39 | #
Voila, j'ai trois structure à sauvegarder dans un fichier, pour la structure camera il n'y a pas de pointeurs donc ça devrait aller (j'ai un seul pointeur en fait, mais je comprends comment fonctionne les autres structures ça ne devrait pas poser de problème…)
Pour les structures calccity et map je n'ai que des listes voir des tableaux et j'arrive pas à me dépêtrer avec ça x)
J'étais plutôt parti pour écrire la fonction de lecture de la sauvegarde en premier et je ne suis pas encore fixé sur l'ordre dans lequel les structures seront stockées, mais pour l'instant j'ai cette fonction :
{
FILE *fp;
fp = fopen(filename, "r");
// If the backup doesn't exist
if (fp == NULL)
default_values(calccity, camera, map);
else
{
fread(camera, 1, sizeof *camera, fp);
}
fclose(fp);
}
Ce qui permet donc de lire la structure camera dans l'hypothèse où elle ne contient de pas de pointeurs.
Toutes les structures sont définies ici : https://gitea.planet-casio.com/Shadow15510/CalcCity/src/branch/dev/src/calccity.h
Et j'aimerais réussir à lire les deux autres strucutres ^^' qui elles contiennent des pointeurs…
Merci d'avance
Citer : Posté le 23/06/2022 10:41 | #
Pour Tituya qui voulais savoir comment ça fonctionne, le code que j'ai envoyé juste au dessus est correct en fait.
Citer : Posté le 23/06/2022 14:28 | # | Fichier joint
Première version complète en fichier joint.
Il ne reste que les aéroports à faire tourner, mais c'est pas très important. La sauvegarde est fonctionnelle (merci Lephé' xD) et toutes les mécaniques du jeu d'origine sont présentes.
Citer : Posté le 23/06/2022 17:14 | #
Super ! Je vais tout de suite le mettre sur ma Graph.
libMicrofx : https://www.planet-casio.com/Fr/forums/topic17259-2-libmicrofx-remplacez-fxlib-pour-faire-des-add-ins-tres-legers.html !
Racer3D : https://www.planet-casio.com/Fr/programmes/programme4444-1-racer3d-mb88-jeux-add-ins.html