/*
        PokerMenu.cpp

        V1.00 - 061196  Kimmo Teräväinen
        -----   ------  ----------------
        Look PokerMenu.h
*/

#include "pokermenu.h"

const NewMenu cPokerMenu::PokerMenus[] =
{
  { NM_TITLE,(UBYTE*)"Game",                 0 , 0, 0, 0,},
  {  NM_ITEM,(UBYTE*)"New",         (UBYTE*)"N", 0, 0, 0,},
  {  NM_ITEM,(UBYTE*)"Continue Old",(UBYTE*)"O", 0, 0, 0,},
  {  NM_ITEM,(UBYTE*)"Save",        (UBYTE*)"S", 0, 0, 0,},
  {  NM_ITEM,NM_BARLABEL,                    0 , 0, 0, 0,},
  {  NM_ITEM,(UBYTE*)"About",       (UBYTE*)"?", 0, 0, 0,},
  {  NM_ITEM,(UBYTE*)"Quit",        (UBYTE*)"Q", 0, 0, 0,},

  { NM_TITLE,(UBYTE*)"Preferences",             0 , 0, 0, 0,},
  {  NM_ITEM,(UBYTE*)"Hand Evaluation",(UBYTE*)"E", 0, 0, 0,},
  {  NM_ITEM,(UBYTE*)"Changes Jokers", (UBYTE*)"B", 0, 0, 0,},

  { NM_TITLE,(UBYTE*)"Help",                 0 , 0, 0, 0,},
  {  NM_ITEM,(UBYTE*)"Instructions",(UBYTE*)"H", 0, 0, 0,},
  {  NM_ITEM,(UBYTE*)"About",                0 , 0, 0, 0,},

  {   NM_END, NULL,                      0 , 0, 0, 0,}
};

int cPokerMenu::IDCMP(const IntuiMessage *msg)
{
  if(msg->Class!=IDCMP_MENUPICK) return IDCMP_NOT_DONE;

  UWORD menu=msg->Code;
  if(menu != MENUNULL) {
    UWORD menuNum = MENUNUM(menu),      // mikä menu
          itemNum = ITEMNUM(menu);      // mikä jäsen

    switch(menuNum) {
      case 0: switch(itemNum) {
                case 0: ReplyMsg((Message*)msg);
                        game->MenuNew();   break;
                case 1: ReplyMsg((Message*)msg);
                        game->MenuOld();   break;
                case 2: ReplyMsg((Message*)msg);
                        game->MenuSave();  break;
                case 4: ReplyMsg((Message*)msg);
                        game->MenuAbout(); break;
                case 5:
                        {
                          EasyStruct myES = {
                            sizeof(struct EasyStruct),0,
                            (UBYTE*)"Quit Poker",
                            (UBYTE*)"Are You Sure to Quit?",
                            (UBYTE*)"Quit|Cancel"
                          };
                          switch(EasyRequestArgs(wnd, &myES, NULL, NULL)) {
                            case 0: ReplyMsg((Message*)msg); break;
                            case 1: return IDCMP_TERMINATED;
                          }
                        }
                        break;
              }
              FlushMessages(wnd);
              return IDCMP_REPLYED;

      case 1: ReplyMsg((Message*)msg);
              switch(itemNum) {
                case 0: game->MenuPrefsHand(); break;
                case 1: game->MenuPrefsBet();  break;
              }
              FlushMessages(wnd);
              return IDCMP_REPLYED;
      case 2: ReplyMsg((Message*)msg);
              switch(itemNum) {
                case 0: game->MenuHelp();  break;
                case 1: game->MenuAbout(); break;
              }
              FlushMessages(wnd);
              return IDCMP_REPLYED;
      default: break;
    }
  }
  return IDCMP_DONE;
}
