digraph G { subgraph cluster_GCN { label="GuiChan" color="Blue" gcn_SDLGraphics gcn_ListModel gcn_ActionListener gcn_KeyListener gcn_SelectionListener gcn_Widget gcn_Font gcn_ListModel gcn_FocusHandler gcn_Gui gcn_Button gcn_MouseListener gcn_WidgetListener gcn_Slider gcn_RadioButton gcn_CheckBox gcn_Tab gcn_Container gcn_DropDown gcn_Label gcn_Window gcn_TextBox gcn_TabbedArea gcn_ListBox gcn_TextField gcn_Input gcn_ScrollArea gcn_Image gcn_ImageLoader } subgraph cluster_Core { label="Core" color="Blue" AnimatedSprite AnimationParticle Being BeingManager Channel ChannelManager CommandHandler ConfigListener ConfigurationListManager ConfigurationObject Configuration EffectManager EmoteShortcut Engine Equipment FloorItem FloorItemManager Game Graphics Guild ImageParticle Inventory Item ItemShortcut Joystick KeyboardConfig LocalPlayer LockedArray Logger TileAnimation MapLayer Map Monster NPC OpenGLGraphics ParticleContainer ParticleList ParticleVector ParticleEmitter Particle Player PlayerIgnoreStrategy PlayerRelationsListener PlayerRelationsManager Properties RotationParticle ShopItem SimpleAnimation Sound Sprite StatusEffect Text FlashText TextManager TextParticle Tileset Units Vector //Relationships ImageParticle->AnimationParticle Particle->TextParticle ImageParticle->RotationalParticle Item->ShopItem Text->FlashText Being->Player Sprite->Particle ParticleContainer->ParticleList ParticleContainer->ParticleVector Graphics->OpenGLGraphics Sprite->Being ConfigListener->Being Being->Monster Player->NPC Player->LocalPlayer ConfigListener->Game Particle->ImageParticle ConfigurationObject->Configuration Sprite->FloorItem Properties->Map } subgraph cluster_utils { label="Utils" color="Blue" Mutex MutexLocker XML_Document } subgraph cluster_net { label="Net" color="Blue" net_AdminHandler net_CharHandler net_ChatHandler net_GeneralHandler net_GuildHandler net_InventoryHandler net_LoginHandler net_LogoutHandler net_MapHandler MessageHandler MessageIn MessageOut net_NpcHandler net_PartyHandler net_PlayerHandler net_SkillHandler net_TradeHandler subgraph cluster_ea { label="EAthena" color="Blue" EAthena_AdminHandler EAthena_BeingHandler EAthena_BuySellHandler EAthena_CharServerHandler EAthena_ChatHandler EAthena_EquipmentHandler EAthena_GeneralHandler EAthena_InventoryHandler EAthena_ItemHandler EAthena_LoginHandler EAthena_LogoutHandler EAthena_MapHandler EAthena_NpcHandler EAthena_PartyHandler EAthena_PlayerHandler EAthena_SkillHandler EAthena_TradeHandler Network subgraph cluster_eagui { label="EAthena Gui" color="Blue" PartyTab } } subgraph cluster_tmwserv { label="TMWServ" color="Blue" TmwServ_AdminHandler TmwServ_BeingHandler TmwServ_BuySellHandler TmwServ_CharServerHandler TmwServ_ChatHandler net_Connection TmwServ_EffectHandler TmwServ_GeneralHandler TmwServ_GuildHandler TmwServ_InventoryHandler TmwServ_ItemHandler TmwServ_LoginHandler TmwServ_LogoutHandler TmwServ_MapHandler TmwServ_NpcHandler TmwServ_PartyHandler TmwServ_PlayerHandler TmwServ_SkillHandler TmwServ_TradeHandler subgraph cluster_accountserver { } subgraph cluster_chatserver { } subgraph cluster_gameserver { } } // Relationships net_AdminHandler->EAthena_AdminHandler MessageHandler->EAthena_AdminHandler MessageHandler->EAthena_BeingHandler MessageHandler->EAthena_BuySellHandler net_CharHandler->EAthena_CharServerHandler MessageHandler->EAthena_CharServerHandler net_ChatHandler->EAthena_ChatHandler MessageHandler->EAthena_ChatHandler MessageHandler->EAthena_EquipmentHandler net_GeneralHandler->EAthena_GeneralHandler MessageHandler->EAthena_GeneralHandler net_InventoryHandler->EAthena_InventoryHandler MessageHandler->EAthena_InventoryHandler MessageHandler->EAthena_ItemHandler net_LoginHandler->EAthena_LoginHandler MessageHandler->EAthena_LoginHandler net_LogoutHandler->EAthena_LogoutHandler MessageHandler->EAthena_LogoutHandler net_MapHandler->EAthena_MapHandler MessageHandler->EAthena_MapHandler net_NpcHandler->EAthena_NpcHandler MessageHandler->EAthena_NpcHandler net_PartyHandler->EAthena_PartyHandler MessageHandler->EAthena_PartyHandler net_PlayerHandler->EAthena_PlayerHandler MessageHandler->EAthena_PlayerHandler net_SkillHandler->EAthena_SkillHandler MessageHandler->EAthena_SkillHandler net_TradeHandler->EAthena_TradeHandler MessageHandler->EAthena_TradeHandler net_AdminHandler->TmwServ_AdminHandler MessageHandler->TmwServ_BeingHandler MessageHandler->TmwServ_BuySellHandler MessageHandler->TmwServ_CharServerHandler net_CharHandler->TmwServ_CharServerHandler net_ChatHandler->TmwServ_ChatHandler MessageHandler->TmwServ_ChatHandler MessageHandler->TmwServ_EffectHandler net_GeneralHandler->TmwServ_GeneralHandler MessageHandler->TmwServ_GuildHandler net_InventoryHandler->TmwServ_InventoryHandler MessagaHandler->TmwServ_InventoryHandler MessageHandler->TmwServ_ItemHandler MessageHandler->TmwServ_LoginHandler net_LoginHandler->TmwServ_LoginHandler MessageHandler->TmwServ_LogoutHandler net_LogoutHandler->TmwServ_LogoutHandler MessageHandler->TmwServ_MapHandler net_MapHandler->TmwServ_MapHandler MessageHandler->TmwServ_NpcHandler net_NpcHandler->TmwServ_NpcHandler MessagaHandler->TmwServ_PartyHandler net_PartyHandler->TmwServ_PartyHandler MessageHandler->TmwServ_PlayerHandler net_PlayerHandler->TmwServ_PlayerHandler net_SkillHandler->TmwServ_SkillHandler MessageHandler->TmwServ_TradeHandler net_TradeHandler->TmwServ_TradeHandler } subgraph cluster_gui { label="Gui" color="Blue" BuddyWindow BuyDialog BuySellDialog ChangeEmailDialog ChangePasswordDialog CharCreateDialog CharSelectDialog ChatWindow ComfirmDialog ConnectionDialog DebugWindow EmotePopup EmoteShortcutContainer EquipmentWindow FocusHandler Gui GuildListBox GuildWindow HelpWindow InventoryWindow ItemAmountWindow ItemContainer ItemLinkHandler ItemPopup ItemShortcutContainer LinkHandler LoginDialog MagicDialog Minimap MinimapStatusWindow NpcDialog NpcPostDialog OkDialog OutfitWindow Palette PartyMember PartyWindow PlayerBox PopupMenu QuitDialog Recorder WrongDataNoticeListener RegisterDialog SDLInput SellDialog ServerListModel ServerDialog ServerSelectDialog Setup_Audio Setup_Colors Setup Setup_Joystick Setup_Keyboard Setup_Players SetupTab Setup_Video ShopItems ShopListBox ShortcutContainer ShortcutWindow SkillDialog Skin SkinLoader SpeechBubble StatusWindow StorageWindow GuiTable TableModelListener TableModel StaticTableModel TextDialog TextRenderer TradeWindow TrueTypeFont UnRegisterDialog UpdaterWindow WindowMenu Viewport subgraph cluster_widgets { label="Widgets" color="Blue" Avatar BrowserBox Button ChannelTab ChatTab CheckBox Container Desktop DropDown Icon IntTextField Label ContainerPlacer LayoutArray LayoutCell Layout LayoutHelper ListBox PasswordField Popup ProgressBar RadioButton ResizeGrip ScrollArea Slider TabbedArea Tab TextBox TextField TextPreview WhisperTab WindowContainer Window ChatTab->ChannelTab Container->Avatar Container->Desktop TextField->IntTextField Tab->ChatTab LayoutCell->Layout Container->Popup TextField->PasswordField ChatTab->WhisperTab Container->WindowContainer } Window->NpcDialog Window->NpcPostDialog Window->OutfitWindow Window->OkDialog Window->PartyWindow Window->RegisterDialog Window->SellDialog Window->ServerDialog Window->ServerSelectDialog Window->Setup Window->ShortcutWindow Window->SkillDialog Window->StatusWindow Window->StorageWindow Window->TextDialog Window->TradeWindow Window->UpdaterWindow Window->UnRegisterDialog Window->GuildWindow Window->HelpWindow Window->InventoryWindow Window->ItemAmountWindow Window->LoginDialog Window->MagicDialog Window->Minimap Window->BuddyWindow Window->BuyDialog Window->BuySellDialog Window->ChangeEmailDialog Window->ChangePasswordDialog Window->CharCreateDialog Window->CharSelectDialog Window->ChatWindow Window->ComfirmDialog Window->DebugWindow Window->ConnectionDialog Window->EquipmentWindow Window->Recorder Window->QuitDialog WindowContainer->Viewport SetupTab->Setup_Audio SetupTab->Setup_Colors SetupTab->Setup_Keyboard SetupTab->Setup_Joystick SetupTab->Setup_Players PlayerRelationsLister->Setup_Players Container->SetupTab SetupTab->Setup_Video TableModel->StaticTableModel Container->WindowMenu TableModelListener->GuiTable Popup->SpeechBubble ListBox->ShopListBox LinkHandler->PopupMenu ListBox->GuildListBox ShortcutContainer->EmoteShortcutContainer Popup->EmotePopup LinkHandler->HelpWindow Popup->ItemPopup ShortcutContainer->ItemShortcutContainer Popup->MinimapStatusWindow Popup->PopupMenu } subgraph cluster_Resources { label="Resources" color="Blue" Action AmbientOverlay Animation DyePalette Dye Image ProxyImage ImageLoader ImageSet ImageWriter ItemInfo MapReader MonsterInfo Music Resource ResourceManager SoundEffect SpriteDef Wallpaper Resource->Image Resource->ImageSet Resource->Music Resource->SoundEffect Resource->SpriteDef } // Relationships between folders gcn_ListModel->Guild gcn_SDLGraphics->Graphics gcn_ActionListener->BuyDialog gcn_SelectionListener->BuyDialog gcn_ActionListener->BuddyWindow gcn_ActionListener->BuySellDialog gcn_ActionListener->ChangeEmailDialog gcn_ActionListener->ChangePasswordDialog gcn_ActionListener->CharCreateDialog gcn_ActionListener->CharSelectDialog gcn_ActionListener->ChatWindow gcn_KeyListener->ChatWindow gcn_ActionListener->ComfirmDialog gcn_ActionListener->ConnectionDialog gcn_MouseListener->EmotePopup gcn_ActionListener->EquipmentWindow gcn_Gui->Gui gcn_ActionListener->GuildWindow gcn_ActionListener->HelpWindow gcn_ActionListener->InventoryWindow gcn_KeyListener->InventoryWindow gcn_SelectionListener->InventoryWindow gcn_ActionListener->ItemAmountWindow gcn_KeyListener->ItemAmountWindow gcn_ActionListener->LoginDialog gcn_KeyListener->LoginDialog gcn_ActionListener->MagicDialog gcn_Widget->ItemContainer gcn_KeyListener->ItemContainer gcn_MouseListener->ItemContainer gcn_WidgetListener->ItemContainer gcn_FocusHandler->FocusHandler gcn_MouseListener->ItemPopup gcn_ActionListener->NpcDialog gcn_ListModel->NpcDialog gcn_ActionListener->NpcPostDialog gcn_ActionListener->OkDialog gcn_ActionListener->OutfitWindow gcn_ActionListener->PartyWindow gcn_ScrollArea->PlayerBox gcn_ListModel->Palette gcn_ActionListener->RegisterDialog gcn_KeyListener->RegisterDialog gcn_ActionListener->WrongDataNoticeListener gcn_ActionListener->QuitDialog gcn_ActionListener->StatusWindow gcn_ActionListener->StorageWindow gcn_SelectionListener->StorageWindow gcn_ActionListener->SkillDialog gcn_Widget->ShortcutContainer gcn_WidgetListener->ShortcutContainer gcn_MouseListener->ShortcutContainer gcn_ActionListener->Setup_Video gcn_KeyListener->Setup_Video gcn_Input->SDLInput gcn_ActionListener->Recorder gcn_ActionListener->SellDialog gcn_SelectionListener->SellDialog gcn_ActionListener->ServerDialog gcn_ActionListener->Setup_Players gcn_ListModel->ServerListModel gcn_ActionListener->ServerSelectDialog gcn_ActionListener->Setup_Audio gcn_ActionListener->Setup_Colors gcn_SelectionListener->Setup_Colors gcn_ActionListener->Setup_Joystick gcn_ActionListener->Setup gcn_ListModel->ShopItems gcn_ActionListener->Setup_Keyboard gcn_ActionListener->TextDialog gcn_ActionListener->UpdaterWindow gcn_ActionListener->WindowMenu gcn_SelectionListener->WindowMenu gcn_ActionListener->UnRegisterDialog gcn_Font->TrueTypeFont gcn_ActionListener->TradeWindow gcn_SelectionListener->TradeWindow gcn_Widget->GuiTable gcn_MouseListener->GuiTable gcn_KeyListener->GuiTable gcn_Widget->TextPreview gcn_Window->Window gcn_Widget->ResizeGrip gcn_ScrollArea->ScrollArea gcn_Slider->Slider gcn_TabbedArea->TabbedArea gcn_Tab->Tab gcn_TextBox->TextBox gcn_TextField->TextField gcn_RadioButton->RadioButton gcn_Widget->ProgressBar gcn_WidgetListener->LayoutHelper gcn_Label->Label gcn_Widget->BrowserBox gcn_MouseListener->BrowserBox gcn_CheckBox->CheckBox gcn_Button->Button gcn_Container->Container gcn_WidgetListener->Desktop gcn_DropDown->DropDown gcn_Widget->Icon gcn_ListBox->ListBox gcn_WidgetListener->Window gcn_MouseListener->Viewport gcn_Image->ProxyImage gcn_ImageLoader->ImageLoader ConfigListener->Viewport ImageSet->Tileset ChatTab->PartyTab }