'######################
' Script Pkw mit Vierganggetriebe und Benzinmotor (Vorbild: VW Golf 2)

'######################



'######################
'	Macro- und Triggerteil
'######################


'######################
'	Antrieb
'######################

'----------------------
'	Trigger
'----------------------

{trigger:kw_m_enginestart}
	1 (L.L.antrieb_eng_on) - (S.L.antrieb_eng_on)
	{if}
		1000 (S.L.antrieb_eng_n)
	{endif}
{end}

{trigger:kw_s_N}
	0 (S.L.antrieb_getr_gang)
{end}


{trigger:kw_s_1_fest}
{trigger:kw_s_1}
	1 (S.L.antrieb_getr_gang)
{end}
{end}

{trigger:kw_s_2_fest}
{trigger:kw_s_2}
	2 (S.L.antrieb_getr_gang)
{end}
{end}

{trigger:kw_s_3_fest}
{trigger:kw_s_3}
	3 (S.L.antrieb_getr_gang)
{end}
{end}

{trigger:kw_s_4_fest}
{trigger:kw_s_4}
	4 (S.L.antrieb_getr_gang)
{end}
{end}

{trigger:kw_s_R_fest}
{trigger:kw_s_R}
	-1 (S.L.antrieb_getr_gang)
{end}
{end}

{trigger:kw_s_1_fest_off}
{trigger:kw_s_2_fest_off}
{trigger:kw_s_3_fest_off}
{trigger:kw_s_4_fest_off}
{trigger:kw_s_R_fest_off}
	0 (S.L.antrieb_getr_gang)
{end}
{end}
{end}
{end}
{end}


'----------------------
'	Init
'----------------------

{macro:antrieb_init}
	0 (S.L.antrieb_eng_on)
	0 (S.L.antrieb_getr_gang)
{end}

'----------------------
'	Frame
'----------------------

{macro:antrieb_frame}


'Prüfen der aktuellen Übersetzung:

(L.L.antrieb_getr_gang) s0

l0 0 =
{if}
	0 (S.L.antrieb_getr_ratio_act)
{else}
l0 -1 =
{if}
	(C.L.antrieb_getr_ratioR) (S.L.antrieb_getr_ratio_act)
{else}
l0 1 =
{if}
	(C.L.antrieb_getr_ratio1) (S.L.antrieb_getr_ratio_act)
{else}
l0 2 =
{if}
	(C.L.antrieb_getr_ratio2) (S.L.antrieb_getr_ratio_act)
{else}
l0 3 =
{if}
	(C.L.antrieb_getr_ratio3) (S.L.antrieb_getr_ratio_act)
{else}
l0 4 =
{if}
	(C.L.antrieb_getr_ratio4) (S.L.antrieb_getr_ratio_act)
{endif}
{endif}
{endif}
{endif}
{endif}
{endif}



'Berechnung der Kupplungsdrehzahl:

	(L.L.n_Wheel) (C.L.antrieb_i_achse) * (L.L.antrieb_getr_ratio_act) * (S.L.antrieb_kupp_n)

'Berechnung des Motordrehmomentes:

	(M.L.calc_eng_M)

'Berechnung der Differenz zwischen Motordrehzahl und Kupplungsdrehzahl:

	(L.L.antrieb_kupp_n) (L.L.antrieb_eng_n) - (S.L.antrieb_kupp_n_delta) abs 50 >
'	{if}
'		1 (S.L.antrieb_kupp_schleif)
'	{endif}


'Wenn kein Gang eingelegt ist...
	(L.L.antrieb_getr_gang) 0 = 
	{if}
		0 (S.L.antrieb_kupp_M_haft) (S.L.antrieb_kupp_M_gleit)
		1 (S.L.antrieb_kupp_schleif)
	{else}
'Sonst Berechnen der aktuellen Kupplungsmomente:

		
		1 (L.L.Clutch) - 0.35 - 0.6 / 0 max 1 min d *

		s0
		(C.L.antrieb_kupp_Mmax_haft) * (S.L.antrieb_kupp_M_haft)
		l0 (C.L.antrieb_kupp_Mmax_gleit) * (S.L.antrieb_kupp_M_gleit)
	{endif}


'Wenn die Kupplung nicht schleift...

	(L.L.antrieb_kupp_schleif) 0 =
	{if}
		(L.L.antrieb_kupp_n) (S.L.antrieb_eng_n)
		(L.L.antrieb_eng_M) (S.L.antrieb_getr_M)
		(L.L.antrieb_eng_M) abs (L.L.antrieb_kupp_M_haft) >
		{if}
			1 (S.L.antrieb_kupp_schleif)
		{endif}
	{else}

'Sonst...

		(L.L.antrieb_kupp_n_delta) s0
		0 >
'Wenn Motor durch Kupplung beschleunigt wird...
		{if}
'Berechnen des Motor-Beschleunigungsmomentes:

			(L.L.antrieb_kupp_M_gleit) /-/ (S.L.antrieb_getr_M)
		{else}
			(L.L.antrieb_kupp_M_gleit) (S.L.antrieb_getr_M)
		{endif}

		(L.L.antrieb_eng_M) (L.L.antrieb_getr_M) -


'Nun wird um diesen Betrag der Motor beschleunigt... (obiger Wert wird im Buffer gehalten!)

		(C.L.antrieb_eng_J) / (L.S.timegap) * 30 * pi / (L.L.antrieb_eng_n) + (S.L.antrieb_eng_n)


'Prüfen, ob sich das Vorzeichen der Drehzahldifferenz umkehrt:


		(L.L.antrieb_kupp_n) (L.L.antrieb_eng_n) - (L.L.antrieb_kupp_n_delta) * 0 <
		{if}
			0 (S.L.antrieb_kupp_schleif)
			(L.L.antrieb_kupp_n) (S.L.antrieb_eng_n)
		{endif}


	{endif}
		
		
		

	
'Berechnung des Abtriebmomentes:

	(L.L.antrieb_getr_M) (L.L.antrieb_getr_ratio_act) * (C.L.antrieb_i_achse) * (S.L.M_Wheel)


{endif}






{macro:calc_eng_M}
	(L.L.antrieb_eng_on)
	{if}
		(L.L.Throttle) s1 (L.L.antrieb_eng_n) (C.L.antrieb_eng_n_Mmax) / s0 (F.L.antrieb_eng_M_maxThrottle) * 1 l1 - l0 (F.L.antrieb_eng_M_minThrottle) * + (C.L.antrieb_eng_Mmax) * (S.L.antrieb_eng_M) 
	{else}
		(L.L.antrieb_eng_n) 1 >
		{if}
			(C.L.antrieb_eng_coldM) (S.L.antrieb_eng_M)
		{else}
			0 (S.L.antrieb_eng_M)
		{endif}
	{endif}

{end}





