Symulator EU07 (i nie tylko) > Na warsztacie
Ratowanie MaSZyny, implementacja ficzerow od Q do głównej gałęzi, lifting exe
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
[#] Następna strona
Idź do wersji pełnej