From 523a27ce619f955a8aed1d8a3bbe989d970deb8d Mon Sep 17 00:00:00 2001 From: twinaphex Date: Fri, 10 May 2013 22:44:58 +0200 Subject: [PATCH] (360) Load Game History list now works on 360 as well --- frontend/menu/rmenu_xui.cpp | 10 ++++++++++ frontend/platform/platform_xdk.c | 15 ++++++++++++++- frontend/platform/platform_xdk_exec.c | 10 ++++++++-- 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/frontend/menu/rmenu_xui.cpp b/frontend/menu/rmenu_xui.cpp index 2c6c9d11e4..ab23c7d09d 100644 --- a/frontend/menu/rmenu_xui.cpp +++ b/frontend/menu/rmenu_xui.cpp @@ -472,6 +472,16 @@ static void init_menulist(unsigned menu_id) HRESULT CRetroArchLoadGameHistory::OnControlNavigate( XUIMessageControlNavigate *pControlNavigateData, BOOL& bHandled) { + + unsigned current_index = XuiListGetCurSel(m_menulist, NULL); + unsigned input = pControlNavigateData->nControlNavigate; + + if (input == XUI_CONTROL_NAVIGATE_OK) + { + load_menu_game_history(current_index); + process_input_ret = -1; + } + bHandled = TRUE; switch(pControlNavigateData->nControlNavigate) diff --git a/frontend/platform/platform_xdk.c b/frontend/platform/platform_xdk.c index a0e774041d..abc04167ea 100644 --- a/frontend/platform/platform_xdk.c +++ b/frontend/platform/platform_xdk.c @@ -267,7 +267,7 @@ static int system_process_args(int argc, char *argv[]) (void)argc; (void)argv; -#ifdef _XBOX1 +#if defined(_XBOX1) LAUNCH_DATA ptr; DWORD launch_type; @@ -282,6 +282,19 @@ static int system_process_args(int argc, char *argv[]) return 1; } } +#elif defined(_XBOX360) + DWORD dwLaunchDataSize; + if (XGetLaunchDataSize(&dwLaunchDataSize) == ERROR_SUCCESS) + { + BYTE* pLaunchData = new BYTE[dwLaunchDataSize]; + XGetLaunchData(pLaunchData, dwLaunchDataSize); + + snprintf(g_extern.fullpath, sizeof(g_extern.fullpath), "%s", (char*)pLaunchData); + RARCH_LOG("Auto-start game %s.\n", g_extern.fullpath); + + delete []pLaunchData; + return 1; + } #endif return 0; } diff --git a/frontend/platform/platform_xdk_exec.c b/frontend/platform/platform_xdk_exec.c index 9ba2b77be6..89ae0146a2 100644 --- a/frontend/platform/platform_xdk_exec.c +++ b/frontend/platform/platform_xdk_exec.c @@ -28,7 +28,7 @@ static void rarch_console_exec(const char *path, bool should_load_game) #ifdef IS_SALAMANDER XLaunchNewImage(path, NULL); #else -#ifdef _XBOX1 +#if defined(_XBOX1) LAUNCH_DATA ptr; memset(&ptr, 0, sizeof(ptr)); if (should_load_game) @@ -38,7 +38,13 @@ static void rarch_console_exec(const char *path, bool should_load_game) } else XLaunchNewImage(path, NULL); -#else +#elif defined(_XBOX360) + char game_path[1024]; + if (should_load_game) + { + strlcpy(game_path, g_extern.fullpath, sizeof(game_path)); + XSetLaunchData(game_path, MAX_LAUNCH_DATA_SIZE); + } XLaunchNewImage(path, NULL); #endif #endif