示例#1
0
//static
void FaceGenManager::BlitFaceIm(SDLSurfacePtr &faceim, Sint8 &genderOut, const Uint32 flags, const Uint32 seed)
{
	Random rand(seed);

	const int species = (m_species.size()==1) ? 0 : rand.Int32(0,m_species.size()-1);
	const int race = rand.Int32(0,NumRaces(species)-1);

	int gender;
	switch (flags & GENDER_MASK) {
		case GENDER_MALE:
			gender = 0;
			break;
		case GENDER_FEMALE:
			gender = 1;
			break;
		case GENDER_RAND:
		default:
			gender = rand.Int32(0,NumGenders(species)-1);
			break;
	}
	genderOut = gender;

	const int head  = rand.Int32(0,NumHeads(species,race)-1);
	const int eyes  = rand.Int32(0,NumEyes(species,race)-1);
	const int nose  = rand.Int32(0,NumNoses(species,race)-1);
	const int mouth = rand.Int32(0,NumMouths(species,race)-1);
	const int hair  = rand.Int32(0,NumHairstyles(species,race)-1);

	const int clothes     = rand.Int32(0,NumClothes(species)-1);
	const int armour      = rand.Int32(0,NumArmour(species)-1);
	const int accessories = rand.Int32(0,NumAccessories(species)-1);
	const int background  = rand.Int32(0,NumBackground(species)-1);

	FaceGenManager::TQueryResult res;
	FaceGenManager::GetImagesForCharacter(res, species, race, gender, head, eyes,
		nose, mouth, hair, clothes, armour, accessories, background);

	_blit_image(faceim, res.mBackground, 0, 0);
	_blit_image(faceim, res.mHead, 0, 0);

	if (!(flags & ARMOUR)) {
		_blit_image(faceim, res.mClothes, 0, 135);
	}

	_blit_image(faceim, res.mEyes, 0, 41);
	_blit_image(faceim, res.mNose, 1, 89);
	_blit_image(faceim, res.mMouth, 0, 155);

	if (!(flags & ARMOUR)) {
		if (rand.Int32(0,1)>0)
			_blit_image(faceim, res.mAccessories, 0, 0);

		_blit_image(faceim, res.mHairstyle, 0, 0);
	}
	else {
		_blit_image(faceim, res.mArmour, 0, 0);
	}
}
int visual_numeric_pad (int x_num, int y_num)
{


//background window
Rect NumBackground(Vec2D (x_num, y_num ), Vec2D ( 480,300));
NumBackground.SetRoundness(15);
NumBackground.SetLineWidth(epaisseur_ligne_fader*3);
NumBackground.Draw(CouleurFond);
if(window_focus_id==903)
{
NumBackground.DrawOutline(CouleurFader);
}
else
{
NumBackground.DrawOutline(CouleurLigne);
}
level_wheel(x_num+270,y_num+35,rayon_wheel_level,angle_correction_wheel);
//premiere ligne 1 2 3
for (int loi=0;loi<3;loi++)
{
Rect MyNum(Vec2D(x_num+10+(70*loi),y_num+16),Vec2D(60,60));
MyNum.SetRoundness(7.5);
MyNum.SetLineWidth(epaisseur_ligne_fader);
if (show_numpad_midi[1+loi]==1){MyNum.Draw(CouleurSurvol);show_numpad_midi[1+loi]=0;}
MyNum.DrawOutline(CouleurLigne);
if( Midi_Faders_Affectation_Type!=0)//config midi
{
  if(mouse_x>x_num+10+(70*loi) && mouse_x<x_num+70+(70*loi) && mouse_y>y_num+16 && mouse_y<y_num+76)
  {
  MyNum.DrawOutline(CouleurBlind);
  }
}
}

//deuxieme ligne 4 5 6
for (int loi=0;loi<3;loi++)
{
Rect MyNum(Vec2D(x_num+10+(70*loi),y_num+86),Vec2D(60,60));
MyNum.SetRoundness(7.5);
MyNum.SetLineWidth(epaisseur_ligne_fader);
if (show_numpad_midi[4+loi]==1){MyNum.Draw(CouleurSurvol);show_numpad_midi[4+loi]=0;}
MyNum.DrawOutline(CouleurLigne);
if( Midi_Faders_Affectation_Type!=0)//config midi
{
  if(mouse_x>x_num+10+(70*loi) && mouse_x<x_num+70+(70*loi) && mouse_y>y_num+86 && mouse_y<y_num+146)
  {
  MyNum.DrawOutline(CouleurBlind);
  }
}
}

//troisieme ligne 7 8 9
for (int loi=0;loi<3;loi++)
{
Rect MyNum(Vec2D(x_num+10+(70*loi),y_num+156),Vec2D(60,60));
MyNum.SetRoundness(7.5);
MyNum.SetLineWidth(epaisseur_ligne_fader);
if (show_numpad_midi[7+loi]==1){MyNum.Draw(CouleurSurvol);show_numpad_midi[7+loi]=0;}
MyNum.DrawOutline(CouleurLigne);
if(Midi_Faders_Affectation_Type!=0)//config midi
{
  if(mouse_x>x_num+10+(70*loi) && mouse_x<x_num+70+(70*loi) && mouse_y>y_num+156 && mouse_y<y_num+216)
  {
  MyNum.DrawOutline(CouleurBlind);
  }
}
}
//quatrieme ligne 0 point Clear
for (int loi=0;loi<3;loi++)
{
Rect MyNum(Vec2D(x_num+10+(70*loi),y_num+226),Vec2D(60,60));
MyNum.SetRoundness(7.5);
MyNum.SetLineWidth(epaisseur_ligne_fader);
MyNum.DrawOutline(CouleurLigne);
switch(loi)
{
case 0:
if (show_numpad_midi[0]==1){MyNum.Draw(CouleurSurvol);show_numpad_midi[0]=0;}
break;
case 1:
if (show_numpad_midi[10]==1){MyNum.Draw(CouleurSurvol);show_numpad_midi[10]=0;}
break;
if (show_numpad_midi[11]==1){MyNum.Draw(CouleurSurvol);show_numpad_midi[11]=0;}
case 2:
break;
}
if(Midi_Faders_Affectation_Type!=0)//config midi
{
  if(mouse_x>x_num+10+(70*loi) && mouse_x<x_num+70+(70*loi) && mouse_y>y_num+226 && mouse_y<y_num+286)
  {
  MyNum.DrawOutline(CouleurBlind);
  }
}
}


//UP
Rect UPT(Vec2D(x_num+220,y_num+86),Vec2D(100,60));
UPT.SetRoundness(7.5);
UPT.SetLineWidth(epaisseur_ligne_fader);
if (show_numpad_midi[18]==1){UPT.Draw(CouleurSurvol);show_numpad_midi[18]=0;}
UPT.DrawOutline(CouleurLigne);
if( Midi_Faders_Affectation_Type!=0)//config midi
{
  if(mouse_x>x_num+220 && mouse_x<x_num+320 && mouse_y>y_num+86 && mouse_y<y_num+146)
  {
  UPT.DrawOutline(CouleurBlind);
  }
}
//
//DOWN
Rect DOWNT(Vec2D(x_num+220,y_num+156),Vec2D(100,60));
DOWNT.SetRoundness(7.5);
DOWNT.SetLineWidth(epaisseur_ligne_fader);
if (show_numpad_midi[19]==1){DOWNT.Draw(CouleurSurvol);show_numpad_midi[19]=0;}
DOWNT.DrawOutline(CouleurLigne);
if(Midi_Faders_Affectation_Type!=0)//config midi
{
  if(mouse_x>x_num+220 && mouse_x<x_num+320 && mouse_y>y_num+156 && mouse_y<y_num+216)
  {
  DOWNT.DrawOutline(CouleurBlind);
  }
}
//ENTER
Rect ENTERT(Vec2D(x_num+220,y_num+226),Vec2D(100,60));
ENTERT.SetRoundness(7.5);
ENTERT.SetLineWidth(epaisseur_ligne_fader);
if (show_numpad_midi[15]==1){ENTERT.Draw(CouleurSurvol);show_numpad_midi[15]=0;}
ENTERT.DrawOutline(CouleurLigne);
if( Midi_Faders_Affectation_Type!=0)//config midi
{
  if(mouse_x>x_num+220 && mouse_x<x_num+320 && mouse_y>y_num+226 && mouse_y<y_num+286)
  {
  ENTERT.DrawOutline(CouleurBlind);
  }
}
//+
Rect MyPlus(Vec2D(x_num+330,y_num+86),Vec2D(60,60));
MyPlus.SetRoundness(7.5);
MyPlus.SetLineWidth(epaisseur_ligne_fader);
if (show_numpad_midi[16]==1){MyPlus.Draw(CouleurSurvol);show_numpad_midi[16]=0;}
MyPlus.DrawOutline(CouleurLigne);
if( Midi_Faders_Affectation_Type!=0)//config midi
{
  if(mouse_x>x_num+330 && mouse_x<x_num+390 && mouse_y>y_num+86 && mouse_y<y_num+146)
  {
  MyPlus.DrawOutline(CouleurBlind);
  }
}
//-
Rect MyMinus(Vec2D(x_num+330,y_num+156),Vec2D(60,60));
MyMinus.SetRoundness(7.5);
MyMinus.SetLineWidth(epaisseur_ligne_fader);
if (show_numpad_midi[17]==1){MyMinus.Draw(CouleurSurvol);show_numpad_midi[17]=0;}
MyMinus.DrawOutline(CouleurLigne);
if( Midi_Faders_Affectation_Type!=0)//config midi
{
  if(mouse_x>x_num+330 && mouse_x<x_num+390 && mouse_y>y_num+156 && mouse_y<y_num+216)
  {
  MyMinus.DrawOutline(CouleurBlind);
  }
}

doom.Print("1",x_num+30, y_num+55);
doom.Print("2",x_num+100, y_num+55);
doom.Print("3",x_num+170, y_num+55);
doom.Print("4",x_num+30, y_num+125);
doom.Print("5",x_num+100, y_num+125);
doom.Print("6",x_num+170, y_num+125);
doom.Print("7",x_num+30, y_num+195);
doom.Print("8",x_num+100, y_num+195);
doom.Print("9",x_num+170, y_num+195);
doom.Print("0",x_num+30, y_num+265);
doom.Print(".",x_num+105, y_num+265);
doom.Print("C",x_num+165, y_num+265);
doom.Print("up",x_num+250, y_num+125);
doom.Print("down",x_num+230, y_num+195);
doom.Print("AT",x_num+245, y_num+265);
doom.Print("+",x_num+350, y_num+125);
doom.Print("-",x_num+350, y_num+195);
return(0);
}