units
This commit is contained in:
+68
-19
@@ -7,45 +7,94 @@
|
||||
#include "terrain.h"
|
||||
#include "tile.h"
|
||||
#include <QMouseEvent>
|
||||
#include <QElapsedTimer>
|
||||
#include <QTimer>
|
||||
#include <vector>
|
||||
#include <QMap>
|
||||
#include "matrix2d.h"
|
||||
#include "unitrenderer.h"
|
||||
#include "gamemanager.h"
|
||||
|
||||
|
||||
class QSceneRenderer : public QOpenGLWidget
|
||||
class QSceneRenderer : public QOpenGLWidget
|
||||
{
|
||||
public:
|
||||
QSceneRenderer(QWidget* parent = Q_NULLPTR) ;
|
||||
inline Matrix2D<TerrainPoint> * getMapPoints() {return m_point;}
|
||||
inline int getNumPointsWidth() const {return m_numPointsWidth;}
|
||||
inline int getNumPointsHeight() const {return m_numPointsHeight;}
|
||||
inline int getNumPoints05() const {return m_numPoints05;}
|
||||
QSceneRenderer(QWidget* parent = Q_NULLPTR);
|
||||
inline Matrix2D<TerrainPoint> * getMapPoints() { return m_point; }
|
||||
inline int getNumPointsWidth() const { return m_numPointsWidth; }
|
||||
inline int getNumPointsHeight() const { return m_numPointsHeight; }
|
||||
inline int getNumPoints05() const { return m_numPoints05; }
|
||||
|
||||
Tile * getTile(int x, int y);
|
||||
protected:
|
||||
void mousePressEvent(QMouseEvent *event);
|
||||
void mouseMoveEvent(QMouseEvent *event);
|
||||
void keyPressEvent(QKeyEvent * e);
|
||||
void wheelEvent(QWheelEvent * e);
|
||||
void initializeGL();
|
||||
void resizeGL(int w, int h);
|
||||
void paintGL();
|
||||
void loadRiverMap(const QImage &riverImg);
|
||||
|
||||
float m_camera_x =10.0;
|
||||
float m_camera_y=0.0;
|
||||
protected:
|
||||
void mousePressEvent(QMouseEvent *event) override;
|
||||
void mouseMoveEvent(QMouseEvent *event) override;
|
||||
void mouseReleaseEvent(QMouseEvent *event) override;
|
||||
void keyPressEvent(QKeyEvent * e) override;
|
||||
void wheelEvent(QWheelEvent * e) override;
|
||||
void initializeGL() override;
|
||||
void resizeGL(int w, int h) override;
|
||||
void paintGL() override;
|
||||
|
||||
// Minimap helpers
|
||||
QRect getMinimapRect() const;
|
||||
QRect getMinimapCardRect() const;
|
||||
QRect getZoomOutButtonRect() const;
|
||||
QRect getZoomResetButtonRect() const;
|
||||
QRect getZoomInButtonRect() const;
|
||||
QRect getMinimapSourceRect() const;
|
||||
QPointF worldToMinimap(float wx, float wy, const QRect &rect) const;
|
||||
QVector2D minimapToWorld(const QPoint &pos, const QRect &rect) const;
|
||||
void drawMinimap(QPainter &painter);
|
||||
|
||||
// Units HUD and 2D overlays
|
||||
void drawUnitsOverlay(QPainter &painter, const QMatrix4x4 &vMatrix);
|
||||
void drawUnitCard(QPainter &painter, Unit *unit);
|
||||
void drawTickBar(QPainter &painter);
|
||||
void drawPathAndRange(QPainter &painter, Unit *unit, const QMatrix4x4 &vMatrix);
|
||||
void drawFloatingTexts(QPainter &painter, const QMatrix4x4 &vMatrix);
|
||||
bool screenToHex(const QPoint &screenPos, const QMatrix4x4 &vMatrix, int &outX, int &outY);
|
||||
QImage getTintedIcon(const QString &path, const QColor &color);
|
||||
|
||||
float m_camera_x = 10.0f;
|
||||
float m_camera_y = 0.0f;
|
||||
QMatrix4x4 Projection;
|
||||
QMatrix4x4 cameraTransformation;
|
||||
QVector3D cameraPosition;
|
||||
QVector3D cameraUpDirection;
|
||||
|
||||
|
||||
Matrix2D<TerrainPoint> * m_point;
|
||||
Matrix2D<Tile> * tiles;
|
||||
QPoint lastPos;
|
||||
float zRot=0;
|
||||
float zRot = 0.0f;
|
||||
float m_numPointsWidth;
|
||||
float m_numPointsHeight;
|
||||
int m_numPoints05;
|
||||
float m_zoom;
|
||||
QElapsedTimer m_elapsedTimer;
|
||||
float m_lastFrameTime;
|
||||
QImage m_image_minimap;
|
||||
bool m_draggingMinimap;
|
||||
float m_minimapZoom;
|
||||
|
||||
// Units & UI state
|
||||
UnitRenderer m_unitRenderer;
|
||||
QMap<QString, QImage> m_iconCache;
|
||||
QMap<QString, QImage> m_tintedIconCache;
|
||||
QPoint m_mouseCurrentPos;
|
||||
|
||||
struct ActionBubble {
|
||||
QRect rect;
|
||||
QString actionId;
|
||||
QString tooltip;
|
||||
};
|
||||
std::vector<ActionBubble> m_activeActionBubbles;
|
||||
|
||||
QRect m_speed1xRect;
|
||||
QRect m_speed2xRect;
|
||||
QRect m_speed5xRect;
|
||||
QRect m_unitCardRect;
|
||||
};
|
||||
|
||||
#endif // QSCENERENDERER_H
|
||||
|
||||
Reference in New Issue
Block a user