toontown-just-works/toontown/speedchat/TTSCBoardingMenu.py
2024-07-07 18:08:39 -05:00

72 lines
2.3 KiB
Python

from direct.showbase import PythonUtil
from otp.speedchat.SCMenu import SCMenu
from otp.speedchat.SCMenuHolder import SCMenuHolder
from otp.speedchat.SCStaticTextTerminal import SCStaticTextTerminal
from otp.otpbase import OTPLocalizer
BoardingMenuGuide = [(OTPLocalizer.BoardingMenuSections[0], []),
(OTPLocalizer.BoardingMenuSections[1], []),
(OTPLocalizer.BoardingMenuSections[2], []),
(OTPLocalizer.BoardingMenuSections[3], [5005,
5006,
5007,
5008,
5009])]
GroupPhrases = [5000,
5001,
5002,
5003,
5004]
ZoneIdsToMsgs = {10000: [GroupPhrases, [5100, 5101, 5102], [5200, 5201, 5202]],
10100: [GroupPhrases, [5103], [5203]],
11100: [GroupPhrases, [5104], [5204]],
11200: [GroupPhrases, [5105, 5106], [5205, 5206]],
12000: [GroupPhrases, [5107, 5108, 5109], [5207, 5208, 5209]],
12100: [GroupPhrases, [5110], [5210]],
13100: [GroupPhrases, [5111], [5211]],
13200: [GroupPhrases, [5112,
5113,
5114,
5115], [5212,
5213,
5214,
5215]]}
class TTSCBoardingMenu(SCMenu):
def __init__(self, zoneId):
SCMenu.__init__(self)
self.__boardingMessagesChanged(zoneId)
def destroy(self):
SCMenu.destroy(self)
def clearMenu(self):
SCMenu.clearMenu(self)
def __boardingMessagesChanged(self, zoneId):
self.clearMenu()
try:
lt = base.localAvatar
except:
return
for count in xrange(len(BoardingMenuGuide)):
section = BoardingMenuGuide[count]
if section[0] == -1:
for phrase in section[1]:
if phrase not in OTPLocalizer.SpeedChatStaticText:
print 'warning: tried to link boarding phrase %s which does not seem to exist' % phrase
break
self.append(SCStaticTextTerminal(phrase))
else:
menu = SCMenu()
phrases = ZoneIdsToMsgs[zoneId][count]
for phrase in phrases:
if phrase not in OTPLocalizer.SpeedChatStaticText:
print 'warning: tried to link boarding phrase %s which does not seem to exist' % phrase
break
menu.append(SCStaticTextTerminal(phrase))
menuName = str(section[0])
self.append(SCMenuHolder(menuName, menu))