59Fermer61
deephLe 20/04/2013 à 10:03
Ça fait un bout de temps que je n'y ai pas retouché, mais je crois qu'enfaite lorsque plusieurs pokémons ont combattu, leur ID+1 (autrement le pokémon avec l'ID 0 poserait problème) est stockée dans la liste pokemon_who_fought afin de pouvoir s'occuper de la répartition équitable de l'XP entre chaque, sauf que justement ça posait problème (dans la boucle battle_experience_distribution_loop) : je crois qu'il fallait uniquement mettre à jour la barre d'XP du dernier pokémon ayant combattu (donc qui est à l'écran) et que justement ça posait problème... Après un premier tour de la boucle les données doivent être corrompues (hl ne pointe plus vers pokemon_who_fought et/ou b ne contient plus le nombre de pokémon ayant combattus, ou alors c'est que quelque chose cloche dans la boucle elle même) :/

D'ailleurs je m'étais mis un commentaire pour savoir où j'en étais (avec un ld b,25\ call wait pour me permettre d'avoir le temps d'accéder au debugger).
chickendude (./59) :
Tu pourrais peut-être sauver quelques octets si tu mettais le string "MONOCHROME" dans le sprite qui dit "Pokémon".

Pas sûr, parce qu'il faudrait augmenter légèrement la taille du sprite pour que ça rentre tongue

Mais de toute façons je trouve l'écran titre assez moche (vide ?), donc j'y retoucherai peut être.
chickendude (./59) :
J'ai commencé à coder une routine de menu plus compacte, mais je ne sais pas comment tu veux gérer la sélection d'une des options, je pensais que l'on pourrait faire quelque chose comme :

C'est vrai que c'est un peu plus optimisé que ce que je fait déjà smile

Par contre il faudrait que la routine gère les déplacements gauche/droite du curseur (ce que fait la routine actuelle, mais avec un "hack" assez moche : je suis obligé de récupérer les coordonnées du curseur (par rapport à l'écran) pour pouvoir deviner à quelle ligne/colonne il est. Une solution plus simple et plus propre serait sans doute d'avoir deux variables (cursor_row/col) en SMC, parce que ça me simplifierait pas mal la vie (par exemple, lorsque je doit stocker ces coordonnées pour pouvoir me servir à nouveau de la routine du menu, dans le cas des sous-menu, et après pouvoir revenir au menu initial avec le curseur au bon endroit).

Il faudrait aussi que comme avec l'actuelle, les routines appelées lorsqu'on bouge le curseur soit spécifiables en paramètres : menu_valid_addr, menu_cancel_addr, menu_down_addr, menu_up_addr, menu_left_addr, menu_right_addr, menu_oncursor_addr.

Autrement, je trouve ma routine de texte _vputs_ml assez moche, j'hésite à la recoder...

Enfin merci, ça va me motiver à m'y remettre smile