コード例 #1
0
ファイル: menu.c プロジェクト: Wuzzy2/cdogs-sdl
void MenuSystemTerminate(MenuSystem *ms)
{
	MenuDestroySubmenus(ms->root);
	CFREE(ms->root);
	CArrayTerminate(&ms->exitTypes);
	CArrayTerminate(&ms->customDisplayFuncs);
	memset(ms, 0, sizeof *ms);
}
コード例 #2
0
ファイル: menu.c プロジェクト: MrDesTinY/cdogs-sdl
void MenuSystemTerminate(MenuSystem *ms)
{
	MenuDestroySubmenus(ms->root);
	CFREE(ms->root);
	CFREE(ms->customDisplayFuncs);
	CFREE(ms->customDisplayDatas);
	memset(ms, 0, sizeof *ms);
}
コード例 #3
0
ファイル: menu.c プロジェクト: jacquelinekay/cdogs-sdl
void MenuDestroy(MenuSystem *menu)
{
	if (menu == NULL || menu->root == NULL)
	{
		return;
	}
	MenuDestroySubmenus(menu->root);
	CFREE(menu->root);
	CFREE(menu);
}
コード例 #4
0
ファイル: menu.c プロジェクト: Wuzzy2/cdogs-sdl
void MenuDestroySubmenus(menu_t *menu)
{
	if (menu == NULL)
	{
		return;
	}
	CFREE(menu->name);
	if (MenuTypeHasSubMenus(menu->type))
	{
		for (int i = 0; i < (int)menu->u.normal.subMenus.size; i++)
		{
			menu_t *subMenu = CArrayGet(&menu->u.normal.subMenus, i);
			MenuDestroySubmenus(subMenu);
		}
		CArrayTerminate(&menu->u.normal.subMenus);
	}
}
コード例 #5
0
ファイル: menu.c プロジェクト: jacquelinekay/cdogs-sdl
void MenuDestroySubmenus(menu_t *menu)
{
	if (menu == NULL)
	{
		return;
	}
	if (MenuTypeHasSubMenus(menu->type) && menu->u.normal.subMenus != NULL)
	{
		int i;
		for (i = 0; i < menu->u.normal.numSubMenus; i++)
		{
			menu_t *subMenu = &menu->u.normal.subMenus[i];
			MenuDestroySubmenus(subMenu);
		}
		CFREE(menu->u.normal.subMenus);
	}
}