Das Forum

Amélioration du code

Autor Antworten
Id2ndR Saturday 10 November 2007 at 13:38
Id2ndRAnonymous

Bonjour,

J'utilisais POL v1 et je suis passé à la v2.

J'ai légèrement modifié les scripts de la version 1 pour par exemple comper les effets du bureau au lancement des jeux.

J'ai pu refaire cette modification dans la v2, mais le nouveau système d'interface en python a introduit beaucoup de redondance dans le code. Je m'explique :
- Il suffisait avant de rajouter du code dans bin/games dans la fonction lancer()
- Maintenant python/mainwindows.py possède la fonction Run (ligne 338) mais cette dernière ne fait pas appel à la fonction lancer précédente. Elle refait ce que cette dernière fait.

J'ai donc remplacé la ligne 342 :
     os.system("cd \""+Variables.playonlinux_rep+"/configurations/installed/\" && bash \""+game_exec+"\"&"
par :
     os.system(Variables.playonlinux_env+"/playonlinux --run "+game_exec)
C'est en effet la façon la plus simple que j'ai trouvé pour faire appel à la fonction lancer (car utiliser la fonction source de bash m'a semblé compliqué avec os.system).


Il y a probablement beaucoup d'amélioration à faire pour limiter la redondance du code. Je ne sais pas si ce fil est l'endroit le plus adapté pour en discuter ?

A+


PS : le script cd CNC3 (CommandAndConquer3) n'est plus dispo dans la version 2. J'ai noté des corrections à faire dans celui de la version 1. J'aimerai savoir comment les proposer pour les intégrer dans les scripts de la communauté.
Id2ndR Monday 12 November 2007 at 1:26
Id2ndRAnonymous

Après avoir discuter avec Tinou, ma proposition n'est pas géniale non plus (car lance 2 instances de POL). De plus ça créé des problèmes au lancement suivant de POL.

J'ai donc trouvé une autre solution me permettant de lancer un script juste avant de lancer le script du jeu. L'idée est d'appeler ce script à la fois dans la fonction lancer() et la fonction run en python.
Ca marche très bien


Concernant CNC3, j'ai repris le script de GNU_Raziel que j'ai simplifié. Je l'ai proposé après l'avoir testé sur la version 2.0.2 de POL. Il ne fonctionne cependant pas directement après l'installation, à cause de la protection du jeu non supportée par wine.