- fix issue 20 (triangle button usage inplay)
- close issue 27 (gold effect on the gold bar). Please feel free to change the gold glow if you come up with something better, but I consider this perfectly releasable now
- code cleanup
This commit is contained in:
wagic.the.homebrew@gmail.com
2009-09-24 12:32:08 +00:00
parent 8d6f3567ed
commit 7bc8bba6f1
7 changed files with 31 additions and 70 deletions

View File

@@ -135,11 +135,6 @@ class ActionStack :public GuiLayer{
int mode;
int checked;
/*
void unpackDamageStacks();
void unpackDamageStack(DamageStack * ds);
void repackDamageStacks();
*/
public:
enum{

View File

@@ -26,7 +26,8 @@ struct CardGui : public PlayGuiObject {
CardGui(MTGCardInstance* card, float x, float y);
CardGui(MTGCardInstance* card, const Pos& ref);
virtual void Render();
void RenderBig(const Pos&);
void RenderBig(const Pos&); //Tries to render the Big version of a card picture, backups to text version in case of failure
void alternateRenderBig(const Pos&); //Renders Text Version of a card
virtual void Update(float dt);
static void alternateRender(MTGCard * card, const Pos& pos);
static JQuad * alternateThumbQuad(MTGCard * card);

View File

@@ -38,7 +38,7 @@ class ObjectSelector : public GuiLayer
protected:
vector<T*> cards;
T* active;
bool showBig;
int bigMode;
DuelLayers* duel;
LimitorFunctor<T>* limitor;
Pos bigpos;

View File

@@ -452,17 +452,7 @@ int ActionStack::resolve(){
action->state = RESOLVED_NOK;
}
if (action->type == ACTION_DAMAGE) ((Damage * )action)->target->afterDamage();
/*
if (action->type == ACTION_DAMAGES){
DamageStack * ds = (DamageStack *) action;
for (int i = 0; i < ds->mCount; i++){
Damage * damage = ((Damage *) ds->mObjects[i]);
damage->state = ds->state;
}
unpackDamageStack(ds);
ds->mCount = 0;
}
*/
if (!getNext(NULL,NOT_RESOLVED)){
for (int i = 0; i< 2 ; i++){
interruptDecision[i] = 0;
@@ -537,52 +527,6 @@ Interruptible * ActionStack::getLatest(int state){
return NULL;
}
/*
void ActionStack::unpackDamageStack(DamageStack * ds){
for (int j = 0; j < ds->mCount; j++){
Damage * damage = ((Damage *)ds->mObjects[j]);
Add(damage);
}
}
void ActionStack::unpackDamageStacks(){
for (int i = mCount-1; i >=0; i--){
Interruptible * action = ((Interruptible *)mObjects[i]);
if (action->type == ACTION_DAMAGES){
DamageStack * ds = (DamageStack *) action;
unpackDamageStack(ds);
}
}
}
void ActionStack::repackDamageStacks(){
std::vector<JGuiObject *>::iterator iter = mObjects.begin() ;
while( iter != mObjects.end() ){
Interruptible * action = ((Interruptible *) *iter);
int found = 0;
if (action->type == ACTION_DAMAGE){
Damage * damage = (Damage *) action;
for (int j = 0; j < mCount; j++){
Interruptible * action2 = ((Interruptible *)mObjects[j]);
if (action2->type == ACTION_DAMAGES){
DamageStack * ds = (DamageStack *) action2;
for (int k = 0; k< ds->mCount; k++){
Damage * dsdamage = ((Damage *)ds->mObjects[k]);
if (dsdamage==damage){
//Remove(damage);
iter = mObjects.erase( iter ) ;
found = 1;
mCount--;
}
}
}
}
}
if (!found) ++iter;
}
}
*/
void ActionStack::Update(float dt){
askIfWishesToInterrupt = NULL;
//modal = 0;

View File

@@ -238,6 +238,10 @@ void CardGui::alternateRender(MTGCard * card, const Pos& pos){
font->SetScale(backup_scale);
}
void CardGui::alternateRenderBig(const Pos& pos){
alternateRender(card,pos);
}
void CardGui::RenderBig(const Pos& pos){
JRenderer * renderer = JRenderer::GetInstance();

View File

@@ -7,6 +7,14 @@
using std::cout;
enum {
BIG_MODE_SHOW = 0,
BIG_MODE_TEXT = 1,
BIG_MODE_HIDE = 2,
NB_BIG_MODES = 3
};
struct Left : public Exp { static inline bool test(CardSelector::Target* ref, CardSelector::Target* test)
{ return ref->x - test->x > fabs(ref->y - test->y); } };
struct Right : public Exp { static inline bool test(CardSelector::Target* ref, CardSelector::Target* test)
@@ -21,7 +29,7 @@ struct True : public Exp { static inline bool test(CardSelector::Target* ref, Ca
{ return true; } };
template<>
CardSelector::ObjectSelector(DuelLayers* duel) : active(NULL), showBig(true), duel(duel), limitor(NULL), bigpos(300, 150, 1.0, 0.0, 220) {}
CardSelector::ObjectSelector(DuelLayers* duel) : active(NULL), bigMode(BIG_MODE_SHOW), duel(duel), limitor(NULL), bigpos(300, 150, 1.0, 0.0, 220) {}
template<>
void CardSelector::Add(CardSelector::Target* target)
@@ -132,7 +140,7 @@ bool CardSelector::CheckUserInput(u32 key)
active = closest<Down>(cards, limitor, active);
break;
case PSP_CTRL_TRIANGLE:
showBig = !showBig;
bigMode = (bigMode+1) % NB_BIG_MODES;
return true;
default:
return false;
@@ -179,9 +187,18 @@ void CardSelector::Render()
if (active)
{
active->Render();
if (CardView* c = dynamic_cast<CardView*>(active))
if (showBig)
c->RenderBig(bigpos);
if (CardView* c = dynamic_cast<CardView*>(active)){
switch(bigMode){
case BIG_MODE_SHOW:
c->RenderBig(bigpos);
break;
case BIG_MODE_TEXT:
c->alternateRenderBig(bigpos);
break;
default:
break;
}
}
}
}

View File

@@ -23,7 +23,7 @@ GuiFrame::GuiFrame()
GameApp::systemError += "Can't load gold texture : " __FILE__ "\n";
}
if (resources.GetTexture("goldglow.png"))
goldGlow = resources.RetrieveQuad("goldglow.png", 0, 1, SCREEN_WIDTH, 18);
goldGlow = resources.RetrieveQuad("goldglow.png", 1, 1, SCREEN_WIDTH - 2, 18);
else
{
goldGlow = NULL;