Summary: | Crash on select a lot games | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Eugene Vlasov <eugvv> |
Component: | pysol | Assignee: | Alexei Takaseev <taf> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P3 | CC: | antohami, cas, cow, darktemplar, evg, george, grenka, imz, lav, master, mithraen, nbr, qa_viy, rider, sem, shaba, sin, slev, vitty, viy |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
Eugene Vlasov
2004-07-05 16:14:23 MSD
По всему похоже, что это те игры, которые имеются в меню выбора, но реально отсутствующие. Надо патчить исходники :( Нет, эти игры в исходниках есть (я немного поковырялся). Проблема в том, что там довольно сложная система наследования. Ошибка возникает при вызове методов класса - родителя, которые перекрыты (конструкция вида BaseClass.Method(self, ...)). Почему такая конструкция не работает в данном случае - не знаю. Не, на таком уровне в python я не спец. Я пакет-то вытащил из orphaned только потому, что некоторые игры из него понравились. А уж настолько серьезно перетряхивать потроха исходников моих знаний явно недостаточно. Летом как бы обещается бета пятой версии pysol, может там что сделают? Кажется я нашел решение. Вот кусок дебиановского патча, который исправляет положение: ---- pysol-4.82.orig/src/main.py +++ pysol-4.82/src/main.py @@ -92,7 +92,7 @@ # try to load plugins if not "--noplugins" in args[1:]: - for dir in (os.path.join(app.dataloader.dir, "games"), + for dir in (#os.path.join(app.dataloader.dir, "games"), os.path.join(app.dataloader.dir, "plugins"), app.dn.plugins): try: Проблема в том, что файлы из каталога games импортируются дважды - из pysol.py и из main.py. Нда, как все просто, когда знаешь куда смотреть :) Патч приложен к сборке pysol-4.82-alt4. Ушло в incoming |