/* * ORXONOX - the hottest 3D action shooter ever to exist * > www.orxonox.net < * * * License notice: * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * * Author: * Fabian 'x3n' Landau * Co-authors: * Damian 'Mozork' Frick * */ /** @defgroup Util Util The util library contains several functions, classes, and templates that can be used in different parts of the Orxonox-code. They provide functionalities for mathematical use, string manipulation, typeconversion, multi-types, error- and exception-handling, debug output, and many more. */ /** @defgroup Core Core The core library contains the framework of Orxonox - all important classes, functions, and macros that are used to create and manage classes and objects. Almost all classes in Orxonox need at least one of the core features. */ /** @defgroup Class Class management @ingroup Core */ /** @defgroup Object Object management @ingroup Core */ /** @defgroup Command Command @ingroup Core */ /** @defgroup Config Config @ingroup Core */ /** @defgroup Input Input @ingroup Core */ /** @defgroup Management Management @ingroup Core */ /** @defgroup XML XML @ingroup Core */ /** @defgroup Network Network The network library is used to connect clients and server, to synchronize objects and variables, and to transmit network function calls. It contains the central @ref orxonox::Server "Server" and @ref orxonox::Client "Client" classes as well as several functions and macros for @ref orxonox::Synchronisable "synchronisable" classes. */ /** @defgroup Tools Tools The tools are a bunch of utilities that belong to the Orxonox library, but are independent of other features. */ /** @defgroup Orxonox Orxonox The Orxonox library contains the central and most important classes of the game. Managers, interfaces, base-classes, and more are located in Orxonox. More specialized classes that inherit of the base-classes in Orxonox are often sourced out to the modules. */ /** @defgroup Modules Modules The modules are libraries that depend on the Orxonox library and that are loaded dynamically on runtime (in contrast to statically loaded libraries like util and core). Each module contains some classes that are usually connected to each other, but they are independent of other modules. However modules can still link to other modules, but only in a hierarchical order, no circular dependencies. */ /** @defgroup Designtools Designtools @ingroup Modules */ /** @defgroup Notifications Notifications @ingroup Modules @ref orxonox::Notification "Notifications" are short messages, that can be sent from anywhere in Orxonox and then are displayed on the screen to inform the user about some occurence he has to know about. Such an occurence could be, that he just shot and killed his Archnemesis Overlord3, that he just got a new Pickup or that he received a Quest and needs to have a look at the Quest-Menu. @section NotificationsUsage Usage Let's very briefly talk about what you have to do to either send @ref orxonox::Notification "Notifications" from some part of Orxonox or display Notifications on your screen. @subsection NotifictionsSending Sending notifications Sending a new @ref orxonox::Notification "Notification" from (almost) anywhere in Orxonox is fairly easy. You first have to decide on a message, it shouldn't be too long but be long enough to get your point accross. Then you have to decide on a sender. The sender is a string by which the different @ref orxonox::NotificationQueue "NotificationQueues" (the entities that display the @ref orxonox::Notification "Notifications") can decide whether they should display the @ref orxonox::Notification "Notification" or not. So the sender is some string that identifies a group of @ref orxonox::Notification "Notifications" that have something in common or some entity that is sending them. For example: All @ref orxonox::Notification "Notifications" sent by any part of the Questsystem have "questsystem" as sender and thus we could create a @ref orxonox::NotificationQueue "NotificationQueue" that only displays @ref orxonox::Notification "Notifications" from the Questsystem, but more to that later. And lastly you have to decide to whom you want to send this @ref orxonox::Notification "Notification". You have to get the clientId of the intended recipient (e.g. trough a @ref orxonox::PlayerInfo "PlayerInfo") or you only send the @ref orxonox::Notification "Notification" locally, either by setting the clientId to Host::getPlayerID() or by setting the variable 'isLocal' to true, and setting clientId to what ever you want, since it will be ignored. Once you have decided all that you can send the Notification by calling: @code NotificationManager::sendNotification(message, clientId, sender, isLocal); // isLocal = false can be ommitted since that is the default value. @endcode @subsection NotificationsDisplay Displaying notifications Displaying @ref orxonox::Notification "Notifications" is even easier, all you need to do is to load the NotificationLayer in the level, where you want @ref orxonox::Notification "Notifications" displayed. You can either do this manually by executing the following command in the console: @code showGUI NotificationLayer false true @endcode Or automatically, by adding a @ref orxonox::Script "Script" to the levelfile that does it for you: @code