qmlfrontend/main.cpp
author Wuzzy <Wuzzy2@mail.ru>
Sat, 06 Jun 2020 15:40:51 +0200
changeset 15597 6e72bd61002e
parent 15217 b32c52c76977
child 16010 a73b9770467a
permissions -rw-r--r--
Disable gfMoreWind for land objects on turn end only after a fixed-time delay 15s sounds much, but it's the average amount for gfMineStrike mines to settle naturally. And it would be very confusing to see falling mines suddenly not caring about gfMoreWind for no apparent reason. Note this whole thing is a giant hack anyway, to prevent a turn being blocked by infinitely bouncing mines. The better solution would be to help gfMoreWind-affected land objects settle naturally more reliably even under extreme wind. But this commit is "good enough" for now. If you don't like the delay, you can always tweak the constant.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
14154
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents: 14143
diff changeset
     1
#include <QDebug>
12854
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
     2
#include <QGuiApplication>
14154
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents: 14143
diff changeset
     3
#include <QLibrary>
12854
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
     4
#include <QQmlApplicationEngine>
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
     5
14154
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents: 14143
diff changeset
     6
#include "engine_interface.h"
14371
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
     7
#include "game_view.h"
14143
745c73e0e644 Start working on frontend to rust engine rewrite
unC0Rr
parents: 12854
diff changeset
     8
#include "hwengine.h"
14915
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14854
diff changeset
     9
#include "net_session.h"
14371
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    10
#include "preview_acceptor.h"
14143
745c73e0e644 Start working on frontend to rust engine rewrite
unC0Rr
parents: 12854
diff changeset
    11
14371
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    12
static QObject* previewacceptor_singletontype_provider(
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    13
    QQmlEngine* engine, QJSEngine* scriptEngine) {
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    14
  Q_UNUSED(scriptEngine)
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    15
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    16
  PreviewAcceptor* acceptor = new PreviewAcceptor(engine);
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    17
  return acceptor;
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    18
}
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    19
14143
745c73e0e644 Start working on frontend to rust engine rewrite
unC0Rr
parents: 12854
diff changeset
    20
int main(int argc, char* argv[]) {
12854
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
    21
  QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
    22
  QGuiApplication app(argc, argv);
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
    23
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
    24
  QQmlApplicationEngine engine;
14143
745c73e0e644 Start working on frontend to rust engine rewrite
unC0Rr
parents: 12854
diff changeset
    25
15217
b32c52c76977 Marry C enums, Qt's metaobject system and QML
unc0rr
parents: 14915
diff changeset
    26
  qRegisterMetaType<Engine::SimpleEventType>();
b32c52c76977 Marry C enums, Qt's metaobject system and QML
unc0rr
parents: 14915
diff changeset
    27
  qRegisterMetaType<Engine::LongEventType>();
b32c52c76977 Marry C enums, Qt's metaobject system and QML
unc0rr
parents: 14915
diff changeset
    28
  qRegisterMetaType<Engine::LongEventState>();
b32c52c76977 Marry C enums, Qt's metaobject system and QML
unc0rr
parents: 14915
diff changeset
    29
  qRegisterMetaType<Engine::PositionedEventType>();
14854
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
    30
14371
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    31
  qmlRegisterSingletonType<PreviewAcceptor>(
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    32
      "Hedgewars.Engine", 1, 0, "PreviewAcceptor",
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    33
      previewacceptor_singletontype_provider);
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    34
  qmlRegisterType<HWEngine>("Hedgewars.Engine", 1, 0, "HWEngine");
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    35
  qmlRegisterType<GameView>("Hedgewars.Engine", 1, 0, "GameView");
14915
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14854
diff changeset
    36
  qmlRegisterType<NetSession>("Hedgewars.Engine", 1, 0, "NetSession");
14371
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    37
  qmlRegisterUncreatableType<EngineInstance>("Hedgewars.Engine", 1, 0,
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    38
                                             "EngineInstance",
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    39
                                             "Create by HWEngine run methods");
14143
745c73e0e644 Start working on frontend to rust engine rewrite
unC0Rr
parents: 12854
diff changeset
    40
15217
b32c52c76977 Marry C enums, Qt's metaobject system and QML
unc0rr
parents: 14915
diff changeset
    41
  qmlRegisterUncreatableMetaObject(Engine::staticMetaObject, "Hedgewars.Engine",
b32c52c76977 Marry C enums, Qt's metaobject system and QML
unc0rr
parents: 14915
diff changeset
    42
                                   1, 0, "Engine", "Namespace: only enums");
b32c52c76977 Marry C enums, Qt's metaobject system and QML
unc0rr
parents: 14915
diff changeset
    43
12854
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
    44
  engine.load(QUrl(QLatin1String("qrc:/main.qml")));
14143
745c73e0e644 Start working on frontend to rust engine rewrite
unC0Rr
parents: 12854
diff changeset
    45
  if (engine.rootObjects().isEmpty()) return -1;
12854
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
    46
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
    47
  return app.exec();
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
    48
}