Symulator EU07 (i nie tylko) > Na warsztacie

 Ratowanie MaSZyny, implementacja ficzerow od Q do głównej gałęzi, lifting exe

<< < (181/205) > >>

queuedEU:
Wstepne parametry platka sniegu, czy o czyms waznym moze zapomnialem?

// ***********************************************************************************************************
// INICJALIZACJA CZASTEK SNIEGU, Funkcja ustawiajaca wlasnosci sniegu odczytywane z pliku scenerii
// parametry wejsciowe:
// - ilosc platkow:                      max 150000
// - obszar padania:                  max 2000m
// - rozmiar platka:                   max 0.2
// - typ obiektu platka:              1-triangle, 2-polygon, 3-line, 4-point
// - losowy kolor platka od:        0.0 - 1.0
// - losowy kolor platka do:        0.0 - 1.0
// - losowa przezroczystosc od:   0.0 - 1.0
// - losowa przezroczystosc do:   0.0 - 1.0
// - kolorowe czy jednolite:         true/false
// - czy teksturowac obiekt:        true/false
// - czy obiekt odbiera swiatlo:    true/false
// - rodzaj blendowania:            1,2
// ***********************************************************************************************************
bool __fastcall TSnow::Init(int snowflakesnum, float sarea, float ssize, int stype, float srcf, float srct, float sraf, float srat, bool scolor, bool stex, int sbf)
{
...
}

firleju:
1. A fastcall to co tam robi?
2. Typ płatka jest enumem czy czym, bo w ini jest tekstem a w Init jest int.
3. Może jednak zmienne bardziej po ludzku? Bo srat nic mi nie mówi co to jest.

queuedEU:
        else if (str == AnsiString("snow"))
        { //
            WriteLog("Scenery snow definition");
            parser.getTokens(2);
            parser >> QGlobal::snow_type >> QGlobal::snow_flakes;
            parser.getTokens(6);
            parser >> QGlobal::snow_area >> QGlobal::snow_size >> QGlobal::snow_srcf >> QGlobal::snow_srct >> QGlobal::snow_sraf >> QGlobal::snow_srat;
            parser.getTokens(4);
            parser >> QGlobal::snow_color >> QGlobal::snow_tex >> QGlobal::snow_light >> QGlobal::snow_blend;


            if (QGlobal::snow_flakes > 150000) QGlobal::snow_flakes = 150000;
            if (QGlobal::snow_area > 2000) QGlobal::snow_area = 2000;
            if (QGlobal::snow_size > 0.2) QGlobal::snow_size = 0.2;
            if (QGlobal::snow_blend > 2) QGlobal::snow_blend = 1;
            if (QGlobal::snow_type > 4) QGlobal::snow_type = 1;
           
            parser.getTokens();
            parser >> token;
            while (token.compare("endsnow") != 0)
            { // a kolejne parametry są pomijane
                parser.getTokens();
                parser >> token;
            }
        }

snow 1 135000 150 0.05 0.1 0.7 0.2 0.4 1 0 1 1 endsnow

No moge zrobic typy numeryczne dla przejrzystosci.

firleju:
Jak dla mnie we wpisie ini podajesz typ jako string (zgodnie z tym co napisałeś) a w parserze próbujesz odczytać int. Czegoś nie rozumiem?

queuedEU:
To nie ma znaczenia w przypadku znaku numerycznego. Da sie w c++ cos takiego wykonac?

--- Kod: ---function StrToEnumTest(aStr:String):TEnumTest;
begin
  result := TEnumTest(GetEnumValue(TypeInfo(TEnumTest),aStr));
end;

i odwrotnosc...

s := GetEnumName(TypeInfo(TIncType), integer(inctype)) ;
--- Koniec kodu ---
  Dodano: 03 Marca 2016, 17:33:31 Patch z optymalizacja silnika czasteczek sniegu jak i dymu (ale to jescze nie koniec)
EU07-300216-1p2
wpis do scenerii (ma priorytet - nadpisuje wlaczenie sniegu i ilosc podana w config.txt):
snow 1 53000 150 0.05 0.1 0.7 0.2 0.4 1 0 1 1 endsnow

wpisy emiterow dymu juz dzialaja, mozna wstawiac z kilkoma opcjami, do ogarniecia zostaja wpisy emiterow ognia.


Nawigacja

[0] Indeks wiadomości

[#] Następna strona

[*] Poprzednia strona

Idź do wersji pełnej
Powered by Advanced Topic Prefix Pro
Powered by SMFPacks Likes Pro Mod