Author Message

RedCarDriver

us
Posts: 1211

Location: United States Arizona
Occupation: it's complicated... more complicated than my relationships
Age: 30
V$: 86310
#17619   2012-09-27 19:08          
Thanks for the response, Bigg Boss! For the pop-up headlights, Franco's 3000GT wing was actually what I was thinking of using as the basis. What I need to figure out is how to read the time of day from within the java for the part. I'll have to go code-diving into the sources for the rest of the game, I guess.

As far as the needle, I remember reading that someone was unable find a way to access the current engine RPM reading (they were working on variable cam timing), but if I could figure it out, I would probably use the same method.

Neither of those things pertains directly to the Commodore; they're just for random other SLRR things.

Added 14 days later:

Got another scripting question. (I also posted this to GOM.)

I am having a problem getting a tuning menu to read the values from the menu into the part's variables. I have created tuning menus before, but I can never get multiple-choice menus (like the standard fuel type menu) to work. Additionally, even though I have gotten slider-based menus to work, I cannot get this one in particular to work; it seems very stubborn.

Here is the code in question. (I am omitting part of the java source because not all of it is relevant, and it is a rather lengthy class file. This IS for the animated headlights I was describing before.)

	float rads, degs, fullcloserads, fullopenrads;
	float old_rads;
	
	float old_open_mode;
	
	public int isTuneable()
	{
		return true;
	}
	
	public void buildTuningMenu( Menu m )
	{

		demonstrate_sleeper = 1;
		
		old_rads = rads;
		degs = rad2deg(rads);

		old_open_mode = open_mode;
		
		String[]	headlightmodeText = new String[4];
		headlightmodeText[0] = "Standard (Full Open/Close)";
		headlightmodeText[1] = "Full Close, Custom Angle When Open";
		headlightmodeText[2] = "Custom Angle When Closed, Full Open";
		headlightmodeText[3] = "Custom Angle Full-Time";

		m.addItem( "Headlight Mode: ", 2, open_mode, headlightmodeText, null );

		m.addItem( "Custom Headlight Angle", 1, degs, (rad2deg(fullcloserads)), (rad2deg(fullopenrads)), 1.1, null ).printValue("   %1.1f degrees");
	
		m.addItem( "Reset to factory defaults",			0);	//this should always be with cmd=0
		

	}

	public void endTuningSession( int cancelled )
	{
		if( cancelled )
		{
			rads = old_rads;
			open_mode = old_open_mode;
		}
		else
		{
			if (rads != old_rads)
				GameLogic.spendTime(5*60);
			if (open_mode != old_open_mode)
				GameLogic.spendTime(5*60);
			getCar_LocalVersion();
			if (the_car)
				the_car.forceUpdate();
		}
		demonstrate_sleeper = 0;
		animate_progress = 0.5; // forces animation to reset
	}

	public void handleMessage( Event m )
	{
		if( m.cmd == 0 )
		{
			rads = fullopenrads;
			m.gadget.osd.findGadget( this, 1 ).setValue( 0 );
			m.gadget.osd.findGadget( this, 2 ).setValue( rad2deg(fullopenrads) );

			setSlotPos( 7, null, new Ypr(0.000,rads,0.000) );
			
			open_mode = 0;
		}
		else
		if( m.cmd == 1 )
		{
			rads = deg2rad(((Slider)m.gadget).value);
			degs = ((Slider)m.gadget).value;
			((Slider)m.gadget).changeVLabelText( Float.toString(degs, "   %1.1f degrees"));
			setSlotPos( 7, null, new Ypr(0.000,rads,0.000) );
		}
		else
		if( m.cmd == 2 )
		{
			open_mode = ((MultiChoice)m.gadget).value;
		}
	}
	
	public float rad2deg( float rad )
	{
		return(rad * 180 / 3.141);
	}
	public float deg2rad( float deg )
	{
		return(deg * 3.141 / 180);
	}

This post was edited by Harrison15 (2012-10-12 06:31, ago)