~ubuntu-branches/ubuntu/vivid/manaplus/vivid

« back to all changes in this revision

Viewing changes to src/client.cpp

  • Committer: Package Import Robot
  • Author(s): Patrick Matthäi
  • Date: 2014-09-30 18:10:18 UTC
  • mfrom: (1.1.35)
  • Revision ID: package-import@ubuntu.com-20140930181018-pb73a0ogw29tjv8k
Tags: 1.4.9.27-1
* New upstream release.
* Bump Standards-Version to 3.9.6 (no changes required).

Show diffs side-by-side

added added

removed removed

Lines of Context:
101
101
#include "resources/db/colordb.h"
102
102
#include "resources/db/deaddb.h"
103
103
#include "resources/db/emotedb.h"
 
104
#include "resources/db/homunculusdb.h"
104
105
#include "resources/db/sounddb.h"
105
106
#include "resources/db/itemdb.h"
106
107
#include "resources/db/mapdb.h"
 
108
#include "resources/db/mercenarydb.h"
107
109
#include "resources/db/moddb.h"
108
110
#include "resources/db/monsterdb.h"
109
111
#include "resources/db/npcdb.h"
264
266
#endif
265
267
    ConfigManager::backupConfig("config.xml");
266
268
    ConfigManager::initConfiguration();
 
269
    Net::loadIgnorePackets();
267
270
    paths.setDefaultValues(getPathsDefaults());
268
271
    initFeatures();
269
272
    logger->log("init 4");
607
610
    SoundDB::unload();
608
611
    EmoteDB::unload();
609
612
    ItemDB::unload();
 
613
    MercenaryDB::unload();
 
614
    HomunculusDB::unload();
610
615
    MonsterDB::unload();
611
616
    NPCDB::unload();
612
617
    AvatarDB::unload();
616
621
    StatusEffect::unload();
617
622
    ModDB::unload();
618
623
 
619
 
    if (Net::getLoginHandler())
620
 
        Net::getLoginHandler()->clearWorlds();
 
624
    if (loginHandler)
 
625
        loginHandler->clearWorlds();
621
626
 
622
 
    if (Net::getChatHandler())
623
 
        Net::getChatHandler()->clear();
 
627
    if (chatHandler)
 
628
        chatHandler->clear();
624
629
 
625
630
    delete2(ipc);
626
631
 
645
650
    delete2(popupManager);
646
651
    delete2(gui);
647
652
 
648
 
    if (Net::getInventoryHandler())
649
 
        Net::getInventoryHandler()->clear();
 
653
    if (inventoryHandler)
 
654
        inventoryHandler->clear();
650
655
 
651
656
    if (logger)
652
657
        logger->log1("Quitting3");
765
770
            continue;
766
771
 
767
772
        BLOCK_START("Client::gameExec 3")
768
 
        if (Net::getGeneralHandler())
769
 
            Net::getGeneralHandler()->flushNetwork();
 
773
        if (generalHandler)
 
774
            generalHandler->flushNetwork();
770
775
        BLOCK_END("Client::gameExec 3")
771
776
 
772
777
        BLOCK_START("Client::gameExec 4")
816
821
 
817
822
        BLOCK_START("Client::gameExec 6")
818
823
        if (mState == STATE_CONNECT_GAME &&
819
 
            Net::getGameHandler()->isConnected())
 
824
            gameHandler->isConnected())
820
825
        {
821
 
            Net::getLoginHandler()->disconnect();
 
826
            loginHandler->disconnect();
822
827
        }
823
828
        else if (mState == STATE_CONNECT_SERVER &&
824
829
                 mOldState == STATE_CHOOSE_SERVER)
885
890
        }
886
891
        else if (mState == STATE_CONNECT_SERVER &&
887
892
                 mOldState != STATE_CHOOSE_SERVER &&
888
 
                 Net::getLoginHandler()->isConnected())
 
893
                 loginHandler->isConnected())
889
894
        {
890
895
            mState = STATE_PRE_LOGIN;
891
896
        }
892
897
        else if (mState == STATE_WORLD_SELECT && mOldState == STATE_UPDATE)
893
898
        {
894
 
            if (Net::getLoginHandler()->getWorlds().size() < 2)
 
899
            if (loginHandler->getWorlds().size() < 2)
895
900
                mState = STATE_PRE_LOGIN;
896
901
        }
897
902
        else if (mOldState == STATE_START ||
939
944
        BLOCK_END("Client::gameExec 6")
940
945
 
941
946
        if (mState == STATE_SWITCH_LOGIN && mOldState == STATE_GAME)
942
 
            Net::getGameHandler()->disconnect();
 
947
            gameHandler->disconnect();
943
948
 
944
949
        if (mState != mOldState)
945
950
        {
956
961
                Party::clearParties();
957
962
                Guild::clearGuilds();
958
963
                NpcDialog::clearDialogs();
959
 
                Net::getGuildHandler()->clear();
960
 
                Net::getPartyHandler()->clear();
 
964
                guildHandler->clear();
 
965
                partyHandler->clear();
961
966
                if (chatLogger)
962
967
                    chatLogger->clear();
963
968
                if (!settings.options.dataPath.empty())
1021
1026
 
1022
1027
                    loginData.clearUpdateHost();
1023
1028
                    serverVersion = 0;
 
1029
                    tmwServerVersion = 0;
1024
1030
 
1025
1031
                    // Allow changing this using a server choice dialog
1026
1032
                    // We show the dialog box only if the command-line
1106
1112
                        // TRANSLATORS: connection dialog header
1107
1113
                        _("Logging in"), STATE_SWITCH_SERVER);
1108
1114
                    mCurrentDialog->postInit();
1109
 
                    Net::getLoginHandler()->loginOrRegister(&loginData);
 
1115
                    loginHandler->loginOrRegister(&loginData);
1110
1116
                    BLOCK_END("Client::gameExec STATE_LOGIN_ATTEMPT")
1111
1117
                    break;
1112
1118
 
1115
1121
                    logger->log1("State: WORLD SELECT");
1116
1122
                    {
1117
1123
                        TranslationManager::loadCurrentLang();
1118
 
                        Worlds worlds = Net::getLoginHandler()->getWorlds();
 
1124
                        Worlds worlds = loginHandler->getWorlds();
1119
1125
 
1120
1126
                        if (worlds.empty())
1121
1127
                        {
1124
1130
                        }
1125
1131
                        else if (worlds.size() == 1)
1126
1132
                        {
1127
 
                            Net::getLoginHandler()->chooseServer(
 
1133
                            loginHandler->chooseServer(
1128
1134
                                0, mCurrentServer.persistentIp);
1129
1135
                            mState = STATE_UPDATE;
1130
1136
                        }
1247
1253
                    MapDB::load();
1248
1254
                    ItemDB::load();
1249
1255
                    Being::load();
 
1256
                    MercenaryDB::load();
 
1257
                    HomunculusDB::load();
1250
1258
                    MonsterDB::load();
1251
1259
                    AvatarDB::load();
1252
1260
                    WeaponsDB::load();
1274
1282
                        _("Requesting characters"),
1275
1283
                        STATE_SWITCH_SERVER);
1276
1284
                    mCurrentDialog->postInit();
1277
 
                    Net::getCharServerHandler()->requestCharacters();
 
1285
                    charServerHandler->requestCharacters();
1278
1286
                    BLOCK_END("Client::gameExec STATE_GET_CHARACTERS")
1279
1287
                    break;
1280
1288
 
1314
1322
                        _("Connecting to the game server"),
1315
1323
                        STATE_CHOOSE_SERVER);
1316
1324
                    mCurrentDialog->postInit();
1317
 
                    Net::getGameHandler()->connect();
 
1325
                    gameHandler->connect();
1318
1326
                    BLOCK_END("Client::gameExec STATE_CONNECT_GAME")
1319
1327
                    break;
1320
1328
 
1326
1334
                        _("Changing game servers"),
1327
1335
                        STATE_SWITCH_CHARACTER);
1328
1336
                    mCurrentDialog->postInit();
1329
 
                    Net::getGameHandler()->connect();
 
1337
                    gameHandler->connect();
1330
1338
                    BLOCK_END("Client::gameExec STATE_CHANGE_MAP")
1331
1339
                    break;
1332
1340
 
1368
1376
                    mCurrentDialog = nullptr;
1369
1377
 
1370
1378
                    logger->log1("State: GAME");
1371
 
                    if (Net::getGeneralHandler())
1372
 
                        Net::getGeneralHandler()->reloadPartially();
 
1379
                    if (generalHandler)
 
1380
                        generalHandler->reloadPartially();
1373
1381
                    mGame = new Game;
1374
1382
                    BLOCK_END("Client::gameExec STATE_GAME")
1375
1383
                    break;
1409
1417
                        // TRANSLATORS: connection dialog header
1410
1418
                        _("Requesting registration details"), STATE_LOGIN);
1411
1419
                    mCurrentDialog->postInit();
1412
 
                    Net::getLoginHandler()->getRegistrationDetails();
 
1420
                    loginHandler->getRegistrationDetails();
1413
1421
                    BLOCK_END("Client::gameExec STATE_REGISTER_PREP")
1414
1422
                    break;
1415
1423
 
1422
1430
                case STATE_REGISTER_ATTEMPT:
1423
1431
                    BLOCK_START("Client::gameExec STATE_REGISTER_ATTEMPT")
1424
1432
                    logger->log("Username is %s", loginData.username.c_str());
1425
 
                    Net::getLoginHandler()->registerAccount(&loginData);
 
1433
                    loginHandler->registerAccount(&loginData);
1426
1434
                    BLOCK_END("Client::gameExec STATE_REGISTER_ATTEMPT")
1427
1435
                    break;
1428
1436
 
1438
1446
                    BLOCK_START("Client::gameExec "
1439
1447
                        "STATE_CHANGEPASSWORD_ATTEMPT")
1440
1448
                    logger->log1("State: CHANGE PASSWORD ATTEMPT");
1441
 
                    Net::getLoginHandler()->changePassword(loginData.username,
 
1449
                    loginHandler->changePassword(loginData.username,
1442
1450
                        loginData.password, loginData.newPassword);
1443
1451
                    BLOCK_END("Client::gameExec STATE_CHANGEPASSWORD_ATTEMPT")
1444
1452
                    break;
1469
1477
 
1470
1478
                case STATE_CHANGEEMAIL_ATTEMPT:
1471
1479
                    logger->log1("State: CHANGE EMAIL ATTEMPT");
1472
 
                    Net::getLoginHandler()->changeEmail(loginData.email);
 
1480
                    loginHandler->changeEmail(loginData.email);
1473
1481
                    break;
1474
1482
 
1475
1483
                case STATE_CHANGEEMAIL_SUCCESS:
1494
1502
 
1495
1503
                case STATE_UNREGISTER_ATTEMPT:
1496
1504
                    logger->log1("State: UNREGISTER ATTEMPT");
1497
 
                    Net::getLoginHandler()->unregisterAccount(
 
1505
                    loginHandler->unregisterAccount(
1498
1506
                            loginData.username, loginData.password);
1499
1507
                    break;
1500
1508
 
1501
1509
                case STATE_UNREGISTER_SUCCESS:
1502
1510
                    logger->log1("State: UNREGISTER SUCCESS");
1503
 
                    Net::getLoginHandler()->disconnect();
 
1511
                    loginHandler->disconnect();
1504
1512
 
1505
1513
                    mCurrentDialog = DialogsManager::openErrorDialog(
1506
1514
                        // TRANSLATORS: unregister message header
1517
1525
                    BLOCK_START("Client::gameExec STATE_SWITCH_SERVER")
1518
1526
                    logger->log1("State: SWITCH SERVER");
1519
1527
 
1520
 
                    Net::getLoginHandler()->disconnect();
1521
 
                    Net::getGameHandler()->disconnect();
1522
 
                    Net::getGameHandler()->clear();
 
1528
                    loginHandler->disconnect();
 
1529
                    gameHandler->disconnect();
 
1530
                    gameHandler->clear();
1523
1531
                    settings.serverName.clear();
1524
1532
                    serverConfig.write();
1525
1533
                    serverConfig.unload();
1534
1542
                    BLOCK_START("Client::gameExec STATE_SWITCH_LOGIN")
1535
1543
                    logger->log1("State: SWITCH LOGIN");
1536
1544
 
1537
 
                    Net::getLoginHandler()->logout();
1538
 
                    Net::getLoginHandler()->disconnect();
1539
 
                    Net::getGameHandler()->disconnect();
1540
 
                    Net::getLoginHandler()->connect();
 
1545
                    loginHandler->logout();
 
1546
                    loginHandler->disconnect();
 
1547
                    gameHandler->disconnect();
 
1548
                    loginHandler->connect();
1541
1549
 
1542
1550
                    mState = STATE_LOGIN;
1543
1551
                    BLOCK_END("Client::gameExec STATE_SWITCH_LOGIN")
1548
1556
                    logger->log1("State: SWITCH CHARACTER");
1549
1557
 
1550
1558
                    // Done with game
1551
 
                    Net::getGameHandler()->disconnect();
 
1559
                    gameHandler->disconnect();
1552
1560
 
1553
1561
                    mState = STATE_GET_CHARACTERS;
1554
1562
                    BLOCK_END("Client::gameExec STATE_SWITCH_CHARACTER")
1572
1580
                case STATE_FORCE_QUIT:
1573
1581
                    BLOCK_START("Client::gameExec STATE_FORCE_QUIT")
1574
1582
                    logger->log1("State: FORCE QUIT");
1575
 
                    if (Net::getGeneralHandler())
1576
 
                        Net::getGeneralHandler()->unload();
 
1583
                    if (generalHandler)
 
1584
                        generalHandler->unload();
1577
1585
                    mState = STATE_EXIT;
1578
1586
                    BLOCK_END("Client::gameExec STATE_FORCE_QUIT")
1579
1587
                  break;
1592
1600
                        true);
1593
1601
                    mCurrentDialog->addActionListener(&errorListener);
1594
1602
                    mCurrentDialog = nullptr;  // OkDialog deletes itself
1595
 
                    Net::getGameHandler()->disconnect();
 
1603
                    gameHandler->disconnect();
1596
1604
                    BLOCK_END("Client::gameExec STATE_ERROR")
1597
1605
                    break;
1598
1606
 
1702
1710
{
1703
1711
    features.init(paths.getStringValue("featuresFile"), true);
1704
1712
    features.setDefaultValues(getFeaturesDefaults());
 
1713
    settings.fixDeadAnimation = features.getBoolValue("fixDeadAnimation");
1705
1714
}
1706
1715
 
1707
1716
void Client::initTradeFilter()