EDIT:Geaendert, da es einen ungehaltenen User gab, der
mein english in Frage stellt!
(Hatte etliche Jahre englisch aber in den jahren
geht wohl auch der ein oder andere Denkansatz verloren)

Ich habe hier einen Menue code der von der Syntax her
funktioniert aber nicht in seiner Funktionalitaet.

Ich moechte ueber ein Menue 3 Buttons anzeigen lassen
und per switch case function, je nach Button das Material
eines Models zur Laufzeit aendern.
Der Code sollte eigentlich funktionieren allerdings
frage ich mich nun, wieso die if verzweigung nicht funktioniert.

@Schrompf
Enschuldige bitte, das mein englisch fuer deine Verhaeltnisse
nicht gut genug ist.!!!!!!
Das Handbuch hab ich 3 Tage durchgelesen und nichts gefunden.
Und jeder faengt i-wann mal an oder?
Also hoer auf zu meckern.(Auch wenn ich dich verstehen kann)



Code:
var detail;

#define DETAIL_LOW 		0
#define DETAIL_MEDIUM 	        1
#define DETAIL_HIGH		2

PANEL* options_pan = 
{
	bmap = options_tga;
	layer = 30; 
	pos_x = 0;
	pos_y = 0;

        button_radio = 550, 400, low1_tga, low1_tga, low2_tga,menu_detail, NULL, NULL;
	button_radio = 610, 400, med1_tga, med1_tga, med2_tga,menu_detail, NULL, NULL;
	button_radio = 670, 403, high1_tga, high1_tga, high2_tga,menu_detail, NULL, NULL;
}


//count -1(define is 0, start is 1 ...-1 = 0
void menu_detail(var buttonNr)
{
	detail = buttonNr -1;
}

//Switch the buttons
void detail_einstellungen()
{
	switch(detail)
	{
		case DETAIL_LOW:			button_state(options_pan, 1,1);break;
		case DETAIL_MEDIUM:		button_state(options_pan, 2,1);break;
		case DETAIL_HIGH:			button_state(options_pan, 3,1);break;
	}
}

//________


MATERIAL* detail_test1 =
{
	effect = "detail_x.fx";
	event = detail_event;
	flags = ENABLE_RENDER;
}
MATERIAL* detail_test2 =
{
	effect = "empty_technique.fx";
	event = detail_event;
	flags = ENABLE_RENDER;
}


action detail_event()
{
	if(detail == DETAIL_HIGH)
	{
		wait(1);
		my.material = detail_test1;
		my.ambient = 90;
		return;			
	}
	else
		if(detail == DETAIL_MEDIUM)
		{
			wait(1);
			my.material = detail_test2;
			return;
			 
		}else 
			if(detail == DETAIL_LOW)
			{
				wait(1);
				                                            my.material=detail_test2;	
				//d3d_texlimit = 512;
				return;
				
			}	
			
			
	reset(my, DYNAMIC);
	//my.ambient = 90;
}



Last edited by Ayumi; 07/17/09 12:01.