2011-01-30 17:22:16 +01:00
|
|
|
/****************************************************************************
|
|
|
|
* Copyright (C) 2010
|
|
|
|
* by Dimok
|
|
|
|
*
|
|
|
|
* This software is provided 'as-is', without any express or implied
|
|
|
|
* warranty. In no event will the authors be held liable for any
|
|
|
|
* damages arising from the use of this software.
|
|
|
|
*
|
|
|
|
* Permission is granted to anyone to use this software for any
|
|
|
|
* purpose, including commercial applications, and to alter it and
|
|
|
|
* redistribute it freely, subject to the following restrictions:
|
|
|
|
*
|
|
|
|
* 1. The origin of this software must not be misrepresented; you
|
|
|
|
* must not claim that you wrote the original software. If you use
|
|
|
|
* this software in a product, an acknowledgment in the product
|
|
|
|
* documentation would be appreciated but is not required.
|
|
|
|
*
|
|
|
|
* 2. Altered source versions must be plainly marked as such, and
|
|
|
|
* must not be misrepresented as being the original software.
|
|
|
|
*
|
|
|
|
* 3. This notice may not be removed or altered from any source
|
|
|
|
* distribution.
|
|
|
|
***************************************************************************/
|
|
|
|
#ifndef BOX_COVER_HPP_
|
|
|
|
#define BOX_COVER_HPP_
|
|
|
|
|
2011-06-14 19:53:19 +02:00
|
|
|
#include "GUI/gui.h"
|
2011-01-30 17:22:16 +01:00
|
|
|
|
2011-02-12 10:50:35 +01:00
|
|
|
#define EFFECT_BOX_FLY_CENTRE 0x2000000
|
|
|
|
#define EFFECT_BOX_FLY_BACK 0x4000000
|
|
|
|
#define EFFECT_BOX_ROTATE_X 0x8000000
|
2011-01-30 17:22:16 +01:00
|
|
|
|
|
|
|
class BoxCover : public GuiImage
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
BoxCover(GuiImageData * img, bool flat = false);
|
|
|
|
~BoxCover();
|
|
|
|
//! Colors:
|
|
|
|
//! Gray Box (Default): r:233 g:233 b:233
|
|
|
|
//! Red Box (NSMB): r:198 g:34 b:4
|
|
|
|
void SetBoxColor(GXColor c) { LOCK(this); boxColor = c; };
|
|
|
|
void SetPosition(f32 x, f32 y, f32 z) { LOCK(this); PosXOrig = PosX = x; PosYOrig = PosY = y; PosZOrig = PosZ = z; };
|
|
|
|
void SetEffect(int eff, int amount, int target = 0);
|
|
|
|
void SetImage(GuiImageData *img); //forbid this call
|
|
|
|
void SetZoomable(bool z) { LOCK(this); Zoomable = z; };
|
|
|
|
void Draw();
|
|
|
|
void Update(GuiTrigger * t);
|
|
|
|
void UpdateEffects();
|
|
|
|
private:
|
2011-02-03 22:46:54 +01:00
|
|
|
void WiiPADControl(GuiTrigger *t);
|
|
|
|
|
2011-01-30 17:22:16 +01:00
|
|
|
f32 RotX;
|
|
|
|
f32 RotY;
|
|
|
|
f32 RotZ;
|
|
|
|
f32 PosX;
|
|
|
|
f32 PosY;
|
|
|
|
f32 PosZ;
|
|
|
|
f32 PosXOrig;
|
|
|
|
f32 PosYOrig;
|
|
|
|
f32 PosZOrig;
|
|
|
|
f32 AnimRotate;
|
|
|
|
f32 Animation;
|
|
|
|
f32 Animation2;
|
|
|
|
u32 last_manual_move_frame;
|
2011-02-03 22:46:54 +01:00
|
|
|
int moveStartPosX;
|
|
|
|
int moveStartPosY;
|
|
|
|
f32 movePosX;
|
|
|
|
f32 movePosY;
|
|
|
|
int moveChan;
|
2011-01-30 17:22:16 +01:00
|
|
|
bool flatCover;
|
|
|
|
bool Zoomable;
|
2011-02-25 19:18:57 +01:00
|
|
|
Mtx44 projection;
|
2011-01-30 17:22:16 +01:00
|
|
|
GuiImageData boxBorder;
|
|
|
|
GuiImageData *defaultBox;
|
2011-02-21 20:41:48 +01:00
|
|
|
GuiImageData *NormalPointers[4];
|
|
|
|
GuiImageData *GrabPointers[4];
|
2011-01-30 17:22:16 +01:00
|
|
|
Mtx view;
|
|
|
|
GXTexObj coverTex;
|
|
|
|
GXTexObj boxBorderTex;
|
|
|
|
GXTexObj defaultBoxTex;
|
|
|
|
GXColor boxColor;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|