本文整理汇总了C++中PlayerInfo::ApplyChanges方法的典型用法代码示例。如果您正苦于以下问题:C++ PlayerInfo::ApplyChanges方法的具体用法?C++ PlayerInfo::ApplyChanges怎么用?C++ PlayerInfo::ApplyChanges使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PlayerInfo
的用法示例。
在下文中一共展示了PlayerInfo::ApplyChanges方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char *argv[])
{
Conversation conversation;
bool debugMode = false;
for(const char *const *it = argv + 1; *it; ++it)
{
string arg = *it;
if(arg == "-h" || arg == "--help")
{
PrintHelp();
return 0;
}
else if(arg == "-v" || arg == "--version")
{
PrintVersion();
return 0;
}
else if(arg == "-t" || arg == "--talk")
conversation = LoadConversation();
else if(arg == "-d" || arg == "--debug")
debugMode = true;
}
PlayerInfo player;
try {
SDL_Init(SDL_INIT_VIDEO);
// Begin loading the game data.
GameData::BeginLoad(argv);
Audio::Init(GameData::Sources());
// On Windows, make sure that the sleep timer has at least 1 ms resolution
// to avoid irregular frame rates.
#ifdef _WIN32
timeBeginPeriod(1);
#endif
player.LoadRecent();
player.ApplyChanges();
// Check how big the window can be.
SDL_DisplayMode mode;
if(SDL_GetCurrentDisplayMode(0, &mode))
return DoError("Unable to query monitor resolution!");
Preferences::Load();
Uint32 flags = SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE | SDL_WINDOW_SHOWN | SDL_WINDOW_ALLOW_HIGHDPI;
if(Preferences::Has("fullscreen"))
flags |= SDL_WINDOW_FULLSCREEN_DESKTOP;
// Make the window just slightly smaller than the monitor resolution.
int maxWidth = mode.w;
int maxHeight = mode.h;
// Restore this after toggling fullscreen.
int restoreWidth = 0;
int restoreHeight = 0;
if(maxWidth < 640 || maxHeight < 480)
return DoError("Monitor resolution is too small!");
if(Screen::RawWidth() && Screen::RawHeight())
{
// Never allow the saved screen width to be leaving less than 100
// pixels free around the window. This avoids the problem where you
// maximize without going full-screen, and next time the window pops
// up you can't access the resize control because it is offscreen.
Screen::SetRaw(
min(Screen::RawWidth(), (maxWidth - 100)),
min(Screen::RawHeight(), (maxHeight - 100)));
if(flags & SDL_WINDOW_FULLSCREEN_DESKTOP)
{
restoreWidth = Screen::RawWidth();
restoreHeight = Screen::RawHeight();
Screen::SetRaw(maxWidth, maxHeight);
}
}
else
Screen::SetRaw(maxWidth - 100, maxHeight - 100);
// Make sure the zoom factor is not set too high for the full UI to fit.
if(Screen::Height() < 700)
Screen::SetZoom(100);
// Create the window.
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
#ifdef _WIN32
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0);
#endif
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
SDL_Window *window = SDL_CreateWindow("Endless Sky",
SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,
Screen::RawWidth(), Screen::RawHeight(), flags);
if(!window)
return DoError("Unable to create window!");
SDL_GLContext context = SDL_GL_CreateContext(window);
if(!context)
return DoError("Unable to create OpenGL context! Check if your system supports OpenGL 3.0.", window);
if(SDL_GL_MakeCurrent(window, context))
//.........这里部分代码省略.........