qmlfrontend/hwengine.cpp
branchqmlfrontend
changeset 12876 b544bbbd0696
parent 12863 fe16fa088b69
child 12881 07a267d72fce
equal deleted inserted replaced
12863:fe16fa088b69 12876:b544bbbd0696
     3 #include <QDebug>
     3 #include <QDebug>
     4 #include <QLibrary>
     4 #include <QLibrary>
     5 #include <QQmlEngine>
     5 #include <QQmlEngine>
     6 #include <QUuid>
     6 #include <QUuid>
     7 
     7 
       
     8 #include "gameview.h"
     8 #include "previewimageprovider.h"
     9 #include "previewimageprovider.h"
     9 #include "runqueue.h"
    10 #include "runqueue.h"
    10 
    11 
    11 extern "C" {
    12 extern "C" {
    12 RunEngine_t* flibRunEngine;
    13 RunEngine_t* flibRunEngine;
       
    14 GameTick_t* flibGameTick;
    13 ipcToEngineRaw_t* flibIpcToEngineRaw;
    15 ipcToEngineRaw_t* flibIpcToEngineRaw;
    14 ipcSetEngineBarrier_t* flibIpcSetEngineBarrier;
    16 ipcSetEngineBarrier_t* flibIpcSetEngineBarrier;
    15 ipcRemoveBarrierFromEngineQueue_t* flibIpcRemoveBarrierFromEngineQueue;
    17 ipcRemoveBarrierFromEngineQueue_t* flibIpcRemoveBarrierFromEngineQueue;
    16 registerUIMessagesCallback_t* flibRegisterUIMessagesCallback;
    18 registerUIMessagesCallback_t* flibRegisterUIMessagesCallback;
    17 flibInit_t* flibInit;
    19 flibInit_t* flibInit;
    35 
    37 
    36     if (!hwlib.load())
    38     if (!hwlib.load())
    37         qWarning() << "Engine library not found" << hwlib.errorString();
    39         qWarning() << "Engine library not found" << hwlib.errorString();
    38 
    40 
    39     flibRunEngine = (RunEngine_t*)hwlib.resolve("RunEngine");
    41     flibRunEngine = (RunEngine_t*)hwlib.resolve("RunEngine");
       
    42     flibGameTick = (GameTick_t*)hwlib.resolve("GameTick");
    40     flibIpcToEngineRaw = (ipcToEngineRaw_t*)hwlib.resolve("ipcToEngineRaw");
    43     flibIpcToEngineRaw = (ipcToEngineRaw_t*)hwlib.resolve("ipcToEngineRaw");
    41     flibIpcSetEngineBarrier = (ipcSetEngineBarrier_t*)hwlib.resolve("ipcSetEngineBarrier");
    44     flibIpcSetEngineBarrier = (ipcSetEngineBarrier_t*)hwlib.resolve("ipcSetEngineBarrier");
    42     flibIpcRemoveBarrierFromEngineQueue = (ipcRemoveBarrierFromEngineQueue_t*)hwlib.resolve("ipcRemoveBarrierFromEngineQueue");
    45     flibIpcRemoveBarrierFromEngineQueue = (ipcRemoveBarrierFromEngineQueue_t*)hwlib.resolve("ipcRemoveBarrierFromEngineQueue");
    43     flibRegisterUIMessagesCallback = (registerUIMessagesCallback_t*)hwlib.resolve("registerUIMessagesCallback");
    46     flibRegisterUIMessagesCallback = (registerUIMessagesCallback_t*)hwlib.resolve("registerUIMessagesCallback");
    44     flibInit = (flibInit_t*)hwlib.resolve("flibInit");
    47     flibInit = (flibInit_t*)hwlib.resolve("flibInit");
    68 
    71 
    69 void HWEngine::exposeToQML()
    72 void HWEngine::exposeToQML()
    70 {
    73 {
    71     qDebug("HWEngine::exposeToQML");
    74     qDebug("HWEngine::exposeToQML");
    72     qmlRegisterSingletonType<HWEngine>("Hedgewars.Engine", 1, 0, "HWEngine", hwengine_singletontype_provider);
    75     qmlRegisterSingletonType<HWEngine>("Hedgewars.Engine", 1, 0, "HWEngine", hwengine_singletontype_provider);
       
    76     qmlRegisterType<GameView>("Hedgewars.Engine", 1, 0, "GameView");
    73 }
    77 }
    74 
    78 
    75 void HWEngine::guiMessagesCallback(void* context, MessageType mt, const char* msg, uint32_t len)
    79 void HWEngine::guiMessagesCallback(void* context, MessageType mt, const char* msg, uint32_t len)
    76 {
    80 {
    77     HWEngine* obj = reinterpret_cast<HWEngine*>(context);
    81     HWEngine* obj = reinterpret_cast<HWEngine*>(context);
   108     }
   112     }
   109 }
   113 }
   110 
   114 
   111 void HWEngine::getPreview()
   115 void HWEngine::getPreview()
   112 {
   116 {
   113     m_gameConfig.cmdSeed(QUuid::createUuid().toByteArray());
   117     m_seed = QUuid::createUuid().toByteArray();
       
   118     m_gameConfig.cmdSeed(m_seed);
   114     m_gameConfig.setPreview(true);
   119     m_gameConfig.setPreview(true);
   115 
   120 
   116     m_runQueue->queue(m_gameConfig);
   121     m_runQueue->queue(m_gameConfig);
   117 }
   122 }
   118 
   123 
   119 void HWEngine::runQuickGame()
   124 void HWEngine::runQuickGame()
   120 {
   125 {
   121     m_gameConfig.cmdTheme("Bamboo");
   126     m_gameConfig.cmdSeed(m_seed);
       
   127     m_gameConfig.cmdTheme("Nature");
   122     Team team1;
   128     Team team1;
   123     team1.name = "team1";
   129     team1.name = "team1";
   124     Team team2;
   130     Team team2;
   125     team2.name = "team2";
   131     team2.name = "team2";
   126     team2.color = "7654321";
   132     team2.color = "7654321";