News:

Do you need help?
Simutrans Wiki Manual can help you to play and extend Simutrans. In 9 languages.

Au secours mes boutons du menu ont disparus

Started by Franck70, November 23, 2013, 12:50:58 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Franck70

Bonjour tout le monde

Je viens a vous car j'ai un gros soucis depuis hier mes boutons du menu outils ferroviaire, outils routier outils aeriens etc ont disparus de la barre de menu.

j'ai simutrans 112.3
Pack 96th comic 0.4.10

Quand je relance le jeu ils y sont mais des que je charge ma partie en cours ils disparaissent.

Franck70

Je rajoute une capture d'ecran pour que vous vous rendiez mieux compte



gauthier

La seule chose anormale dans ton jeu, outre l'absence des barres d'outils qui te pose problème, c'est le fait que tu joues en l'an 3006. J'ai essayé de mon côté, avec le pak128, de jouer en l'an 2999 (maximum qu'on peut mettre en début de partie), je n'avais déjà plus de barres d'outils non plus. Idem en avançant jusqu'en l'an 3007.

Il faut donc que tu fasses une croix sur ta partie et que tu en commences une autre à une époque raisonnable (je doute que tu aies joué ta partie pendant un millénaire, ou alors tu es original :p ). Sinon je te suggère de signaler ça en partie internationale (partie bug reports, en indiquant dans le titre la version de Simutrans avec laquelle tu joue, le pak et sa version également, et la nature de ton problème évidemment). Il pourront éventuellement régler ça rapidement (même si j'en doute fort).

Franck70

Et bien je joue avec en mode accelere c'est pour cela que les annees sont si avancees.

Je vais aller en parler dans la partie internationnale alors, je ne savais pas qu'il y avait une limite de temps de jeu :/

Et jje suppose qu'on peut pas faire croire au jeu qu'on a fait un retour dans le temps?

Franck70

j'ai fait le test effectivement au passage au 1er janvier 2999 c'est la que ca pose probleme et avec en prime tout un tas de messages qui defilent en bas de l'ecran dont voici les premiers




gauthier

Voici en gros mon interprétation :

Pour quasiment tout les objets du jeu, on peut préciser un paramètre "retire_year" correspondant à l'année de retrait de l'objet (obsolescence pour un véhicule, disparition des barres d'outils pour les constructions joueur, disparition tout court pour les bâtiments de ville, ...). Lorsqu'on ne précise pas un paramètre dans le fichier .dat d'un objet avant sa compilation par makeobj, makeobj lui donne une valeur par défaut. Pour la retire year, cette valeur doit être 2999.

Cela veut dire que le problème ne se trouve pas dans le code du jeu mais dans le code de majeobj et surtout dans CHAQUE objet de chaque pak. Il serait donc nécessaire de changer le code de makeobj pour reculer cette date par défaut, mais après il faudra recompiler entièrement chaque pak et le mettre à jour. Ce qui est plus emmerdant c'est qu'au niveau des addons, il faudra que chaque créateur recompile tout ses addons ...

Une solution alternative serait que le jeu lui-même ne tienne pas compte des dates de retrait égales à 2999.

Le plus efficace serait d'utiliser la valeur 0 pour signifier "pas de date de retrait", ça demanderait à la fois quelques modifications dans le code et à la fois la recompilation de tout les objets mais ça serait la seule solution véritablement efficace à long terme.


EDIT : après lecture du sujet que tu as créé en bug reports, il semblerait que le problème soit uniquement au niveau du code du jeu (auquel cas je desespère, parce qu'il faut vraiment pas être fin pour adopter une solution pareille avec une date qui reste à l'échelle du joueur ...).

Franck70

Je comprend la situation et en effet je comprend pas pourquoi ne pas avoir laisser cette valeur sur infini ou du moins  pour des raisons de codage et d'occupation de memoire pour si je dis pas de betise que le codage de l'annee reste sur un octet ne pas avoir mis 9999. Ok ca doit pas arriver souvent des gens qui jouent aussi loin, mais bon je voulais vraiment aller loin pour voir mes villes s'etendre au maximum.

Par contre je pense a une chose dans le jeu nous avons un bouton qui permet d'avancer automatiquement d'un an la date ne pourrait on pas inclure le bouton qui permet de faire l'inverse?

gauthier

Un entier codé sur un octet ne permet pas de monter plus haut que 255. Les entiers dignes de ce nom sont codés au minimum sur quatre octets et permettent d'atteindre 2^32 - 1, soit environ quatre milliards (donc largement plus que 2999). Mais même avec ça, la solution adoptée est une solution bizarre puisque coder une valeur spéciale (0 remplirait très bien ce rôle) désactivant tout simplement le retrait de l'objet serait de très loin la solution la plus efficace.

Franck70

Et donc y'a une possibilte que ca soit mis en place un jour ou pas ce genre de modification?

En tout cas merci du suivi je voit que ce forum est reactif

gauthier

Ca je ne sais pas, il faut voir si les codeurs sont motivés et ont le temps (en gros tu peux t'asseoir dessus et faire une nouvelle partie XD ).

Lmallet

Je suis surpris de la quantité de discussion entre les devs, il y a une lueure d'espoir.  :)