Beispiel #1
0
// Just handle any keypresses that come up, not mode dependent. Crappyx
// Returns 0 for quit, 1 for anything else
int handle_input(char c, ui_settings_t* ui, player_t* p, room_t* r)
{
    if(c == ',')
        move_player(p, r, 0);
    else if(c == 'o')
        move_player(p, r, 1);
    else if(c == 'e')
        move_player(p, r, 2);
    else if(c == 'a')
        move_player(p, r, 3);
    if(c == 'q')
        return 0;
    if(c == 'd')
        attempt_open_door(p, r);
	if(c == 'p')
	{
		if(ui->display_pos)
		{
			ui->display_pos = 0;
		}
		else
		{
			ui->display_pos = 1;
		}
	}

    return 1;
}
Beispiel #2
0
void handle_input() {
  if (keys[SDLK_q]) {
    game_running = false;
  }

  if (keys[SDLK_w]) move_player('w');
  if (keys[SDLK_a]) move_player('a');
  if (keys[SDLK_s]) move_player('s');
  if (keys[SDLK_d]) move_player('d');
}
Beispiel #3
0
void get_input() {
    int key = getch();
    switch (key) {
    case 'w': { return move_player(NORTH); }
    case 'a': { return move_player(WEST);  }
    case 's': { return move_player(SOUTH); }
    case 'd': { return move_player(EAST);  }
    case 'j': { return fire(); }
    }
}
void _smash_trap_spell(int cmd, variant *res)
{
    switch (cmd)
    {
    case SPELL_NAME:
        var_set_string(res, "Smash Trap");
        break;
    case SPELL_DESC:
        var_set_string(res, "Sets off a trap, then destroy that trap.");
        break;
    case SPELL_CAST:
    {
        int dir;
        var_set_bool(res, FALSE);
        
        if (!get_rep_dir2(&dir)) return;
        move_player(dir, easy_disarm, TRUE);
        
        var_set_bool(res, TRUE);
        break;
    }
    default:
        default_spell(cmd, res);
        break;
    }
}
Beispiel #5
0
void ram(void) {
	while(1) {
		if (!screen_intro()){
      setTextColor(0xff,0x00);
      return;
    }
		game.rokets = 3;
		game.level = 1;
		game.score = 0;
		init_game();
		screen_level();
		while (game.rokets>=0) {
			////checkISP();
			lcdFill(0x00);
			check_end();
			move_ufo();
			move_shot();
			move_shots();
			move_player();
			move_enemy();
			draw_score();
			draw_ufo();
			draw_bunker();
			draw_player();
			draw_enemy();
			draw_shots();
			//        draw_status();
			lcdDisplay();
			delayms(12);
		}
		if (!screen_gameover())
      setTextColor(0xff,0x00);
      return;
	}
}
Beispiel #6
0
/**
 * Handles a channel kick request.
 */
void *c_req_kick_channel(char *data, unsigned int len, struct player *pl)
{
	uint32_t target_id;
	char *reason, *ptr;
	struct player *target;
	struct channel *def_chan;
	struct server *s = pl->in_chan->in_server;

	if (len != 60) {
		logger(LOG_WARN, "c_req_kick_channel, packet has invalid size : %i instead of %i.", len, 60);
		return NULL;
	}
	ptr = data + 24;
	target_id = ru32(&ptr);
	target = get_player_by_public_id(s, target_id);
	def_chan = get_default_channel(s);

	if (target != NULL) {
		send_acknowledge(pl);		/* ACK */
		if (player_has_privilege(pl, SP_OTHER_CH_KICK, target->in_chan)) {
			ptr = data + 28;
			reason = rstaticstring(29, &ptr);
			logger(LOG_INFO, "Reason for kicking player %s : %s", target->name, reason);
			s_notify_kick_channel(pl, target, reason, pl->in_chan);
			move_player(pl, def_chan);
			/* TODO update player channel privileges etc... */

			free(reason);
		}
	}

	return NULL;
}
Beispiel #7
0
/**
 * Walk in the given direction.
 */
void do_cmd_walk(struct command *cmd)
{
	int x, y, dir;

	/* Don't disarm on movement if the player is trapsafe,
	 * or the trap is disabled */
	bool disarm = player->timed[TMD_TRAPSAFE] ? false : true;

	/* Get arguments */
	if (cmd_get_direction(cmd, "direction", &dir, false) != CMD_OK)
		return;

	/* Apply confusion if necessary */
	/* Confused movements use energy no matter what */
	if (player_confuse_dir(player, &dir, false))
		player->upkeep->energy_use = z_info->move_energy;
	
	/* Verify walkability */
	y = player->py + ddy[dir];
	x = player->px + ddx[dir];
	if (!do_cmd_walk_test(y, x))
		return;

	/* Don't disarm if it's a disabled trap */
	if (square_isdisabledtrap(cave, y, x)) disarm = false;

	player->upkeep->energy_use = z_info->move_energy;

	move_player(dir, disarm);
}
Beispiel #8
0
void ram(void) {

	splash_scene();

	long frame_count = 0;
	init_game();

	while(1) {
		frame_count++;

		lcdFill(0);
		update_platforms(frame_count);
		move_player(frame_count);
		draw_platforms();
		draw_player();
		draw_hud();
		blink_led();
		lcdDisplay();

		if(!game.running) {
			if(!gameover_scene()){
                delayms_queue_plus(10,1);
				return;
            }
			init_game();
		}
        delayms_queue_plus(24,0);
	}
}
Beispiel #9
0
int	run(t_env* env)
{
	int		ret;
	int		status;
	int		i;
	//t_player	save;

	i = 0;
	while (i < 2)
	{
		ret = fork();
		if (ret == 0)
		{
			move_player(env, i);
			return 10;
		}
		i = i + 1;
	}
	waitpid(ret, &status, 0);
	usleep(50000);
	refresh_pos(env);
	//save_pos(&save);
	check_coll(env);
	return (0);
}
Beispiel #10
0
int main()
{
	char cmd;
	int bLoop = 1;

	while(bLoop) {
		printf("명령을 선택하세요, \r\n\
	i(up),j(left),k(right), \r\n\
	m(down),s(show map),x(exit)\r\n");
		
		for(int i=0;i<64;i++) {
			buffer_map[i] = world_map[i];
		}

		scanf("%c",&cmd);
		getchar();
		move_player(cmd);
		buffer_map[ player_xpos + player_ypos*8 ] = 3;


		switch(cmd) {
			case 's':
			map_drawAll(buffer_map);
			break;
			
			case 'x':
			bLoop = 0;
			printf("bye bye~ \r\n");
			break;
	
			}
	}
	return 0;
}
int right(int socket, t_env *e)
{
    if (move_player(e, socket, 0, 1) == 0)
        send(socket, "OK", strlen("OK"), MSG_NOSIGNAL);
    else
        send(socket, "KO", strlen("KO"), MSG_NOSIGNAL);
    return 0;
}
Beispiel #12
0
bool process_input(){
    
    key = getKeyB();
    
    
    
    if(key == -1 || key == 44){
        quit = 1;
    }
    
    
    if(RIGHT && maze[py][px+1] != B){
        
        move_player(py, px+1);
        interact();
        
    }
    
    
    if(LEFT &&  maze[py][px-1]!= B ){
        
        move_player(py, px-1);
        interact();
    }
    
    
    if(UP && maze[py+1][px] != B){
        
        move_player(py+1, px);
        interact();
    }
    
    
    if(DOWN && maze[py-1][px] != B){
        
        move_player(py-1, px);
        interact();
        
        
    }
    
    
    
    return true;
    
}
Beispiel #13
0
void			sdl_event()
{
	extern t_sdl	t;

	SDL_WaitEvent(&t.event);
	if (t.event.type == SDL_QUIT) 
		t.continuer = 0;
	if (t.event.type == SDL_KEYDOWN) 
	{
		if (t.event.key.keysym.sym == SDLK_ESCAPE) 
			t.continuer = 0;
		if (t.event.key.keysym.sym == SDLK_UP) 
			t.pos = move_player(1);
		if (t.event.key.keysym.sym == SDLK_DOWN)
			t.pos = move_player(2);
		if (t.event.key.keysym.sym == SDLK_RIGHT)
			t.pos = move_player(3);
		if (t.event.key.keysym.sym == SDLK_LEFT)
			t.pos = move_player(4);
		if (t.event.key.keysym.sym == SDLK_SPACE && (t.pos == 0 || t.pos == 1))
			t.pos = move_player(5);
		if (t.event.key.keysym.sym == SDLK_SPACE && t.pos == 2)
			t.pos = move_player(6);
		if (t.event.key.keysym.sym == SDLK_SPACE && t.pos == 3)
			t.pos = move_player(7);
	}
}
Beispiel #14
0
void _travel()
{
    if (_travel_pos_x != -1 && _travel_pos_y != -1)
    {
        _travel_key = get_key_to_move_towards_goal(_travel_pos_x, _travel_pos_y);
    }

    bool did_move = _travel_key != 0 ? move_player(_travel_key) : false;
    bool see_creature = false;
    bool found_item = false;

    if (did_move)
    {
        for (auto it = current_dungeon->creatures.begin(); it != current_dungeon->creatures.end(); ++it)
        {
            if (player.sees(*it))
            {
                append_msg_log("Stopped travel because of %s.", (*it)->name);

                see_creature = true;
                break;
            }
        }

        if (!see_creature && !_travel_ignore_items)
        {
            for (const item_t* item : current_dungeon->items)
            {
                if (item->pos.x == player.pos.x && item->pos.y == player.pos.y)
                {
                    found_item = true;
                    break;
                }
            }

            if (!found_item)
            {
                auto tid = get_tile_at(current_dungeon, player.pos.x, player.pos.y)->id;

                if (tid == TILE_STAIRS_DOWN || tid == TILE_STAIRS_UP)
                {
                    found_item = true;
                }
            }
        }
    }

    if (!did_move || see_creature || found_item)
    {
        statestack_pop();
    }
    else
    {
        sys::sleep(1000 / 60);
    }
}
//State Machine Definitions
int tickFct_Keypad(int state) {
    char key = GetKeypadKey();
    switch(state) {
    case keypad_start:
        state = keypad_poll;
        break;
    case keypad_poll:
        state = keypad_poll;
        break;
    }
    switch(state) {
    case keypad_start:
        break;
    case keypad_poll:
        switch(key) {
        case '\0':
            break;
        case '1':
            if( gameover == OFF ) {
                toggle_pause();
            }
            else if( gameover == ON ) {
                restart_game();
            }
            break;
        case '4':
            if( gameover == OFF ) {
                move_player(PLAYER_TOP);
            }
            break;
        case '7':
            if( gameover == OFF ) {
                move_player(PLAYER_BOT);
            }
            break;
        default:
            break;
        }
        break;
    }
    return state;
}
Beispiel #16
0
void frame_play()
{
	manage_sprites(); 
	move_player();
	move_camera();
	animate_tilemap();

	all_sprite_move(); // sprite movement and collisions


	update_hud();
}
Beispiel #17
0
void	main_key(const bool *keys, t_ray *ray)
{
  if (keys[BKS_A] || keys[BKS_E])
    strafe(((keys[BKS_A]) ? 1 : 0), ray);
  if (keys[BKS_Z] || keys[BKS_S])
    move_player(((keys[BKS_Z]) ? 1 : 0), ray);
  if (keys[BKS_Q] || keys[BKS_D])
    rotate_player(((keys[BKS_Q]) ? 1 : 0), ray);
  if (keys[BKS_M])
    main_slowmo(ray);

}
Beispiel #18
0
Datei: game.c Projekt: phoboz/yz
void update_game(void)
{
  switch(state) {
    case GAME_STATE_WORLD  : if (move_player(game_player, game_world))
                               set_game_state(GAME_STATE_BATTLE);
 			     break;
    case GAME_STATE_MENU   : break;
    case GAME_STATE_BATTLE : move_battle(game_battle);
			     break;
    default		   : break;
  }
}
Beispiel #19
0
/*
 * Helper function for the "walk" and "jump" commands
 */
static void do_cmd_walk_or_jump(int pickup)
{
	int py = p_ptr->py;
	int px = p_ptr->px;

	int y, x, dir;


	/* Get a direction (or abort) */
	if (!get_rep_dir(&dir)) return;

	/* Get location */
	y = py + ddy[dir];
	x = px + ddx[dir];


	/* Verify legality */
	if (!do_cmd_walk_test(y, x)) return;


	/* Take a turn */
	p_ptr->energy_use = 100;

	/* Confuse direction */
	if (confuse_dir(&dir))
	{
		/* Get location */
		y = py + ddy[dir];
		x = px + ddx[dir];
	}


	/* Verify legality */
	if (!do_cmd_walk_test(y, x)) return;


	/* Allow repeated command */
	if (p_ptr->command_arg)
	{
		/* Set repeat count */
		p_ptr->command_rep = p_ptr->command_arg - 1;

		/* Redraw the state */
		p_ptr->redraw |= (PR_STATE);

		/* Cancel the arg */
		p_ptr->command_arg = 0;
	}

	/* Move the player */
	move_player(dir, pickup);
}
Beispiel #20
0
void	check_env_map7_2(t_data *data)
{
  if ((data->mouse->x >= 891 && data->mouse->x <=  1001) &&
      (data->mouse->y >= 277 && data->mouse->y <= 529) &&
      data->cupa_end == 1)
    {
      move_player(851, 512, data);
      data->map.end = 1;
      data->inv.open = 0;
   }
  else
    position_handle(data->mouse->x, data->mouse->y, data);
}
Beispiel #21
0
int get_input(struct Game* game)
{

    int key = getch();
    switch(key)
    {
        case 'q':
            game->running = false;
            break;
        case KEY_UP:
            move_player(game, 0);
            break;
        case KEY_DOWN:
            move_player(game, 1);
            break;
        case KEY_LEFT:
            move_player(game, 2);
            break;
        case KEY_RIGHT:
            move_player(game, 3);
            break;
    }
}
Beispiel #22
0
void	disp_game(t_data *data)
{
  if (data->player.real_pos.x >= 0 && data->player.real_pos.x
      <= END_GAME)
    draw_bg(data);
  move_player(data);
  if (data->player.real_pos.x >= 0 && data->player.real_pos.x
      <= END_GAME)
    {
      bunny_blit(&data->window->buffer, data->back.fence,
		 &data->back.pos_fence);
      bunny_blit(&data->window->buffer, data->back.tree2,
		 &data->back.pos_tree2);
    }
}
Beispiel #23
0
static void	my_expulse_right(t_server *serv,
				 t_player *drone,
				 t_player *victim)
{
  int		x;
  int		y;
  char		buff[512];
  int		len;

  x = victim->pos % serv->width;
  y = victim->pos / serv->width;
  x += 1;
  adjust_coord(serv, &x, &y);
  move_player(serv, victim, victim->pos, COORD(x, y));
  len = snprintf(buff, sizeof(buff), "deplacement: %d\n",
		 get_direction(serv, drone, victim));
  buff_append(victim->wrbuff, buff, len);
}
Beispiel #24
0
/*
 * Walk into a trap.
 */
void do_cmd_jump(cmd_code code, cmd_arg args[])
{
	int x, y;
	int dir = args[0].direction;

	/* Apply confusion if necessary */
	confuse_dir(&dir);

	/* Verify walkability */
	y = p_ptr->py + ddy[dir];
	x = p_ptr->px + ddx[dir];
	if (!do_cmd_walk_test(y, x))
		return;

	p_ptr->energy_use = 100;

	move_player(dir, FALSE);
}
Beispiel #25
0
void			play(SDL_Surface* screen)
{
  int			x;
  int			y;

  x = 10;
  while (g_playloop == 1)
    {
      y = 23;
      SDL_FillRect(screen, 0, SDL_MapRGB(screen->format, 5, 5, 5));
      fontmap_printf(x, y, screen,
		     "304-PACMAN <PAYET-S> + 1UP: 0 + "
                     "SCORE: %03d + TIME: %d", g_score, g_time);
      y += FONTMAP_SIZE * 2;
      fontmap_print(x, y, screen, g_prompt.c_str());
      y += FONTMAP_SIZE * 2;
      handle_event(screen, y);
      y += FONTMAP_SIZE * 2;
      for (auto line : g_map)
	{
	  fontmap_print(x, y, screen, line.c_str());
	  y += FONTMAP_SIZE;
	}
      if (g_choose_file == 1)
        g_prompt = "$> Choose a map.";
      else if (g_count <= (g_score / 10))
        g_prompt = "$> Congratulation!";
      else if (g_pause == 0)
	{
	  g_prompt = "$> GO!";
	  g_time += 1;
	  if ((g_time % 100) == 0)
	    {
	      move_player();
	      move_ghost();
	    }
	}
      else if (g_pause == 1)
	{
	  g_prompt = "$> Game is paused.";
	}
      SDL_Flip(screen);
    }
}
Beispiel #26
0
/**
 * This is similar to handle_player(), but is only used by the new
 * client/server stuff.
 *
 * This is sort of special, in that the new client/server actually uses
 * the new speed values for commands.
 * @param pl Player to handle.
 * @retval -1 Player is invalid.
 * @retval 0 No more actions to do.
 * @retval 1 There are more actions we can do. */
int handle_newcs_player(player *pl)
{
	object *op = pl->ob;

	if (!op || !OBJECT_ACTIVE(op))
	{
		return -1;
	}

	handle_client(&pl->socket, pl);

	if (!op || !OBJECT_ACTIVE(op) || pl->socket.status == Ns_Dead)
	{
		return -1;
	}

	/* Check speed. */
	if (op->speed_left < 0.0f)
	{
		return 0;
	}

	/* If we are here, we're never paralyzed anymore. */
	CLEAR_FLAG(op, FLAG_PARALYZED);

	if (op->direction && (CONTR(op)->run_on || CONTR(op)->fire_on))
	{
		/* All move commands take 1 tick, at least for now. */
		op->speed_left--;
		move_player(op, op->direction);

		if (op->speed_left > 0)
		{
			return 1;
		}
		else
		{
			return 0;
		}
	}

	return 0;
}
int main()
{	
	//intalize
		initialize_file_pointers();



		a=time(0);
		initialize_feld(FIELD_S,FIELD_C_S,FIELD_B);

		write_to_file_everything();
		memset(&players[0], 0 ,sizeof(player));
		for (int i = 0; i < num_of_players; ++i)
		{
			initialize_player(&players[i]);
		}
	//intalize

	// main loop
	while(1)
	{
		//for (int i = 0; i < num_of_players; ++i)
		{
			move_player(comand(),&players[0]);
		}
				update();

		DONT_GET_OUT();
		eat_food();
		spawn_food();

		b=time(0);
		printf("%llu\n%lf FPS\n",tiks, (double)tiks/(double)(b-a) );
		tiks++;
		system("sleep 0.010960");

	}

	

	return 0;
}
Beispiel #28
0
bool logic(Map& level, Player& player1, Viewpoint& camera, Idevice& input)
{
    int mapvalue;
    if (input.get_click() == ON)
	  {
			mapvalue = find_tile(level, input, camera);
		  if (mapvalue == WARP) click_warp(level, player1, input, camera);
		  if (mapvalue == EXIT) click_door(level, player1, input, camera);
		  if (mapvalue == UPSTAIRS || mapvalue == DOWNSTAIRS) click_stairs(level, player1, input, camera);
		  if (mapvalue == CAVE)	click_dungeon(level, player1, input, camera);
		  if (mapvalue == CITY)	click_town(level, player1, input, camera);
    }
    input.put_click(OFF); 
    
    if(player1.check_map() | player1.check_floor()) return 0;
    
    move_player(level, player1, input);
    move_camera(level, player1, camera); 
    
    return 1;
}
Beispiel #29
0
/**
 * Walk into a trap.
 */
void do_cmd_jump(struct command *cmd)
{
	int x, y, dir;

	/* Get arguments */
	if (cmd_get_direction(cmd, "direction", &dir, false) != CMD_OK)
		return;

	/* Apply confusion if necessary */
	if (player_confuse_dir(player, &dir, false))
		player->upkeep->energy_use = z_info->move_energy;

	/* Verify walkability */
	y = player->py + ddy[dir];
	x = player->px + ddx[dir];
	if (!do_cmd_walk_test(y, x))
		return;

	player->upkeep->energy_use = z_info->move_energy;

	move_player(dir, false);
}
Beispiel #30
0
/*
 * Walk in the given direction.
 */
void do_cmd_walk(cmd_code code, cmd_arg args[])
{
	int x, y;
	int dir = args[0].direction;

	/* Apply confusion if necessary */
	player_confuse_dir(p_ptr, &dir, FALSE);

	/* Confused movements use energy no matter what */
	if (dir != args[0].direction)	
		p_ptr->energy_use = 100;
	
	/* Verify walkability */
	y = p_ptr->py + ddy[dir];
	x = p_ptr->px + ddx[dir];
	if (!do_cmd_walk_test(y, x))
		return;

	p_ptr->energy_use = 100;

	move_player(dir, TRUE);
}