From 2e41a5e304d9c35ece851b8a65482bca8784b582 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Wed, 22 Dec 2010 11:29:06 +0200 Subject: just savin' --- src/main.cpp | 109 +++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 64 insertions(+), 45 deletions(-) (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp index 4b696236d..7fecbe3bd 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -172,6 +172,7 @@ SUGG: Split Inventory into ClientInventory and ServerInventory Doing now: ====================================================================== +TODO: Convert the text input system to use a modal menu ====================================================================== @@ -269,10 +270,22 @@ extern void set_default_settings(); //u16 g_selected_material = 0; u16 g_selected_item = 0; +/* + GUI Stuff +*/ gui::IGUIEnvironment* guienv = NULL; GUIPauseMenu *pauseMenu = NULL; GUIInventoryMenu *inventoryMenu = NULL; +bool noMenuActive() +{ + if(pauseMenu && pauseMenu->isVisible()) + return false; + if(inventoryMenu && inventoryMenu->isVisible()) + return false; + return true; +} + std::wstring g_text_buffer; bool g_text_buffer_accepted = false; @@ -353,9 +366,7 @@ public: { if(event.KeyInput.Key == irr::KEY_ESCAPE) { - if(g_game_focused == true - && !pauseMenu->isVisible() - && !inventoryMenu->isVisible()) + if(g_game_focused == true && noMenuActive()) { dstream<isVisible() - && !pauseMenu->isVisible()) + if(g_game_focused == true && noMenuActive()) { dstream< 0) + if(event.MouseInput.Event == EMIE_RMOUSE_PRESSED_DOWN) { - if(g_selected_item > 0) - g_selected_item--; - else - g_selected_item = PLAYER_INVENTORY_SIZE-1; + rightclicked = true; + } + if(event.MouseInput.Event == EMIE_LMOUSE_LEFT_UP) + { + leftreleased = true; + } + if(event.MouseInput.Event == EMIE_RMOUSE_LEFT_UP) + { + rightreleased = true; + } + if(event.MouseInput.Event == EMIE_MOUSE_WHEEL) + { + /*dstream<<"event.MouseInput.Wheel=" + < 0) + { + if(g_selected_item > 0) + g_selected_item--; + else + g_selected_item = PLAYER_INVENTORY_SIZE-1; + } } } } @@ -933,16 +951,18 @@ public: start = m_selection - m_itemcount / 2; + InventoryList *mainlist = m_inventory->getList("main"); + for(s32 i=0; i (s32)m_inventory->getSize() - 1) - j -= m_inventory->getSize(); + if(j > (s32)mainlist->getSize() - 1) + j -= mainlist->getSize(); if(j < 0) - j += m_inventory->getSize(); + j += mainlist->getSize(); - InventoryItem *item = m_inventory->getItem(j); + InventoryItem *item = mainlist->getItem(j); // Null items if(item == NULL) { @@ -1475,7 +1495,7 @@ int main(int argc, char *argv[]) */ // This is a copy of the inventory that the client's environment has - Inventory local_inventory(PLAYER_INVENTORY_SIZE); + Inventory local_inventory; GUIQuickInventory *quick_inventory = new GUIQuickInventory (guienv, NULL, v2s32(10, 70), 5, &local_inventory); @@ -1806,8 +1826,7 @@ int main(int argc, char *argv[]) if((device->isWindowActive() && g_game_focused - && !pauseMenu->isVisible() - && !inventoryMenu->isVisible() + && noMenuActive() ) || random_input) { -- cgit v1.2.3