コード例 #1
0
TbScreenMode switch_to_next_video_mode(void)
{
    TbScreenMode scrmode;
    scrmode = get_next_vidmode(lbDisplay.ScreenMode);
    if ( setup_screen_mode(scrmode) )
    {
        settings.video_scrnmode = scrmode;
    } else
    {
        SYNCLOG("Can't enter %s (mode %d), falling to failsafe mode",
            get_vidmode_name(scrmode),(int)scrmode);
        scrmode = get_failsafe_vidmode();
        if ( !setup_screen_mode(scrmode) )
        {
          FatalError = 1;
          exit_keeper = 1;
          return Lb_SCREEN_MODE_INVALID;
        }
        settings.video_scrnmode = scrmode;
    }
    SYNCLOG("Switched video to %s (mode %d)", get_vidmode_name(scrmode),(int)scrmode);
    save_settings();
    if (game.numfield_C & 0x20)
      setup_engine_window(status_panel_width, 0, MyScreenWidth, MyScreenHeight);
    else
      setup_engine_window(0, 0, MyScreenWidth, MyScreenHeight);
//    reinit_all_menus();
    return scrmode;
}
コード例 #2
0
ファイル: player_data.c プロジェクト: ommmmmmm/keeperfx
void set_player_mode(struct PlayerInfo *player, long nview)
{
  long i;
  if (player->view_type == nview)
    return;
  player->view_type = nview;
  player->allocflags &= ~PlaF_Unknown8;
  if (is_my_player(player))
  {
    game.numfield_D &= ~numfield_D_08;
    game.numfield_D |= numfield_D_01;
    if (is_my_player(player))
      stop_all_things_playing_samples();
  }
  switch (player->view_type)
  {
  case PVT_DungeonTop:
      i = PVM_IsometricView;
      if (player->view_mode_restore == PVM_FrontView)
      {
        set_engine_view(player, PVM_IsometricView);
        i = PVM_FrontView;
      }
      set_engine_view(player, i);
      if (is_my_player(player))
          toggle_status_menu((game.status_flags & Status_ShowStatusMenu));
      if ((game.status_flags & Status_ShowGui) != 0)
        setup_engine_window(status_panel_width, 0, MyScreenWidth, MyScreenHeight);
      else
        setup_engine_window(0, 0, MyScreenWidth, MyScreenHeight);
      break;
  case PVT_CreatureContrl:
  case PVT_CreaturePasngr:
      set_engine_view(player, PVM_CreatureView);
      if (is_my_player(player))
        game.numfield_D &= ~numfield_D_01;
      setup_engine_window(0, 0, MyScreenWidth, MyScreenHeight);
      break;
  case PVT_MapScreen:
      player->continue_work_state = player->work_state;
      set_engine_view(player, PVM_ParchmentView);
      break;
  case PVT_MapFadeIn:
      set_player_instance(player, PI_MapFadeTo, 0);
      break;
  case PVT_MapFadeOut:
      set_player_instance(player, PI_MapFadeFrom, 0);
      break;
  }
}