Achievements looking good. Only server syncing and server-side need to be done.
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/branches/uni@13635 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
parent
c67c5a6fb1
commit
f38106ce77
@ -12,6 +12,6 @@
|
||||
<entry key="hacienda" goal="1"/>
|
||||
<entry key="jungle" goal="1"/>
|
||||
</achievement>
|
||||
<achievement id="2" type="single" goal="1" title="Strike!" description="Hit a kart with a bowling-ball." />
|
||||
<achievement id="2" type="single" goal="10" title="Strike!" description="Hit 10 karts with a bowling-ball." />
|
||||
</achievements>
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
<buttonbar id="options" width="90%" height="30%" align="center">
|
||||
<icon-button id="view" width="64" height="64" icon="gui/difficulty_medium.png"
|
||||
I18N="User info dialog" text="View friends" label_location="bottom"/>
|
||||
I18N="User info dialog" text="View" label_location="bottom"/>
|
||||
<icon-button id="cancel" width="64" height="64" icon="gui/main_quit.png"
|
||||
I18N="User info dialog" text="Close" label_location="bottom"/>
|
||||
</buttonbar>
|
||||
|
@ -63,7 +63,7 @@ void Achievement::check()
|
||||
//show achievement
|
||||
GUIEngine::DialogQueue::get()->pushDialog(
|
||||
new NotificationDialog(NotificationDialog::T_Achievements,
|
||||
irr::core::stringw(_("Completed achievement")) + irr::core::stringw("\"") + m_achievement_info->getDescription() + irr::core::stringw("\".")
|
||||
irr::core::stringw(_("Completed achievement")) + irr::core::stringw(" \"") + m_achievement_info->getTitle() + irr::core::stringw("\".")
|
||||
));
|
||||
//send to server
|
||||
Online::CurrentUser::get()->onAchieving(m_id);
|
||||
@ -94,8 +94,8 @@ void SingleAchievement::load(XMLNode * input)
|
||||
// ============================================================================
|
||||
void SingleAchievement::save(std::ofstream & out)
|
||||
{
|
||||
out << " <achievement id=\"" << m_id << "\""
|
||||
<< "achieved=\"" << StringUtils::boolstr(m_achieved) << "\""
|
||||
out << " <achievement id=\"" << m_id << "\" "
|
||||
<< "achieved=\"" << StringUtils::boolstr(m_achieved) << "\" "
|
||||
<< "value=\"" << StringUtils::toString(m_progress) << "\""
|
||||
<< "/>\n";
|
||||
} // save
|
||||
|
@ -48,6 +48,7 @@ public:
|
||||
virtual ~AchievementInfo () {};
|
||||
uint32_t getID () const { return m_id; }
|
||||
irr::core::stringw getDescription () const { return m_description; }
|
||||
irr::core::stringw getTitle () const { return m_title; }
|
||||
virtual Achievement::AchievementType getType () const = 0;
|
||||
virtual bool checkCompletion (Achievement * achievement) const = 0;
|
||||
bool needsResetAfterRace() const {return m_reset_after_race; }
|
||||
|
@ -153,8 +153,6 @@ void AchievementsManager::createSlotsIfNeeded()
|
||||
}
|
||||
|
||||
if(something_changed){
|
||||
Log::warn("AchievementsManager::save",
|
||||
"errueeeur");
|
||||
save();
|
||||
}
|
||||
} // UnlockManager::createSlotsIfNeeded
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include <algorithm>
|
||||
#include <ctime>
|
||||
|
||||
#include "achievements/achievements_manager.hpp"
|
||||
#include "audio/music_manager.hpp"
|
||||
#include "audio/sfx_base.hpp"
|
||||
#include "audio/sfx_manager.hpp"
|
||||
@ -439,6 +440,9 @@ void World::terminateRace()
|
||||
&best_player);
|
||||
|
||||
unlock_manager->getCurrentSlot()->raceFinished();
|
||||
((MapAchievement *) AchievementsManager::get()->getActive()->getAchievement(1))->increase(getTrack()->getIdent(), 1);
|
||||
AchievementsManager::get()->onRaceEnd();
|
||||
|
||||
|
||||
if (m_race_gui) m_race_gui->clearAllMessages();
|
||||
// we can't delete the race gui here, since it is needed in case of
|
||||
|
@ -18,6 +18,7 @@
|
||||
|
||||
#include "physics/physics.hpp"
|
||||
|
||||
#include "achievements/achievements_manager.hpp"
|
||||
#include "animations/three_d_animation.hpp"
|
||||
#include "karts/abstract_kart.hpp"
|
||||
#include "karts/kart_properties.hpp"
|
||||
@ -236,12 +237,12 @@ void Physics::update(float dt)
|
||||
// Only explode a bowling ball if the target is
|
||||
// not invulnerable
|
||||
AbstractKart* target_kart = p->getUserPointer(1)->getPointerKart();
|
||||
if(p->getUserPointer(0)->getPointerFlyable()->getType()
|
||||
!=PowerupManager::POWERUP_BOWLING ||
|
||||
!target_kart->isInvulnerable() )
|
||||
PowerupManager::PowerupType type = p->getUserPointer(0)->getPointerFlyable()->getType();
|
||||
if(type != PowerupManager::POWERUP_BOWLING || !target_kart->isInvulnerable())
|
||||
{
|
||||
p->getUserPointer(0)->getPointerFlyable()
|
||||
->hit(target_kart);
|
||||
p->getUserPointer(0)->getPointerFlyable()->hit(target_kart);
|
||||
if ( type ==PowerupManager::POWERUP_BOWLING )
|
||||
((SingleAchievement *) AchievementsManager::get()->getActive()->getAchievement(2))->increase(1);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -57,6 +57,14 @@ void NotificationDialog::beforeAddingWidgets()
|
||||
assert(m_options_widget != NULL);
|
||||
m_view_widget = getWidget<IconButtonWidget>("view");
|
||||
assert(m_view_widget != NULL);
|
||||
if(m_type == T_Friends)
|
||||
{
|
||||
m_view_widget->setText(_("View Friends"));
|
||||
}
|
||||
else if (m_type == T_Achievements)
|
||||
{
|
||||
m_view_widget->setText(_("View Achievements"));
|
||||
}
|
||||
m_cancel_widget = getWidget<IconButtonWidget>("cancel");
|
||||
assert(m_cancel_widget != NULL);
|
||||
m_options_widget->setFocusForPlayer(PLAYER_ID_GAME_MASTER);
|
||||
@ -131,8 +139,7 @@ void NotificationDialog::onUpdate(float dt)
|
||||
}
|
||||
else if (m_type == T_Achievements)
|
||||
{
|
||||
ProfileManager::get()->setVisiting(CurrentUser::get()->getID());
|
||||
StateManager::get()->pushScreen(OnlineProfileFriends::getInstance()); //FIXME should actually pop up achievements screen
|
||||
//FIXME
|
||||
}
|
||||
}
|
||||
return;
|
||||
|
@ -151,7 +151,6 @@ void OnlineScreen::init()
|
||||
setInitialFocus();
|
||||
DemoWorld::resetIdleTime();
|
||||
m_online_status_widget->setText(Messages::signedInAs(CurrentUser::get()->getUserName()), false);
|
||||
|
||||
} // init
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
Loading…
x
Reference in New Issue
Block a user