wow, cela en jette ! Excellent, avec les effets sonores etc…
je sens que ce jeu va faire parler de lui ! En plus l’histoire semble bonne aussi. La charmante dame est d’accord pour figurer dans le jeu ?
Pour ton problème, je ne pense pas bcp pouvoir t’aider, mais je crois me souvenir que j’avais une erreur similaire un jour dans mon jeu (mais pas à la sauvegarde), il y avait une petite erreur de syntaxe ou de conception, qui rendait le jeu très instable en version glulx. Est-ce qu’il te serait possible d’essayer de compiler en Z5 ou Z8 ? Ainsi tu pourrais peut-être mieux identifier l’erreur.
Tu devrais aussi essayer de compiler avec les fonctions de deboggage, et voir s’il n’y a pas un objet qui pose problème.
Enfin, tu peux aussi essayer de faire des coupes franches dans ton code (enfin, une copie), si c’est possible, et voir pour une partie puis l’autre si la sauvegarde pose encore pb.
J’ai remarqué aussi que la sauvegarde ne replace pas l’image d’où on avait sauvegardé, mais cela est sans doute inévitable
Bah, j’y suis presque, mais voici le coeur du problème et la solution.
Coeur du problème et identification :
Glulx gère une fenetre principale qui s’appelle mainwin.
On peut coller des images, ecrire, jouer, interagir, le principe de sauvegarde / chargement est géré sans problème.
Si on ouvre une autre fenetre (par exemple mapwin dans mon exemple), le système sauvegarde / restauration ne prend pas en compte la gestion de cette nouvelle fenetre et fait planter l’interpreteur.
La solution est toute simple, il vous suffit de copier « aveuglement » :
[IdentifyGlkObject phase type ref rock res id;
res = res; id = id; ! ← These are just warning squashers
if (phase == 0) { ! Zero out references to our objects.
gg_mapwin = 0;
}
if (phase == 1) { ! Reset our windows, streams and filerefs.
switch (type) {
0: switch (rock) {
GG_MAPWIN_ROCK: gg_mapwin = ref;
}
1: ! stream
2: ! fileref
}
}
if (phase == 2) { ! Update our objects.
! RedrawMapInMapWindow(); ! Or do anything you like…
}
return;
];
ou vous voulez dans votre code, en remplacement gg_mapwin par gg_cequevousvoulezwin suivant le nom de votre (ou vos) fenetre(s).
J’ai annulé la fonction redrawMapinMapWindow(); car elle présuppose qu’on utilise le même principe d’update d’image dans la fenetre graphique que celle décrite dans Gull de Adam Cadre, ce qui n’est pas le cas de mon projet actuel…
Je l’avais téléchargé le jour où tu as posté le 1er message.
Et en fait j’étais bloqué dans le premier bureau. Je suppose qu’on peut demander au collègue de nous faxer une photo du tableau ou je ne sais quel document, mais lorsque je l’appelle je tombe sur quelqu’un d’autre, et je n’arrive pas à parler à cette personne.
C’est peut-être une fausse piste mais en tout cas j’ai surtout insisté sur le téléphone, sans arriver à avancer.