first commit
This commit is contained in:
151
Minecraft.Client/AchievementPopup.cpp
Normal file
151
Minecraft.Client/AchievementPopup.cpp
Normal file
@@ -0,0 +1,151 @@
|
||||
#include "stdafx.h"
|
||||
#include "AchievementPopup.h"
|
||||
#include "ItemRenderer.h"
|
||||
#include "Font.h"
|
||||
#include "Textures.h"
|
||||
#include "Lighting.h"
|
||||
#include "..\Minecraft.World\System.h"
|
||||
#include "..\Minecraft.World\net.minecraft.locale.h"
|
||||
#include "..\Minecraft.World\net.minecraft.stats.h"
|
||||
#include "..\Minecraft.World\SharedConstants.h"
|
||||
|
||||
AchievementPopup::AchievementPopup(Minecraft *mc)
|
||||
{
|
||||
// 4J - added initialisers
|
||||
width = 0;
|
||||
height = 0;
|
||||
ach = NULL;
|
||||
startTime = 0;
|
||||
isHelper = false;
|
||||
|
||||
this->mc = mc;
|
||||
ir = new ItemRenderer();
|
||||
}
|
||||
|
||||
void AchievementPopup::popup(Achievement *ach)
|
||||
{
|
||||
title = I18n::get(L"achievement.get");
|
||||
desc = ach->name;
|
||||
startTime = System::currentTimeMillis();
|
||||
this->ach = ach;
|
||||
isHelper = false;
|
||||
}
|
||||
|
||||
void AchievementPopup::permanent(Achievement *ach)
|
||||
{
|
||||
title = ach->name;
|
||||
desc = ach->getDescription();
|
||||
|
||||
startTime = System::currentTimeMillis() - 2500;
|
||||
this->ach = ach;
|
||||
isHelper = true;
|
||||
}
|
||||
|
||||
void AchievementPopup::prepareWindow()
|
||||
{
|
||||
glViewport(0, 0, mc->width, mc->height);
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadIdentity();
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadIdentity();
|
||||
|
||||
this->width = mc->width;
|
||||
this->height = mc->height;
|
||||
|
||||
ScreenSizeCalculator ssc(mc->options, mc->width, mc->height);
|
||||
width = ssc.getWidth();
|
||||
height = ssc.getHeight();
|
||||
|
||||
glClear(GL_DEPTH_BUFFER_BIT);
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadIdentity();
|
||||
glOrtho(0, (float)width, (float)height, 0, 1000, 3000);
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadIdentity();
|
||||
glTranslatef(0, 0, -2000);
|
||||
|
||||
}
|
||||
|
||||
void AchievementPopup::render()
|
||||
{
|
||||
// 4J Unused
|
||||
#if 0
|
||||
if (Minecraft::warezTime > 0)
|
||||
{
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
glDepthMask(false);
|
||||
Lighting::turnOff();
|
||||
prepareWindow();
|
||||
|
||||
wstring title = L"Minecraft " + SharedConstants::VERSION_STRING + L" Unlicensed Copy :(";
|
||||
wstring msg1 = L"(Or logged in from another location)";
|
||||
wstring msg2 = L"Purchase at minecraft.net";
|
||||
|
||||
mc->font->drawShadow(title, 2, 2 + 9 * 0, 0xffffff);
|
||||
mc->font->drawShadow(msg1, 2, 2 + 9 * 1, 0xffffff);
|
||||
mc->font->drawShadow(msg2, 2, 2 + 9 * 2, 0xffffff);
|
||||
|
||||
glDepthMask(true);
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
}
|
||||
if (ach == NULL || startTime == 0) return;
|
||||
|
||||
double time = (System::currentTimeMillis() - startTime) / 3000.0;
|
||||
if (isHelper)
|
||||
{
|
||||
}
|
||||
else if (!isHelper && (time < 0 || time > 1))
|
||||
{
|
||||
startTime = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
prepareWindow();
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
glDepthMask(false);
|
||||
|
||||
double yo = time * 2;
|
||||
if (yo > 1) yo = 2 - yo;
|
||||
yo = yo * 4;
|
||||
yo = 1 - yo;
|
||||
if (yo < 0) yo = 0;
|
||||
yo = yo * yo;
|
||||
yo = yo * yo;
|
||||
|
||||
int xx = width - 160;
|
||||
int yy = 0 - (int) (yo * 36);
|
||||
int tex = mc->textures->loadTexture(L"/achievement/bg.png");
|
||||
glColor4f(1, 1, 1, 1);
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
glBindTexture(GL_TEXTURE_2D, tex);
|
||||
glDisable(GL_LIGHTING);
|
||||
|
||||
blit(xx, yy, 96, 202, 160, 32);
|
||||
|
||||
if (isHelper)
|
||||
{
|
||||
mc->font->drawWordWrap(desc, xx + 30, yy + 7, 120, 0xffffffff);
|
||||
}
|
||||
else
|
||||
{
|
||||
mc->font->draw(title, xx + 30, yy + 7, 0xffffff00);
|
||||
mc->font->draw(desc, xx + 30, yy + 18, 0xffffffff);
|
||||
}
|
||||
|
||||
glPushMatrix();
|
||||
glRotatef(180, 1, 0, 0);
|
||||
Lighting::turnOn();
|
||||
glPopMatrix();
|
||||
glDisable(GL_LIGHTING);
|
||||
glEnable(GL_RESCALE_NORMAL);
|
||||
glEnable(GL_COLOR_MATERIAL);
|
||||
|
||||
glEnable(GL_LIGHTING);
|
||||
ir->renderGuiItem(mc->font, mc->textures, ach->icon, xx + 8, yy + 8);
|
||||
glDisable(GL_LIGHTING);
|
||||
|
||||
glDepthMask(true);
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
#endif
|
||||
}
|
||||
Reference in New Issue
Block a user