Jeck - Please review. Shop antialiasing, multicolored card recieves gold texture.
* Moved shop text ("press square for other cards") etc, to ShopItems, so they rendered properly (all in one place, after AA)
* The AA is really more a proof of concept than anything else. To do it properly I'd need a double-resolution copy of shop.jpg.
* The real multicolored card has a greenish tint, and is darker. What do you think of gold.jpg? Should we tint it more that way?
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 151 KiB After Width: | Height: | Size: 166 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 60 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 19 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.6 KiB |
@@ -23,7 +23,7 @@ class GameStateShop: public GameState, public JGuiListener
|
|||||||
JLBFont * itemFont;
|
JLBFont * itemFont;
|
||||||
JQuad * mBg;
|
JQuad * mBg;
|
||||||
JTexture * bgTexture;
|
JTexture * bgTexture;
|
||||||
JTexture * altThumb[7];
|
JTexture * altThumb[8];
|
||||||
JQuad * mBack;
|
JQuad * mBack;
|
||||||
SimpleMenu * menu;
|
SimpleMenu * menu;
|
||||||
int mStage;
|
int mStage;
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ class hgeDistortionMesh;
|
|||||||
|
|
||||||
class ShopItem:public JGuiObject{
|
class ShopItem:public JGuiObject{
|
||||||
private:
|
private:
|
||||||
|
friend class ShopItems;
|
||||||
bool mHasFocus;
|
bool mHasFocus;
|
||||||
bool mRelease;
|
bool mRelease;
|
||||||
JLBFont *mFont;
|
JLBFont *mFont;
|
||||||
@@ -58,6 +59,7 @@ class ShopItems:public JGuiController,public JGuiListener{
|
|||||||
PriceList * pricelist;
|
PriceList * pricelist;
|
||||||
int mX, mY, mHeight;
|
int mX, mY, mHeight;
|
||||||
JLBFont* mFont;
|
JLBFont* mFont;
|
||||||
|
JQuad * mBgAA;
|
||||||
MTGAllCards * collection;
|
MTGAllCards * collection;
|
||||||
SimpleMenu * dialog;
|
SimpleMenu * dialog;
|
||||||
int showPriceDialog;
|
int showPriceDialog;
|
||||||
|
|||||||
@@ -115,17 +115,28 @@ void CardGui::Render()
|
|||||||
|
|
||||||
JQuad * CardGui::alternateThumbQuad(MTGCard * card){
|
JQuad * CardGui::alternateThumbQuad(MTGCard * card){
|
||||||
JQuad * q;
|
JQuad * q;
|
||||||
switch(card->getColor())
|
int nb_colors = 0;
|
||||||
{
|
for(int i=0;i<Constants::MTG_NB_COLORS;i++){
|
||||||
case Constants::MTG_COLOR_ARTIFACT : q = resources.RetrieveTempQuad("artifact_thumb.jpg");break;
|
if(card->colors[i])
|
||||||
case Constants::MTG_COLOR_GREEN: q = resources.RetrieveTempQuad("green_thumb.jpg");break;
|
nb_colors++;
|
||||||
case Constants::MTG_COLOR_BLUE : q = resources.RetrieveTempQuad("blue_thumb.jpg");break;
|
}
|
||||||
case Constants::MTG_COLOR_RED : q = resources.RetrieveTempQuad("red_thumb.jpg");break;
|
|
||||||
case Constants::MTG_COLOR_BLACK: q = resources.RetrieveTempQuad("black_thumb.jpg");break;
|
if(nb_colors > 1){
|
||||||
case Constants::MTG_COLOR_WHITE: q = resources.RetrieveTempQuad("white_thumb.jpg");break;
|
q = resources.RetrieveTempQuad("gold_thumb.jpg");
|
||||||
case Constants::MTG_COLOR_LAND : q = resources.RetrieveTempQuad("land_thumb.jpg");break;
|
}
|
||||||
default: q = resources.RetrieveTempQuad("black_thumb.jpg");break;
|
else{
|
||||||
}
|
switch(card->getColor())
|
||||||
|
{
|
||||||
|
case Constants::MTG_COLOR_ARTIFACT : q = resources.RetrieveTempQuad("artifact_thumb.jpg");break;
|
||||||
|
case Constants::MTG_COLOR_GREEN: q = resources.RetrieveTempQuad("green_thumb.jpg");break;
|
||||||
|
case Constants::MTG_COLOR_BLUE : q = resources.RetrieveTempQuad("blue_thumb.jpg");break;
|
||||||
|
case Constants::MTG_COLOR_RED : q = resources.RetrieveTempQuad("red_thumb.jpg");break;
|
||||||
|
case Constants::MTG_COLOR_BLACK: q = resources.RetrieveTempQuad("black_thumb.jpg");break;
|
||||||
|
case Constants::MTG_COLOR_WHITE: q = resources.RetrieveTempQuad("white_thumb.jpg");break;
|
||||||
|
case Constants::MTG_COLOR_LAND : q = resources.RetrieveTempQuad("land_thumb.jpg");break;
|
||||||
|
default: q = resources.RetrieveTempQuad("gold_thumb.jpg");break;
|
||||||
|
}
|
||||||
|
}
|
||||||
if(q && q->mTex)
|
if(q && q->mTex)
|
||||||
q->SetHotSpot(q->mTex->mWidth/2,q->mTex->mHeight/2);
|
q->SetHotSpot(q->mTex->mWidth/2,q->mTex->mHeight/2);
|
||||||
return q;
|
return q;
|
||||||
@@ -135,17 +146,28 @@ void CardGui::alternateRender(MTGCard * card, const Pos& pos){
|
|||||||
// Draw the "unknown" card model
|
// Draw the "unknown" card model
|
||||||
JRenderer * renderer = JRenderer::GetInstance();
|
JRenderer * renderer = JRenderer::GetInstance();
|
||||||
JQuad * q;
|
JQuad * q;
|
||||||
switch(card->getColor())
|
int nb_colors = 0;
|
||||||
{
|
for(int i=0;i<Constants::MTG_NB_COLORS;i++){
|
||||||
case Constants::MTG_COLOR_ARTIFACT: q = resources.RetrieveTempQuad("artifact.jpg");break;
|
if(card->colors[i])
|
||||||
case Constants::MTG_COLOR_GREEN: q = resources.RetrieveTempQuad("green.jpg");break;
|
nb_colors++;
|
||||||
case Constants::MTG_COLOR_BLUE : q = resources.RetrieveTempQuad("blue.jpg");break;
|
}
|
||||||
case Constants::MTG_COLOR_RED : q = resources.RetrieveTempQuad("red.jpg");break;
|
|
||||||
case Constants::MTG_COLOR_BLACK: q = resources.RetrieveTempQuad("black.jpg");break;
|
if(nb_colors > 1){
|
||||||
case Constants::MTG_COLOR_WHITE: q = resources.RetrieveTempQuad("white.jpg");break;
|
q = resources.RetrieveTempQuad("gold.jpg");
|
||||||
case Constants::MTG_COLOR_LAND: q = resources.RetrieveTempQuad("land.jpg");break;
|
}
|
||||||
default: q = resources.RetrieveTempQuad("black.jpg");break;
|
else{
|
||||||
}
|
switch(card->getColor())
|
||||||
|
{
|
||||||
|
case Constants::MTG_COLOR_ARTIFACT: q = resources.RetrieveTempQuad("artifact.jpg");break;
|
||||||
|
case Constants::MTG_COLOR_GREEN: q = resources.RetrieveTempQuad("green.jpg");break;
|
||||||
|
case Constants::MTG_COLOR_BLUE : q = resources.RetrieveTempQuad("blue.jpg");break;
|
||||||
|
case Constants::MTG_COLOR_RED : q = resources.RetrieveTempQuad("red.jpg");break;
|
||||||
|
case Constants::MTG_COLOR_BLACK: q = resources.RetrieveTempQuad("black.jpg");break;
|
||||||
|
case Constants::MTG_COLOR_WHITE: q = resources.RetrieveTempQuad("white.jpg");break;
|
||||||
|
case Constants::MTG_COLOR_LAND: q = resources.RetrieveTempQuad("land.jpg");break;
|
||||||
|
default: q = resources.RetrieveTempQuad("gold.jpg");break;
|
||||||
|
}
|
||||||
|
}
|
||||||
if(q && q->mTex){
|
if(q && q->mTex){
|
||||||
q->SetHotSpot(q->mTex->mWidth/2,q->mTex->mHeight/2);
|
q->SetHotSpot(q->mTex->mWidth/2,q->mTex->mHeight/2);
|
||||||
|
|
||||||
|
|||||||
@@ -26,8 +26,6 @@ void GameStateShop::Create(){
|
|||||||
void GameStateShop::Start()
|
void GameStateShop::Start()
|
||||||
{
|
{
|
||||||
menu = NULL;
|
menu = NULL;
|
||||||
menuFont = resources.GetJLBFont(Constants::MENU_FONT);
|
|
||||||
itemFont = resources.GetJLBFont(Constants::MAIN_FONT);
|
|
||||||
|
|
||||||
|
|
||||||
mStage = STAGE_SHOP_SHOP;
|
mStage = STAGE_SHOP_SHOP;
|
||||||
@@ -42,10 +40,14 @@ void GameStateShop::Start()
|
|||||||
altThumb[4] = resources.RetrieveTexture("black_thumb.jpg", RETRIEVE_LOCK);
|
altThumb[4] = resources.RetrieveTexture("black_thumb.jpg", RETRIEVE_LOCK);
|
||||||
altThumb[5] = resources.RetrieveTexture("white_thumb.jpg", RETRIEVE_LOCK);
|
altThumb[5] = resources.RetrieveTexture("white_thumb.jpg", RETRIEVE_LOCK);
|
||||||
altThumb[6] = resources.RetrieveTexture("land_thumb.jpg", RETRIEVE_LOCK);
|
altThumb[6] = resources.RetrieveTexture("land_thumb.jpg", RETRIEVE_LOCK);
|
||||||
|
altThumb[7] = resources.RetrieveTexture("gold_thumb.jpg", RETRIEVE_LOCK);
|
||||||
|
|
||||||
mBg = resources.RetrieveQuad("shop.jpg");
|
mBg = resources.RetrieveQuad("shop.jpg");
|
||||||
mBack = resources.GetQuad("back");
|
mBack = resources.GetQuad("back");
|
||||||
|
|
||||||
|
menuFont = resources.GetJLBFont(Constants::MENU_FONT);
|
||||||
|
itemFont = resources.GetJLBFont(Constants::MAIN_FONT);
|
||||||
|
|
||||||
JRenderer::GetInstance()->ResetPrivateVRAM();
|
JRenderer::GetInstance()->ResetPrivateVRAM();
|
||||||
JRenderer::GetInstance()->EnableVSync(true);
|
JRenderer::GetInstance()->EnableVSync(true);
|
||||||
|
|
||||||
@@ -128,7 +130,7 @@ void GameStateShop::End()
|
|||||||
resources.Release(bgTexture);
|
resources.Release(bgTexture);
|
||||||
|
|
||||||
//Release alternate thumbnails.
|
//Release alternate thumbnails.
|
||||||
for(int i=0;i<7;i++){
|
for(int i=0;i<8;i++){
|
||||||
resources.Release(altThumb[i]);
|
resources.Release(altThumb[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -169,23 +171,14 @@ void GameStateShop::Render()
|
|||||||
//Erase
|
//Erase
|
||||||
JRenderer * r = JRenderer::GetInstance();
|
JRenderer * r = JRenderer::GetInstance();
|
||||||
r->ClearScreen(ARGB(0,0,0,0));
|
r->ClearScreen(ARGB(0,0,0,0));
|
||||||
if (mBg)JRenderer::GetInstance()->RenderQuad(mBg,0,0);
|
if (mBg) r->RenderQuad(mBg,0,0);
|
||||||
|
|
||||||
itemFont->SetColor(ARGB(255,255,255,255));
|
|
||||||
char c[4096];
|
|
||||||
r->FillRect(0,SCREEN_HEIGHT-17,SCREEN_WIDTH,17,ARGB(128,0,0,0));
|
|
||||||
sprintf(c, _("[]:other cards /\\:list").c_str());
|
|
||||||
unsigned int len = 4 + itemFont->GetStringWidth(c);
|
|
||||||
itemFont->DrawString(c,SCREEN_WIDTH-len,SCREEN_HEIGHT-12);
|
|
||||||
|
|
||||||
if (shop)
|
if (shop)
|
||||||
shop->Render();
|
shop->Render();
|
||||||
|
|
||||||
|
|
||||||
if (mStage == STAGE_SHOP_MENU && menu){
|
if (mStage == STAGE_SHOP_MENU && menu){
|
||||||
menu->Render();
|
menu->Render();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameStateShop::ButtonPressed(int controllerId, int controlId)
|
void GameStateShop::ButtonPressed(int controllerId, int controlId)
|
||||||
|
|||||||
@@ -8,17 +8,17 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
float ShopItems::_x1[] = { 79, 20, 27,103,154,187,102,145,199,133,183};
|
float ShopItems::_x1[] = { 79, 19, 27,103,154,187,102,144,198,133,183};
|
||||||
float ShopItems::_y1[] = {150,193,222,167,164,156,195,190,176,220,220};
|
float ShopItems::_y1[] = {150,194,222,167,164,156,195,190,175,220,220};
|
||||||
|
|
||||||
float ShopItems::_x2[] = {103, 49, 73,135,183,213,138,181,231,171,225};
|
float ShopItems::_x2[] = {103, 48, 74,135,183,215,138,181,231,171,225};
|
||||||
float ShopItems::_y2[] = {155,180,218,166,166,154,195,186,177,225,216};
|
float ShopItems::_y2[] = {155,179,218,165,166,155,195,186,177,225,216};
|
||||||
|
|
||||||
float ShopItems::_x3[] = { 48, 60, 10, 96,139,190, 81,146,189, 98,191};
|
float ShopItems::_x3[] = { 48, 61, 9, 96,139,190, 81,146,187, 97,191};
|
||||||
float ShopItems::_y3[] = {163,202,255,183,180,170,219,212,195,250,251};
|
float ShopItems::_y3[] = {164,205,257,184,180,170,219,212,195,251,252};
|
||||||
|
|
||||||
float ShopItems::_x4[] = { 74, 88, 64,131,171,221,123,187,225,141,237};
|
float ShopItems::_x4[] = { 76, 90, 65,131,171,221,123,187,225,141,237};
|
||||||
float ShopItems::_y4[] = {167,187,248,182,182,168,219,208,196,258,245};
|
float ShopItems::_y4[] = {169,188,250,182,182,168,220,208,198,259,245};
|
||||||
|
|
||||||
|
|
||||||
ShopItem::ShopItem(int id, JLBFont *font, char* text, JQuad * _quad,JQuad * _thumb, float _xy[], bool hasFocus, int _price): JGuiObject(id), mFont(font), mText(text), quad(_quad), thumb(_thumb), price(_price)
|
ShopItem::ShopItem(int id, JLBFont *font, char* text, JQuad * _quad,JQuad * _thumb, float _xy[], bool hasFocus, int _price): JGuiObject(id), mFont(font), mText(text), quad(_quad), thumb(_thumb), price(_price)
|
||||||
@@ -173,7 +173,6 @@ void ShopItem::Render(){
|
|||||||
if (card) CardGui::alternateRender(card,Pos(SCREEN_WIDTH - 105,SCREEN_HEIGHT/2 - 5,0.9f* 285/250, 0,255));
|
if (card) CardGui::alternateRender(card,Pos(SCREEN_WIDTH - 105,SCREEN_HEIGHT/2 - 5,0.9f* 285/250, 0,255));
|
||||||
|
|
||||||
}
|
}
|
||||||
mFont->DrawString(mText.c_str(), SCREEN_WIDTH/2 - 50, SCREEN_HEIGHT - 16,JGETEXT_CENTER);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -238,6 +237,10 @@ ShopItems::ShopItems(int id, JGuiListener* listener, JLBFont* font, int x, int y
|
|||||||
};
|
};
|
||||||
myCollection = NEW DeckDataWrapper(NEW MTGDeck(options.profileFile(PLAYER_COLLECTION).c_str(), _collection));
|
myCollection = NEW DeckDataWrapper(NEW MTGDeck(options.profileFile(PLAYER_COLLECTION).c_str(), _collection));
|
||||||
showCardList = true;
|
showCardList = true;
|
||||||
|
|
||||||
|
mBgAA = resources.RetrieveQuad("shop_aliasing.png");
|
||||||
|
if(mBgAA)
|
||||||
|
mBgAA->SetTextureRect(0,0,250,120);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -296,6 +299,13 @@ void ShopItems::Update(float dt){
|
|||||||
|
|
||||||
void ShopItems::Render(){
|
void ShopItems::Render(){
|
||||||
JGuiController::Render();
|
JGuiController::Render();
|
||||||
|
JRenderer * r = JRenderer::GetInstance();
|
||||||
|
|
||||||
|
if (display) display->Render();
|
||||||
|
|
||||||
|
if (mBgAA)
|
||||||
|
r->RenderQuad(mBgAA,0,SCREEN_HEIGHT-128);
|
||||||
|
|
||||||
if (showPriceDialog==-1){
|
if (showPriceDialog==-1){
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
@@ -303,16 +313,29 @@ void ShopItems::Render(){
|
|||||||
dialog->Render();
|
dialog->Render();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mFont->SetColor(ARGB(255,255,255,255));
|
||||||
|
char c[4096];
|
||||||
|
r->FillRect(0,SCREEN_HEIGHT-17,SCREEN_WIDTH,17,ARGB(128,0,0,0));
|
||||||
|
sprintf(c, _("[]:other cards /\\:list").c_str());
|
||||||
|
unsigned int len = 4 + mFont->GetStringWidth(c);
|
||||||
|
mFont->DrawString(c,SCREEN_WIDTH-len,SCREEN_HEIGHT-14);
|
||||||
|
|
||||||
char credits[512];
|
char credits[512];
|
||||||
sprintf(credits,_("credits: %i").c_str(), playerdata->credits);
|
sprintf(credits,_("credits: %i").c_str(), playerdata->credits);
|
||||||
mFont->SetColor(ARGB(200,0,0,0));
|
mFont->SetColor(ARGB(200,0,0,0));
|
||||||
mFont->DrawString(credits, 5, SCREEN_HEIGHT - 13);
|
mFont->DrawString(credits, 5, SCREEN_HEIGHT - 12);
|
||||||
mFont->SetColor(ARGB(255,255,255,255));
|
mFont->SetColor(ARGB(255,255,255,255));
|
||||||
mFont->DrawString(credits, 5, SCREEN_HEIGHT - 15);
|
mFont->DrawString(credits, 5, SCREEN_HEIGHT - 14);
|
||||||
if (display) display->Render();
|
|
||||||
|
if(mCurr >= 0){
|
||||||
|
mFont->SetColor(ARGB(255,255,255,0));
|
||||||
|
ShopItem * item = ((ShopItem *)mObjects[mCurr]);
|
||||||
|
mFont->DrawString(item->mText.c_str(), SCREEN_WIDTH/2 - 50, SCREEN_HEIGHT - 14,JGETEXT_CENTER);
|
||||||
|
mFont->SetColor(ARGB(255,255,255,255));
|
||||||
|
}
|
||||||
|
|
||||||
if (showCardList){
|
if (showCardList){
|
||||||
JRenderer * r = JRenderer::GetInstance();
|
|
||||||
r->FillRoundRect(290,5, 160, mCount * 20 + 15,5,ARGB(200,0,0,0));
|
r->FillRoundRect(290,5, 160, mCount * 20 + 15,5,ARGB(200,0,0,0));
|
||||||
|
|
||||||
for (int i = 0; i< mCount; ++i){
|
for (int i = 0; i< mCount; ++i){
|
||||||
@@ -448,6 +471,7 @@ ShopItems::~ShopItems(){
|
|||||||
SAFE_DELETE(dialog);
|
SAFE_DELETE(dialog);
|
||||||
safeDeleteDisplay();
|
safeDeleteDisplay();
|
||||||
SAFE_DELETE(myCollection);
|
SAFE_DELETE(myCollection);
|
||||||
|
resources.Release(mBgAA);
|
||||||
}
|
}
|
||||||
|
|
||||||
ostream& ShopItem::toString(ostream& out) const
|
ostream& ShopItem::toString(ostream& out) const
|
||||||
|
|||||||
Reference in New Issue
Block a user