I've patched the problem so that ActionLayer checks for a valid ID before doing anything, and does a no-op for IDs it doesn't know how to handle. However, this only fixes the problem during gameplay. It's quite possible that hitting the triangle button in other places in the app might equally cause a crash. Issue: 544
48 lines
1.1 KiB
C++
48 lines
1.1 KiB
C++
/*
|
|
A class for very simple menus structure
|
|
*/
|
|
#ifndef _SIMPLEMENU_H_
|
|
#define _SIMPLEMENU_H_
|
|
|
|
#include <string>
|
|
#include <JGui.h>
|
|
#include "WFont.h"
|
|
#include "hge/hgeparticle.h"
|
|
|
|
class SimpleMenu:public JGuiController{
|
|
private:
|
|
float mHeight, mWidth, mX, mY;
|
|
int fontId;
|
|
std::string title;
|
|
int displaytitle;
|
|
int maxItems,startId;
|
|
float selectionT, selectionY;
|
|
float timeOpen;
|
|
bool mClosed;
|
|
|
|
static JQuad *spadeR, *spadeL, *jewel, *side;
|
|
static JTexture *spadeRTex, *spadeLTex, *jewelTex, *sideTex;
|
|
static WFont* titleFont;
|
|
static hgeParticleSystem* stars;
|
|
|
|
inline void MogrifyJewel();
|
|
void drawHorzPole(float x, float y, float width);
|
|
void drawVertPole(float x, float y, float height);
|
|
|
|
public:
|
|
bool autoTranslate;
|
|
SimpleMenu(int id, JGuiListener* listener, int fontId, float x, float y, const char * _title = "", int _maxItems = 7);
|
|
virtual ~SimpleMenu();
|
|
void Render();
|
|
void Update(float dt);
|
|
void Add(int id, const char * Text,string desc = "", bool forceFocus = false);
|
|
void Close();
|
|
|
|
float selectionTargetY;
|
|
bool isClosed() { return mClosed; }
|
|
static void destroy();
|
|
};
|
|
|
|
|
|
#endif
|