Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/output/src/Orxonox.cc @ 8904

Last change on this file since 8904 was 8830, checked in by landauf, 13 years ago

added some output (user and internal) throughout the initialization of the game, graphics, and game states

  • Property svn:eol-style set to native
File size: 2.8 KB
Line 
1/*
2 *   ORXONOX - the hottest 3D action shooter ever to exist
3 *                    > www.orxonox.net <
4 *
5 *
6 *   License notice:
7 *
8 *   This program is free software; you can redistribute it and/or
9 *   modify it under the terms of the GNU General Public License
10 *   as published by the Free Software Foundation; either version 2
11 *   of the License, or (at your option) any later version.
12 *
13 *   This program is distributed in the hope that it will be useful,
14 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
15 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 *   GNU General Public License for more details.
17 *
18 *   You should have received a copy of the GNU General Public License
19 *   along with this program; if not, write to the Free Software
20 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
21 *
22 *   Author:
23 *      Benjamin Knecht <beni_at_orxonox.net>, (C) 2007
24 *      Reto Grieder
25 *   Co-authors:
26 *      ...
27 *
28 */
29
30/**
31@file
32@brief
33    Entry point of the program.
34*/
35
36#include "SpecialConfig.h"
37
38#ifdef ORXONOX_USE_WINMAIN
39# ifndef WIN32_LEAN_AND_MEAN
40#  define WIN32_LEAN_AND_MEAN
41# endif
42#include <windows.h>
43#endif
44
45#include "util/Output.h"
46#include "util/Exception.h"
47#include "orxonox/Main.h"
48
49/*
50@brief
51    Main method. Game starts here (except for static initialisations).
52*/
53#ifdef ORXONOX_USE_WINMAIN
54INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT)
55#elif defined(ORXONOX_PLATFORM_APPLE)
56int main_mac(int argc, char** argv)
57#else
58int main(int argc, char** argv)
59#endif
60{
61    using namespace orxonox;
62
63    orxout(user_status) << "Welcome to Orxonox (v" << ORXONOX_VERSION_MAJOR << '.' << ORXONOX_VERSION_MINOR << '.' << ORXONOX_VERSION_PATCH << ' ' << ORXONOX_VERSION_NAME << ')' << endl;
64    orxout(internal_status) << "Congratulations, you survived the static initialization. Entering main()" << endl;
65    if (argc > 0)
66        orxout(internal_info) << "argv[0]: " << argv[0] << endl;
67
68    try
69    {
70#ifndef ORXONOX_USE_WINMAIN
71
72#ifdef ORXONOX_PLATFORM_APPLE
73        // On Apples, the kernel supplies a second argument, which we have to circumvent
74        const int firstArgument = 2;
75#else
76        // 0 is the execution path
77        const int firstArgument = 1;
78#endif
79
80        std::string strCmdLine;
81        for (int i = firstArgument; i < argc; ++i)
82            strCmdLine = strCmdLine + argv[i] + ' ';
83#endif
84
85        int value = main(strCmdLine);
86        orxout(internal_status) << "Terminating main() normally with value " << value << endl;
87        return value;
88    }
89    catch (...)
90    {
91        orxout(user_error) << "Exception caught in main(): " << orxonox::Exception::handleMessage() << endl;
92        orxout(user_error) << "Terminating program." << endl;
93        return 1;
94    }
95}
Note: See TracBrowser for help on using the repository browser.