Revert "Project modernization (#630)"
This code was not tested and breaks in Release builds, reverting to restore
functionality of the nightly. All in-game menus do not work and generating
a world crashes.
This reverts commit a9be52c41a.
This commit is contained in:
@@ -17,7 +17,6 @@
|
||||
#include "TutorialTasks.h"
|
||||
#include "TutorialConstraints.h"
|
||||
#include "TutorialHints.h"
|
||||
#include "Common/UI/UI.h"
|
||||
|
||||
vector<int> Tutorial::s_completableTasks;
|
||||
|
||||
@@ -32,7 +31,7 @@ int Tutorial::m_iTutorialFreezeTimeValue = 8000;
|
||||
|
||||
bool Tutorial::PopupMessageDetails::isSameContent(PopupMessageDetails *other)
|
||||
{
|
||||
if(other == nullptr) return false;
|
||||
if(other == NULL) return false;
|
||||
|
||||
bool textTheSame = (m_messageId == other->m_messageId) && (m_messageString.compare(other->m_messageString) == 0);
|
||||
bool titleTheSame = (m_titleId == other->m_titleId) && (m_titleString.compare(other->m_titleString) == 0);
|
||||
@@ -361,12 +360,12 @@ Tutorial::Tutorial(int iPad, bool isFullTutorial /*= false*/) : m_iPad( iPad )
|
||||
m_hintDisplayed = false;
|
||||
m_freezeTime = false;
|
||||
m_timeFrozen = false;
|
||||
m_UIScene = nullptr;
|
||||
m_UIScene = NULL;
|
||||
m_allowShow = true;
|
||||
m_bHasTickedOnce = false;
|
||||
m_firstTickTime = 0;
|
||||
|
||||
m_lastMessage = nullptr;
|
||||
m_lastMessage = NULL;
|
||||
|
||||
lastMessageTime = 0;
|
||||
m_iTaskReminders = 0;
|
||||
@@ -375,13 +374,13 @@ Tutorial::Tutorial(int iPad, bool isFullTutorial /*= false*/) : m_iPad( iPad )
|
||||
m_CurrentState = e_Tutorial_State_Gameplay;
|
||||
m_hasStateChanged = false;
|
||||
#ifdef _XBOX
|
||||
m_hTutorialScene=nullptr;
|
||||
m_hTutorialScene=NULL;
|
||||
#endif
|
||||
|
||||
for(unsigned int i = 0; i < e_Tutorial_State_Max; ++i)
|
||||
{
|
||||
currentTask[i] = nullptr;
|
||||
currentFailedConstraint[i] = nullptr;
|
||||
currentTask[i] = NULL;
|
||||
currentFailedConstraint[i] = NULL;
|
||||
}
|
||||
|
||||
// DEFAULT TASKS THAT ALL TUTORIALS SHARE
|
||||
@@ -1013,7 +1012,7 @@ Tutorial::Tutorial(int iPad, bool isFullTutorial /*= false*/) : m_iPad( iPad )
|
||||
addTask(e_Tutorial_State_Horse, new InfoTask(this, IDS_TUTORIAL_TASK_HORSE_TAMING2, IDS_TUTORIAL_PROMPT_PRESS_A_TO_CONTINUE, true, ACTION_MENU_A) );
|
||||
|
||||
// 4J-JEV: Only force the RideEntityTask if we're on the full-tutorial.
|
||||
if (isFullTutorial) addTask(e_Tutorial_State_Horse, new RideEntityTask(eTYPE_HORSE, this, IDS_TUTORIAL_TASK_HORSE_RIDE, true, nullptr, false, false, false) );
|
||||
if (isFullTutorial) addTask(e_Tutorial_State_Horse, new RideEntityTask(eTYPE_HORSE, this, IDS_TUTORIAL_TASK_HORSE_RIDE, true, NULL, false, false, false) );
|
||||
else addTask(e_Tutorial_State_Horse, new InfoTask(this, IDS_TUTORIAL_TASK_HORSE_RIDE, IDS_TUTORIAL_PROMPT_PRESS_A_TO_CONTINUE, true, ACTION_MENU_A) );
|
||||
|
||||
addTask(e_Tutorial_State_Horse, new InfoTask(this, IDS_TUTORIAL_TASK_HORSE_SADDLES, IDS_TUTORIAL_PROMPT_PRESS_A_TO_CONTINUE, true, ACTION_MENU_A) );
|
||||
@@ -1164,8 +1163,8 @@ Tutorial::~Tutorial()
|
||||
delete it;
|
||||
}
|
||||
|
||||
currentTask[i] = nullptr;
|
||||
currentFailedConstraint[i] = nullptr;
|
||||
currentTask[i] = NULL;
|
||||
currentFailedConstraint[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1174,7 +1173,7 @@ void Tutorial::debugResetPlayerSavedProgress(int iPad)
|
||||
#if ( defined __PS3__ || defined __ORBIS__ || defined _DURANGO || defined __PSVITA__)
|
||||
GAME_SETTINGS *pGameSettings = (GAME_SETTINGS *)StorageManager.GetGameDefinedProfileData(iPad);
|
||||
#else
|
||||
GAME_SETTINGS *pGameSettings = static_cast<GAME_SETTINGS *>(ProfileManager.GetGameDefinedProfileData(iPad));
|
||||
GAME_SETTINGS *pGameSettings = (GAME_SETTINGS *)ProfileManager.GetGameDefinedProfileData(iPad);
|
||||
#endif
|
||||
ZeroMemory( pGameSettings->ucTutorialCompletion, TUTORIAL_PROFILE_STORAGE_BYTES );
|
||||
pGameSettings->uiSpecialTutorialBitmask = 0;
|
||||
@@ -1203,7 +1202,7 @@ void Tutorial::setCompleted( int completableId )
|
||||
#if (defined __PS3__ || defined __ORBIS__ || defined _DURANGO || defined __PSVITA__)
|
||||
GAME_SETTINGS *pGameSettings = (GAME_SETTINGS *)StorageManager.GetGameDefinedProfileData(m_iPad);
|
||||
#else
|
||||
GAME_SETTINGS *pGameSettings = static_cast<GAME_SETTINGS *>(ProfileManager.GetGameDefinedProfileData(m_iPad));
|
||||
GAME_SETTINGS *pGameSettings = (GAME_SETTINGS *)ProfileManager.GetGameDefinedProfileData(m_iPad);
|
||||
#endif
|
||||
int arrayIndex = completableIndex >> 3;
|
||||
int bitIndex = 7 - (completableIndex % 8);
|
||||
@@ -1236,7 +1235,7 @@ bool Tutorial::getCompleted( int completableId )
|
||||
#if ( defined __PS3__ || defined __ORBIS__ || defined _DURANGO || defined __PSVITA__)
|
||||
GAME_SETTINGS *pGameSettings = (GAME_SETTINGS *)StorageManager.GetGameDefinedProfileData(m_iPad);
|
||||
#else
|
||||
GAME_SETTINGS *pGameSettings = static_cast<GAME_SETTINGS *>(ProfileManager.GetGameDefinedProfileData(m_iPad));
|
||||
GAME_SETTINGS *pGameSettings = (GAME_SETTINGS *)ProfileManager.GetGameDefinedProfileData(m_iPad);
|
||||
#endif
|
||||
int arrayIndex = completableIndex >> 3;
|
||||
int bitIndex = 7 - (completableIndex % 8);
|
||||
@@ -1363,7 +1362,7 @@ void Tutorial::tick()
|
||||
|
||||
if(!m_allowShow)
|
||||
{
|
||||
if( currentTask[m_CurrentState] != nullptr && (!currentTask[m_CurrentState]->AllowFade() || (lastMessageTime + m_iTutorialDisplayMessageTime ) > GetTickCount() ) )
|
||||
if( currentTask[m_CurrentState] != NULL && (!currentTask[m_CurrentState]->AllowFade() || (lastMessageTime + m_iTutorialDisplayMessageTime ) > GetTickCount() ) )
|
||||
{
|
||||
uiTempDisabled = true;
|
||||
}
|
||||
@@ -1413,7 +1412,7 @@ void Tutorial::tick()
|
||||
|
||||
if(ui.IsPauseMenuDisplayed( m_iPad ) )
|
||||
{
|
||||
if( currentTask[m_CurrentState] != nullptr && (!currentTask[m_CurrentState]->AllowFade() || (lastMessageTime + m_iTutorialDisplayMessageTime ) > GetTickCount() ) )
|
||||
if( currentTask[m_CurrentState] != NULL && (!currentTask[m_CurrentState]->AllowFade() || (lastMessageTime + m_iTutorialDisplayMessageTime ) > GetTickCount() ) )
|
||||
{
|
||||
uiTempDisabled = true;
|
||||
}
|
||||
@@ -1461,12 +1460,12 @@ void Tutorial::tick()
|
||||
|
||||
// Check constraints
|
||||
// Only need to update these if we aren't already failing something
|
||||
if( !m_allTutorialsComplete && (currentFailedConstraint[m_CurrentState] == nullptr || currentFailedConstraint[m_CurrentState]->isConstraintSatisfied(m_iPad)) )
|
||||
if( !m_allTutorialsComplete && (currentFailedConstraint[m_CurrentState] == NULL || currentFailedConstraint[m_CurrentState]->isConstraintSatisfied(m_iPad)) )
|
||||
{
|
||||
if( currentFailedConstraint[m_CurrentState] != nullptr && currentFailedConstraint[m_CurrentState]->isConstraintSatisfied(m_iPad) )
|
||||
if( currentFailedConstraint[m_CurrentState] != NULL && currentFailedConstraint[m_CurrentState]->isConstraintSatisfied(m_iPad) )
|
||||
{
|
||||
constraintChanged = true;
|
||||
currentFailedConstraint[m_CurrentState] = nullptr;
|
||||
currentFailedConstraint[m_CurrentState] = NULL;
|
||||
}
|
||||
for (auto& constraint : constraints[m_CurrentState])
|
||||
{
|
||||
@@ -1478,7 +1477,7 @@ void Tutorial::tick()
|
||||
}
|
||||
}
|
||||
|
||||
if( !m_allTutorialsComplete && currentFailedConstraint[m_CurrentState] == nullptr )
|
||||
if( !m_allTutorialsComplete && currentFailedConstraint[m_CurrentState] == NULL )
|
||||
{
|
||||
// Update tasks
|
||||
bool isCurrentTask = true;
|
||||
@@ -1497,7 +1496,7 @@ void Tutorial::tick()
|
||||
eTutorial_CompletionAction compAction = task->getCompletionAction();
|
||||
it = activeTasks[m_CurrentState].erase( it );
|
||||
delete task;
|
||||
task = nullptr;
|
||||
task = NULL;
|
||||
|
||||
if( activeTasks[m_CurrentState].size() > 0 )
|
||||
{
|
||||
@@ -1553,12 +1552,12 @@ void Tutorial::tick()
|
||||
{
|
||||
setStateCompleted( m_CurrentState );
|
||||
|
||||
currentTask[m_CurrentState] = nullptr;
|
||||
currentTask[m_CurrentState] = NULL;
|
||||
}
|
||||
taskChanged = true;
|
||||
|
||||
// If we can complete this early, check if we can complete it right now
|
||||
if( currentTask[m_CurrentState] != nullptr && currentTask[m_CurrentState]->isPreCompletionEnabled() )
|
||||
if( currentTask[m_CurrentState] != NULL && currentTask[m_CurrentState]->isPreCompletionEnabled() )
|
||||
{
|
||||
isCurrentTask = true;
|
||||
}
|
||||
@@ -1567,7 +1566,7 @@ void Tutorial::tick()
|
||||
{
|
||||
++it;
|
||||
}
|
||||
if( task != nullptr && task->ShowMinimumTime() && task->hasBeenActivated() && (lastMessageTime + m_iTutorialMinimumDisplayMessageTime ) < GetTickCount() )
|
||||
if( task != NULL && task->ShowMinimumTime() && task->hasBeenActivated() && (lastMessageTime + m_iTutorialMinimumDisplayMessageTime ) < GetTickCount() )
|
||||
{
|
||||
task->setShownForMinimumTime();
|
||||
|
||||
@@ -1588,7 +1587,7 @@ void Tutorial::tick()
|
||||
}
|
||||
}
|
||||
|
||||
if( currentTask[m_CurrentState] == nullptr && activeTasks[m_CurrentState].size() > 0 )
|
||||
if( currentTask[m_CurrentState] == NULL && activeTasks[m_CurrentState].size() > 0 )
|
||||
{
|
||||
currentTask[m_CurrentState] = activeTasks[m_CurrentState][0];
|
||||
currentTask[m_CurrentState]->setAsCurrentTask();
|
||||
@@ -1617,17 +1616,17 @@ void Tutorial::tick()
|
||||
}
|
||||
|
||||
if( constraintChanged || taskChanged || m_hasStateChanged ||
|
||||
(currentFailedConstraint[m_CurrentState] == nullptr && currentTask[m_CurrentState] != nullptr && (m_lastMessage == nullptr || currentTask[m_CurrentState]->getDescriptionId() != m_lastMessage->m_messageId) && !m_hintDisplayed)
|
||||
(currentFailedConstraint[m_CurrentState] == NULL && currentTask[m_CurrentState] != NULL && (m_lastMessage == NULL || currentTask[m_CurrentState]->getDescriptionId() != m_lastMessage->m_messageId) && !m_hintDisplayed)
|
||||
)
|
||||
{
|
||||
if( currentFailedConstraint[m_CurrentState] != nullptr )
|
||||
if( currentFailedConstraint[m_CurrentState] != NULL )
|
||||
{
|
||||
PopupMessageDetails *message = new PopupMessageDetails();
|
||||
message->m_messageId = currentFailedConstraint[m_CurrentState]->getDescriptionId();
|
||||
message->m_allowFade = false;
|
||||
setMessage( message );
|
||||
}
|
||||
else if( currentTask[m_CurrentState] != nullptr )
|
||||
else if( currentTask[m_CurrentState] != NULL )
|
||||
{
|
||||
PopupMessageDetails *message = new PopupMessageDetails();
|
||||
message->m_messageId = currentTask[m_CurrentState]->getDescriptionId();
|
||||
@@ -1638,7 +1637,7 @@ void Tutorial::tick()
|
||||
}
|
||||
else
|
||||
{
|
||||
setMessage( nullptr );
|
||||
setMessage( NULL );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1647,7 +1646,7 @@ void Tutorial::tick()
|
||||
m_hintDisplayed = false;
|
||||
}
|
||||
|
||||
if( currentFailedConstraint[m_CurrentState] == nullptr && currentTask[m_CurrentState] != nullptr && (m_iTaskReminders!=0) && (lastMessageTime + (m_iTaskReminders * m_iTutorialReminderTime) ) < GetTickCount() )
|
||||
if( currentFailedConstraint[m_CurrentState] == NULL && currentTask[m_CurrentState] != NULL && (m_iTaskReminders!=0) && (lastMessageTime + (m_iTaskReminders * m_iTutorialReminderTime) ) < GetTickCount() )
|
||||
{
|
||||
// Reminder
|
||||
PopupMessageDetails *message = new PopupMessageDetails();
|
||||
@@ -1672,7 +1671,7 @@ void Tutorial::tick()
|
||||
|
||||
bool Tutorial::setMessage(PopupMessageDetails *message)
|
||||
{
|
||||
if(message != nullptr && !message->m_forceDisplay &&
|
||||
if(message != NULL && !message->m_forceDisplay &&
|
||||
m_lastMessageState == m_CurrentState &&
|
||||
message->isSameContent(m_lastMessage) &&
|
||||
( !message->m_isReminder || ( (lastMessageTime + m_iTutorialReminderTime ) > GetTickCount() && message->m_isReminder ) )
|
||||
@@ -1682,7 +1681,7 @@ bool Tutorial::setMessage(PopupMessageDetails *message)
|
||||
return false;
|
||||
}
|
||||
|
||||
if(message != nullptr && (message->m_messageId > 0 || !message->m_messageString.empty()) )
|
||||
if(message != NULL && (message->m_messageId > 0 || !message->m_messageString.empty()) )
|
||||
{
|
||||
m_lastMessageState = m_CurrentState;
|
||||
|
||||
@@ -1696,7 +1695,7 @@ bool Tutorial::setMessage(PopupMessageDetails *message)
|
||||
else
|
||||
{
|
||||
auto it = messages.find(message->m_messageId);
|
||||
if( it != messages.end() && it->second != nullptr )
|
||||
if( it != messages.end() && it->second != NULL )
|
||||
{
|
||||
TutorialMessage *messageString = it->second;
|
||||
text = wstring( messageString->getMessageForDisplay() );
|
||||
@@ -1726,7 +1725,7 @@ bool Tutorial::setMessage(PopupMessageDetails *message)
|
||||
else if(message->m_promptId >= 0)
|
||||
{
|
||||
auto it = messages.find(message->m_promptId);
|
||||
if(it != messages.end() && it->second != nullptr)
|
||||
if(it != messages.end() && it->second != NULL)
|
||||
{
|
||||
TutorialMessage *prompt = it->second;
|
||||
text.append( prompt->getMessageForDisplay() );
|
||||
@@ -1755,7 +1754,7 @@ bool Tutorial::setMessage(PopupMessageDetails *message)
|
||||
ui.SetTutorialDescription( m_iPad, &popupInfo );
|
||||
}
|
||||
}
|
||||
else if( (m_lastMessage != nullptr && m_lastMessage->m_messageId != -1) ) //&& (lastMessageTime + m_iTutorialReminderTime ) > GetTickCount() )
|
||||
else if( (m_lastMessage != NULL && m_lastMessage->m_messageId != -1) ) //&& (lastMessageTime + m_iTutorialReminderTime ) > GetTickCount() )
|
||||
{
|
||||
// This should cause the popup to dissappear
|
||||
TutorialPopupInfo popupInfo;
|
||||
@@ -1764,7 +1763,7 @@ bool Tutorial::setMessage(PopupMessageDetails *message)
|
||||
ui.SetTutorialDescription( m_iPad, &popupInfo );
|
||||
}
|
||||
|
||||
if(m_lastMessage != nullptr) delete m_lastMessage;
|
||||
if(m_lastMessage != NULL) delete m_lastMessage;
|
||||
m_lastMessage = message;
|
||||
|
||||
return true;
|
||||
@@ -1778,7 +1777,7 @@ bool Tutorial::setMessage(TutorialHint *hint, PopupMessageDetails *message)
|
||||
|
||||
bool messageShown = false;
|
||||
DWORD time = GetTickCount();
|
||||
if(message != nullptr && (message->m_forceDisplay || hintsOn) &&
|
||||
if(message != NULL && (message->m_forceDisplay || hintsOn) &&
|
||||
(!message->m_delay ||
|
||||
(
|
||||
(m_hintDisplayed && (time - m_lastHintDisplayedTime) > m_iTutorialHintDelayTime ) ||
|
||||
@@ -1793,7 +1792,7 @@ bool Tutorial::setMessage(TutorialHint *hint, PopupMessageDetails *message)
|
||||
{
|
||||
m_lastHintDisplayedTime = time;
|
||||
m_hintDisplayed = true;
|
||||
if(hint!=nullptr) setHintCompleted( hint );
|
||||
if(hint!=NULL) setHintCompleted( hint );
|
||||
}
|
||||
}
|
||||
return messageShown;
|
||||
@@ -1816,7 +1815,7 @@ void Tutorial::showTutorialPopup(bool show)
|
||||
|
||||
if(!show)
|
||||
{
|
||||
if( currentTask[m_CurrentState] != nullptr && (!currentTask[m_CurrentState]->AllowFade() || (lastMessageTime + m_iTutorialDisplayMessageTime ) > GetTickCount() ) )
|
||||
if( currentTask[m_CurrentState] != NULL && (!currentTask[m_CurrentState]->AllowFade() || (lastMessageTime + m_iTutorialDisplayMessageTime ) > GetTickCount() ) )
|
||||
{
|
||||
uiTempDisabled = true;
|
||||
}
|
||||
@@ -1927,7 +1926,7 @@ void Tutorial::handleUIInput(int iAction)
|
||||
{
|
||||
if( m_hintDisplayed ) return;
|
||||
|
||||
if(currentTask[m_CurrentState] != nullptr)
|
||||
if(currentTask[m_CurrentState] != NULL)
|
||||
currentTask[m_CurrentState]->handleUIInput(iAction);
|
||||
}
|
||||
|
||||
@@ -1989,7 +1988,7 @@ void Tutorial::onSelectedItemChanged(shared_ptr<ItemInstance> item)
|
||||
// Menus and states like riding in a minecart will NOT allow this
|
||||
if( isSelectedItemState() )
|
||||
{
|
||||
if(item != nullptr)
|
||||
if(item != NULL)
|
||||
{
|
||||
switch(item->id)
|
||||
{
|
||||
@@ -2152,7 +2151,7 @@ void Tutorial::AddConstraint(TutorialConstraint *c)
|
||||
void Tutorial::RemoveConstraint(TutorialConstraint *c, bool delayedRemove /*= false*/)
|
||||
{
|
||||
if( currentFailedConstraint[m_CurrentState] == c )
|
||||
currentFailedConstraint[m_CurrentState] = nullptr;
|
||||
currentFailedConstraint[m_CurrentState] = NULL;
|
||||
|
||||
if( c->getQueuedForRemoval() )
|
||||
{
|
||||
@@ -2212,16 +2211,16 @@ void Tutorial::addMessage(int messageId, bool limitRepeats /*= false*/, unsigned
|
||||
}
|
||||
|
||||
#ifdef _XBOX
|
||||
void Tutorial::changeTutorialState(eTutorial_State newState, CXuiScene *scene /*= nullptr*/)
|
||||
void Tutorial::changeTutorialState(eTutorial_State newState, CXuiScene *scene /*= NULL*/)
|
||||
#else
|
||||
void Tutorial::changeTutorialState(eTutorial_State newState, UIScene *scene /*= nullptr*/)
|
||||
void Tutorial::changeTutorialState(eTutorial_State newState, UIScene *scene /*= NULL*/)
|
||||
#endif
|
||||
{
|
||||
if(newState == m_CurrentState)
|
||||
{
|
||||
// If clearing the scene, make sure that the tutorial popup has its reference to this scene removed
|
||||
#ifndef _XBOX
|
||||
if( scene == nullptr )
|
||||
if( scene == NULL )
|
||||
{
|
||||
ui.RemoveInteractSceneReference(m_iPad, m_UIScene);
|
||||
}
|
||||
@@ -2242,7 +2241,7 @@ void Tutorial::changeTutorialState(eTutorial_State newState, UIScene *scene /*=
|
||||
}
|
||||
|
||||
// The action that caused the change of state may also have completed the current task
|
||||
if( currentTask[m_CurrentState] != nullptr && currentTask[m_CurrentState]->isCompleted() )
|
||||
if( currentTask[m_CurrentState] != NULL && currentTask[m_CurrentState]->isCompleted() )
|
||||
{
|
||||
activeTasks[m_CurrentState].erase( find( activeTasks[m_CurrentState].begin(), activeTasks[m_CurrentState].end(), currentTask[m_CurrentState]) );
|
||||
|
||||
@@ -2253,21 +2252,21 @@ void Tutorial::changeTutorialState(eTutorial_State newState, UIScene *scene /*=
|
||||
}
|
||||
else
|
||||
{
|
||||
currentTask[m_CurrentState] = nullptr;
|
||||
currentTask[m_CurrentState] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if( currentTask[m_CurrentState] != nullptr )
|
||||
if( currentTask[m_CurrentState] != NULL )
|
||||
{
|
||||
currentTask[m_CurrentState]->onStateChange(newState);
|
||||
}
|
||||
|
||||
// Make sure that the current message is cleared
|
||||
setMessage( nullptr );
|
||||
setMessage( NULL );
|
||||
|
||||
// If clearing the scene, make sure that the tutorial popup has its reference to this scene removed
|
||||
#ifndef _XBOX
|
||||
if( scene == nullptr )
|
||||
if( scene == NULL )
|
||||
{
|
||||
ui.RemoveInteractSceneReference(m_iPad, m_UIScene);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user