Explorar o código

Do not nest ifs too much

Daniele Bartolini %!s(int64=12) %!d(string=hai) anos
pai
achega
24eebc7182
Modificáronse 1 ficheiros con 36 adicións e 37 borrados
  1. 36 37
      engine/os/linux/main.cpp

+ 36 - 37
engine/os/linux/main.cpp

@@ -299,47 +299,46 @@ public:
 		{
 		{
 			m_queue.pop_event(&event);
 			m_queue.pop_event(&event);
 
 
-			if (event.type != OsEvent::NONE)
+			if (event.type == OsEvent::NONE) continue;
+
+			switch (event.type)
 			{
 			{
-				switch (event.type)
+				case OsEvent::MOUSE:
 				{
 				{
-					case OsEvent::MOUSE:
-					{
-						const OsMouseEvent& ev = event.mouse;
-						switch (ev.type)
-						{
-							case OsMouseEvent::BUTTON: m_mouse->set_button_state(ev.x, ev.y, ev.button, ev.pressed); break;
-							case OsMouseEvent::MOVE: m_mouse->set_position(ev.x, ev.y); break;
-							default: CE_FATAL("Oops, unknown mouse event type"); break;
-						}
-
-						break;
-					}
-					case OsEvent::KEYBOARD:
-					{
-						const OsKeyboardEvent& ev = event.keyboard;
-						m_keyboard->set_button_state(ev.button, ev.pressed);
-						break;
-					}
-					case OsEvent::METRICS:
+					const OsMouseEvent& ev = event.mouse;
+					switch (ev.type)
 					{
 					{
-						const OsMetricsEvent& ev = event.metrics;
-						m_mouse->set_metrics(ev.width, ev.height);
-						m_window->m_x = ev.x;
-						m_window->m_y = ev.y;
-						m_window->m_width = ev.width;
-						m_window->m_height = ev.height;
-						break;
-					}
-					case OsEvent::EXIT:
-					{
-						return true;
-					}
-					default:
-					{
-						Log::d("Unmanaged");
-						break;
+						case OsMouseEvent::BUTTON: m_mouse->set_button_state(ev.x, ev.y, ev.button, ev.pressed); break;
+						case OsMouseEvent::MOVE: m_mouse->set_position(ev.x, ev.y); break;
+						default: CE_FATAL("Oops, unknown mouse event type"); break;
 					}
 					}
+
+					break;
+				}
+				case OsEvent::KEYBOARD:
+				{
+					const OsKeyboardEvent& ev = event.keyboard;
+					m_keyboard->set_button_state(ev.button, ev.pressed);
+					break;
+				}
+				case OsEvent::METRICS:
+				{
+					const OsMetricsEvent& ev = event.metrics;
+					m_mouse->set_metrics(ev.width, ev.height);
+					m_window->m_x = ev.x;
+					m_window->m_y = ev.y;
+					m_window->m_width = ev.width;
+					m_window->m_height = ev.height;
+					break;
+				}
+				case OsEvent::EXIT:
+				{
+					return true;
+				}
+				default:
+				{
+					CE_FATAL("Unknown Os Event");
+					break;
 				}
 				}
 			}
 			}
 		}
 		}