hola necesito ayuda en VLF en C quiero crear submenus pero no lo logro como lo hace el ultrapandora installer v4.0 de marce_80 por favor ayudeme coders de esta comunidad.
#include <pspsdk.h> #include <pspkernel.h> #include <pspdebug.h> #include <pspctrl.h> #include <vlf.h> PSP_MODULE_INFO("VLF", 0, 1, 0); PSP_MAIN_THREAD_ATTR(PSP_THREAD_ATTR_USER); // Llamada de salida int ExitCallback(int arg1, int arg2, void *common) { sceKernelExitGame(); return 0; } int CallbackThread(SceSize args, void *argp) { int callback_id; callback_id = sceKernelCreateCallback("Exit Callback", ExitCallback, NULL); sceKernelRegisterExitCallback(callback_id); sceKernelSleepThreadCB(); return 0; } int SetupCallback(void) { int thread_id = 0; thread_id = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, THREAD_ATTR_USER, 0); if (thread_id >= 0) { sceKernelStartThread(thread_id, 0, 0); } return thread_id; } void MainMenu(int sel); int texto; int opcion = 0; int BackToMainMenu() { vlfGuiRemoveText(texto); vlfGuiCancelBottomDialog(); MainMenu(opcion); return VLF_EV_RET_NOTHING; } // Opciones de cada menu void ExampleSelection(int opc) { // Boton para atras vlfGuiBottomDialog(VLF_DI_BACK, -1, 1, 0, VLF_DEFAULT, BackToMainMenu); } // Seleccion de cada menu int OnMainMenuSelect(int sel) { switch(sel) { // Opcion 1 case 0: vlfGuiCancelBottomDialog(); ExampleSelection(0); break; // Opcion 2 case 1: vlfGuiCancelBottomDialog(); ExampleSelection(1); break; // Opcion 3 case 2: vlfGuiCancelBottomDialog(); ExampleSelection(2); break; // Opcion 4 case 3: vlfGuiCancelBottomDialog(); ExampleSelection(3); break; // Opcion 5 case 4: vlfGuiCancelBottomDialog(); ExampleSelection(4); break; // Opcion 6 case 5: vlfGuiCancelBottomDialog(); ExampleSelection(5); break; // Opcion 7 case 6: vlfGuiCancelBottomDialog(); ExampleSelection(6); break; // Opcion 8 case 7: vlfGuiCancelBottomDialog(); ExampleSelection(7); break; } return VLF_EV_RET_REMOVE_OBJECTS | VLF_EV_RET_REMOVE_HANDLERS; } void MainMenu(int sel) { //Opciones del menu (texto) char *menu[] = { "Menu 1", "Menu 2", "Menu 3", "Menu 4", "Menu 5", "Menu 6", "Menu 7", "Menu 8", "Menu 9" }; vlfGuiCentralMenuSelection(8, menu, sel, OnMainMenuSelect, 0, 0); // menu central vlfGuiCentralMenu(8, menu, sel, OnMainMenuSelect, 0, 0); // mensaje inferior vlfGuiBottomDialog(-1, VLF_DI_ENTER, 1, 0, VLF_DEFAULT, NULL); } // Aplicacion int app_main() { // Variables int titulo = vlfGuiAddText(0,0,"Programs PSP v1.0"); int icono; void *icono_bateria; // Callbacks SetupCallback(); vlfGuiSetBackgroundPlane(0x000000); vlfGuiSetModelSystem(); vlfGuiAddClock(); vlfGuiAddBatteryIconSystem(&icono_bateria, 10*1000*1000); icono = vlfGuiAddPictureResource("sysconf_plugin", "tex_bar_init_icon", 4, -2); vlfGuiSetTitleBarEx(titulo, icono, 1, 0, 0x152654); MainMenu(0); while(1) { vlfGuiDrawFrame(); } sceKernelSleepThread(); return 0; }
Consejo
Bueno, yo no te puedo ayudar con lo del menú, porque lo toqué hace tiempo y ya estoy muy verde xDDD
Lo que sí te puedo decir es que tu función OnMainMenuSelect() es la cosa más horrible que he visto en varios días por aquí :P
Todo ese código redundante lo puedes resumir en:
LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.