X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=src%2Fclient%2Fmenu.c;h=b5202d38afe2fb8d8126ac76f688ad5f2e8f9aa0;hb=857e7c75bb043a518ea0e724e635f68702ba33d0;hp=e420ef9783fb9a89056503b003dca3248d75fdc6;hpb=f2cde93a9ad2490dc67cb3737bfa80d5b0f69157;p=tpg%2Fopendispense2.git diff --git a/src/client/menu.c b/src/client/menu.c index e420ef9..b5202d3 100644 --- a/src/client/menu.c +++ b/src/client/menu.c @@ -15,6 +15,7 @@ #include "common.h" // === CONSTANTS === +#define COLOURPAIR_DEFAULT 0 #define COLOURPAIR_CANTBUY 1 #define COLOURPAIR_SELECTED 2 @@ -90,8 +91,10 @@ int ShowNCursesUI(void) // Enter curses mode initscr(); start_color(); - init_pair(COLOURPAIR_CANTBUY, COLOR_BLACK, COLOR_BLACK); // Not avaliable - init_pair(COLOURPAIR_SELECTED, COLOR_GREEN, COLOR_BLACK); // Selected + use_default_colors(); + init_pair(COLOURPAIR_DEFAULT, -1, -1); // Not avaliable + init_pair(COLOURPAIR_CANTBUY, COLOR_BLACK, -1); // Not avaliable + init_pair(COLOURPAIR_SELECTED, COLOR_GREEN, -1); // Selected cbreak(); noecho(); // Get max index @@ -248,6 +251,10 @@ int ShowNCursesUI(void) return ret; } +#define COKE_LABEL "Coke Machine" +#define NCOKESLOTS 7 // slots 0 -- 6 +#define EPS_LABEL "Electronic Payment System" + /** * \brief Show item \a Index at (\a Col, \a Row) * \return Dispense index of item @@ -262,7 +269,6 @@ int ShowItemAt(int Row, int Col, int Width, int Index, int bHilighted) switch(giUIMode) { // Standard UI - // - This assumes that case UI_MODE_STANDARD: // Bounds check // Index = -1, request limit @@ -272,25 +278,25 @@ int ShowItemAt(int Row, int Col, int Width, int Index, int bHilighted) if( Index == 0 ) { price = 0; - name = "Coke Machine"; + name = COKE_LABEL; Index = -1; // -1 indicates a label break; } Index --; // Drinks 0 - 6 - if( Index <= 6 ) + if( Index < NCOKESLOTS ) { name = gaItems[Index].Desc; price = gaItems[Index].Price; status = gaItems[Index].Status; break; } - Index -= 7; + Index -= NCOKESLOTS; // EPS label if( Index == 0 ) { price = 0; - name = "Electronic Payment System"; + name = EPS_LABEL; Index = -1; // -1 indicates a label break; } @@ -300,6 +306,9 @@ int ShowItemAt(int Row, int Col, int Width, int Index, int bHilighted) price = gaItems[Index].Price; status = gaItems[Index].Status; break; + case UI_MODE_BASIC: + case UI_MODE_DRINKSONLY: + case UI_MODE_ALL: default: return -1; } @@ -357,8 +366,8 @@ int ShowItemAt(int Row, int Col, int Width, int Index, int bHilighted) } // If the item isn't availiable for sale, return -1 (so it's skipped) - if( status || (price > giUserBalance && gbDisallowSelectWithoutBalance) ) - Index = -1; + if( status > 0 || (price > giUserBalance && gbDisallowSelectWithoutBalance) ) + Index = -2; return Index; }