Files
wagic/projects/mtg/include/SimpleMenu.h
wrenczes@gmail.com 92bbb78ed1 Fix for [PSP|PC]ability menus and card view switch causes a crash. This broke as a side effect to the addition of the 'details' option that Mike added - the ActionStack had very rigid interpretations of what a valid control ID would be (either -1, or a valid id in its container). As kInfoMenuID is assigned a value of -200, this would crash when attempting to look up that index value in the vector.
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
2010-12-04 04:25:43 +00:00

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