Autor Wątek:  Instalator+Starter+Edytor (Rainsted)  (Przeczytany 179692 razy)

0 użytkowników i 2 Gości przegląda ten wątek.

Offline Ra

  • Deweloper
  • Wiadomości: 6114
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 23
Instalator+Starter+Edytor (Rainsted)
« dnia: 30 Sierpnia 2007, 00:53:57 »
Witam!

Stosunkowo niedawno dotarłem na te strony, wcześniej mnie to nigdy nie interesowało (kolej poniekąd tak). Patrzę na to z mojego punktu widzenia, jako osoby biernie zainteresowanej koleją i w miarę zorientowaną w informatyce.

1. W zasadzie chcąc sobie "pojeździć", w ogóle nie bardzo wiadomo, jak się do tego zabrać. Gdzieś są jakieś paczki, jakieś trasy, jakieś poprawki. Na stronie głównej eu07.pl jest jeszcze jako taki porządek (tylko nieco przeterminowany), ale na forum jest mnóstwo dodatków, większość w postaci linków do nieistniejących (już) plików.

2. W wątkach na forum przeplatają się sensowne dyskusje z wtrąceniami "nie działa mi". Ciężko się to czyta, zwłaszcza w wątkach mających po kilkanaście stron. Nieco zbyt dużo złośliwych uwag...

3. Brak jakiejś dalszej wizji. Mimo przeczytania kilkuset wątków nie wiem, jakie trasy powstają, jakie utknęły, czy jest jakaś perspektywa dla "starego symka" i jaka jest dla SPT.

4. Braki w dokumentacji. Z linków w postach na forum wysnułem wniosek, iż kiedyś na eu07.pl znajdowały się pliki z dokumentacją, które z bliżej nieokreślonych powodów zniknęły.

5. Gdzieś dopiero zza tego rozgardiaszu wyłania się obraz, jak wielka praca została wykonania, żeby to wszystko zrobić. Nie wypróbowałem jeszcze wszystkiego (trochę ciężko za tym nadążyć), jest parę rzeczy, których nie rozumiem (np. dlaczego nie ładują się wagony w Dejawach). Ale na prawdę jestem pod wrażeniem całokształtu.

6. Z wielu wątków na forum wynika dla mnie brak instalatora pakietów. O tym poniżej.


Pomysł na instalator pakietów:

1. Program przeglądałby pliki .scn w celu stworzenia listy plików wymaganych dla danej scenerii. Lista taka miałaby przynajmniej 2 zastosowania: uzupełnianie brakujących oraz tworzenie paczki instalacyjnej do wysłania.

2. W celu rozróżnienia różnych wersji plików program powinien uwzględniać daty oraz sumy kontrolne plików (np. CRC16).

3. Program powinien współpracować z serwerem plików (protokół HTTP). Na serwerze powinny być umieszczone wszystkie oficjalnie wypuszczone pliki (modele, tekstury, includy, dźwięki itd.), we wszelkich dostępnych wersjach (data+CRC). Być może również nieoficjalne wersje testowe.

4. Program powinien umożliwić edycję składów w plikach, zmianę nieba, edycję lub aktualizację pliku "dynamic.dat", być może również edycję plików .chk czy .mmd ze szczegółowym objaśnieniem, co jest co i do czego. Niemniej nie ma sensu kopiować STV.

5. Program powinien sobie radzić ze spakowanymi archiwami. Jest taki pakiet 7zip, którym można by się posiłkować.

6. Do każdego pliku (ścieżka+nazwa+data+CRC) powinna być możliwość wpisywania komentarzy (umieszczanych na serwerze). Komentarze mogłyby być pobierane razem z plikiem. Na podstawie komentarzy można by sobie wybierać odpowiednią wersję pliku (ewentualnie program sam by o tym decydował).

7. Na wszelki wypadek powinna być obsługa mirrorów (serwerów zastępczych).

8. Niektóre osoby (tworzące trasy lub je poprawiające) miały by prawo zapisywania nowych plików bezpośrednio z instalatora.

9. Większa liczba osób (również ograniczona) miała by prawo do komentowania plików.

10. Przy okazji analizowania scenerii, program mógłby sprawdzać pewne rzeczy. Np. niedopasowania torów o kilka mm (tzw. null track), tory zerowe, pionowe, zbyt długie, pliki przeniesione do innego katalogu... Ogólnie informować o innych tego typu błędach.

11. Ewentualnie wykonywać konwersję "starych" scenerii do nowego układu plików (podmiana tekstur i modeli we wpisach node).


Co mogę zrobić:

1. Napisać taki program, o ile ktoś by ze mną współpracował w zakresie jego testowania i zgłaszania mi uwag. Zbyt wiele już rzeczy zacząłem robić samotnie dla siebie i wiem, że to nie jest dobry punkt wyjścia.

2. Dostosować posiadane przeze mnie skrypty PHP do obsługi serwera plików.

3. Zaoferować miejsce i transfer na moim serwerze. Aktualnie posiadam wolne moce, które by się do tego nadawały. Ewentualnie mogę też zrobić jeden mirror. Ktoś inny by musiał uruchomić jeszcze jeden lub dwa.


Czego oczekuję:

1. Powstrzymania mnie, jeśli takie coś już istnieje. Bo może o czymś nie wiem... Nie czuję misji do robienia "lepszej pułapki na myszy". Nie pociąga mnie też tworzenie konkurencji.

2. Rzeczowych wypowiedzi w temacie.

3. Jeśli to możliwe, udostępnienia parsera i klas zastosowanych w symulatorze.

4. Pomocy przy dopracowaniu wyglądu i opisów. Ja się czuję dobrze w przetwarzaniu danych i strukturach abstrakcyjnych, natomiast komunikacja z ludźmi mi gorzej wychodzi.


2009-03-06 Zmiana tytułu wątku.
« Ostatnia zmiana: 06 Marca 2009, 02:33:07 wysłana przez Ra »

Offline Mariusz1970

  • Zasłużony dla Symulatora
  • Wiadomości: 3701
    • Zobacz profil
  • Otrzymane polubienia: 66
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #1 dnia: 30 Sierpnia 2007, 01:28:39 »
Kiedyś robiłem prymitywne stosunkowo narzędzie do wyciągania wszystkich plików używanych w daniej scn. Problem miałem taki, że pliki rozróżniał po rozszerzeniu. Czytał każdy wiersz i jeżeli np. natrafił na frazę np .tga odczytywał nazwę pliku. Problemy były, gdy:
1)plik używany był bmp, a gdzieś w includzie w parametrach nie musi być określenie rozszerzenia dla bmp,
2)był więcej niż jednen plik o takiej samej nazwie ale w różnych katalogach -wtedy użytkownik dokonywał wyboru.
3)program nie powinien kopiować to co autor trasy ma w dynamic/pkp
Poszukaj, gdzieś zdaje się w dziale inne kolejowe.
Ponadto ktoś już chciał podobnego robić co chesz zrobić, zdaje się w dziale na warsztacie, ale coś ucichło.
Tam poznasz moje zdanie na ten temat.
Największy dla mnie ból, to doprowadzanie danych scenerii, aby eventy działały bezproblemowo. Coś tam wspomniałeś o null tracku, często to wynika z błedu eventu scenerii, jakiegoś bugu w modelu, czy w exe. Tu już żaden automat nie pomoże.
Co do tras, często trasy się gryzą ze sobą, bo ktoś nazwał plik, który już istnieje (szczególnie inc semaforów). Trzeba wtedy np. gdzieś w scn zmienic nazwę includowanego pliku i zmienic nazwę samego pliku.
W taborze też sprawa prosta nie jest. Często są te same foldery, a zawartość inna u każdego z userów.
Ponadto nie sądzę, aby autorzy dodatków bawili się jeszcze w instalator, chyba, że będzie szybki i łatwy w obsłudze.
Stan obecny wynika z hobbystycznego podejścia, gdyby pewno komuś płacić, to robiłby ktoś tzw. paczki całościowe, które zawierały by co do tej pory wyszło, a co jest warte uwagi.
Nie chcę przez to zniechęcać, coś przydałby się zrobić, ale pomysłu nie mam, bo odrazu szukam co by było gdyby i pomysł upada.
Myślę, zę jeśli chcesz coś robić, to zacznij od spraw najważniejszych twoim zdaniem z tej całej litanii, którą wypisałeś. Daj do przetestowania, a później dorabiaj te mniej znaczące rzeczy.

Offline uetam

  • Zasłużony dla Symulatora
  • Wiadomości: 2629
    • Zobacz profil
  • Otrzymane polubienia: 1
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #2 dnia: 30 Sierpnia 2007, 10:35:42 »
Cytat: "Ra"

3. Zaoferować miejsce i transfer na moim serwerze. Aktualnie posiadam wolne moce, które by się do tego nadawały. Ewentualnie mogę też zrobić jeden mirror. Ktoś inny by musiał uruchomić jeszcze jeden lub dwa.

Jezeli nie jest potrzebne konto roota to ja moge.

Offline Ra

  • Deweloper
  • Wiadomości: 6114
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 23
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #3 dnia: 30 Sierpnia 2007, 23:46:06 »
Wyobrażam sobie to w taki sposób, że autor scenerii (bądź ktoś, komu dana sceneria działa bezbłędnie) - zapuszcza program, który tworzy spis używanych plików wraz z ich datami modyfikacji oraz sumami kontrolnymi (CRC). Dzięki temu będzie można rozpoznać sytuacje, gdy plik ma tę samą nazwę, a inną zawartość. Inny użytkownik pobiera sobie plik scenerii oraz ten spis plików i dalej następuje synchronizacja - albo pobiera sobie brakujące pliki z serwera, albo program sugeruje przenosiny posiadanych plików pomiędzy katalogami, albo modyfikację pliku scenerii. Zakładam przy tym, że na serwerze plików będzie utrzymany porządek i tam będzie ktoś pilnował, by pliki trafiały do właściwych im katalogów.

Czytałem, że ktoś już coś robił. Być może wszystkiego nie doczytałem. Ale nie widziałem koncepcji pobierania plików online ze wspólnego serwera, na którym jest porządek w plikach (tzn. jest jakiś klucz na ich układanie).

http://www.eu07.pl/forum/viewtopic.php?t=6127 Archiwum SFX
 - o samorozpakowywujących się archiwach

http://www.eu07.pl/forum/viewtopic.php?t=5045 Instalator Dodatków
 - o instalatorze paczek i zawiłym ich tworzeniu

http://www.eu07.pl/forum/viewtopic.php?t=4386 Szopa Loader
 - pomysł i stary program, który już nie działa

Doprowadzanie eventów do działania mnie też gryzie, ale nad ewentualnym edytorem będę myślał później. Akurat w "quarkmce" próbowałem ruszyć machajką i wywalało mi "null track" - okazało się, że między torami jest 1mm przerwy. Poprawiłem i zaczęło działać dobrze. Program mógłby także dopisywać na wszelkich zakończeniach ukryte tory nachylone pod kątem 30° i z dużym współczynnikiem tarcia, aby wszystko co tam wjedzie się samo zatrzymało...


Jeśli trasy się gryzą, widzę takie rozwiązanie:
1. ustalić (automatem) jakie konkretnie pliki są dla danej trasy (nazwa+data+CRC),
2. ustalić (ręcznie), gdzie te pliki powinny być umieszczone i pod jakimi nazwami,
3. zmodyfikować (automatem) pliki .scn dla nowych warunków,
4. zapisać (automatem) te reguły zmian do ewentualnego powtórzenia w przyszłości.

Można zrobić tak, że CRC pliku zostanie dodane do jego nazwy, a następnie ta nazwa zostanie użyta w plikach scenerii. Na serwerze będzie komentarz do tego pliku, iż nie zaleca się jego używania w nowych projektach, ale jest wymagany w scenerii nnn...

To nie ma być instalator w sensie instalatorów programów pod Windows (InstallShield). To ma być raczej synchronizator plików i analizator danych... Coś bardziej jak Windows Update.

Nie wierzę specjalnie w paczki całościowe, że ktoś coś takiego jeszcze zrobi. A uważam, że warto to pozbierać w całość - i lepiej będzie to zrobić w sposób dynamiczny i rozproszony. Przynajmniej odpadnie problem poprawek do starych plików oraz szarych plam.

Dla mnie najważniejsze z tego jest wykonanie spisu plików będących w użyciu, powiązanie ich ze sceneriami oraz ściąganie pliku we właściwej wersji z serwera HTTP. Tego mi najbardziej brakowało, gdy zaczałęm jeździć... Widzę szare wagony i nie wiem czemu. Poczytałem, dociągam jakieś pokątne archiwa i się poprawiło. Ale nadal zdarzają się szare i pilnowanie tego zniechęca. A prosty program wraz z pewnymi działaniami organizacjnymi by to załatwił.

Niemniej zanim zacznę cokolwiek robić, chcę się dowiedzieć, co mają do powiedzenia ludzie bardziej zorientowani. Z doświadczenia wiem, że tak jest lepiej.


Do budowy mirrora potrzebny będzie serwer z ok. 2GB wolnego miejsca (chyba wystarczy...), PHP, MySQL, dostępem do crona i wget.
« Ostatnia zmiana: 10 Września 2007, 22:33:16 wysłana przez Ra »

Offline Mariusz1970

  • Zasłużony dla Symulatora
  • Wiadomości: 3701
    • Zobacz profil
  • Otrzymane polubienia: 66
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #4 dnia: 31 Sierpnia 2007, 00:08:59 »
Ja się tam nie wtrącam, ale z reguły najsłabsze ogniwo to człowiek. To co proponujesz to taki a'la SVN.
Co do null tracka wyłapanego, to fuksik, z reguły wynika z innych przyczyn.
Na koniec: MaSzyn jest tyle, ile jej użytkowników i konsekwcencji z tego wynikających.

Offline uetam

  • Zasłużony dla Symulatora
  • Wiadomości: 2629
    • Zobacz profil
  • Otrzymane polubienia: 1
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #5 dnia: 31 Sierpnia 2007, 11:29:04 »
Ja jestem za, mirrora moge udostepnic ;)

Offline Poscikk

  • Wiadomości: 668
    • Zobacz profil
  • Otrzymane polubienia: 0
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #6 dnia: 31 Sierpnia 2007, 12:37:24 »
Cytat: "Mariusz1970"
Ja się tam nie wtrącam, ale z reguły najsłabsze ogniwo to człowiek. To co proponujesz to taki a'la SVN.


Albo takie coś jak stacja załadowcza Trainz.

Za sterami 138 godzin 28 minut :)

Offline El Mecánico

  • Wiadomości: 1067
  • Dawniej El Driver
    • Zobacz profil
    • Stowarzyszenie POLARIS - OPP
  • Otrzymane polubienia: 1
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #7 dnia: 31 Sierpnia 2007, 17:32:19 »
A mnie się podejście kolegi @Ra bardzo się podoba. Ujmuje rzecz fachowo, przedstawia problem konkretne rozwiązanie. Osobiście mogę się zaoferować przy software developing'u. Ale: pracuję tylko na GNU C++:D
No w ostateczności może nawet być Fortran77:D
www.polaris.org.pl
www.ciemneniebo.pl
MaSzyna_LD w trakcie tworzenia...

Offline Ra

  • Deweloper
  • Wiadomości: 6114
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 23
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #8 dnia: 02 Września 2007, 02:46:06 »
Na razie zdefiniowałem sobie klasy bez metod. Zastanawiam się, jaka dokładność danych jest istotna. Z założenia dane mają być przechowywane w postaci binarnej (nie jako tekst), ale z możliwością ponownego zapisania jako tekst.

Spotkałem się z czymś takim:node -1 0 none triangles material ambient: 149.94 149.94 149.94 diffuse: 149.94 149.94 149.94 specular: 229.5 229.5 229.5  endmaterial GrassDarkGreen2.tga
300.0 0.0 -400.0 0.0 1.0 0.0  66.6998 33.4331 end
300.0 0.0 -500.0 0.0 1.0 0.0  66.6998 0.166399 end
200.0 0.0 -400.0 0.0 1.0 0.0  99.9665 33.4331
endtri
Czy jeśli zaokrąglę wartości ambient:, diffuse:, specular: do liczb całkowitych 0..255 - to będzie duży problem? (Liczba 149.94 to 12 bitów na kolor, czyli RGB miałoby 48 bitów, czyli 281*10^12 możliwych kolorów - ma to sens?) Moim zdaniem można je spokojnie zamienić na 150 i 230, ale być może jestem w błędzie.

Dla współrzędnych w przestrzeni przyjąłem, że 0.001 wystarczy (1mm), a dla współrzędnych na teksturze - 0.000001. Póki co oba typy są jako double float, ale myślę też o zastosowaniu stałoprzecinkowych na bazie int64.

Offline youBy

  • Deweloper
  • Wiadomości: 5450
  • Co tam?
    • Zobacz profil
    • Automat Weryfikujący Regulację i Lambdę
  • Otrzymane polubienia: 27
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #9 dnia: 02 Września 2007, 08:50:22 »
Cytat: "Ra"
Czy jeśli zaokrąglę wartości ambient:, diffuse:, specular: do liczb całkowitych 0..255 - to będzie duży problem? (Liczba 149.94 to 12 bitów na kolor, czyli RGB miałoby 48 bitów, czyli 281*10^12 możliwych kolorów - ma to sens?) Moim zdaniem można je spokojnie zamienić na 150 i 230, ale być może jestem w błędzie.
Oko ludzkie nie powinno zauważyć takiej zmiany koloru; OpenGL sobie potem i tak zamienia te dane na zakres 0..1.
Cytuj

Dla współrzędnych w przestrzeni przyjąłem, że 0.001 wystarczy (1mm), a dla współrzędnych na teksturze - 0.000001. Póki co oba typy są jako double float, ale myślę też o zastosowaniu stałoprzecinkowych na bazie int64.
Jeśli chodzi o trójkąty w scenerii (np. node triangles), to 1mm wystarczy, natomiast w modelach t3d możnaby dać dokładność 0,0001, gdyż mogą być gdzieś komuś potrzebne takie przesunięcia do jakiś efektów, czy coś. Z teksturami jest taki problem, że mogą być powielane wielokrotnie (w przypadku terenu jako jednej bryły będą to nawet tysiące/dziesiątki tysięcy). Niemniej jednak ta dokładność powinna być dobra :)
Xoov
Powyższy post wyraża jedynie opinię autora w chwili publikacji. Autor zastrzega sobie prawo do zmiany poglądów bez podawania przyczyny, jak również informowania o tym.

Offline Ra

  • Deweloper
  • Wiadomości: 6114
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 23
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #10 dnia: 08 Września 2007, 01:38:49 »
Dzięki za komentarze.

Dopracowywuję parser składni... Aktualnie zastanawiam się, jak obsłużyć zmienną ilość liczb w node ... lines. No i zdarza się przepełnienie stosu przy rekurencyjnym usuwaniu wpisów z pamięci po wyborze innej scenerii lub wyjściu z programu. Muszę to zrobić inaczej.

Potrzebuję wyjaśnień co do szczegółów składni (lub działających przykładów) w zakresie:
 1. Wpisu node ... traction z eventem - nie znalazłem takiego.
 2. Wpisu node ... line_strip - nie znalazłem takiego.
 3. Wpisu node ... line_loop - nie znalazłem takiego.
 4. Słowa novis zamiast unvis - są jeszcze jakieś wyjątki?

Offline uetam

  • Zasłużony dla Symulatora
  • Wiadomości: 2629
    • Zobacz profil
  • Otrzymane polubienia: 1
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #11 dnia: 08 Września 2007, 10:00:25 »
w trakcji nie ma nigdy eventow gdyz sie po niej nie jezdzi :)
vis/unvis a nie novis ztcp :)

Offline El Mecánico

  • Wiadomości: 1067
  • Dawniej El Driver
    • Zobacz profil
    • Stowarzyszenie POLARIS - OPP
  • Otrzymane polubienia: 1
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #12 dnia: 08 Września 2007, 10:07:10 »
@Ra: W jakim środowisku programistycznym pracujesz? Jeśli to jakieś C to da się zwiększyć rozmiar stosu. Ew, zamiast stosować rekurencji mógłbyś parsować ten sam plik w kilku przebiegach, za każdym razem poszukując innego interesującego ciągu znaków. Oprużnianie pamieci zwal na destruktory klas (programujesz obiektowo, nie strukturalnie, mam nadzieję:D).
www.polaris.org.pl
www.ciemneniebo.pl
MaSzyna_LD w trakcie tworzenia...

Offline Ra

  • Deweloper
  • Wiadomości: 6114
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 23
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #13 dnia: 08 Września 2007, 20:59:33 »
Nie chcę, żeby mi się składnia wywalała, jak ktoś dopisze event do trakcji i póki co nie wiem, jak go dopisać prawidłowo. Jest tak:
Cytat: Scenery.doc
2.1.2 Traction
(...)
CurrentEvent (opcjonalny) - zdarzenie które zostanie uruchomione gdy dynamic pobiera prąd z sieci.

Słowo novis znalazł mi parser. Jest w wielu plikach, podobnie jak unvis. Na przykład
Cytat: quark-testowo.scm
12590: node -1 0 none track normal 0.2 1.435 0.2 -1 1 1 flat novis
12591: -20.9722 1.10001 334.334  0.0  //point 1
12592: 0.0 0.0 0.0  //control vector 1
12593: 0.0 0.0 0.0  //control vector 2
12594: -20.9722 1.10001 334.634  0.0  //point 2
12595: 0
12596: endtrack

27061: node -1 0 none-stop track normal 10.0 1.435 0.25 20 20 128 flat unvis
27062: -75.7703 0.200012 -320.0  0.0  //point 1
27063: 0.0 0.0 0.0  //control vector 1
27064: 0.0 0.0 0.0  //control vector 2
27065: -75.7701 0.8 -326.709  0.0  //point 2
27066: 0
27067: velocity 5.0
27068: endtrack
Pierwszy jest w koźle za wagonami mieszkalnymi (wg testowo2.scn; WielkiKac_bocznica1), a drugi jest na końcu toru, z którego odjeżdża SN61 z wagonami (tor8).


Używam Borland C++ Builder 4.0 Pro. Zwiększenie stosu to rozwiązanie chwilowe, zawsze ktoś może napisać większą trasę bądź połączyć kilka istniejących. Przy parsowaniu nie ma problemu ze stosem, bo rekurencję tworzą tylko include oraz origin (w porywach też trainset). Problem jest przy usuwaniu obiektów, bo destruktor obiektu sprawdza, czy ma ogon i jeśli tak, to wywołuje destruktor tego ogona. W ten sposób wywoływane destruktory odkładają się na stosie i przy paru tysiącach się on przepłnia (np. dla quarkmc28.scm tworzonych jest 20255 obiektów).

Do tego mam jakiś zawirowanie z funkcjami wirtualnymi - przy śledzeniu destruktora trafiam do funkcji, której wywołania na pewno nie ma. Pomaga dopiero jawne deklarowanie pustych konstruktorów i destruktorów, co jest trochę upierdliwe.


Parser jest na ukończeniu. Poza przetestowaniem wyjątkowo rzadkich wpisów, do zrobienia mam teraz podmianę parametrów formalnych w include, a następnie tworzenie list poszczególnych rodzajów obiektów i plików. Przydało by się również łączyć komentarze z wpisami znajdującymi się przed albo po takim komentarzu, a na razie robione są z nich osobne obiekty.

Offline El Mecánico

  • Wiadomości: 1067
  • Dawniej El Driver
    • Zobacz profil
    • Stowarzyszenie POLARIS - OPP
  • Otrzymane polubienia: 1
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #14 dnia: 08 Września 2007, 23:02:37 »
Borland jest OK, nie mam zastrzeżeń do kolegi:D

Cytat: Ra
Przy parsowaniu nie ma problemu ze stosem, bo rekurencję tworzą tylko include oraz origin (w porywach też trainset).
Sprawdzasz, czy nie ma wielokrotnego dołączania plików? Jeśli jeden plik był dołączony chociaż raz, to ni ma potrzeby robić z nim drugi raz. Oznaczyć jako zrobiony i nie zajmować ponownie pamięci, a odwoływać się przez wskażnik.

Cytat: Ra
Do tego mam jakiś zawirowanie z funkcjami wirtualnymi - przy śledzeniu destruktora trafiam do funkcji, której wywołania na pewno nie ma. Pomaga dopiero jawne deklarowanie pustych konstruktorów i destruktorów, co jest trochę upierdliwe.
Nie upierdliwe, tylko to jest dobry nawyk. Zawsze w klasie wal deklarację destruktora, choćby miał nic nie robić (bo i tak robi, a kompilator nie wygeneruje błędnych odwołań).

Cytat: Ra
Parser jest na ukończeniu.
No to trzymam kciuki. Uda się na pewno, bo przecież symek jakoś parsuje te wszystkie pliki i jak do tej pory nie widziałem "Stack overflow":D
www.polaris.org.pl
www.ciemneniebo.pl
MaSzyna_LD w trakcie tworzenia...

Offline Ra

  • Deweloper
  • Wiadomości: 6114
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 23
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #15 dnia: 09 Września 2007, 23:44:11 »
Na razie include ładują się tylko na życzenie. Nie ma jeszcze podstawiania parametrów (p*). Plik tekstowy dla include ładuje się tylko raz, a jest parsowany oddzielnie dla każdego wpisu.

Może nawyk jest dobry, ale dodawanie pustych konstruktorów i destruktorów dla kilkudziesięciu klas kończy się tym, że co jakiś czas znajduję jakąś klasę, do której jeszcze któregoś z nich nie dopisałem. :) W każdym bądź razie, nie łazi mi już gdzie nie powinien.

Z usuwaniem obiektów z listy poradziłem sobie w taki sposób, że zamiast wywoływać destruktor następnego z listy (co powoduje ogromną rekurencję, bo następny usiłuje usunąć kolejnego),
if (next) delete next; //usuwanie rekurencyjnewyjmuję ten następny poza listę i usuwam go pojedynczo.while (next)
 {p=next; //następny (tu na pewno coś jest)
  next=p->next; //skrócenie listy (tu może już być NULL)
  p->next=NULL; //obiekt wyjęty z listy nie ma ogona
  delete p; //i do pieca
 } //pętla opróżnia do zera

Nie mam pojęcia, jak to jest zrobione w Symku. Na pewno tam może być to zrobione prościej, bo nie ma potrzeby zapisania tego ani odporności na błędy składni. Ja chcę to zrobić tak, by po zmianach dało się to zapisać, a także by były analizowane wpisy w komentarzach. Zrobiłem już przymiarki do pomijania błędnych wpisów (program będzie wskazywał wadliwy fragment). W zasadzie to mogę już pokazać, co zrobiłem dotychczas. Program [aktualny link w podpisie] należy umieścić w głównym katalogu, tam gdzie EU07.EXE. Jest bezpieczny - jedynie czyta pliki i nie ma żadnego złośliwego kodu - ale za ewentualne straty nie odpowiadam. Mogą być potrzebne biblioteki Borlanda (993kB) - rozpakować w to samo miejsce, albo do katalogu SYSTEM Windows. Będę wdzięczny za przekazanie mi informacji, w jakich warunkach się wysypuje i plików scenerii, których nie czyta prawidłowo.

« Ostatnia zmiana: 16 Września 2007, 17:54:24 wysłana przez Ra »

Offline Krzysiek626

  • Zasłużony dla Symulatora
  • Wiadomości: 5753
  • EXIT
    • Zobacz profil
    • Krzysiek626
  • Otrzymane polubienia: 270
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #16 dnia: 11 Września 2007, 17:37:52 »
Niestety nie udało się uruchomić. Komunikat o braku biblioteki vclx40.bpl
Bliblioteki umieszczone w windows/ system a także w katalogu głównym maszyny. Katalog główny maszyny ma ścieżkę: G:/def/eu07.

Offline Ra

  • Deweloper
  • Wiadomości: 6114
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 23
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #17 dnia: 11 Września 2007, 19:19:43 »
Hm, "ja wiedziałem, że tak będzie"... Wgrałem bibliotekę VCLX40.BPL do wcześniej podanego archiwum. Z nią powinno już działać.

Zrobiłem też nowszą wersję: [aktualny link w podpisie]
  • zamiana / na \ w nazwach plików,
  • sprawdzanie, czy plik istnieje (=1),
  • poprawione nazwy katalogów (brakowało s na końcu),
  • jeśli plik tekstury nie znaleziony, sprawdzanie .TGA, .TEX i .BMP,
  • domyślne rozszerzenie .INC dla pliku include (tak ma być?),
  • include w komentarzu nie jest już wczytywane automatycznie,
  • poprawiona analiza komentarzy // (było po wyrazie zamiast do końca linii),
  • blokada parsowania nieistniejących plików include.
« Ostatnia zmiana: 11 Listopada 2007, 16:34:56 wysłana przez Ra »

Offline Krzysiek626

  • Zasłużony dla Symulatora
  • Wiadomości: 5753
  • EXIT
    • Zobacz profil
    • Krzysiek626
  • Otrzymane polubienia: 270
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #18 dnia: 11 Września 2007, 21:59:02 »
Mocno przestrzegam testowanie tego programu i wczytywanie nieznanych bibliotek. Nieznane jest niestety działanie i wpływ bibliotek na działanie systemu i symulatora. Autor napisał że nie bierze odpowiedzialności. Mnie próba odpalenia programu zaszkodziła.
Cytuj
Hm, "ja wiedziałem, że tak będzie"...

Skoro wiedziałeś to czemu tak zrobiłeś?
teraz to już nie ważne....

Offline Ra

  • Deweloper
  • Wiadomości: 6114
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 23
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #19 dnia: 11 Września 2007, 22:37:23 »
Wszystkie biblioteki pochodzą z pakietu Borland C++ Builder Pro i nie są modyfikowane (mają daty z 1998/2000). Prawie każdy program stworzony tym kompilatorem będzie ich potrzebował. Komunikat o braku biblioteki jedynie uniemożliwia uruchomienie programu.

Mnie próba odpalenia programu zaszkodziła.
Coś Ci się uszkodziło?

Jeśli program nie znajdzie bibliotek, wyświetla komunikat, że ich nie ma. Nie mam niestety komputera z systemem bez Borland C++, żebym mógł sprawdzić, jakie to biblioteki. Włożyłem do archiwum trzy, których nazwy znalazłem w kodzie programu (vcl40.bpl, borlndmm.dll, CP3245MT.DLL). Wydawało mi się, że potrzebne były cztery, ale nie byłem pewien - czwarta to vclx40.bpl.

Offline Krzysiek626

  • Zasłużony dla Symulatora
  • Wiadomości: 5753
  • EXIT
    • Zobacz profil
    • Krzysiek626
  • Otrzymane polubienia: 270
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #20 dnia: 11 Września 2007, 22:52:12 »
Problem polega że teraz exe mi się wysypuje, czego wcześniej nie miałem. Niestety dziś nie jestem w stanie jednoznacznie stwierdzić co jest tego przyczyną. Ponieważ jednak testowa trasa symulatora przestała się odpalać po próbie uruchomienia Twojego oprogramowania napisałem to ostrzeżenie. Kłopot jest ze wszystkimi sceneriami i prawie każdym exe. Jak z identyfikuje przyczynę wysypywania się exe dam znać.

Offline firefoxfan

  • Wiadomości: 244
    • Zobacz profil
  • Otrzymane polubienia: 0
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #21 dnia: 11 Września 2007, 23:03:11 »
Powodem sypania symka może być podmiana pliku borlndmm.dll (tą bibliotekę wykorzystuje również symek). Ja osobiście nie instalowałem paczki, ale radzę poszukiwania przyczyn kierować w tą stronę.

Pozdrawiam,
Firefoxfan.

Offline Krzysiek626

  • Zasłużony dla Symulatora
  • Wiadomości: 5753
  • EXIT
    • Zobacz profil
    • Krzysiek626
  • Otrzymane polubienia: 270
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #22 dnia: 11 Września 2007, 23:30:32 »
Usunąłem z dysku wszystkie pobrane biblioteki i program. Usunąłem z katalogu symulatora i z windows/system. Do katalogu symka rozpakowałem świeże biblioteki z kopii bezpieczeństwa. Najważniejsze że chyba wróciło do normy.
Jednym z objawów był wysyp symulatora po około minucie po odpaleniu. Na jednym z exe zwariowało AI a pociągi zaczęły jeździć do tyłu. Sytuacja wydaje się być opanowana.

Offline Ra

  • Deweloper
  • Wiadomości: 6114
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 23
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #23 dnia: 12 Września 2007, 02:01:17 »
Zastanawiające zjawisko. Tym bardziej, że u mnie wszystko działa normalnie. Mam cichą nadzieję, że jednak komuś się uda uruchomić mój program. Póki co odradzam testy, jeśli ktoś się nie czuje na siłach, by określić źródło problemów.

Znalazłem błąd w konwersji liczb. Ja mam ustawienia regionalne na kropkę (0.0) dziesiętną. Na Windows z ustawionym przecinkiem (0,0) dziesiętnym (pewnie większość) borlandowska konwersja AnsiString::ToDouble() się wysypuje na liczbach z kropką. Można albo przestawić chwilowo Windows na kropkę, albo poczekać na nową wersję.

Offline Ra

  • Deweloper
  • Wiadomości: 6114
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 23
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #24 dnia: 12 Września 2007, 20:31:03 »
Zrobiłem kolejną wersję (40kB):
 -poprawiona konwersja liczb z kropką dziesiętną;
 -wyświetlanie listy plików nieznalezionych;
 -zamiana błędnych wpisów na obiekty komentarza;

Potraktowałem tą wersją paczkę z plików EU07[1].part0*.rar, pod kątem brakujących plików. Wyniki są, jak poniżej:

Bochnia.scn:
 -textures\koniec1

Calkowo.scn:
 -scenery\bud\NastawniaKrLobzow.inc.inc

Jelitkowo.scn:
 -scenery\tr\L-STB1-3pK.inc
 -textures\kladka
 -textures\mc\blok4.bmp
 -textures\none48
 -textures\none49
 -textures\none50
 -textures\none51
 -textures\none52
 -textures\none53
 -textures\none54
 -textures\none56
 -textures\none57
 -textures\none59
 -textures\roof\MetalSinedPlate_Rusted1.bmp
 -textures\roof\Roof-RedTiles-aged2.bmp

Krewetkowo_*.scn:
 -scenery\detal\LampaHg-betdziur1.inc.inc
 -scenery\mc\krakowT-SkladowaFa.inc
 -scenery\pm\tablica_boh.inc
 -scenery\pm\tablica_kmt.inc
 -textures\10.0
 -textures\Concrete1.tge
 -textures\PKP\pkp\d6_4.bmp01

Krzyzowa.scn:
 -scenery\LJ\tele_I.inc
 -scenery\LJ\tele_P.inc

linia546_*.scn:
 -scenery\bizon\mb-blok_010405.inc
 -scenery\bizon\mb-dzialka_010405.inc
 -scenery\bizon\mb-kosciol.inc
 -scenery\bud1domtynk02.inc
 -scenery\images\ns.jpg
 -scenery\przejazd2tR-zrobtosam.inc
 -textures\undefined

Manewrowo*.scn:
 -textures\none34
 -textures\none35
 -textures\none38
 -textures\none39
 -textures\none40

Moczniki_*.scn: (jest komplet)

Nowy_Swiat.scn:
 -textures\mc\blok4.bmp
 -textures\Rudawa-nastdysp.tga

Quark_*:
 -scenery\bud\0dombale03.inc

SDR18.scn: (wpisy camera mają o jedno zero za dużo)
 -scenery\Bizon\bd1.inc
 -scenery\bud\biurowiec1.inc
 -scenery\bud\biurowiec5.inc
 -scenery\bud\blok11.inc
 -scenery\bud\stsdoladrewn02.inc
 -scenery\images\strzesowiec.jpg
 -scenery\PKP\przejazd1tRe45ss.inc.inc
 -scenery\PM\blok01.inc
 -scenery\slimson\wejtunel.inc
 -scenery\SSd5zpcpbIbp.inc
 -textures\Chodnik1.tga
 -textures\PKP\SBL\581
 -textures\PKP\SBL\581N
 -textures\PKP\SBL\591
 -textures\PKP\SBL\591N
 -textures\PKP\SBL\592
 -textures\PKP\SBL\592N
 -textures\pkp\W27_16.bmp
 -textures\PlatePlatform_side1.bmp
 -textures\PM\tablica_wost.bmp
 -textures\sck\ilowicamala.bmp
 -textures\Tm17

Testowo_*.scn: (jest komplet)

Zwrotnicowo.scn:
 -scenery\tr\-LSTB1-3pD.inc
« Ostatnia zmiana: 17 Listopada 2007, 16:44:17 wysłana przez Ra »

Offline ShaXbee

  • Administrator
  • Wiadomości: 1984
    • Zobacz profil
  • Otrzymane polubienia: 1
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #25 dnia: 12 Września 2007, 21:54:07 »
Twoje profesjonalne podejście do tematu robi bardzo dobre wrażenie :) Dyskutowaliśmy jakiś czas temu z nbmx'em nad symkowym serwerem pakietów - jeśli jesteś zainteresowany tym co udało nam się ugadać (a nóż widelec coś się przyda) to zgłoś się do mnie :)

PS. Masz może studencką licencję na MS Visual Studio 2003 lub nowsze?

Offline Mariusz1970

  • Zasłużony dla Symulatora
  • Wiadomości: 3701
    • Zobacz profil
  • Otrzymane polubienia: 66
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #26 dnia: 13 Września 2007, 00:03:03 »
Kiedyś tam robiłem coś podobnego, miało trochę inną funkcję i za szybkie to nie było:
http://eu07.pl/forum/index.php/topic,4610.0.html
Nie robiłem parsera i w związku z tym miałem czasami problemy z teks. bmp, ale rodziłem sobie w ten sposób, iż odpalałem symka i sprawdzałem log też automatem.
Zapewne twoje jest o niebo lepsze i szybsze.
Gratuluję.

aaaa jeszcze jedno, pamiętam, iż dla linii546 brakowało więcej plików. Dla sprawdzenia odpal symka i przeczytaj loga-->failed. Tam zdaje się Hunter coś z tabilczkami przy karzełkach się pomylił czy coś. Nie mam tej paczki aby sprawdzić. Miałem też problem z tego co pamiętam z teksturą coal (nie w tym miejscu co include sobie życzył).
« Ostatnia zmiana: 13 Września 2007, 00:45:53 wysłana przez Mariusz1970 »

Offline Ra

  • Deweloper
  • Wiadomości: 6114
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 23
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #27 dnia: 13 Września 2007, 02:09:23 »
Na razie program analizuje tylko pliki .scn i te włączane przez include. Rozpoznawane są tekstury dla node ... track, node ... dynamic, node ... model, node ... triangles, node ... triangle_strip i node ... triangle_fan, a także modele dla node ... model. Nie są jeszcze analizowane pliki we wpisach node ... sound, ani pliki .t3d, .chk i .mmd - być może coś jeszcze, do czego nie dotarłem. Dlatego na pewno listy brakujących plików nie są kompletne.

Nie jestem pewien, czy jest to szybkie. W przypadku trzech scenerii miałem wrażenie, że program się zawiesił - a on pracował przez kilka minut, zanim skończył. Na pewno działa wolniej, niż STV - ale to może z uwagi na większą ilość przetwarzanych danych (zapamiętuje trójkąty i kataloguje tekstury, które STV może pomijać).

Offline Mariusz1970

  • Zasłużony dla Symulatora
  • Wiadomości: 3701
    • Zobacz profil
  • Otrzymane polubienia: 66
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #28 dnia: 13 Września 2007, 02:43:35 »
To są braki tekstur z log.txt z linii546, które mi wywala:
textures\ms1.bmp
textures\ms2.bmp
textures\ms3.bmp
textures\ms4.bmp
textures\ms5.bmp
textures\ms6.bmp
textures\ms7.bmp
textures\ms8.bmp
textures\ms9.bmp
textures\ms10.bmp
textures\ms11.bmp
textures\ms12.bmp
textures\ms13.bmp
textures\ms14.bmp
textures\ms15.bmp
textures\ms16.bmp
textures\ms17.bmp
textures\ms18.bmp
textures\ms19.bmp
textures\ms20.bmp
« Ostatnia zmiana: 13 Września 2007, 02:57:30 wysłana przez Mariusz1970 »

Offline Ra

  • Deweloper
  • Wiadomości: 6114
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 23
Odp: Instalator+Starter+Edytor (Rainsted)
« Odpowiedź #29 dnia: 13 Września 2007, 19:17:03 »
Zrobiłem śledztwo i faktycznie są takie wpisy, że tych plików powinno brakować. Uruchomiłem program jeszcze raz. Na komputerze 600MHz sceneria jest przetwarzana prawie 7 minut. Tym razem pojawiły się braki tekstur textures\ms*, a także jeszcze jeden brakujący plik - textures\mc\blok4.bmp.

Podejrzewam, że na skutek jakiś błędów plik linia546_dane.scm nie został przetworzony w całości. Zauważyłem, że przetwarzanie SDR18.scn urywało się na na wpisie camera zawierającym jedno zero za dużo. Czyli na pewno program nie radził sobie z błędnymi wpisami. Były też problemy z //origin (...) //endorigin (program analizuje też składnię w komentarzach). Teraz jest to poprawione na tyle, że błędny SDR18.scn się wczytuje do końca. Być może coś w pliku linia546_dane.scm zostało potraktowane jako błąd składni.

 

Maszyna - Symulator PojazdĂłw Szynowych