'########################################
'#                                      #
'#              MAIN SCRIPT             #
'#                                      #
'#    MAN Standarddoppeldecker SD200    #
'#                                      #
'#             Bauart SD85              #
'#                                      #
'########################################

'(c) 10.08.2009 Marcel Kuhnt, Rüdiger Hülsmann

'Script Version: 1.0
'Omsi release: 1.0


'Revision History:
'- Marcel Kuhnt		10.08.2009	Added Revision History
'- Marcel Kuhnt		30.11.2010	Bugfix: press [D] in AI mode if motor running but neutral

'------------------------------------------------------------------------------------------


'######################
'	Hauptteil
'######################

{init}
	(M.L.engine_Init)
	(M.L.Antrieb_Init)
	(M.L.Elec_Init)
	(M.L.Door_Init)
	(M.L.wiper_init)
	(M.L.wiper_R_init)
	(M.L.lights_init)
	(M.L.bremse_init)
'	(M.L.rollband_init)
	(M.L.cockpit_init)
	(M.L.heizung_init)
	(M.L.Matrix_init)
	(M.L.IBIS_init)
	(M.L.Collision_Init)
	(M.L.ticketprinter_init)
	(M.L.magnitola_init)
{end}

{frame}
	(M.L.Engine_Frame)
	(M.L.Antrieb_Frame)
	(M.L.Elec_Frame)
	(M.L.Door_frame)
	(M.L.cockpit_frame)
	(M.L.lights_frame)
	(M.L.wiper_frame)
	(M.L.wiper_R_frame)
	(M.L.Auspuff_Frame)
	(M.L.Kalyhafust_Frame)
	(M.L.bremse_frame)
	(M.L.klappern_frame)
'	(M.L.rollband_frame)
	(M.L.FF_frame)
	(M.L.rain_frame)
	(M.L.dirt_frame)
	(M.L.sound_volume_frame)
	(M.L.heizung_frame)
	(M.L.IBIS_frame)
	(M.L.Matrix_frame)
	(M.L.wimpel_frame)
	(M.L.cashdesk_frame)
	(M.L.ticketprinter_frame)
	(M.L.magnitola_frame)
	(M.L.playlist_frame)
	(M.L.spray_frame)

(L.L.doorMaxSpeed_0)
(S.L.Debug_0)

(L.L.doorSpeed_0)
(S.L.Debug_1)

(L.L.engine_Qrate_veloc)
(S.L.Debug_2)

(L.L.engine_temperature_envir)
(S.L.Debug_3)

(L.L.engine_temperature)
(S.L.Debug_4)


(L.L.bremse_zieldruck_HA_R)
(S.L.Debug_5)





'=================================================================================
' Schaltwagen fahren - keine leichte Angelegenheit, auch nicht für die KI! :-)

	(L.L.AI)
	{if}
		(L.L.engine_n) 500 < (L.L.AI_Scheduled_AtStation) 1 = ||
		{if}
			0 (S.L.antrieb_getr_gang) (S.L.antrieb_shifter_posy_target)
		{else}
			(L.L.antrieb_getr_gang) 0 = (L.L.Velocity) 15 < && {if} 1 (S.L.antrieb_getr_gang) 0 (S.L.antrieb_shifter_posy_target) (S.L.antrieb_getr_ratio_act) {endif}
			(L.L.antrieb_getr_gang) 1 = (L.L.Velocity) 15 > && {if} 2 (S.L.antrieb_getr_gang) 0 (S.L.antrieb_shifter_posy_target) (S.L.antrieb_getr_ratio_act) {endif}
			(L.L.antrieb_getr_gang) 2 = (L.L.Velocity) 25 > && {if} 3 (S.L.antrieb_getr_gang) 0 (S.L.antrieb_shifter_posy_target) (S.L.antrieb_getr_ratio_act) {endif}
			(L.L.antrieb_getr_gang) 3 = (L.L.Velocity) 40 > && {if} 4 (S.L.antrieb_getr_gang) 0 (S.L.antrieb_shifter_posy_target) (S.L.antrieb_getr_ratio_act) {endif}
			(L.L.antrieb_getr_gang) 2 = (L.L.Velocity)  3 < && {if} 1 (S.L.antrieb_getr_gang) 0 (S.L.antrieb_shifter_posy_target) (S.L.antrieb_getr_ratio_act) {endif}
			(L.L.antrieb_getr_gang) 3 = (L.L.Velocity) 17 < && {if} 2 (S.L.antrieb_getr_gang) 0 (S.L.antrieb_shifter_posy_target) (S.L.antrieb_getr_ratio_act) {endif}
			(L.L.antrieb_getr_gang) 4 = (L.L.Velocity) 28 < && {if} 3 (S.L.antrieb_getr_gang) 0 (S.L.antrieb_shifter_posy_target) (S.L.antrieb_getr_ratio_act) {endif}
		{endif}
	{endif}		

	(L.L.AI) (L.S.AutoClutch) ||	
	{if}
		(L.L.antrieb_getr_ratio_act) 0 = !
		{if}
'Kupplungspedal variiert abhängig von Drehzahl und Gaspedal:
'Schwankungsbereich 100 UPM bei Leerlauf bis 1100 UPM bei Vollgas,
'Drehzahl bei komplett "losgelassener" Kupplung 550 (unterhalb 10km/h) bzw. 750 UPM bei Leerlauf,
'1950 / 2150 UPM (Leerlauf + 1400UPM) bei Vollgas

'Geschwindigkeitsabhängig oberhalb oder unterhalb Leerlaufdrehzahl auskuppeln:

			(L.L.Velocity) 10 >
			{if}
				550
			{else}
				750
			{endif}
			(L.L.Throttle) 1400 * + s0

'Drehzahlschwankungsspanne ist ebenfalls abhängig vom Gaspedal:
			(L.L.Throttle) 1000 * 100 + s1

			l0 (L.L.engine_n) - l1 / 0 max 1 min
			(L.L.Clutch) (L.S.Timegap) 0.25 * - max s0


		{else}
			0 (S.L.Throttle)
			(L.L.antrieb_getr_gang) 0 = 
			{if}
				0
			{else}
				1
			{endif}
			(S.L.Clutch)
		{endif}
	{endif}


'Strom einschalten

	(L.L.AI)
	{if}
		1 (S.L.cp_schluessel_trans_mode)
		(S.L.elec_busbar_main_sw)
	{endif}

	(L.L.AI_Engine) 0.5 >
	(L.L.engine_on) 0.5 <
	&&
	{if}
		0 (S.L.bremse_feststell_sw) (S.L.bremse_feststell)
		1 (S.L.engine_injection_on)
		400 (S.L.engine_n)
		1 (S.L.engine_on)
'Motorbremse aus, kann er eh nicht bedienen:
		0 (S.L.cp_retarder_sw)
	{endif}

	(L.L.AI_Engine) -0.5 <
	(L.L.engine_on) 0.5 >
	&&
	{if}
		0 (S.L.engine_on)
		0 (S.L.engine_injection_on)
		1 (S.L.bremse_feststell_sw) (S.L.bremse_feststell)
	{endif}




{end}


'----------------------------------
'Crash:

{trigger:collision}
	(M.L.Collision_Trigger)
{end}


'----------------------------------
'malfunction reset:


{trigger:malfunction_reset}
	1.0 (S.L.elec_V_battery)
	(M.L.Collision_Malfunction_Reset)
{end}








