Quake 3 源码分析(三)

Quake 3 源码分析(三)

--键盘响应事件之启动主菜单

 

源程序中的调用关系如下:

WinMain()àCom_Frame ()àCom_EventLoop()à(调用Com_GetEvent得到一个event,根据evType调用函数) CL_KeyEvent()àVM_Call( uivm,。。。)à(如果不存在uix86.dll,则调用VM_CallCompiled函数) vm->entryPoint()à(ui_main.c文件中)vmMain()à(根据参数值调用不同的函数进行处理)UI_SetActiveMenuàUI_MainMenu()à(调用UI_CDKeyMenu函数) Main_MenuDraw()à(设置菜单的回调函数Main_MenuEvent(),调用Menu_AddItem函数) UI_PushMenu()àMenu_SetCursor()àMenu_CursorMoved()à调用菜单的callback函数Main_MenuEvent

 

主菜单的回调函数:

Main_MenuEvent()à(ID_SINGLEPLAYER=10为单人游戏) UI_SPLevelMenu()à(调用菜单初始化函数UI_SPLevelMenu_Init,设置菜单并设置callback函数,“CHOOSE LEVEL”的callbackUI_SPLevelMenu_LeftArrowEventplayernamecallback函数为UI_SPLevelMenu_PlayerEvent,并调用Menu_AddItem添加菜单项) UI_SPLevelMenu_SetMenuItems()àUI_SPLevelMenu_SetBots()àUI_GetBotInfoByName()

 

你可能感兴趣的:(Quake 3 源码分析(三))