diff options
Diffstat (limited to 'matchblox/menu')
-rw-r--r-- | matchblox/menu/menu.c | 38 | ||||
-rw-r--r-- | matchblox/menu/menu.h | 2 | ||||
-rw-r--r-- | matchblox/menu/menu_msg.c | 20 | ||||
-rw-r--r-- | matchblox/menu/menu_msg.h | 10 |
4 files changed, 54 insertions, 16 deletions
diff --git a/matchblox/menu/menu.c b/matchblox/menu/menu.c index a4a31c1..57dd8c0 100644 --- a/matchblox/menu/menu.c +++ b/matchblox/menu/menu.c @@ -156,23 +156,29 @@ void MenuBuild (void) break;
case MENU_START:
- MenuAddLabel(50, 50, "Headtracking");
- MenuAddButton(150, 100, 64, 64, "On", BUTTON_RADIO, BUTTON_GROUP1, MenuEnableHT);
- MenuAddButton(350, 100, 64, 64, "Off", BUTTON_RADIO, BUTTON_GROUP1, MenuDisableHT);
+ MenuAddLabel(50, 30, "Headtracking");
+ MenuAddButton(150, 80, 64, 64, "On", BUTTON_RADIO, BUTTON_GROUP1, MenuEnableHT);
+ MenuAddButton(350, 80, 64, 64, "Off", BUTTON_RADIO, BUTTON_GROUP1, MenuDisableHT);
MenuEnableGroup(BUTTON_GROUP1);
MenuAddLabel(50, 150, "Stereo vision");
- MenuAddButton(150, 200, 64, 64, "On", BUTTON_RADIO, BUTTON_GROUP2, MenuEnableSV);
- MenuAddButton(350, 200, 64, 64, "Off", BUTTON_RADIO, BUTTON_GROUP2, MenuDisableSV);
+ MenuAddButton(150, 200, 64, 64, "On", BUTTON_RADIO, BUTTON_GROUP2, MenuEnableSV);
+ MenuAddButton(350, 200, 64, 64, "Off", BUTTON_RADIO, BUTTON_GROUP2, MenuDisableSV);
MenuEnableGroup(BUTTON_GROUP2);
+ MenuAddLabel(50, 270, "Box size");
+ MenuAddButton(30, 320, 64, 64, "Small", BUTTON_RADIO, BUTTON_GROUP3, MenuSetBoxSmall);
+ MenuAddButton(220, 320, 64, 64, "Medium", BUTTON_RADIO, BUTTON_GROUP3, MenuSetBoxMedium);
+ MenuAddButton(440, 320, 64, 64, "Large", BUTTON_RADIO, BUTTON_GROUP3, MenuSetBoxLarge);
+ MenuEnableGroup(BUTTON_GROUP3);
+
MenuAddButton(50, 400, 256, 64, "Back", BUTTON_CLICK, BUTTON_NO_GROUP, MenuPrev);
MenuAddButton(350, 400, 256, 64, "Next", BUTTON_CLICK, BUTTON_NO_GROUP, MenuPostMessageStart);
break;
case MENU_OPTIONS:
- MenuAddButton(200, 150, 250, 64, "Abort", BUTTON_CLICK, BUTTON_NO_GROUP, MenuPostMessageAbort);
- MenuAddButton(200, 250, 250, 64, "Recalibrate", BUTTON_CLICK, BUTTON_NO_GROUP, MenuPostMessageAbort);
+ MenuAddButton(150, 150, 400, 80, "Abort", BUTTON_CLICK, BUTTON_NO_GROUP, MenuPostMessageAbort);
+ MenuAddButton(150, 250, 400, 80, "Recalibrate", BUTTON_CLICK, BUTTON_NO_GROUP, MenuPostMessageRecalibrate);
MenuEnableGroup(BUTTON_GROUP1);
break;
}
@@ -328,6 +334,10 @@ void MenuProcessMessage(void) {
MenuMouseClick(GLUT_LEFT_BUTTON, GLUT_UP, l_iXPos, l_iYPos);
}
+ else if (l_pMsg->btns & WIIMOTE_BUTTON_PLUS)
+ {
+ MenuPostMessagePause();
+ }
else
{
MenuMouseMove(l_iXPos, l_iYPos);
@@ -454,4 +464,16 @@ void MenuOff(void) {
g_pCurMenu = &g_sMenuOff;
-} // MenuOff
\ No newline at end of file +} // MenuOff
+
+void MenuStart(void)
+{
+ g_pCurMenu = &g_sMenuStart;
+
+} // MenuStart
+
+void MenuOptions(void)
+{
+ g_pCurMenu = &g_sMenuOptions;
+
+} // MenuOptions
\ No newline at end of file diff --git a/matchblox/menu/menu.h b/matchblox/menu/menu.h index b21e50f..1bef444 100644 --- a/matchblox/menu/menu.h +++ b/matchblox/menu/menu.h @@ -14,6 +14,8 @@ void MenuMouseClick(int button, int state, int x, int y); void MenuMouseMove(int x, int y); void MenuOff(void); +void MenuStart(void); +void MenuOptions(void); #ifdef __cplusplus } diff --git a/matchblox/menu/menu_msg.c b/matchblox/menu/menu_msg.c index 3b6f4de..3775eaa 100644 --- a/matchblox/menu/menu_msg.c +++ b/matchblox/menu/menu_msg.c @@ -1,5 +1,4 @@ #include "message_queue.h"
-#include "message_input.h"
#include "menu_msg.h"
#include "menu.h"
@@ -61,11 +60,24 @@ void MenuPostMessageAbort(void) payload.action = ACTION_ABORT;
payload.gamemode = 0;
+ MenuStart();
MenuPostMessage(payload);
} // MenuPostMessageAbort
+void MenuPostMessageRecalibrate(void)
+{
+ struct menu_payload payload;
+
+ payload.action = ACTION_RECALIBRATE;
+ payload.gamemode = 0;
+ MenuStart();
+
+ MenuPostMessage(payload);
+
+} // MenuPostMessageRecalibrate
+
// setter voor game options
void MenuEnableHT(void) { g_iGameMode |= GO_HEADTRACKING; }
void MenuDisableHT(void) { g_iGameMode &= ~GO_HEADTRACKING; }
@@ -73,6 +85,6 @@ void MenuEnableSV(void) { g_iGameMode |= GO_STEREOVISION; } void MenuDisableSV(void) { g_iGameMode &= ~GO_STEREOVISION; }
void MenuEnableShadow(void) { g_iGameMode |= GO_SHADOW; }
void MenuDisableShadow(void) { g_iGameMode &= ~GO_SHADOW; }
-void MenuSetBoxSmall(void) { g_iGameMode = (g_iGameMode & 8) | 0 << 3; } // 0 << 3 == 0
-void MenuSetBoxMedium(void) { g_iGameMode = (g_iGameMode & 8) | 1 << 3; } // 1 << 3 == 8
-void MenuSetBoxLarge(void) { g_iGameMode = (g_iGameMode & 8) | 2 << 3; } // 2 << 3 == 16
\ No newline at end of file +void MenuSetBoxSmall(void) { g_iGameMode = (g_iGameMode & 7) | 0 << 3; } // 0 << 3 == 0
+void MenuSetBoxMedium(void) { g_iGameMode = (g_iGameMode & 7) | 1 << 3; } // 1 << 3 == 8
+void MenuSetBoxLarge(void) { g_iGameMode = (g_iGameMode & 7) | 2 << 3; } // 2 << 3 == 16
\ No newline at end of file diff --git a/matchblox/menu/menu_msg.h b/matchblox/menu/menu_msg.h index 9f6dc38..f188b73 100644 --- a/matchblox/menu/menu_msg.h +++ b/matchblox/menu/menu_msg.h @@ -9,10 +9,11 @@ struct menu_payload enum game_actions
{
- ACTION_START = 1,
- ACTION_ABORT = 2,
- ACTION_PAUSE = 4,
- ACTION_RESUME = 8
+ ACTION_START = 1,
+ ACTION_ABORT = 2,
+ ACTION_PAUSE = 4,
+ ACTION_RESUME = 8,
+ ACTION_RECALIBRATE = 16
};
typedef enum GameOption
@@ -26,6 +27,7 @@ void MenuPostMessagePause(void); void MenuPostMessageResume(void);
void MenuPostMessageStart(void);
void MenuPostMessageAbort(void);
+void MenuPostMessageRecalibrate(void);
void MenuEnableHT(void);
void MenuDisableHT(void);
|