コード例 #1
0
ファイル: artc.c プロジェクト: ahaggan/ArtC
int main(int argc, char *argv[]) {
    srand(time(NULL));

    if (argc > 1 && strcmp(argv[1], "test") == 0) {
            test_parser();
    }

    launch_menu();

    return 0;
}
コード例 #2
0
ファイル: main.c プロジェクト: Galathorn/Project
int main(void)
{
	t_box	box;

	ft_bzero(&box, sizeof(t_box));
	box.mlx = mlx_init();
	launch_menu(&box);
	launch_new_game(&box);

	mlx_hook(box.win, 2, (1L << 0), command, &box);
	// mlx_loop_hook(box.mlx, command2, &box);
	mlx_loop(box.mlx);
	return (0);
}
コード例 #3
0
void		aff_new_content(int content, SDL_Surface *win)
{
  SDL_Surface	*image;

  image = aff_img(win);
  image = image;
  if (content == 1)
    {
      part_type = 1;
      aff_choose_map(win);
    }
  else if (content == 2)
    {
      part_type = 0;
      aff_choose_map(win);
    }
  else if (content == 3)
    {
      launch_menu(win);
    }
  else
    exit(0);
}
コード例 #4
0
ファイル: keyboard.cpp プロジェクト: rastersoft/fbzx
void Keyboard::read_keyboard (SDL_Event *pevento2) {

	unsigned int temporal_io;
	SDL_Event evento,evento2,*pevento;
	Sint16 valor;
	Uint8 eje;

	if (pevento2==NULL) {
		pevento=&evento;
		if (!SDL_PollEvent (&evento))
			return;
	} else {
		pevento=pevento2;
	}

	if (pevento->type==SDL_QUIT) {
		salir = 0;
		return;
	}

	if (pevento->type==SDL_MOUSEMOTION) {
		this->mouse_x += pevento->motion.xrel;
		this->mouse_y += pevento->motion.yrel;
		return;
	}

	if (pevento->type==SDL_MOUSEBUTTONDOWN) {
		switch (pevento->button.button) {
		case SDL_BUTTON_LEFT:
			this->mouse_left = true;
		break;
		case SDL_BUTTON_MIDDLE:
			this->mouse_center = true;
		break;
		case SDL_BUTTON_RIGHT:
			this->mouse_right = true;
		break;
		}
	}

	if (pevento->type==SDL_MOUSEBUTTONUP) {
		switch (pevento->button.button) {
		case SDL_BUTTON_LEFT:
			this->mouse_left = false;
		break;
		case SDL_BUTTON_MIDDLE:
			this->mouse_center = false;
		break;
		case SDL_BUTTON_RIGHT:
			this->mouse_right = false;
		break;
		}
	}

	if (pevento->type==SDL_JOYBUTTONDOWN) {
		pevento->type=SDL_KEYDOWN;
		pevento->key.keysym.sym=SDLK_MENU; // emulate pressing the MENU key
	}

	if (pevento->type==SDL_JOYBUTTONUP) {
		pevento->type=SDL_KEYUP;
		pevento->key.keysym.sym=SDLK_MENU; // emulate depressing the MENU key
	}

	if (pevento->type==SDL_JOYAXISMOTION) {
		eje=pevento->jaxis.axis;
		valor=pevento->jaxis.value;

		evento2.type=SDL_KEYUP;
		if ((valor<16384)&&(valor>-16384)) { // JoyStick centered
			pevento->type=SDL_KEYUP;
			if (eje==1) {
				evento2.key.keysym.sym=SDLK_DOWN;
				pevento->key.keysym.sym=SDLK_UP; // pull up both keys
				read_keyboard(&evento2);
			}
			if (eje==0) {
				evento2.key.keysym.sym=SDLK_LEFT;
				pevento->key.keysym.sym=SDLK_RIGHT;
				read_keyboard(&evento2);
			}
		} else { // JoyStick moved
			if (eje==0) {
				if (valor>=0) {
					evento2.key.keysym.sym=SDLK_LEFT; // pull up LEFT
					read_keyboard(&evento2);
					pevento->key.keysym.sym=SDLK_RIGHT; // and press RIGHT
				} else {
					evento2.key.keysym.sym=SDLK_RIGHT; // pull up RIGHT
					read_keyboard(&evento2);
					pevento->key.keysym.sym=SDLK_LEFT; // and press LEFT
				}
			}
			if (eje==1) {
				if (valor<0) {
					evento2.key.keysym.sym=SDLK_DOWN; // pull up DOWN
					pevento->key.keysym.sym=SDLK_UP; // and press UP
					read_keyboard(&evento2);
				} else {
					evento2.key.keysym.sym=SDLK_UP; // pull up UP
					pevento->key.keysym.sym=SDLK_DOWN; // and press DOWN
					read_keyboard(&evento2);
				}
			}
			pevento->type=SDL_KEYDOWN;
		}
	}

	if ((pevento->type != SDL_KEYDOWN) && (pevento->type != SDL_KEYUP))
		return;

	this->k8 = this->k9 = this->k10 = this->k11 =
		this->k12 = this->k13 = this->k14 =
		this->k15 = 0;
		this->jk = 0;

	temporal_io = (unsigned int) pevento->key.keysym.sym;

	if ((pevento->type==SDL_KEYUP)&&(temporal_io==SDLK_TAB)) {
		if (!this->tab_extended) {
			this->tab_extended = true;
			osd->set_message("Function Key mode on",2000);
			return;
		} else {
			this->tab_extended = false;
			osd->clear_message();
			return;
		}
	}

	if ((pevento->type==SDL_KEYDOWN)&&(this->tab_extended))
		return;

	if ((pevento->type==SDL_KEYUP)&&(this->tab_extended)) {
		this->tab_extended = false;

		osd->clear_message();

		switch(temporal_io) {
		case SDLK_1:
			temporal_io=SDLK_F1;
		break;
		case SDLK_2:
			temporal_io=SDLK_F2;
		break;
		case SDLK_3:
			temporal_io=SDLK_F3;
		break;
		case SDLK_4:
			temporal_io=SDLK_F4;
		break;
		case SDLK_5:
			temporal_io=SDLK_F5;
		break;
		case SDLK_6:
			temporal_io=SDLK_F6;
		break;
		case SDLK_7:
			temporal_io=SDLK_F7;
		break;
		case SDLK_8:
			temporal_io=SDLK_F8;
		break;
		case SDLK_9:
			temporal_io=SDLK_F9;
		break;
		case SDLK_0:
			temporal_io=SDLK_F10;
		break;
		case SDLK_o:
			temporal_io=SDLK_F11;
		break;
		case SDLK_p:
			temporal_io=SDLK_F12;
		break;
		}
	}


	if (pevento->type == SDL_KEYUP)
		switch (temporal_io) {
		case SDLK_ESCAPE:	// to exit from the emulator
			if (!this->esc_again) {
				this->esc_again = true;
				osd->set_message("ESC again to exit",2000);
			} else
				salir = 0;
			return;
			break;
		case SDLK_F1:
			help_menu ();	// shows the help menu
			break;

		case SDLK_F2:
		case SDLK_F3:
		case SDLK_F4:
		case SDLK_F7:
		case SDLK_F8:
			launch_menu(temporal_io);
			break;

		case SDLK_F5:   // STOP tape
			OOTape->set_pause(true);
			llsound->set_speed(ordenador->turbo);
			break;

		case SDLK_F6:	// PLAY tape
			OOTape->set_pause(false);
			if (ordenador->turbo_play) {
				llsound->set_speed(true);
			} else {
				llsound->set_speed(ordenador->turbo);
			}
			break;

		case SDLK_F9:
			llscreen->fullscreen_switch();
			break;

		case SDLK_F10:	// Reset emulator
			ResetComputer ();
			OOTape->set_pause(true);
			OOTape->rewind();
		break;

		case SDLK_F11:	// lower volume
			llsound->decrease_volume();
		break;

		case SDLK_F12:	// upper volume
			llsound->increase_volume();
		break;
		}

	// reorder joystick if screen is rotated

	if(ordenador->zaurus_mini==2) {
		switch(temporal_io) {
		case SDLK_UP:
			temporal_io=SDLK_LEFT;
		break;
		case SDLK_LEFT:
			temporal_io=SDLK_DOWN;
		break;
		case SDLK_DOWN:
			temporal_io=SDLK_RIGHT;
		break;
		case SDLK_RIGHT:
			temporal_io=SDLK_UP;
		break;
		}
	}


	// test for joystick

	switch (temporal_io) {
	case SDLK_UP:
		switch (this->joystick) {
		case 0:	// cursor
			temporal_io = SDLK_7;
		break;

		case 1:
			this->jk = 8;
		break;

		case 2:	// sinclair 1
			temporal_io = SDLK_4;
		break;

		case 3:	// sinclair 2
			temporal_io = SDLK_9;
		break;
		}
	break;

	case SDLK_DOWN:
		switch (this->joystick) {
		case 0:	// cursor
			temporal_io = SDLK_6;
		break;

		case 1:
			this->jk = 4;
		break;

		case 2:	// sinclair 1
			temporal_io = SDLK_3;
		break;

		case 3:	// sinclair 2
			temporal_io = SDLK_8;
		break;
		}
	break;

	case SDLK_RIGHT:
		switch (this->joystick) {
		case 0:	// cursor
			temporal_io = SDLK_8;
		break;

		case 1:
			this->jk = 1;
		break;

		case 2:	// sinclair 1
			temporal_io = SDLK_1;
		break;

		case 3:	// sinclair 2
			temporal_io = SDLK_6;
		break;

		}
	break;

	case SDLK_LEFT:
		switch (this->joystick) {
		case 0:	// cursor
			temporal_io = SDLK_5;
		break;

		case 1:
			this->jk = 2;
		break;

		case 2:	// sinclair 1
			temporal_io = SDLK_2;
		break;

		case 3:	// sinclair 2
			temporal_io = SDLK_7;
		break;
		}
	break;

	case SDLK_RALT:
	case SDLK_RMETA:
	case SDLK_LMETA:
	case SDLK_RSUPER:
	case SDLK_LSUPER:
	case SDLK_MENU:
		switch (this->joystick) {
		case 0:	// cursor
			temporal_io = SDLK_0;
		break;

		case 1:
			this->jk = 16;
		break;

		case 2:	// sinclair 1
			temporal_io = SDLK_5;
		break;

		case 3:	// sinclair 2
			temporal_io = SDLK_0;
		break;
		}
	break;
	}

	switch (temporal_io) {

	case SDLK_SPACE:
		this->k15 = 1;
	break;

	case SDLK_RCTRL:
	case SDLK_LCTRL:
		this->k15 = 2;
	break;

	case SDLK_m:
		this->k15 = 4;
	break;

	case SDLK_n:
		this->k15 = 8;
	break;

	case SDLK_b:
		this->k15 = 16;
	break;

	case SDLK_RETURN:
		this->k14 = 1;
	break;

	case SDLK_l:
		this->k14 = 2;
	break;

	case SDLK_k:
		this->k14 = 4;
	break;

	case SDLK_j:
		this->k14 = 8;
	break;

	case SDLK_h:
		this->k14 = 16;
	break;

	case SDLK_p:
		this->k13 = 1;
	break;

	case SDLK_o:
		this->k13 = 2;
	break;

	case SDLK_i:
		this->k13 = 4;
	break;

	case SDLK_u:
		this->k13 = 8;
	break;

	case SDLK_y:
		this->k13 = 16;
	break;

	case SDLK_0:
		this->k12 = 1;
	break;

	case SDLK_9:
		this->k12 = 2;
	break;

	case SDLK_8:
		this->k12 = 4;
	break;

	case SDLK_7:
		this->k12 = 8;
	break;

	case SDLK_6:
		this->k12 = 16;
	break;

	case SDLK_1:
		this->k11 = 1;
	break;

	case SDLK_2:
		this->k11 = 2;
	break;

	case SDLK_3:
		this->k11 = 4;
	break;

	case SDLK_4:
		this->k11 = 8;
	break;

	case SDLK_5:
		this->k11 = 16;
	break;

	case SDLK_q:
		this->k10 = 1;
	break;

	case SDLK_w:
		this->k10 = 2;
	break;

	case SDLK_e:
		this->k10 = 4;
	break;

	case SDLK_r:
		this->k10 = 8;
	break;

	case SDLK_t:
		this->k10 = 16;
	break;

	case SDLK_a:
		this->k9 = 1;
	break;

	case SDLK_s:
		this->k9 = 2;
	break;

	case SDLK_d:
		this->k9 = 4;
	break;

	case SDLK_f:
		this->k9 = 8;
	break;

	case SDLK_g:
		this->k9 = 16;
	break;

	case SDLK_RSHIFT:
	case SDLK_LSHIFT:
		this->k8 = 1;
	break;

	case SDLK_z:
		this->k8 = 2;
	break;

	case SDLK_x:
		this->k8 = 4;
	break;

	case SDLK_c:
		this->k8 = 8;
	break;

	case SDLK_v:
		this->k8 = 16;
	break;

	case SDLK_BACKSPACE:
		this->k12 = 1;
		this->k8 = 1;
	break;
	case SDLK_PERIOD:
		this->k15 = 6;
	break;
	case SDLK_COMMA:
		this->k15 = 10;
	break;

	}

	if (pevento->type == SDL_KEYUP) {
		this->s8 |= this->k8;
		this->s9 |= this->k9;
		this->s10 |= this->k10;
		this->s11 |= this->k11;
		this->s12 |= this->k12;
		this->s13 |= this->k13;
		this->s14 |= this->k14;
		this->s15 |= this->k15;
		this->js &= (this->jk ^ 255);
	} else {
		this->s8 &= (this->k8 ^ 255);
		this->s9 &= (this->k9 ^ 255);
		this->s10 &= (this->k10 ^ 255);
		this->s11 &= (this->k11 ^ 255);
		this->s12 &= (this->k12 ^ 255);
		this->s13 &= (this->k13 ^ 255);
		this->s14 &= (this->k14 ^ 255);
		this->s15 &= (this->k15 ^ 255);
		this->js |= this->jk;
	}

	return;
}
コード例 #5
0
ファイル: menus.c プロジェクト: Oibaf66/fbzx-wii
void help_menu() {

	unsigned char *fbuffer,fin;
	int ancho=screen->w;

	fbuffer=screen->pixels;

	clean_screen();

	print_string(fbuffer,"FBZX Wii (11.0)",-1,20,15,0,ancho);
	print_string(fbuffer,"Available keys",-1,50,14,0,ancho);
	print_string(fbuffer,"Shift:Caps Shift    Ctrl:Symbol Shift",-1,95,11,0,ancho);

	print_string(fbuffer,"F1:",14,160,12,0,ancho);
	print_string(fbuffer,"this help",62,160,15,0,ancho);

	print_string(fbuffer,"F2:",336,160,12,0,ancho);
	print_string(fbuffer,"manage snapshots",382,160,15,0,ancho);

	print_string(fbuffer,"F3:",14,200,12,0,ancho);
	print_string(fbuffer,"manage TAP/TZX",62,200,15,0,ancho);

	print_string(fbuffer,"F4:",336,200,12,0,ancho);
	print_string(fbuffer,"change settings",382,200,15,0,ancho);

	print_string(fbuffer,"F5:",14,240,12,0,ancho);
	print_string(fbuffer,"stop TAPE",62,240,15,0,ancho);

	print_string(fbuffer,"F6:",336,240,12,0,ancho);
	print_string(fbuffer,"play TAPE",382,240,15,0,ancho);

	print_string(fbuffer,"F7:",14,280,12,0,ancho);
	print_string(fbuffer,"manage MICRODRIVE",62,280,15,0,ancho);

	print_string(fbuffer,"F8:",336,280,12,0,ancho);
	print_string(fbuffer,"tools",382,280,15,0,ancho);

	print_string(fbuffer,"F9:",14,320,12,0,ancho);
	print_string(fbuffer,"load",62,320,15,0,ancho);

	print_string(fbuffer,"F10:",336,320,12,0,ancho);
	print_string(fbuffer,"reset spectrum",398,320,15,0,ancho);

	print_string(fbuffer,"F11/O:",14,360,12,0,ancho);
	print_string(fbuffer,"volume low",110,360,15,0,ancho);

	print_string(fbuffer,"F12/P:",336,360,12,0,ancho);
	print_string(fbuffer,"volume up",430,360,15,0,ancho);

	print_string(fbuffer,"ESC:",184,400,12,0,ancho);
	print_string(fbuffer,"exit emulator",248,400,15,0,ancho);

	//print_copy(fbuffer,ancho);

	fin=1;
	do {
		unsigned int key = wait_key();
		switch(key) {
		case SDLK_ESCAPE: // to exit the help
			fin=0;
		break;
		default:
			if (launch_menu(key)) {
				fin=0;
			}
		break;
		}
	} while(fin);
	clean_screen();
}