Merge pull request #15 from SunTrustDev/bugfix/std-1
Fix quest dialog cancellation not resetting quest state
This commit is contained in:
27
.gitattributes
vendored
27
.gitattributes
vendored
@@ -1,25 +1,2 @@
|
||||
# Standard Western (Windows-1252)
|
||||
# Includes English, German, Danish, Spanish, French, Italian, Dutch, Portuguese
|
||||
assets/locale_{en,de,dk,es,fr,it,nl,pt}/locale/{en,de,dk,es,fr,it,nl,pt}/locale_game.txt text working-tree-encoding=windows-1252
|
||||
assets/locale_{en,de,dk,es,fr,it,nl,pt}/locale/{en,de,dk,es,fr,it,nl,pt}/locale_interface.txt text working-tree-encoding=windows-1252
|
||||
|
||||
# Central European (Windows-1250)
|
||||
# Includes Czech, Hungarian, Polish, Romanian
|
||||
assets/locale_{cz,hu,pl,ro}/locale/{cz,hu,pl,ro}/locale_game.txt text working-tree-encoding=windows-1250
|
||||
assets/locale_{cz,hu,pl,ro}/locale/{cz,hu,pl,ro}/locale_interface.txt text working-tree-encoding=windows-1250
|
||||
|
||||
# Cyrillic (Windows-1251)
|
||||
assets/locale_ru/locale/ru/locale_game.txt text working-tree-encoding=windows-1251
|
||||
assets/locale_ru/locale/ru/locale_interface.txt text working-tree-encoding=windows-1251
|
||||
|
||||
# Greek (Windows-1253)
|
||||
assets/locale_gr/locale/gr/locale_game.txt text working-tree-encoding=windows-1253
|
||||
assets/locale_gr/locale/gr/locale_interface.txt text working-tree-encoding=windows-1253
|
||||
|
||||
# Turkish (Windows-1254)
|
||||
assets/locale_tr/locale/tr/locale_game.txt text working-tree-encoding=windows-1254
|
||||
assets/locale_tr/locale/tr/locale_interface.txt text working-tree-encoding=windows-1254
|
||||
|
||||
# Arabic (Windows-1256)
|
||||
assets/locale_ae/locale/ae/locale_game.txt text working-tree-encoding=windows-1256
|
||||
assets/locale_ae/locale/ae/locale_interface.txt text working-tree-encoding=windows-1256
|
||||
# Korean (EUC-KR)
|
||||
assets/root/*.py text working-tree-encoding=utf-8
|
||||
|
||||
@@ -309,6 +309,10 @@ class QuestDialog(ui.ScriptWindow):
|
||||
self.editLine = None
|
||||
# END_OF_QUEST_INPUT
|
||||
|
||||
# QUEST_CANCEL - Track if dialog was cancelled
|
||||
self.bCancelled = False
|
||||
# END_OF_QUEST_CANCEL
|
||||
|
||||
def __del__(self):
|
||||
ui.ScriptWindow.__del__(self)
|
||||
|
||||
@@ -330,11 +334,16 @@ class QuestDialog(ui.ScriptWindow):
|
||||
|
||||
# QUEST_CANCEL
|
||||
def OnCancel(self):
|
||||
self.bCancelled = True
|
||||
self.nextCurtainMode = -1
|
||||
self.CloseSelf()
|
||||
# END_OF_QUEST_CANCEL
|
||||
|
||||
def CloseSelf(self):
|
||||
if self.bCancelled:
|
||||
net.SendQuestCancelPacket()
|
||||
self.bCancelled = False
|
||||
|
||||
QuestDialog.QuestCurtain.CurtainMode = self.nextCurtainMode
|
||||
self.btnNext = None
|
||||
self.descWindow = None
|
||||
@@ -443,7 +452,7 @@ class QuestDialog(ui.ScriptWindow):
|
||||
|
||||
import localeInfo
|
||||
if event.BUTTON_TYPE_CANCEL == button_type:
|
||||
b.SetEvent(lambda s=self:event.SelectAnswer(s.descIndex, 254) or s.OnCancel())
|
||||
b.SetEvent(lambda s=self:(setattr(s, 'bCancelled', True) or None) or event.SelectAnswer(s.descIndex, 254) or s.OnCancel())
|
||||
b.SetText(localeInfo.UI_CANCEL)
|
||||
elif event.BUTTON_TYPE_DONE == button_type:
|
||||
b.SetEvent(lambda s=self:s.CloseSelf())
|
||||
@@ -457,7 +466,7 @@ class QuestDialog(ui.ScriptWindow):
|
||||
|
||||
# END_OF_QUEST_CANCEL
|
||||
|
||||
def MakeQuestion(self, n): # n은 모든 퀘스트 대화창의 마지막 버튼인 "닫기"를 포함한 전체 퀘스트 버튼 개수. by 김준호
|
||||
def MakeQuestion(self, n): # n은 모든 퀘스트 대화창의 마지막 버튼인 "닫기"를 포함한 전체 퀘스트 버튼 개수. by 김준호
|
||||
global entire_questbutton_number
|
||||
global entire_questpage_number
|
||||
global cur_questpage_number
|
||||
@@ -548,7 +557,7 @@ class QuestDialog(ui.ScriptWindow):
|
||||
self.prevbutton = None
|
||||
self.CloseSelf()
|
||||
|
||||
def AppendQuestion(self, name, idx): # idx는 0부터 시작함. PythonEventManager.cpp line 881 참고. by 김준호
|
||||
def AppendQuestion(self, name, idx): # idx는 0부터 시작함. PythonEventManager.cpp line 881 참고. by 김준호
|
||||
if not self.btnAnswer:
|
||||
return
|
||||
|
||||
@@ -595,7 +604,7 @@ class QuestDialog(ui.ScriptWindow):
|
||||
# QUEST_INPUT
|
||||
def OnKeyDown(self, key):
|
||||
if self.btnAnswer == None:
|
||||
## 선택문이 없고 '다음', '확인' 등의 일방 버튼만 있는 경우에 대한 처리
|
||||
## 선택문이 없고 '다음', '확인' 등의 일방 버튼만 있는 경우에 대한 처리
|
||||
if None != self.btnNext:
|
||||
if app.DIK_RETURN == key:
|
||||
self.OnPressEscapeKey()
|
||||
@@ -640,21 +649,22 @@ class QuestDialog(ui.ScriptWindow):
|
||||
|
||||
def OnPressEscapeKey(self):
|
||||
|
||||
# ESC키가 눌린 경우 "다음" 버튼을 누른 것과 같은 효과를 내도록 함.
|
||||
# ESC키가 눌린 경우 "다음" 버튼을 누른 것과 같은 효과를 내도록 함.
|
||||
if None != self.btnNext:
|
||||
##퀘스트문자들이 전부다 나왔을경우의 ESC버튼
|
||||
##퀘스트문자들이 전부다 나왔을경우의 ESC버튼
|
||||
if event.BUTTON_TYPE_CANCEL == self.nextButtonType:
|
||||
self.bCancelled = True
|
||||
event.SelectAnswer(self.descIndex, 254)
|
||||
self.CloseSelf()
|
||||
## 아무 작업을 하지 않을때
|
||||
## 아무 작업을 하지 않을때
|
||||
elif event.BUTTON_TYPE_DONE == self.nextButtonType:
|
||||
self.CloseSelf()
|
||||
## 엔터나 다음화면으로 넘어가려고 할경우
|
||||
## 엔터나 다음화면으로 넘어가려고 할경우
|
||||
elif event.BUTTON_TYPE_NEXT == self.nextButtonType:
|
||||
event.SelectAnswer(self.descIndex, 254)
|
||||
self.CloseSelf()
|
||||
else:
|
||||
## 도중에 꺼버리거나, ESC버튼이 나왓을경우
|
||||
## 도중에 꺼버리거나, ESC버튼이 나왓을경우
|
||||
event.SelectAnswer(self.descIndex, entire_questbutton_number -1 )
|
||||
self.nextbutton = None
|
||||
self.prevbutton = None
|
||||
|
||||
Reference in New Issue
Block a user