summaryrefslogtreecommitdiff
path: root/menu.c
diff options
context:
space:
mode:
Diffstat (limited to 'menu.c')
-rw-r--r--menu.c132
1 files changed, 132 insertions, 0 deletions
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;
+ }
+ }
+ }
+}