Autor Wątek:  Exe - konwersja na C++  (Przeczytany 284008 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline firleju

  • Deweloper
  • Wiadomości: 1572
  • bawię się (w) exe...
    • Zobacz profil
  • Otrzymane polubienia: 115
Exe - konwersja na C++
« dnia: 08 Września 2016, 10:51:21 »
Witam,

Mam nadzieję, że jeszcze w tym tygodniu dam w tym wątku specjalne exe do testów. Pierwszą zmianą jak będzie wprowadzona będzie wyprowadzenie obsługi rozkładów jazdy z Pascala do c++. Dlaczego? Był to najprostszy moduł do zrobienia. Nie miał interakcji z pozostałymi plikami Pascala więc można było na nim przetestować np. wykorzystany konwerter.
Jakie są wstępne wnioski: konwersja nie będzie łatwa i przyjemna. Jest dużo takich fajnych kruczków, które powodują, że każdą linijkę trzeba przejrzeć, szczególnie przy obsłudze pętli oraz funkcji z ObjectPascala / Delphi.

Biblioteka glew32 potrzebna do uruchomienia (wejdzie w skład paczki) http://eu07.pl/forum/index.php/topic,28159.msg437252.html#msg437252
« Ostatnia zmiana: 20 Sierpnia 2017, 13:48:00 wysłana przez AtapiCl »
Skrypty do Blendera dostępne tutaj
W miarę aktualne wiki EXE wiki.eu07.es

Offline queuedEU

  • Zasłużony dla Symulatora
  • Wiadomości: 1264
    • Zobacz profil
    • Celebrity Maszyna
  • Otrzymane polubienia: 31
Odp: Exe - konwersja na C++
« Odpowiedź #1 dnia: 08 Września 2016, 12:00:03 »
Na teraz moge powiedziec tyle, ze przetlumaczenie fizyki (bez hamulcow) bedzie prostsze jak tlumaczeie queryparsercomp.
Queryparsercomp'a generalnie nie oplaca sie tlumaczyc a powinno sie zastapic CParserem (nie powino byc z tym wiekszych probleow).
Na koniec pozostanie zamiana typow lancuchowych AnsiString, mysle ze najlepiej na string z std:: bo jest latwy w laczeniu.
Jezeli o niczym nie zapomnialem to bylyby te 3 kwestie do ogarniecia - fizyka, parser i AnsiStringi. Jesli by sie dobrze zmotywowac to
moglby byc to ostatni rok MaSzyny na starym srodowisku pisanej w dwoch jezykach. Jescze ciekawostka na koniec...
Odkrylem ze program mozna kompilowac w C++ Builderze 6 - tam tez jest support pascala, ale aby skomilowac nalezy zakomentowac pewna dyrektywe w cparser.cpp. Skutki uboczne sa takie, ze powstaje cos  stylu wycieku pamieci i natsepuje zawieszenie podczas wczytywania.
« Ostatnia zmiana: 08 Września 2016, 12:42:24 wysłana przez queuedEU »

Offline Cesky Kretek

  • Zasłużony dla Symulatora
  • Wiadomości: 1655
  • Trust no one.
    • Zobacz profil
  • Otrzymane polubienia: 55
Odp: Odp: Exe - konwersja na C++
« Odpowiedź #2 dnia: 08 Września 2016, 12:46:08 »
Jak skończycie przenosić całą MaSzynę na C++ do końca tego roku to zamówię Wam po kracie piwa z dostawą do domu (jakieś Tesco Ezakupy czy inny Auchan Direct).
« Ostatnia zmiana: 20 Sierpnia 2017, 13:47:33 wysłana przez AtapiCl »

Offline firleju

  • Deweloper
  • Wiadomości: 1572
  • bawię się (w) exe...
    • Zobacz profil
  • Otrzymane polubienia: 115
Odp: Odp: Exe - konwersja na C++
« Odpowiedź #3 dnia: 09 Września 2016, 09:02:51 »
Jak narazie jestem na etapie sprawdzania czemu mi się wywala na EAccesVolation. Wygląda jakby nie inicjował mi zmiennej i jest ona ciągle NULL (chociaż jest inicjowana przed użyciem). Jako, że mam czas 2 x 0,5 godziny dziennie to nie widzę specjalnie możliwości przetłumaczenia tego do końca roku. Do tego jestem bezalkoholowy więc zgrzewka piwa odpada w przedbiegach ;)

  Dodano: 09 Września 2016, 09:12:12
PS.
Największe problemy obecnie są z określeniem czy dana struktura powinna być typu struct czy class.
Trzeba dopisać też często wszystkie konstruktory.
« Ostatnia zmiana: 09 Września 2016, 09:12:12 wysłana przez firleju »
Skrypty do Blendera dostępne tutaj
W miarę aktualne wiki EXE wiki.eu07.es

Offline Benek

  • Moderator
  • Wiadomości: 4479
  • fb.com/benek.maszyna
    • Zobacz profil
    • Moja strona o MaSzynie
  • Otrzymane polubienia: 4
Odp: Odp: Exe - konwersja na C++
« Odpowiedź #4 dnia: 09 Września 2016, 11:50:14 »
W C++ struktura i klasa to to samo. Różnią się tylko domyślnym typem dostępu.

Offline firleju

  • Deweloper
  • Wiadomości: 1572
  • bawię się (w) exe...
    • Zobacz profil
  • Otrzymane polubienia: 115
Odp: Odp: Exe - konwersja na C++
« Odpowiedź #5 dnia: 09 Września 2016, 14:49:54 »
Nie wiem czemu to rozdzielili w zasadzie. Nie inicjuje się prawdopodobnie gdyż nie ma konstruktora (nie występuje coś takiego w Pascalu)
Skrypty do Blendera dostępne tutaj
W miarę aktualne wiki EXE wiki.eu07.es

Offline Benek

  • Moderator
  • Wiadomości: 4479
  • fb.com/benek.maszyna
    • Zobacz profil
    • Moja strona o MaSzynie
  • Otrzymane polubienia: 4
Odp: Odp: Exe - konwersja na C++
« Odpowiedź #6 dnia: 09 Września 2016, 15:16:49 »
C++ to potomek C, chodzi o kompatybilność wsteczną napisanych już programów.

Offline firleju

  • Deweloper
  • Wiadomości: 1572
  • bawię się (w) exe...
    • Zobacz profil
  • Otrzymane polubienia: 115
Odp: Odp: Exe - konwersja na C++
« Odpowiedź #7 dnia: 10 Września 2016, 13:49:13 »
W każdym bądź razie to nie problem konstruktora, gdyż znalazłem takowe, i poprawnie się inicjują. Tylko cała zainicjowana klasa nie jest przypisywana do wskaźnika. Ma to chyba związek z warningiem linkera, że mam w wielu plikach obj zdefiniowaną zmienną (wszystkich w których inkluduje nagłówek ze zmienną). Nie wiem o co biega, gdyż definicja wygląda jak wszystkiego innego a tam nie ma takiego problemu. Zresztą jak było to w pascalu to nagłówek też miał tą zmienną i nie było takiego problemu.
Skrypty do Blendera dostępne tutaj
W miarę aktualne wiki EXE wiki.eu07.es

Offline El Mecánico

  • Wiadomości: 1067
  • Dawniej El Driver
    • Zobacz profil
    • Stowarzyszenie POLARIS - OPP
  • Otrzymane polubienia: 1
Odp: Odp: Exe - konwersja na C++
« Odpowiedź #8 dnia: 10 Września 2016, 21:48:05 »
Firlej, a w *.hpp w którym jest deklaracja tejże klasy, lub wskaźnika, masz extern przy definicji?
www.polaris.org.pl
www.ciemneniebo.pl
MaSzyna_LD w trakcie tworzenia...

Offline firleju

  • Deweloper
  • Wiadomości: 1572
  • bawię się (w) exe...
    • Zobacz profil
  • Otrzymane polubienia: 115
Odp: Odp: Exe - konwersja na C++
« Odpowiedź #9 dnia: 11 Września 2016, 11:12:07 »
Owszem, w .hpp jest. Tylko, że jak rozumiem extern używa się wtedy kiedy masz zmienną w bindingu. A w ty przypadku już nie inkluduję .hpp w ogóle. Ale spróbuję skompilować z extern w tym miejscu, może pójdzie.

  Dodano: 11 Września 2016, 12:39:27
Doczytałem sobie. Konwerter źle to zrobił i trzeba było poprawiać. To przy okazji następnych konwersji będzie przydatna wiedza. Było trzeba w nagłówku dać extern i drugi raz definiować zmienną w pliku cpp. Teraz działa poprawnie. Dalej walczę gdyż co coś poprawię to mam jakieś kolejne babole.

  Dodano: 11 Września 2016, 13:44:38
Muszę poprawić wszystkie odwołania liczbowe w substring, gdyż okazuje się, że AnsiString ma liczone od 1 a std::string od 0. No i AnsiString.SubString odwołuje się do innego miejsca w stringu niż std::string::substr w tym momencie.
« Ostatnia zmiana: 11 Września 2016, 13:44:38 wysłana przez firleju »
Skrypty do Blendera dostępne tutaj
W miarę aktualne wiki EXE wiki.eu07.es

Offline janek32

  • Wiadomości: 567
  • EMIT Ghp400M4C
    • Zobacz profil
  • Otrzymane polubienia: 0
Odp: Odp: Exe - konwersja na C++
« Odpowiedź #10 dnia: 11 Września 2016, 13:54:47 »
Generalnie struktura powstała już w C i może zawierać dane i wskaźniki na dane/wskaźniki na funkcję, i tak jak napisał @Benek, cała jej zawartość jest publiczna. Klasa została wprowadzona w C++ i może zawierać funkcje (metody), posiada konstruktory i destruktor, domyślnie (bez użycia słów kluczowych public: albo protected:) jej zawartość jest prywatna.
Nie jestem pewny, jak struktura zachowuje się w C++ (nigdy np. funkcji w strukturze pisać nie próbowałem), ale raczej dobrze jest trzymać w kodzie takie rozróżnienie i struktur używać do tego, do czego historycznie służyły.

Klasa w C++ nie musi mieć zdefiniowanych konstruktorów, jeżeli nie ma, używane są domyślne. ZTCW zwykły konstruktor wtedy nic nie robi, kopiujący po kolei przepisuje zawartość wszystkich zmiennych. Własne konstruktory i destruktor przede wszystkim trzeba zdefiniować, jeżeli w klasie wykorzystuje się dynamicznie przydzielaną pamięć - ale czasami to może być też wygodne w innych sytuacjach, po prostu jak przy inicjalizacji obiektu trzeba coś zrobić.

Co do ostrzeżenia linkera - próbowałeś użyć dyrektyw IFNDEF?
#ifndef _NazwaPliku_H_
#define _NazwaPliku_H_

(kod)

#endif _NazwaPliku_H_
Wtedy jeżeli oznaczony w ten sposób plik jest przy linkowaniu dołączany kilka razy, kod z niego trafia do głównego tylko raz.
-Środa 844012.
-Zgłaszam się.
-Zapytaj energetykę, czy zapłacili rachunki, luzem ciągniemy i jest 2900.

Offline firleju

  • Deweloper
  • Wiadomości: 1572
  • bawię się (w) exe...
    • Zobacz profil
  • Otrzymane polubienia: 115
Odp: Odp: Exe - konwersja na C++
« Odpowiedź #11 dnia: 11 Września 2016, 14:07:30 »
#ifndef jest od samego początku. To była zmienna poza jakąkolwiek klasą i w związku z tym, że była w pliku nagłówkowym tylko to każdy cpp ją sobie domyślnie inicjował sam. Rozwiązaniem była deklaracja w nagłówku (extern) oraz definicja w jednym cpp. Teraz już działa.
W tej chwili walczę z funkcją konwersji int na string. W c++11 jest to_string(), ale wcześniej nie było i musiałem sobie zdefiniować taką globalną. Ale żeby była globalna zwraca static std::string to i nie chce mi jej dodawać do innego stringa za pomocą operator+. Chyba będę musiał użyć append.
Skrypty do Blendera dostępne tutaj
W miarę aktualne wiki EXE wiki.eu07.es

Offline queuedEU

  • Zasłużony dla Symulatora
  • Wiadomości: 1264
    • Zobacz profil
    • Celebrity Maszyna
  • Otrzymane polubienia: 31
Odp: Odp: Exe - konwersja na C++
« Odpowiedź #12 dnia: 11 Września 2016, 18:55:08 »
zrob sobie oddzielny modul z fukcjami, zobacz jak ja mam w qutils.h/cpp, laczenie jest bezproblemowe

atos atoi atof

lub

std::string itoss( int x ) {
  int length = snprintf( NULL, 0, "%d", x );
  assert( length >= 0 );
  char* buf = new char[length + 1];
  snprintf( buf, length + 1, "%d", x );
  std::string str( buf );
  delete[] buf;
  return str;
}

lub

std::string itoss(int val)
{
  std::stringstream ss;
  ss << val;

 return ss.str()
}

std::string itoss(int val)
{
 string tmp; // brzydkie rozwiązanie
 itoa(val, (char*)tmp.c_str(), 10);
 string str = tmp.c_str();
 return str;
}

char* itochp(int n)
{
     int i = 0;
     char tmp[12];
     static char ret[12];
     if(n < 0) {
      *ret = '-';
      i++;
      n = -n;
     }
     do {
      *tmp = n % 10 + 48;
      n -= n % 10;
      if(n > 9) *tmp++;
     }
     while(n /= 10);
     while(ret[i++] = *tmp--);
     return ret;
}
« Ostatnia zmiana: 12 Września 2016, 12:38:36 wysłana przez Stele »

Offline firleju

  • Deweloper
  • Wiadomości: 1572
  • bawię się (w) exe...
    • Zobacz profil
  • Otrzymane polubienia: 115
Odp: Odp: Exe - konwersja na C++
« Odpowiedź #13 dnia: 12 Września 2016, 08:22:29 »
Robię sprintf() ale coś nie bangla. Sprawdzę jak działa z twoją wersją.
Skrypty do Blendera dostępne tutaj
W miarę aktualne wiki EXE wiki.eu07.es

Offline queuedEU

  • Zasłużony dla Symulatora
  • Wiadomości: 1264
    • Zobacz profil
    • Celebrity Maszyna
  • Otrzymane polubienia: 31
Odp: Odp: Exe - konwersja na C++
« Odpowiedź #14 dnia: 12 Września 2016, 10:46:41 »
Jeszcze przyklad konwersji z float/double z obsluga wyjatku

inline std::string dtoss(double val)
{
  std::ostringstream o;
  if (!(o << val))
    throw BadConversion("stringify(double)");
  return o.str();
}
« Ostatnia zmiana: 12 Września 2016, 16:33:54 wysłana przez queuedEU »

Offline firleju

  • Deweloper
  • Wiadomości: 1572
  • bawię się (w) exe...
    • Zobacz profil
  • Otrzymane polubienia: 115
Odp: Odp: Exe - konwersja na C++
« Odpowiedź #15 dnia: 12 Września 2016, 16:09:03 »
Nie chcę używać strigstream narazie.
Skrypty do Blendera dostępne tutaj
W miarę aktualne wiki EXE wiki.eu07.es

Offline queuedEU

  • Zasłużony dla Symulatora
  • Wiadomości: 1264
    • Zobacz profil
    • Celebrity Maszyna
  • Otrzymane polubienia: 31
Odp: Odp: Exe - konwersja na C++
« Odpowiedź #16 dnia: 12 Września 2016, 16:34:36 »
Jakies przeciwwskazania weszysz?

Offline firleju

  • Deweloper
  • Wiadomości: 1572
  • bawię się (w) exe...
    • Zobacz profil
  • Otrzymane polubienia: 115
Odp: Odp: Exe - konwersja na C++
« Odpowiedź #17 dnia: 12 Września 2016, 19:37:49 »
Patrzę w qutils i nie widzę tych funkcji. Chyba mam jakąś starą wersję repo, albo co. Skopiowałem twoją funkcję, ale jest taki problem, że:
int length = snprintf( NULL, 0, "%d", x );ta linijka zwraca mi -1 co teoretycznie oznacza problem ze zrzuceniem. Nie mam pojęcia jaki może mieć problem jeśli int przychodzi mu o wartości 18.
Nie chcę linkować całej biblioteki, żeby zrobić z niej jedną funkcję, którą docelowo i tak zamienię na std:to_string()
Skrypty do Blendera dostępne tutaj
W miarę aktualne wiki EXE wiki.eu07.es

Offline queuedEU

  • Zasłużony dla Symulatora
  • Wiadomości: 1264
    • Zobacz profil
    • Celebrity Maszyna
  • Otrzymane polubienia: 31
Odp: Odp: Exe - konwersja na C++
« Odpowiedź #18 dnia: 12 Września 2016, 19:56:51 »
Moze zamiana %d na %i rozwiarze problem...

Offline firleju

  • Deweloper
  • Wiadomości: 1572
  • bawię się (w) exe...
    • Zobacz profil
  • Otrzymane polubienia: 115
Odp: Odp: Exe - konwersja na C++
« Odpowiedź #19 dnia: 12 Września 2016, 22:02:06 »
Nie rozwiązało. Zrobiłem na streamie i bangla. Borland sucks...

  Dodano: 12 Września 2016, 22:13:04
Dobra, w załączniku testowe exe. Bazuje na 478 plus parę commitów, więc nie ma tutaj wszystkich ostatnich poprawek. Sprawdzamy czy rozkład poprawnie się wczytuje oraz ogólnie wszystko działa jak poprzednio.

  Dodano: 13 Września 2016, 07:55:28
Rano narzuciłem zmiany z gałęzi głównej na moją gałąź. Delikatne poprawki na zmiany wprowadzone przez Stele i teraz możemy lecieć dalej z konwersją. Jak się będą objawiać jakieś błędy w rozkładach to poprawki będą na bieżąco.
« Ostatnia zmiana: 13 Września 2016, 07:55:28 wysłana przez firleju »
Skrypty do Blendera dostępne tutaj
W miarę aktualne wiki EXE wiki.eu07.es

Offline firleju

  • Deweloper
  • Wiadomości: 1572
  • bawię się (w) exe...
    • Zobacz profil
  • Otrzymane polubienia: 115
Odp: Odp: Exe - konwersja na C++
« Odpowiedź #20 dnia: 21 Września 2016, 07:27:53 »
Czuje się jak Ra. Wszyscy biorą, nikt nie napisze, że dobrze... Ehhh...
Dobra, koniec narzekania. Z najnowszych wiadomości z frontu to jestem gdzieś w połowie konwersji pliku OerlikonEst. Jako, że wygląda na dość spokojną końcówkę września jeśli chodzi o czas wolny (znaczy brak dodatkowych projektów) jest pewna szansa na zakończenie tego do końca tego miesiąca. Wbrew temu co pisze Q konwersja nie jest jakaś super prosta, gdyż konwerter nie zamienia automatycznie niektórych słów kluczowych object pascala na ich odpowiedniki w c++. W każdym razie powoli posuwam się do przodu zdobywając z każdą linijką nowe pole do wykazania się moją niewiedzą ;)
Skrypty do Blendera dostępne tutaj
W miarę aktualne wiki EXE wiki.eu07.es

Offline queuedEU

  • Zasłużony dla Symulatora
  • Wiadomości: 1264
    • Zobacz profil
    • Celebrity Maszyna
  • Otrzymane polubienia: 31
Odp: Odp: Exe - konwersja na C++
« Odpowiedź #21 dnia: 21 Września 2016, 20:05:39 »
Skoro czujesz sie jak @Ra to  w takim razie juz Cie nie lubie ;D, ale wracajac do tematu przepisywania hamulcow... Moje pytanie jest nastepujace - czy czujesz sie na silach przetlumaczyc te wszystkie moduly? Konkretnie chodzi mi o to ze tam jest pokomplikowane to wszystko poprzez te okropne dziedziczenie klas. Ja poleglem przepisujac to recznie kontrolujac i wiedzac co robie, Ty zas do tlumaczenia uzywasz jakiegos konwertera, a to nie wplywa pozytywnie na zapoznanie sie z
tym co sie przepisuje - tak mi sie przynajmniej wydaje :). Mysle ze powinienes ogarnac prostsze sprawy np. takie jak zamiana typow lancuchowych
na std::string czy, zamiana parserow na CParser, bo po przetlumaczeniu SPKSa, moze okazac sie, ze MaSZynum zawiesza sie na wczytywaniu scenerii :D.
Mozesz mi nie wierzyc Grzesiu, ale hamulce najlepiej zostawic na sam koniec - bo najtrudniejsze :).

Online krzysiuup

  • Deweloper
  • Wiadomości: 698
  • "Kto foty dał, ten model będzie miał"
    • Zobacz profil
  • Otrzymane polubienia: 183
Odp: Odp: Exe - konwersja na C++
« Odpowiedź #22 dnia: 21 Września 2016, 20:22:18 »
Zassałem exe na dysk i próby odpalenia misji na Quarku, l61_pospieszny (tej od @Ra) i l053-sluzba2-night zakończyły swe wczytywanie na takiej oto linijce:
New timetable for [nazwa_loka]: rozkladCzysta paczka + patch 16.08.
« Ostatnia zmiana: 21 Września 2016, 20:28:00 wysłana przez KrzysztofGliwice »
https://www.facebook.com/krzysiudev
Skrypt do Blendera znajdziesz tutaj

Online Stele

  • Wydział Repozytorium
  • Administrator
  • Wiadomości: 6667
    • Zobacz profil
  • Otrzymane polubienia: 689
Odp: Odp: Exe - konwersja na C++
« Odpowiedź #23 dnia: 21 Września 2016, 20:57:51 »
Mi się ładuje. Przetestowałem na l61_regio od Ra.
Wyjazd z Osobowej zaświeciło na zielono i usunęło z tabelki. W pierwszym wersie w kolejnej stacji jednak nadal wyświetla "Częstochowa Osobowa" i po zatrzymaniu się na Stradomiu nie reaguje na W4.
Z moich ostatnich zmian, to nie odtwarza dźwięku drzwi.
Na td przy pustym rozkładzie zawiecha na ładowaniu rozkładu.
« Ostatnia zmiana: 21 Września 2016, 21:22:53 wysłana przez Stele »
Mój kanał youtube

Offline firleju

  • Deweloper
  • Wiadomości: 1572
  • bawię się (w) exe...
    • Zobacz profil
  • Otrzymane polubienia: 115
Odp: Odp: Exe - konwersja na C++
« Odpowiedź #24 dnia: 22 Września 2016, 08:42:35 »
@Krzysiek: Zawiecha na ładowaniu rozkładu to jest brak wyjścia z pętli. Na pewno masz ostatnie exe? Bo poprawiałem na pewno ten błąd. Podaj mi który rozkład ładowałeś w misji l053 to spróbuję na td go załadować i zobaczę co się stanie.
@Stele: Brak skasowania odjazdu to raczej nie jest wina konwersji. Cała obsługa pozostała tak jak poprzednio. Na normalnym exe też się tak zachowuje?
@Q: Nie ma większego znaczenia czy zacznę od najtrudniejszego, czy najłatwiejszego. Teoretycznie zacząłem od najłatwiejszego, a okazało się, że cały moduł jest zakręcony jak jelita. Wiem, że tu jest fajne dziedziczenie, ale da się to opanować. Podpieram się tym co generuje Borland do bindingów.

  Dodano: 26 Września 2016, 08:51:15
Kolejne wieści z frontu:
Całość modułu jest przetłumaczona. Niestety nie kompiluje się, gdyż w Pascalu w jednej funkcji użyty jest parametr domyślny na zmiennej i okazuje się, że przez binding to nie działa. Więc albo dopisze sobie funkcje w Pascalu, albo od razu przetłumaczę komplementarny plik, bo robienie funkcji inline po to żeby ją zaraz skasować chyba nie ma sensu. W takim układzie do tłumaczenia idzie hamulce.pas.
« Ostatnia zmiana: 26 Września 2016, 08:51:15 wysłana przez firleju »
Skrypty do Blendera dostępne tutaj
W miarę aktualne wiki EXE wiki.eu07.es

Offline mac310

  • Wiadomości: 283
    • Zobacz profil
    • Moim Okiem...
  • Otrzymane polubienia: 13
Odp: Odp: Exe - konwersja na C++
« Odpowiedź #25 dnia: 27 Września 2016, 21:28:49 »
Nie mam teraz na nic czasu więc ani nie mogę pojeździć na działającym exe, ani potestować niczego nowego. Chwila w hotelu i mała próba z TD i 478c1 i zawiesza się ładowanie na komunikacie "New timetable for ep07-424: rozklad" więc nie potestuję niczego więcej :(
Historia budowy pulpitu lokomotywy serii EU07.

Offline firleju

  • Deweloper
  • Wiadomości: 1572
  • bawię się (w) exe...
    • Zobacz profil
  • Otrzymane polubienia: 115
Odp: Odp: Exe - konwersja na C++
« Odpowiedź #26 dnia: 27 Września 2016, 22:17:04 »
Czyli ma problem z pustymi rozkladami. Testowałem tylko na istniejących. Ehh...

  Dodano: 29 Września 2016, 13:46:06
Z placu boju: jestem w połowie pliku hamulce.pas. Rozkładami się zajmę jak to skończę, gdyż jeśli dobrze pamiętam, to będzie trzeba napisać ładowanie od nowa.

  Dodano: 30 Września 2016, 14:43:58
Stan na dzisiaj: wstępnie poprawiony hamulce.cpp. Szacun dla króliczka bo myślałem, że nie skończę tego pliku. Teraz jeszcze pozostało posprawdzać co źle zostało skonwertowane i dorzucić konstruktory z pliku generowanego przez Borlanda.

  Dodano: 02 Października 2016, 10:58:26
Stana na 02.10: pliki kompilują się poprawnie, jednak linker ma problem z odwołaniami przy _mover. Będę musiał posprawdzać do czego się odnoszą poszczególne pozycje. natknąłem się też na parę funkcji, które bardzo chętnie bym użył, tylko pojawiły się od C++11 i narazie napisałem protezy. Stąd prawdopodobnie hamulce mogą nie do końca zachować się tak jak powinny do czasu poprawnej implementacji (no chyba, że to nie ma znaczenia, ale nie jestem w stanie tego rozpoznać). Chodzi o funkcję Round(i_bcp).

  Dodano: 03 Października 2016, 07:33:27
03.10: Zacząłem od tyłka strony okazuje się. Nie zbuduję projektu dopóki całe mover nie pójdzie do konwersji. W związku z tym dzisiaj rankiem do tłumaczenia poszło friction.pas i po południu zaczynam _mover.pas. Prośba do jubaja o konsultacje w sprawie macierzy, które zakres miały ujemne .. dodatnie: czy wystarczy że w implementacji będę do zmiennej otrzymanej dodawał tak, że przy zgłoszeniu najbardziej ujemnej wartości zwróci mi 0?
« Ostatnia zmiana: 03 Października 2016, 07:33:27 wysłana przez firleju »
Skrypty do Blendera dostępne tutaj
W miarę aktualne wiki EXE wiki.eu07.es

Offline firleju

  • Deweloper
  • Wiadomości: 1572
  • bawię się (w) exe...
    • Zobacz profil
  • Otrzymane polubienia: 115
Odp: Odp: Exe - konwersja na C++
« Odpowiedź #27 dnia: 20 Października 2016, 14:46:01 »
Witam po dłuższej przerwie.
Stan na 20.10: _mover przetłumaczony. W tym miejscu podziękowania do Q za jego wielki wkład. Obecnie dalej exe się nie kompiluje, gdyż zmieniam wszystkie AnsiString na std::string, co jeszcze chwilę potrwa. Zmieniam też wszystkie funkcje z bibliotek Borlanda na standard C++98 (jak coś jest w tylko bibliotece standardowej C++11 to dopisuję na szybko do mctools do czasu przejścia na nowszy kompilator). Jeszcze nie wiem czy rozwiązałem problem z tablicami BPT, ale to pewnie okaże się jak w końcu uda mi się wszystko skompilować. Nie poprawiłem jeszcze błędu zawieszania wczytywania pustych rozkładów, ale to jest kwestia przywrócenia jednej funkcji do stanu korzystającego z funkcji w mctools i powinno być już dobrze. Dalszy postęp prac jest uzależniony od dostępności czasu (a może go być mało, ale wcale nie musi). Aktualny kod dostępny na repo w branchu "mover in c++".
Skrypty do Blendera dostępne tutaj
W miarę aktualne wiki EXE wiki.eu07.es

Offline Cesky Kretek

  • Zasłużony dla Symulatora
  • Wiadomości: 1655
  • Trust no one.
    • Zobacz profil
  • Otrzymane polubienia: 55
Odp: Odp: Exe - konwersja na C++
« Odpowiedź #28 dnia: 21 Października 2016, 11:06:48 »
Czy dostęp do źródeł przepisanych na C++ będzie (bądź jest) ogólnodostępny jak w przypadku starych źródeł?

Offline firleju

  • Deweloper
  • Wiadomości: 1572
  • bawię się (w) exe...
    • Zobacz profil
  • Otrzymane polubienia: 115
Odp: Odp: Exe - konwersja na C++
« Odpowiedź #29 dnia: 21 Października 2016, 11:12:35 »
Jest dostępny ogólnie: github.com/firleju/maszyna

  Dodano: 21 Października 2016, 11:13:30
Zaznaczam, że w obecnej chwili projektu nie da się skompilować ze względu na nieskończone zmiany.
Skrypty do Blendera dostępne tutaj
W miarę aktualne wiki EXE wiki.eu07.es