Add CLI --help argument

This commit is contained in:
VoxelTek 2025-07-16 10:07:57 +10:00
parent deca5e5a2e
commit 60e6a55b61
2 changed files with 25 additions and 5 deletions

View File

@ -315,7 +315,8 @@ SDL_AppResult SDL_AppInit(void** appstate, int argc, char** argv)
// Create global app instance
g_isle = new IsleApp();
if (g_isle->ParseArguments(argc, argv) != SUCCESS) {
SDL_AppResult argParseSuccess = g_isle->ParseArguments(argc, argv);
if (argParseSuccess == SDL_APP_FAILURE) {
Any_ShowSimpleMessageBox(
SDL_MESSAGEBOX_ERROR,
"LEGO® Island Error",
@ -324,6 +325,9 @@ SDL_AppResult SDL_AppInit(void** appstate, int argc, char** argv)
);
return SDL_APP_FAILURE;
}
else if (argParseSuccess == SDL_APP_SUCCESS) {
return SDL_APP_SUCCESS;
}
// Create window
if (g_isle->SetupWindow() != SUCCESS) {
@ -1301,7 +1305,7 @@ void IsleApp::SetupCursor(Cursor p_cursor)
}
}
MxResult IsleApp::ParseArguments(int argc, char** argv)
SDL_AppResult IsleApp::ParseArguments(int argc, char** argv)
{
for (int i = 1, consumed; i < argc; i += consumed) {
consumed = -1;
@ -1318,13 +1322,28 @@ MxResult IsleApp::ParseArguments(int argc, char** argv)
#endif
consumed = 1;
}
else if (strcmp(argv[i], "--help") == 0) {
DisplayArgumentHelp();
return SDL_APP_SUCCESS;
}
if (consumed <= 0) {
SDL_Log("Invalid argument(s): %s", argv[i]);
return FAILURE;
DisplayArgumentHelp();
return SDL_APP_FAILURE;
}
}
return SUCCESS;
return SDL_APP_CONTINUE;
}
void IsleApp::DisplayArgumentHelp() {
SDL_Log("Usage: isle [options]");
SDL_Log("Options:");
SDL_Log(" --ini <path> Set custom path to .ini config");
#ifdef ISLE_DEBUG
SDL_Log(" --debug Launch in debug mode");
#endif
SDL_Log(" --help Show this help message");
}
MxResult IsleApp::VerifyFilesystem()

View File

@ -61,7 +61,7 @@ class IsleApp {
void SetGameStarted(MxS32 p_gameStarted) { m_gameStarted = p_gameStarted; }
void SetDrawCursor(MxS32 p_drawCursor) { m_drawCursor = p_drawCursor; }
MxResult ParseArguments(int argc, char** argv);
SDL_AppResult ParseArguments(int argc, char** argv);
MxResult VerifyFilesystem();
void DetectGameVersion();
void MoveVirtualMouseViaJoystick();
@ -99,6 +99,7 @@ class IsleApp {
const CursorBitmap* m_cursorCurrentBitmap;
char* m_mediaPath;
MxFloat m_cursorSensitivity;
void DisplayArgumentHelp();
char* m_iniPath;
MxFloat m_maxLod;