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:
wagic.jeck
2009-09-28 03:01:19 +00:00
parent e1027d81cb
commit aa90b53a87
9 changed files with 90 additions and 49 deletions

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

View File

@@ -23,7 +23,7 @@ class GameStateShop: public GameState, public JGuiListener
JLBFont * itemFont;
JQuad * mBg;
JTexture * bgTexture;
JTexture * altThumb[7];
JTexture * altThumb[8];
JQuad * mBack;
SimpleMenu * menu;
int mStage;

View File

@@ -19,6 +19,7 @@ class hgeDistortionMesh;
class ShopItem:public JGuiObject{
private:
friend class ShopItems;
bool mHasFocus;
bool mRelease;
JLBFont *mFont;
@@ -58,6 +59,7 @@ class ShopItems:public JGuiController,public JGuiListener{
PriceList * pricelist;
int mX, mY, mHeight;
JLBFont* mFont;
JQuad * mBgAA;
MTGAllCards * collection;
SimpleMenu * dialog;
int showPriceDialog;

View File

@@ -115,17 +115,28 @@ void CardGui::Render()
JQuad * CardGui::alternateThumbQuad(MTGCard * card){
JQuad * q;
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("black_thumb.jpg");break;
}
int nb_colors = 0;
for(int i=0;i<Constants::MTG_NB_COLORS;i++){
if(card->colors[i])
nb_colors++;
}
if(nb_colors > 1){
q = resources.RetrieveTempQuad("gold_thumb.jpg");
}
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)
q->SetHotSpot(q->mTex->mWidth/2,q->mTex->mHeight/2);
return q;
@@ -135,17 +146,28 @@ void CardGui::alternateRender(MTGCard * card, const Pos& pos){
// Draw the "unknown" card model
JRenderer * renderer = JRenderer::GetInstance();
JQuad * q;
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("black.jpg");break;
}
int nb_colors = 0;
for(int i=0;i<Constants::MTG_NB_COLORS;i++){
if(card->colors[i])
nb_colors++;
}
if(nb_colors > 1){
q = resources.RetrieveTempQuad("gold.jpg");
}
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){
q->SetHotSpot(q->mTex->mWidth/2,q->mTex->mHeight/2);

View File

@@ -26,8 +26,6 @@ void GameStateShop::Create(){
void GameStateShop::Start()
{
menu = NULL;
menuFont = resources.GetJLBFont(Constants::MENU_FONT);
itemFont = resources.GetJLBFont(Constants::MAIN_FONT);
mStage = STAGE_SHOP_SHOP;
@@ -42,10 +40,14 @@ void GameStateShop::Start()
altThumb[4] = resources.RetrieveTexture("black_thumb.jpg", RETRIEVE_LOCK);
altThumb[5] = resources.RetrieveTexture("white_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");
mBack = resources.GetQuad("back");
menuFont = resources.GetJLBFont(Constants::MENU_FONT);
itemFont = resources.GetJLBFont(Constants::MAIN_FONT);
JRenderer::GetInstance()->ResetPrivateVRAM();
JRenderer::GetInstance()->EnableVSync(true);
@@ -128,7 +130,7 @@ void GameStateShop::End()
resources.Release(bgTexture);
//Release alternate thumbnails.
for(int i=0;i<7;i++){
for(int i=0;i<8;i++){
resources.Release(altThumb[i]);
}
@@ -169,23 +171,14 @@ void GameStateShop::Render()
//Erase
JRenderer * r = JRenderer::GetInstance();
r->ClearScreen(ARGB(0,0,0,0));
if (mBg)JRenderer::GetInstance()->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 (mBg) r->RenderQuad(mBg,0,0);
if (shop)
shop->Render();
if (mStage == STAGE_SHOP_MENU && menu){
menu->Render();
}
}
void GameStateShop::ButtonPressed(int controllerId, int controlId)

View File

@@ -8,17 +8,17 @@
float ShopItems::_x1[] = { 79, 20, 27,103,154,187,102,145,199,133,183};
float ShopItems::_y1[] = {150,193,222,167,164,156,195,190,176,220,220};
float ShopItems::_x1[] = { 79, 19, 27,103,154,187,102,144,198,133,183};
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::_y2[] = {155,180,218,166,166,154,195,186,177,225,216};
float ShopItems::_x2[] = {103, 48, 74,135,183,215,138,181,231,171,225};
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::_y3[] = {163,202,255,183,180,170,219,212,195,250,251};
float ShopItems::_x3[] = { 48, 61, 9, 96,139,190, 81,146,187, 97,191};
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::_y4[] = {167,187,248,182,182,168,219,208,196,258,245};
float ShopItems::_x4[] = { 76, 90, 65,131,171,221,123,187,225,141,237};
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)
@@ -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));
}
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));
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(){
JGuiController::Render();
JRenderer * r = JRenderer::GetInstance();
if (display) display->Render();
if (mBgAA)
r->RenderQuad(mBgAA,0,SCREEN_HEIGHT-128);
if (showPriceDialog==-1){
}else{
@@ -303,16 +313,29 @@ void ShopItems::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];
sprintf(credits,_("credits: %i").c_str(), playerdata->credits);
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->DrawString(credits, 5, SCREEN_HEIGHT - 15);
if (display) display->Render();
mFont->DrawString(credits, 5, SCREEN_HEIGHT - 14);
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){
JRenderer * r = JRenderer::GetInstance();
r->FillRoundRect(290,5, 160, mCount * 20 + 15,5,ARGB(200,0,0,0));
for (int i = 0; i< mCount; ++i){
@@ -448,6 +471,7 @@ ShopItems::~ShopItems(){
SAFE_DELETE(dialog);
safeDeleteDisplay();
SAFE_DELETE(myCollection);
resources.Release(mBgAA);
}
ostream& ShopItem::toString(ostream& out) const