W mmd można zdefiniować model mechanika.
else if (str == AnsiString("engineer:"))
{ // nazwa submodelu maszynisty
str = Parser->GetNextSymbol();
smMechanik0 = mdModel->GetFromName(str.c_str());
if (!smMechanik0)
{ // jak nie ma bez numerka, to może jest z numerkiem?
smMechanik0 = mdModel->GetFromName(AnsiString(str + "1").c_str());
smMechanik1 = mdModel->GetFromName(AnsiString(str + "2").c_str());
}
}
if (Mechanik && (Controller != Humandriver))
{ // rysowanie figurki mechanika
if (smMechanik0) // mechanik od strony sprzęgu 0
if (smMechanik1) // jak jest drugi, to pierwszego jedynie pokazujemy
smMechanik0->iVisible = MoverParameters->ActiveCab > 0;
else
{ // jak jest tylko jeden, to do drugiej kabiny go obracamy
smMechanik0->iVisible = (MoverParameters->ActiveCab != 0);
smMechanik0->SetRotate(float3(0, 0, 1), MoverParameters->ActiveCab >= 0 ?
0 :
180); // obrót względem osi Z
}
if (smMechanik1) // mechanik od strony sprzęgu 1
smMechanik1->iVisible = MoverParameters->ActiveCab < 0;
}
Ma on się znajdować w modelu pudła/kabiny/lowpoli? Chciałbym by był tylko w lowpoli, ale nie wiem czy jego animacja działa, bo przy zmianie kabiny się nie obraca i widać go niezależnie od obsady. Po przeniesieniu do pudła to samo.