From 677385ffdd1e330cfba4dd712ca58595feeea41d Mon Sep 17 00:00:00 2001 From: schneefux Date: Mon, 7 Oct 2013 14:11:24 +0200 Subject: initial commit --- menu.c | 132 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 menu.c (limited to 'menu.c') diff --git a/menu.c b/menu.c new file mode 100644 index 0000000..a86fbdd --- /dev/null +++ b/menu.c @@ -0,0 +1,132 @@ +#include "global.h" +#include "menu.h" +#include "key.h" +#include "ki.h" +#include "syscalls.h" +#include "draw.h" + +#include "stdio.h" + +void openmenu() +{ + uchar text[30]; + int choose = 0; + static const char arrow = 0x13; + + Timer_Uninstall(8); + + while(keydown(KEY_CTRL_MENU)){keyupdate();} + while(1) + { + PopUpWin(6); + + sprintf(&text, "show map"); + locatePrintMini(5,3, &text); + + if(drawfloor == TRUE) + { + sprintf(&text, "disable floor and ceiling"); + } + else + { + sprintf(&text, "enable floor and ceiling"); + } + + locatePrintMini(5,4, &text); + + if(drawtex == TRUE) + { + sprintf(&text, "disable texture"); + } + else + { + sprintf(&text, "enable texture"); + } + + locatePrintMini(5,5, &text); + + if(drawheight == TRUE) + { + sprintf(&text, "disable height difference"); + } + else + { + sprintf(&text, "enable height difference"); + } + + locatePrintMini(5,6, &text); + + if(demo == TRUE) + { + sprintf(&text, "disable demo mode"); + } + else + { + sprintf(&text, "enable demo mode"); + } + + locatePrintMini(5,7, &text); + + sprintf(&text, "exit game"); + locatePrintMini(5,8, &text); + + locatePrintMini(4,3+choose, &arrow); + + while(keydown(KEY_CTRL_UP) || keydown(KEY_CTRL_DOWN) || keydown(KEY_CTRL_EXE) || keydown(KEY_CTRL_MENU)){keyupdate();} + + display_vram(); + + while(!keydown(KEY_CTRL_UP) && !keydown(KEY_CTRL_DOWN) && !keydown(KEY_CTRL_EXE) && !keydown(KEY_CTRL_MENU)){keyupdate();} + if(keydown(KEY_CTRL_UP)) + { + choose--; + if(choose == -1) + choose = 0; + } + if(keydown(KEY_CTRL_DOWN)) + { + choose++; + if(choose == 6) + choose = 5; + } + if(keydown(KEY_CTRL_MENU)) + { + while(keydown(KEY_CTRL_MENU)){keyupdate();} + Timer_Install(8, &timer, KISPEED); + Timer_Start(8); + return; + } + if(keydown(KEY_CTRL_EXE)) + { + switch(choose) + { + case 0: + while(keydown(KEY_CTRL_EXE)){keyupdate();} + showmap(); + break; + case 1: + drawfloor = (drawfloor == TRUE)?FALSE:TRUE; + break; + case 2: + drawtex = (drawtex == TRUE)?FALSE:TRUE; + break; + case 3: + drawheight = (drawheight == TRUE)?FALSE:TRUE; + break; + case 4: + if(demo == TRUE) + { + demo = FALSE; + } + else + { + demo = TRUE; + } + break; + case 5: + exit = TRUE; + return; + } + } + } +} -- cgit v1.3.1