Пример #1
0
void printTeamFull(void)
{
	char i, encre, a;
	cls();
	ink(eencre[ville-1]);
	// affichage des titres
	printTitle(8,2, A_BGRED, " * TYRANN 3 - EQUIPE * ", 23);
	printTitle(2,4, A_BGRED, "PERSONNAGES MAISON    CARRIERE NIV ", 35);
	printTitle(2,5, A_BGBLUE, " Argent      CC CT Fo Ag In FM PV  ", 35);
	// affichage persos
	for(i=0;i<6;i++) {
		switch(characters[i].cp) {
			case 1:
				encre = A_FWYELLOW; // jaune
				break;
			case 2:
				encre = A_FWWHITE; // blanc
				break;
			case 3:
				encre = A_FWCYAN; // cyan
				break;
			case 4:
				encre = A_FWMAGENTA; // magenta
				break;
			case 5:
				encre = A_FWBLUE; // bleu
				break;
			default:
				encre = A_FWGREEN; // bleu		
		}
		attribAtXY(1,7+3*i,encre);
		printAtXY (3,7+3*i, itoa(i+1));
		printAtXY (5,7+3*i, characters[i].nom);		
		if (characters[i].mp != 1) printAtXY (17,7+3*i, maisons[characters[i].mp-2]);		
		printAtXY (27,7+3*i, classe[characters[i].cp-1]);
		printAtXY (37,7+3*i, itoa(characters[i].ni));
		printAtXY (6,7+3*i+1, itoa(characters[i].ri*10));
		printAtXY (13,7+3*i+1, "ca");
		printAtXY (18,7+3*i+1, itoa(characters[i].cc));
		printAtXY (21,7+3*i+1, itoa(characters[i].ct));
		printAtXY (24,7+3*i+1, itoa(characters[i].fo));
		printAtXY (27,7+3*i+1, itoa(characters[i].ag));
		printAtXY (30,7+3*i+1, itoa(characters[i].in));
		printAtXY (33,7+3*i+1, itoa(characters[i].fm));
		printAtXY (36,7+3*i+1, itoa(characters[i].pv));
	}
	printTitle(2,25, A_BGBLUE, " Argent      CC CT Fo Ag In FM PV  ", 35);
	printTitle(2,26, A_BGRED, "            < ESPACE >            ", 34);
	while(1) {
		a = get();
		if (a==' ') {
			break;
		} else
			ping();
	}
}
Пример #2
0
int main (int argc, char *argv[])
{
  int ghost[3],pacman[3],target[2], number_ghost=0;
  char maze[L][C];
  char ch,path[20] = "maze.txt";
  int i=0,j=0;
  while (number_ghost != 9)
  {
  	//clear_screen();
	load_maze(maze,path);
  	//print_maze(maze);
  	printf ( "\t>>> GHOSTS <<<\n" );
  	printf ( "1.BLINK  2.PINK  3.INKY  4.CLYDE  9.SAIR   \n" );
  	do
  	{  	  
  	  printf ( "Qual o numero do Ghost? = " );
          scanf ("%d", &number_ghost);
  	}while(number_ghost > 4 || number_ghost < 1 || number_ghost == 9  );  
  
  //Lendo cordenadas para o ghost 
  	if (number_ghost != 9)
  	{
		
  		print_maze(maze);
  		read_player(maze,ghost,'3'); 
  		read_player(maze,pacman,'5');
	        switch (number_ghost)
		{
			case 1:
				//void blink(maze,ghost,pacman,target);
				position(maze,pacman,'8');
				target[0] = pacman[0];
				target[1] = pacman[1];
				break;
			case 2:
			//	void pink(maze,ghost,pacman,target);
			//	position(maze,target,'T');
				break;
			case 3:
				ink(red,pacman,target);
				position(maze,target,'8');
				break;
			case 4:
			//	void clyde(maze,ghost,pacman,target);
			//	position(maze,target,'8');
		        	break;

		}	
 	 	
		walking(maze,ghost,target);//mudar os parametros
  		print_maze (maze);
  	}
  }
  return 0;
}
Пример #3
0
void camping(void)
{
	char i, encre, a;
	char *ptr;
	while(1) {
		text();cls();
		ptr = (char*)0x26a; *ptr = *ptr & 254; // Vire le curseur 
		ink(eencre[ville-1]);
		printFrame(15);
		printTitle(8,2, A_BGRED, "<  ++ CAMPEMENT ++  >", 21);
		printAtXY(9,6, "1. Inspecter un heros");
		printAtXY(9,8, "2. Visualiser l'equipe");
		if (ca>20 && ca<29)
			printAtXY(9,10, "3. Ouvrir un coffre");
		printAtXY(9,12,"4. Se reposer");
		printAtXY(13,16,"5. Lever le camp");
		// affichage équipe
		printTeam();
		a = get();
		switch(a) {
			case '1':
				inspect();
				break;
			case '2':
				printTeamFull();
				break;
			case '3':
				if (ca>20 && ca<29)
					chest();
				break;
			case '4':
				sleep();
				break;
			case '5':
				cls();
				printAtXY(8,10, "Bon voyage !");
				wait(150);
				return;
				break;
			default:
				ping();
				break;	
		}
		//attribAtXY(3,0,a);
	}
	
}
Пример #4
0
//dot_ex(x,y,c)								: write x,y point with a c color
int dot_ex(int x,int y,int c)
{
	ink(c);
	if (autotimer()!=0)return -1;
	return dot(x,y);
}
Пример #5
0
static pedge* modularity_ink_bundling(int dim, int ne, SparseMatrix B, pedge* edges, real angle_param, real angle){
  int *assignment = NULL, flag, nclusters;
  real modularity;
  int *clusterp, *clusters;
  SparseMatrix D, C;
  point_t meet1, meet2;
  real ink0, ink1;
  pedge e;
  int i, j, jj;
  int use_value_for_clustering = TRUE;

  //int use_value_for_clustering = FALSE;

  SparseMatrix BB;

  /* B may contain negative entries */
  BB = SparseMatrix_copy(B);
  BB = SparseMatrix_apply_fun(BB, absfun);
  modularity_clustering(BB, TRUE, 0, use_value_for_clustering, &nclusters, &assignment, &modularity, &flag);
  SparseMatrix_delete(BB);

#ifdef OPENGL
  clusters_global = assignment;
#endif

  assert(!flag);
  if (Verbose > 1) fprintf(stderr, "there are %d clusters, modularity = %f\n",nclusters, modularity);
  
  C = SparseMatrix_new(1, 1, 1, MATRIX_TYPE_PATTERN, FORMAT_COORD);
  
  for (i = 0; i < ne; i++){
    jj = assignment[i];
    SparseMatrix_coordinate_form_add_entries(C, 1, &jj, &i, NULL);
  }
  
  D = SparseMatrix_from_coordinate_format(C);
  SparseMatrix_delete(C);
  clusterp = D->ia;
  clusters = D->ja;
  for (i = 0; i < nclusters; i++){
    ink1 = ink(edges, clusterp[i+1] - clusterp[i], &(clusters[clusterp[i]]), &ink0, &meet1, &meet2, angle_param, angle);
    if (Verbose > 1)
      fprintf(stderr,"nedges = %d ink0 = %f, ink1 = %f\n",clusterp[i+1] - clusterp[i], ink0, ink1);
    if (ink1 < ink0){
      for (j = clusterp[i]; j < clusterp[i+1]; j++){
	/* make this edge 5 points, insert two meeting points at 1 and 2, make 3 the last point */
	edges[clusters[j]] = pedge_double(edges[clusters[j]]);
	e = edges[clusters[j]] = pedge_double(edges[clusters[j]]);
	e->x[1*dim] = meet1.x;
	e->x[1*dim+1] = meet1.y;
	e->x[2*dim] = meet2.x;
	e->x[2*dim+1] = meet2.y;
	e->x[3*dim] = e->x[4*dim];
	e->x[3*dim+1] = e->x[4*dim+1];
	e->npoints = 4;
      }
#ifdef OPENGL
      edges_global = edges;
      drawScene();
#endif
    }
  }
  SparseMatrix_delete(D);
  return edges;
}
Пример #6
0
void drawLaby(void)
{
	char l=0,lg;
	char *ptr;
	// 1000 HIRES:INK EENC(VIL):POKE#26A,PEEK(#26A) AND 254
	hires();
	ink(eencre[ville-1]);
	ptr = (char*)0x26a; *ptr = *ptr & 254; // Vire le curseur 
	// 1020 CURSET40,30,3:DRAW160,0,1:DRAW0,150,1
    CurrentPixelX=40;
    CurrentPixelY=30;
	OtherPixelX=40+160;
    OtherPixelY=30;
    DrawLine8();
    CurrentPixelX=40+160;
    CurrentPixelY=30;
	OtherPixelX=40+160;
    OtherPixelY=30+150;
    DrawLine8();
	// 1030 DRAW-160,0,1:DRAW0,-150,1
    CurrentPixelX=40+160;
    CurrentPixelY=30+150;
	OtherPixelX=40;
    OtherPixelY=30+150;
    DrawLine8();
    CurrentPixelX=40;
    CurrentPixelY=30+150;
	OtherPixelX=40;
    OtherPixelY=30;
    DrawLine8();
	// 1035 IF BS=1 THEN GOSUB 2800
	// 1040 L=1
	for(l=0;l<3;l++) {
		// 1400 REM DESSINS DES BLOCS 

		// 1070 IF G(L)>0 AND G(L)<7 THEN ON L GOSUB 1500,1550,1600
		if(g[l]>0&&g[l]<7) {
			switch(l) {
				case 0:
					// 1500 CURSET 40,30,3:DRAW20,20,1:DRAW0,110,1:DRAW-20,20,1
					CurrentPixelX=40;
					CurrentPixelY=30;
					OtherPixelX=40+20;
					OtherPixelY=30+20;
					DrawLine8();
					CurrentPixelX=40+20;
					CurrentPixelY=30+20;
					OtherPixelX=40+20;
					OtherPixelY=30+20+110;
					DrawLine8();
					CurrentPixelX=40+20;
					CurrentPixelY=30+20+110;
					OtherPixelX=40;
					OtherPixelY=30+20+110+20;
					DrawLine8();
					break;
				case 1:
					// 1550 CURSET60,50,1:DRAW25,25,1:DRAW0,60,1:DRAW-25,25,1
					CurrentPixelX=60;
					CurrentPixelY=50;
					OtherPixelX=60+25;
					OtherPixelY=50+25;
					DrawLine8();
					CurrentPixelX=60+25;
					CurrentPixelY=50+25;
					OtherPixelX=60+25;
					OtherPixelY=50+25+60;
					DrawLine8();
					CurrentPixelX=60+25;
					CurrentPixelY=50+25+60;
					OtherPixelX=60;
					OtherPixelY=50+25+60+25;
					DrawLine8();
					// 1570 IF G(1)=0 OR G(1)>6 THEN CURSET 40,50,1:DRAW20,0,1:DRAW 0,110,1:DRAW -20,0,1
					if(g[0]==0 || g[0]>6) {
						CurrentPixelX=40;
						CurrentPixelY=50;
						OtherPixelX=40+20;
						OtherPixelY=50;
						DrawLine8();
						CurrentPixelX=40+20;
						CurrentPixelY=50;
						OtherPixelX=40+20;
						OtherPixelY=50+110;
						DrawLine8();
						CurrentPixelX=40+20;
						CurrentPixelY=50+110;
						OtherPixelX=40;
						OtherPixelY=50+110;
						DrawLine8();					
					}
					break;
				case 2:
					// 1600 CURSET85,75,1:DRAW10,10,1:DRAW0,40,1:DRAW-10,10,1
					CurrentPixelX=85;
					CurrentPixelY=75;
					OtherPixelX=85+10;
					OtherPixelY=75+10;
					DrawLine8();
					CurrentPixelX=85+10;
					CurrentPixelY=75+10;
					OtherPixelX=85+10;
					OtherPixelY=75+10+40;
					DrawLine8();
					CurrentPixelX=85+10;
					CurrentPixelY=75+10+40;
					OtherPixelX=85;
					OtherPixelY=75+10+40+10;
					DrawLine8();					
					// 1620 IF G(2)>0 AND G(2)<7  THEN GOTO 1650
					if(!(g[1]>0&&g[1]<7)) {
						char t;
						// 1630 IF G(1)=0 OR G(1)>6 THEN T=45 ELSE T=25
						if(g[0]==0 || g[0]>6) t=45;
						else t=25;
						// 1640 CURSET85,75,1:DRAW0,60,1:DRAW-T,0,1:CURSET85,75,1:DRAW-T,0,1
						CurrentPixelX=85;
						CurrentPixelY=75;
						OtherPixelX=85;
						OtherPixelY=75+60;
						DrawLine8();
						CurrentPixelX=85;
						CurrentPixelY=75+60;
						OtherPixelX=85-t;
						OtherPixelY=75+60;
						DrawLine8();
						CurrentPixelX=85;
						CurrentPixelY=75;
						OtherPixelX=85-t;
						OtherPixelY=75;
						DrawLine8();
					}
					break;
			}
			// 1650 IF G(L)<2 OR G(L)>6 THEN RETURN
			if (!(g[l]<2 || g[l]>6)) {
				// 1670 ON L GOSUB 1700,1750,1800
				switch(l) {
					case 0:
						// 1700 CURSET 48,172,1:DRAW0,-125,1:DRAW -7,-7,1:RETURN
						CurrentPixelX=48;
						CurrentPixelY=172;
						OtherPixelX=48;
						OtherPixelY=172-125;
						DrawLine8();
						CurrentPixelX=48;
						CurrentPixelY=172-125;
						OtherPixelX=48-7;
						OtherPixelY=172-125-7;
						DrawLine8();
						break;
					case 1:
						// 1750 CURSET65,155,1:DRAW0,-95,1:DRAW 15,15,1:DRAW0,65,1
						CurrentPixelX=65;
						CurrentPixelY=155;
						OtherPixelX=65;
						OtherPixelY=155-95;
						DrawLine8();
						CurrentPixelX=65;
						CurrentPixelY=155-95;
						OtherPixelX=65+15;
						OtherPixelY=155-95+15;
						DrawLine8();
						CurrentPixelX=65+15;
						CurrentPixelY=155-95+15;
						OtherPixelX=65+15;
						OtherPixelY=155-95+15+65;
						DrawLine8();
						// 1770 CURSET67,105,3:CIRCLE1,1:RETURN
						curset(67,105,3);
						circle(1,1);
						break;
					case 2:
						// 1800 CURSET 88,132,1:DRAW0,-49,1:DRAW5,5,1:DRAW0,38,1
						CurrentPixelX=88;
						CurrentPixelY=132;
						OtherPixelX=88;
						OtherPixelY=132-49;
						DrawLine8();
						CurrentPixelX=88;
						CurrentPixelY=132-49;
						OtherPixelX=88+5;
						OtherPixelY=132-49+5;
						DrawLine8();
						CurrentPixelX=88+5;
						CurrentPixelY=132-49+5;
						OtherPixelX=88+5;
						OtherPixelY=132-49+5+38;
						DrawLine8();
						// 1820 CURSET 89,105,1
						curset(89,105,1);
						break;
				}
			}
		}
		// 1080 IF D(L)>0 AND D(L)<7 THEN ON L GOSUB 1900,1950,2000
		if(d[l]>0&&d[l]<7) {
			switch(l) {
				case 0:
					// 1900 CURSET200,30,3:DRAW-20,20,1:DRAW0,110,1:DRAW20,20,1					
					CurrentPixelX=200;
					CurrentPixelY=30;
					OtherPixelX=200-20;
					OtherPixelY=30+20;
					DrawLine8();
					CurrentPixelX=200-20;
					CurrentPixelY=30+20;
					OtherPixelX=200-20;
					OtherPixelY=30+20+110;
					DrawLine8();
					CurrentPixelX=200-20;
					CurrentPixelY=30+20+110;
					OtherPixelX=200;
					OtherPixelY=30+20+110+20;
					DrawLine8();
					// 1920 GOTO 2050
					break;
				case 1:
					// 1950 CURSET180,50,3:DRAW-25,25,1:DRAW0,60,1:DRAW25,25,1
					CurrentPixelX=180;
					CurrentPixelY=50;
					OtherPixelX=180-25;
					OtherPixelY=50+25;
					DrawLine8();
					CurrentPixelX=180-25;
					CurrentPixelY=50+25;
					OtherPixelX=180-25;
					OtherPixelY=50+25+60;
					DrawLine8();
					CurrentPixelX=180-25;
					CurrentPixelY=50+25+60;
					OtherPixelX=180;
					OtherPixelY=50+25+60+25;
					DrawLine8();
					// 1970 IF D(1)=0 OR D(1)>6 THEN CURSET 200,50,1:DRAW-20,0,1:DRAW 0,110,1:DRAW20,0,1
					if(d[0]==0 || d[0]>6) {
						CurrentPixelX=200;
						CurrentPixelY=50;
						OtherPixelX=200-20;
						OtherPixelY=50;
						DrawLine8();
						CurrentPixelX=200-20;
						CurrentPixelY=50;
						OtherPixelX=200-20;
						OtherPixelY=50+110;
						DrawLine8();
						CurrentPixelX=200-20;
						CurrentPixelY=50+110;
						OtherPixelX=200;
						OtherPixelY=50+110;
						DrawLine8();
					}
					// 1980 GOTO 2050
					break;
				case 2:
					// 2000 CURSET155,75,1:DRAW-10,10,1:DRAW0,40,1:DRAW10,10,1
					CurrentPixelX=155;
					CurrentPixelY=75;
					OtherPixelX=155-10;
					OtherPixelY=75+10;
					DrawLine8();
					CurrentPixelX=155-10;
					CurrentPixelY=75+10;
					OtherPixelX=155-10;
					OtherPixelY=75+10+40;
					DrawLine8();
					CurrentPixelX=155-10;
					CurrentPixelY=75+10+40;
					OtherPixelX=155;
					OtherPixelY=75+10+40+10;
					DrawLine8();
					// 2020 IF D(2)>0 AND D(2)<7 THEN GOTO 2050
					if(!(d[1]>0 && d[1]<7)) {
						char t;
						// 2030 IF D(1)=0 OR D(1)>6 THEN T=45 ELSE T=25
						if(d[0]==0 || d[0]>6) t=45;
						else t=25;
						// 2040 CURSET155,75,1:DRAW0,60,1:DRAWT,0,1:CURSET 155,75,1:DRAWT,0,1
						CurrentPixelX=155;
						CurrentPixelY=75;
						OtherPixelX=155;
						OtherPixelY=75+60;
						DrawLine8();
						CurrentPixelX=155;
						CurrentPixelY=75+60;
						OtherPixelX=155+t;
						OtherPixelY=75+60;
						DrawLine8();
						CurrentPixelX=155;
						CurrentPixelY=75;
						OtherPixelX=155+t;
						OtherPixelY=75;
						DrawLine8();
					}
					break;
			}
			// 2050 IF D(L)<2 OR D(L)>6 THEN RETURN
			if(!(d[l]<2 || d[l]>6)) {
				// 2070 ON L GOSUB 2100,2150,2200
				switch(l) {
					case 0:
						// 2100 CURSET193,172,1:DRAW0,-125,1:DRAW 7,-7,1
						CurrentPixelX=193;
						CurrentPixelY=172;
						OtherPixelX=193;
						OtherPixelY=172-125;
						DrawLine8();
						CurrentPixelX=193;
						CurrentPixelY=172-125;
						OtherPixelX=193+7;
						OtherPixelY=172-125-7;
						DrawLine8();
						break;
					case 1:
						// 2150 CURSET175,155,1:DRAW0,-95,1:DRAW-15,15,1:DRAW0,65,1
						CurrentPixelX=175;
						CurrentPixelY=155;
						OtherPixelX=175;
						OtherPixelY=155-95;
						DrawLine8();
						CurrentPixelX=175;
						CurrentPixelY=155-95;
						OtherPixelX=175-15;
						OtherPixelY=155-95+15;
						DrawLine8();
						CurrentPixelX=175-15;
						CurrentPixelY=155-95+15;
						OtherPixelX=175-15;
						OtherPixelY=155-95+15+65;
						DrawLine8();
						// 2170 CURSET162,105,3:CIRCLE1,1:RETURN
						curset(162,105,3);
						circle(1,1);
						break;
					case 2:
						// 2200 CURSET 152,132,1:DRAW0,-49,1:DRAW-5,5,1:DRAW0,38,1
						CurrentPixelX=152;
						CurrentPixelY=132;
						OtherPixelX=152;
						OtherPixelY=132-49;
						DrawLine8();
						CurrentPixelX=152;
						CurrentPixelY=132-49;
						OtherPixelX=152-5;
						OtherPixelY=132-49+5;
						DrawLine8();
						CurrentPixelX=152-5;
						CurrentPixelY=132-49+5;
						OtherPixelX=152-5;
						OtherPixelY=132-49+5+38;
						DrawLine8();
						// 2220 CURSET 148,105,1
						curset(148,105,1);
						break;
				}
				// 2080 RETURN
			}
		}
		// 1090 IF F(L)>0 AND F(L)<7 THEN ON L GOSUB 2300,2400
		if(f[l]>0 && f[l]<7) {
			switch(l) {
				case 0:
					// 2300 CURSET 60,50,1:DRAW120,0,1:DRAW0,110,1:DRAW-120,0,1:DRAW0,-110,1
					CurrentPixelX=60;
					CurrentPixelY=50;
					OtherPixelX=60+120;
					OtherPixelY=50;
					DrawLine8();
					CurrentPixelX=60+120;
					CurrentPixelY=50;
					OtherPixelX=60+120;
					OtherPixelY=50+110;
					DrawLine8();
					CurrentPixelX=60+120;
					CurrentPixelY=50+110;
					OtherPixelX=60;
					OtherPixelY=50+110;
					DrawLine8();
					CurrentPixelX=60;
					CurrentPixelY=50+110;
					OtherPixelX=60;
					OtherPixelY=50;
					DrawLine8();
					// 2320 IF (G(1)=0 OR G(1)>6) AND (G(2)>0 AND G(2)<7) THEN 
					if((g[0]==0||g[0]>6)&&(g[1]>0&&g[1]<7)) {
						// DRAW-20,0,1:CURSET60,160,1:DRAW-20,0,1
						CurrentPixelX=60;
						CurrentPixelY=50;
						OtherPixelX=60-20;
						OtherPixelY=50;
						DrawLine8();
						CurrentPixelX=60;
						CurrentPixelY=160;
						OtherPixelX=60-20;
						OtherPixelY=160;
						DrawLine8();
					}
					// 2340 IF (D(1)=0 OR D(1)>6) AND (D(2)>0 AND D(2)<7) THEN 
					if((d[0]==0||d[0]>6)&&(d[1]>0&&d[1]<7)) {
						// CURSET180,50,3:DRAW 20,0,1:CURSET 180,160,1:DRAW20,0,1
						CurrentPixelX=180;
						CurrentPixelY=50;
						OtherPixelX=180+20;
						OtherPixelY=50;
						DrawLine8();
						CurrentPixelX=180;
						CurrentPixelY=160;
						OtherPixelX=180+20;
						OtherPixelY=160;
						DrawLine8();
					}
					// 2350 GOTO 2500
					break;
				case 1:
					// 2400 CURSET 85,75,1:DRAW 70,0,1:DRAW 0,60,1:DRAW-70,0,1:DRAW0,-60,1
					CurrentPixelX=85;
					CurrentPixelY=75;
					OtherPixelX=85+70;
					OtherPixelY=75;
					DrawLine8();
					CurrentPixelX=85+70;
					CurrentPixelY=75;
					OtherPixelX=85+70;
					OtherPixelY=75+60;
					DrawLine8();
					CurrentPixelX=85+70;
					CurrentPixelY=75+60;
					OtherPixelX=85;
					OtherPixelY=75+60;
					DrawLine8();
					CurrentPixelX=85;
					CurrentPixelY=75+60;
					OtherPixelX=85;
					OtherPixelY=75;
					DrawLine8();
					{
						char tg, td;
						// 2415 IF G(1)=0 OR G(1)>6 THEN TG=45 ELSE TG=25
						if(g[0]==0||g[0]>6) tg=45;
						else tg=25;
						// 2416 IF D(1)=0 OR D(1)>6 THEN TD=45 ELSE TD=25
						if(d[0]==0||d[0]>6) td=45;
						else td=25;
						// 2420 IF (G(2)=0 OR G(2)>6) AND (G(3)>0 AND G(3)<7) THEN 
						if((g[1]==0||g[1]>6)&&(g[2]>0&&g[2]<7)) {
							// DRAW-TG,0,1:CURSET85,135,1:DRAW-TG,0,1
							CurrentPixelX=85;
							CurrentPixelY=75;
							OtherPixelX=85-tg;
							OtherPixelY=75;
							DrawLine8();
							CurrentPixelX=85;
							CurrentPixelY=135;
							OtherPixelX=85-tg;
							OtherPixelY=135;
							DrawLine8();
						}
						// 2430 IF (D(2)=0 OR D(2)>6) AND (D(3)>0 AND D(3)<7) THEN 
						if((d[1]==0||d[1]>6)&&(d[2]>0&&d[2]<7)) {
							// CURSET155,75,3:DRAW TD,0,1:CURSET 155,135,1:DRAWTD,0,1
							CurrentPixelX=155;
							CurrentPixelY=75;
							OtherPixelX=155+td;
							OtherPixelY=75;
							DrawLine8();
							CurrentPixelX=155;
							CurrentPixelY=135;
							OtherPixelX=155+td;
							OtherPixelY=135;
							DrawLine8();
						}
					}
					break;
			}
			// 2500 IF F(L)>1 AND F(L)<7 THEN ON L GOSUB 2550,2580
			if(f[l]>1&&f[l]<7) {
				switch(l) {
					case 0:
						// 2550 CURSET 80,160,1:DRAW0,-100,1:DRAW85,0,1:DRAW0,100,1:CURSET 83,115,1:CIRCLE 2,1
						CurrentPixelX=80;
						CurrentPixelY=160;
						OtherPixelX=80;
						OtherPixelY=60;
						DrawLine8();
						CurrentPixelX=80;
						CurrentPixelY=60;
						OtherPixelX=80+85;
						OtherPixelY=60;
						DrawLine8();
						CurrentPixelX=80+85;
						CurrentPixelY=60;
						OtherPixelX=80+85;
						OtherPixelY=60+100;
						DrawLine8();
						curset(83,115,1);
						circle(2,1);
						// 2560 PS=F(L): IF PS>2 AND PS<7 THEN GOSUB 2650
						if(f[l]>2 && f[l]<7) {
							unsigned char p,i,t;
							char *texte;
							if(f[l]==5 || f[l]==6) {
								char g=105,nb=5,h=35,br=25;
								p=3;
								
								// Grille
								// New version Max DEBUG
								if(ville==9 && f[l]==6) {
									nb=7;g=96;br=75;h=53;
								}
								CurrentPixelX=g;
								CurrentPixelY=75;
								OtherPixelX=g+h;
								OtherPixelY=75;
								DrawLine8();
								CurrentPixelX=g+h;
								CurrentPixelY=75;
								OtherPixelX=g+h;
								OtherPixelY=75+br;
								DrawLine8();
								CurrentPixelX=g+h;
								CurrentPixelY=75+br;
								OtherPixelX=g;
								OtherPixelY=75+br;
								DrawLine8();
								CurrentPixelX=g;
								CurrentPixelY=75+br;
								OtherPixelX=g;
								OtherPixelY=75;
								DrawLine8();
								// 2720 FORI=1TO3:CURSETG,75,1:DRAW0,25,1:G=G+9:NEXTI
								for(i=0;i<nb;i++) {
									CurrentPixelX=g;
									CurrentPixelY=75;
									OtherPixelX=g;
									OtherPixelY=75+br;
									DrawLine8();
									g+=9;
								}
							}
							//printf("texte");
							// 2760 FORI=1TOLEN(S$):CURSET T,65,3:CHAR ASC(MID$(S$,I,1)),0,1:T=T+6:NEXTI
							t=(ville-1)*4+(f[l]-3);
							// pour la porte 6 de Winterfell
							if(ville==9 && f[l]==6) {
								// si on regarde vers le nord on écrit NORD
								if (s==1) t+=2;
								// si on regarde vers le sud ou l'ouest on écrit SUD
								else if(s==3 || s==4) t+=1;
								// sinon (on regarde vers l'est)
								// et si on est dedans on affiche pas
								else if(TestBit(&dedans,3)) break;
							} else {
								// si on est dedans on affiche pas
								if(f[l]-3<=3 && TestBit(&dedans,f[l]-3)) break;
							}
							texte = portes[t];
							lg = strlen(texte);
							t=124-lg*3;
							//printf("v:%d,f[l]:%d,i:%d,lg:%d,t:%d,de:%x\n",
							//	ville, f[l], (f[l]-3), lg, t, dedans);
							for(i=0;i<lg;i++) {
								curset(t,65,3);
								hchar(texte[i],0,1);
								//printf("%c",texte[i]);
								t+=6;
							}
							//printf("\n");
							// 2790 RETURN
						}
						// 2565 RETURN
						break;
					case 1:
						// 2580 CURSET95,135,1:DRAW0,-50,1:DRAW50,0,1:DRAW0,50,1:CURSET 96,115,1:RETURN
						CurrentPixelX=95;
						CurrentPixelY=135;
						OtherPixelX=95;
						OtherPixelY=135-50;
						DrawLine8();
						CurrentPixelX=95;
						CurrentPixelY=135-50;
						OtherPixelX=95+50;
						OtherPixelY=135-50;
						DrawLine8();
						CurrentPixelX=95+50;
						CurrentPixelY=135-50;
						OtherPixelX=95+50;
						OtherPixelY=135;
						DrawLine8();
						curset(96,115,1);
						break;
				}
			}
			// 2520 RETURN
			// 1095 IF F(L)>0 AND F(L)<7 THEN GOTO 1200
			// stop looping
			break;
		}
	}
	
	
	// boussole
	if(boussole){
		char dir;
		switch(s) {
			// 2800 IF S=1 THEN DIR=78
			case 0:
				dir=78;
				break;
			// 2820 IF S=2 THEN DIR=69
			case 1:
				dir=69;
				break;
			// 2830 IF S=3 THEN DIR=83
			case 2:
				dir=83;
				break;
			// 2840 IF S=4 THEN DIR=79
			case 3:
				dir=79;
				break;
		}
		// 2850 CURSET 220,10,1:CHAR DIR,0,1:CURMOV 2,8,1
		curset(220,10,0);hchar(dir,0,1);
		// 2860 DRAW 3,15,1:DRAW -3,15,1:DRAW -3,-15,1:DRAW 3,-15,1
		curset(222,18,1);
		CurrentPixelX=220+2;
		CurrentPixelY=10+8;
		OtherPixelX=220+2+3;
		OtherPixelY=10+8+15;
		DrawLine8();
		CurrentPixelX=220+2+3;
		CurrentPixelY=10+8+15;
		OtherPixelX=220+2;
		OtherPixelY=10+8+15+15;
		DrawLine8();
		CurrentPixelX=220+2;
		CurrentPixelY=10+8+15+15;
		OtherPixelX=220+2-3;
		OtherPixelY=10+8+15;
		DrawLine8();
		CurrentPixelX=220+2-3;
		CurrentPixelY=10+8+15;
		OtherPixelX=220+2;
		OtherPixelY=10+8;
		DrawLine8();
		// 2870 CURMOV2,12,1:DRAW 13,3,1:DRAW -13,3,1
		curset(224,30,1);
		CurrentPixelX=220+2+2;
		CurrentPixelY=10+8+12;
		OtherPixelX=220+2+2+13;
		OtherPixelY=10+8+12+3;
		DrawLine8();
		CurrentPixelX=220+2+2+13;
		CurrentPixelY=10+8+12+3;
		OtherPixelX=220+2+2;
		OtherPixelY=10+8+12+3+3;
		DrawLine8();
		// 2880 CURSET 220,30,1:DRAW -13,3,1:DRAW 13,3,1
		curset(220,30,1);
		CurrentPixelX=220;
		CurrentPixelY=30;
		OtherPixelX=220-13;
		OtherPixelY=30+3;
		DrawLine8();
		CurrentPixelX=220-13;
		CurrentPixelY=30+3;
		OtherPixelX=220;
		OtherPixelY=30+3+3;
		DrawLine8();
		// 2900 RETURN
	}
}