historical/toontown-classic.git/otp/otpbase/OTPGlobals.py
2024-01-16 11:20:27 -06:00

408 lines
11 KiB
Python

from panda3d.core import *
QuietZone = 1
UberZone = 2
WallBitmask = BitMask32(1)
FloorBitmask = BitMask32(2)
CameraBitmask = BitMask32(4)
CameraTransparentBitmask = BitMask32(8)
SafetyNetBitmask = BitMask32(512)
SafetyGateBitmask = BitMask32(1024)
GhostBitmask = BitMask32(2048)
PathFindingBitmask = BitMask32.bit(29)
OriginalCameraFov = 52.0
DefaultCameraFov = 52.0
DefaultCameraFar = 400.0
DefaultCameraNear = 1.0
AICollisionPriority = 10
AICollMovePriority = 8
MaxFriends = 50
MaxPlayerFriends = 300
MaxBackCatalog = 48
FriendChat = 1
CommonChat = 1
SuperChat = 2
MaxCustomMessages = 25
SPInvalid = 0
SPHidden = 1
SPRender = 2
SPDynamic = 5
CENormal = 0
CEBigHead = 1
CESmallHead = 2
CEBigLegs = 3
CESmallLegs = 4
CEBigToon = 5
CESmallToon = 6
CEFlatPortrait = 7
CEFlatProfile = 8
CETransparent = 9
CENoColor = 10
CEInvisible = 11
CEPumpkin = 12
CEBigWhite = 13
CESnowMan = 14
CEGreenToon = 15
CEGhost = 'g'
BigToonScale = 1.5
SmallToonScale = 0.5
DisconnectUnknown = 0
DisconnectBookExit = 1
DisconnectCloseWindow = 2
DisconnectPythonError = 3
DisconnectSwitchShards = 4
DisconnectGraphicsError = 5
DisconnectReasons = {DisconnectUnknown: 'unknown',
DisconnectBookExit: 'book exit',
DisconnectCloseWindow: 'closed window',
DisconnectPythonError: 'python error',
DisconnectSwitchShards: 'switch shards',
DisconnectGraphicsError: 'graphics error'}
DatabaseDialogTimeout = 20.0
DatabaseGiveupTimeout = 45.0
PeriodTimerWarningTime = (600, 300, 60)
WalkCutOff = 0.5
RunCutOff = 8.0
FloorOffset = 0.025
AvatarDefaultRadius = 1
InterfaceFont = None
InterfaceFontPath = None
SignFont = None
SignFontPath = None
FancyFont = None
FancyFontPath = None
NametagFonts = {}
NametagFontPaths = {}
DialogClass = None
GlobalDialogClass = None
ProductPrefix = None
def getInterfaceFont():
global InterfaceFontPath
global InterfaceFont
if InterfaceFont == None:
if InterfaceFontPath == None:
InterfaceFont = TextNode.getDefaultFont()
else:
InterfaceFont = loader.loadFont(InterfaceFontPath, lineHeight=1.0)
return InterfaceFont
def setInterfaceFont(path):
global InterfaceFontPath
global InterfaceFont
InterfaceFontPath = path
InterfaceFont = None
return
def getSignFont():
global SignFont
global SignFontPath
if SignFont == None:
if SignFontPath == None:
InterfaceFont = TextNode.getDefaultFont()
SignFont = TextNode.getDefaultFont()
else:
SignFont = loader.loadFont(SignFontPath, lineHeight=1.0)
return SignFont
def setSignFont(path):
global SignFontPath
SignFontPath = path
def getFancyFont():
global FancyFontPath
global FancyFont
if FancyFont == None:
if FancyFontPath == None:
InterfaceFont = TextNode.getDefaultFont()
FancyFont = TextNode.getDefaultFont()
else:
FancyFont = loader.loadFont(FancyFontPath, lineHeight=1.0)
return FancyFont
def setFancyFont(path):
global FancyFontPath
FancyFontPath = path
def getNametagFont(index):
global NametagFontPaths
global NametagFonts
if index not in NametagFonts or NametagFonts[index] == None:
if index not in NametagFontPaths or NametagFontPaths[index] == None:
InterfaceFont = TextNode.getDefaultFont()
NametagFonts[index] = TextNode.getDefaultFont()
else:
NametagFonts[index] = loader.loadFont(NametagFontPaths[index], lineHeight=1.0)
return NametagFonts[index]
def setNametagFont(index, path):
NametagFontPaths[index] = path
def getDialogClass():
global DialogClass
if DialogClass == None:
from otp.otpgui.OTPDialog import OTPDialog
DialogClass = OTPDialog
return DialogClass
def getGlobalDialogClass():
global GlobalDialogClass
if DialogClass == None:
from otp.otpgui.OTPDialog import GlobalDialog
GlobalDialogClass = GlobalDialog
return GlobalDialogClass
def setDialogClasses(dialogClass, globalDialogClass):
global DialogClass
global GlobalDialogClass
DialogClass = dialogClass
GlobalDialogClass = globalDialogClass
def getDefaultProductPrefix():
global ProductPrefix
return ProductPrefix
def setDefaultProductPrefix(prefix):
global ProductPrefix
ProductPrefix = prefix
NetworkLatency = 1.0
maxLoginWidth = 9.1
STAND_INDEX = 0
WALK_INDEX = 1
RUN_INDEX = 2
REVERSE_INDEX = 3
STRAFE_LEFT_INDEX = 4
STRAFE_RIGHT_INDEX = 5
ToonStandableGround = 0.707
ToonSpeedFactor = 1.25
ToonForwardSpeed = 16.0 * ToonSpeedFactor
ToonJumpForce = 24.0
ToonReverseSpeed = 8.0 * ToonSpeedFactor
ToonRotateSpeed = 80.0 * ToonSpeedFactor
ToonForwardSlowSpeed = 6.0
ToonJumpSlowForce = 4.0
ToonReverseSlowSpeed = 2.5
ToonRotateSlowSpeed = 33.0
MickeySpeed = 5.0
MinnieSpeed = 3.2
DonaldSpeed = 3.68
GoofySpeed = 5.2
PlutoSpeed = 5.5
ThinkPosHotkey = 'shift-f1'
PlaceMarkerHotkey = 'f2'
FriendsListHotkey = 'f7'
StickerBookHotkey = 'f8'
OptionsPageHotkey = 'escape'
ScreenshotHotkey = 'f9'
SynchronizeHotkey = 'shift-f6'
QuestsHotkeyOn = 'end'
QuestsHotkeyOff = 'end-up'
InventoryHotkeyOn = 'home'
InventoryHotkeyOff = 'home-up'
MapHotkeyOn = 'delete'
MapHotkeyOff = 'delete-up'
DetectGarbageHotkey = 'shift-f11'
PrintCamPosHotkey = 'f12'
GlobalDialogColor = (1,
1,
0.75,
1)
DefaultBackgroundColor = (0.3,
0.3,
0.3,
1)
toonBodyScales = {'mouse': 0.6,
'cat': 0.73,
'duck': 0.66,
'rabbit': 0.74,
'horse': 0.85,
'dog': 0.85,
'monkey': 0.68,
'bear': 0.85,
'pig': 0.77}
toonHeadScales = {'mouse': Point3(1.0),
'cat': Point3(1.0),
'duck': Point3(1.0),
'rabbit': Point3(1.0),
'horse': Point3(1.0),
'dog': Point3(1.0),
'monkey': Point3(1.0),
'bear': Point3(1.0),
'pig': Point3(1.0)}
legHeightDict = {'s': 1.5,
'm': 2.0,
'l': 2.75}
torsoHeightDict = {'s': 1.5,
'm': 1.75,
'l': 2.25,
'ss': 1.5,
'ms': 1.75,
'ls': 2.25,
'sd': 1.5,
'md': 1.75,
'ld': 2.25}
headHeightDict = {'dls': 0.75,
'dss': 0.5,
'dsl': 0.5,
'dll': 0.75,
'cls': 0.75,
'css': 0.5,
'csl': 0.5,
'cll': 0.75,
'hls': 0.75,
'hss': 0.5,
'hsl': 0.5,
'hll': 0.75,
'mls': 0.75,
'mss': 0.5,
'rls': 0.75,
'rss': 0.5,
'rsl': 0.5,
'rll': 0.75,
'fls': 0.75,
'fss': 0.5,
'fsl': 0.5,
'fll': 0.75,
'pls': 0.75,
'pss': 0.5,
'psl': 0.5,
'pll': 0.75,
'bls': 0.75,
'bss': 0.5,
'bsl': 0.5,
'bll': 0.75,
'sls': 0.75,
'sss': 0.5,
'ssl': 0.5,
'sll': 0.75}
RandomButton = 'Randomize'
TypeANameButton = 'Type Name'
PickANameButton = 'Pick-A-Name'
NameShopSubmitButton = 'Submit'
RejectNameText = 'That name is not allowed. Please try again.'
WaitingForNameSubmission = 'Submitting your name...'
NameShopNameMaster = 'NameMasterEnglish.txt'
NameShopPay = 'Subscribe Now!'
NameShopPlay = 'Free Trial'
NameShopOnlyPaid = 'Only paid users\nmay name their Toons.\nUntil you subscribe\nyour name will be\n'
NameShopContinueSubmission = 'Continue Submission'
NameShopChooseAnother = 'Choose Another Name'
NameShopToonCouncil = 'The Toon Council\nwill review your\nname. ' + 'Review may\ntake a few days.\nWhile you wait\nyour name will be\n '
PleaseTypeName = 'Please type your name:'
AllNewNames = 'All new names\nmust be approved\nby the Toon Council.'
NameShopNameRejected = 'The name you\nsubmitted has\nbeen rejected.'
NameShopNameAccepted = 'Congratulations!\nThe name you\nsubmitted has\nbeen accepted!'
NoPunctuation = "You can't use punctuation marks in your name!"
PeriodOnlyAfterLetter = 'You can use a period in your name, but only after a letter.'
ApostropheOnlyAfterLetter = 'You can use an apostrophe in your name, but only after a letter.'
NoNumbersInTheMiddle = 'Numeric digits may not appear in the middle of a word.'
ThreeWordsOrLess = 'Your name must be three words or fewer.'
CopyrightedNames = ('mickey',
'mickey mouse',
'mickeymouse',
'minnie',
'minnie mouse',
'minniemouse',
'donald',
'donald duck',
'donaldduck',
'pluto',
'goofy')
GuildUpdateMembersEvent = 'guildUpdateMembersEvent'
GuildInvitationEvent = 'guildInvitationEvent'
GuildAcceptInviteEvent = 'guildAcceptInviteEvent'
GuildRejectInviteEvent = 'guildRejectInviteEvent'
AvatarFriendAddEvent = 'avatarFriendAddEvent'
AvatarNewFriendAddEvent = 'avatarNewFriendAddEvent'
AvatarFriendUpdateEvent = 'avatarFriendUpdateEvent'
AvatarFriendRemoveEvent = 'avatarFriendRemoveEvent'
PlayerFriendAddEvent = 'playerFriendAddEvent'
PlayerFriendUpdateEvent = 'playerFriendUpdateEvent'
PlayerFriendRemoveEvent = 'playerFriendRemoveEvent'
AvatarFriendConsideringEvent = 'avatarFriendConsideringEvent'
AvatarFriendInvitationEvent = 'avatarFriendInvitationEvent'
AvatarFriendRejectInviteEvent = 'avatarFriendRejectInviteEvent'
AvatarFriendRetractInviteEvent = 'avatarFriendRetractInviteEvent'
AvatarFriendRejectRemoveEvent = 'avatarFriendRejectRemoveEvent'
PlayerFriendInvitationEvent = 'playerFriendInvitationEvent'
PlayerFriendRejectInviteEvent = 'playerFriendRejectInviteEvent'
PlayerFriendRetractInviteEvent = 'playerFriendRetractInviteEvent'
PlayerFriendRejectRemoveEvent = 'playerFriendRejectRemoveEvent'
PlayerFriendNewSecretEvent = 'playerFriendNewSecretEvent'
PlayerFriendRejectNewSecretEvent = 'playerFriendRejectNewSecretEvent'
PlayerFriendRejectUseSecretEvent = 'playerFriendRejectUseSecretEvent'
WhisperIncomingEvent = 'whisperIncomingEvent'
ChatFeedback_PassedBlacklist = 32
ChatFeedback_Whitelist = 64
ChatFeedback_OpenChat = 128
AccessUnknown = 0
AccessVelvetRope = 1
AccessFull = 2
AccessInvalid = 3
AvatarPendingCreate = -1
AvatarSlotUnavailable = -2
AvatarSlotAvailable = -3
accessLevelValues = {'NO_ACCESS': 0,
'USER': 100,
'MODERATOR': 200,
'ADMIN': 300,
'SYSTEM_ADMIN': 400,
'SERVER_HOSTER': 500,
'TTOFF_MODERATOR': 600,
'TTOFF_CREATIVE_TEAM': 700,
'TTOFF_DEVELOPER': 800}
BootedUnexpectedProblem = 1
BootedLoggedInElsewhere = 100
BootedKeyboardChatAuth = 120 # If I remember correctly, this is a bogus error message for hackers, but it doesn't seem to be used in TTOff
BootedConnectionKilled = 122 # GSM issues this when it enters the "Kill" state
BootedVersionMismatch = 124
BootedFileMismatch = 125
BootedNoAdminPrivileges = 126
BootedToonIssue = 127 # ???
BootedKickedForMaintenance = 151
BootedBanned = 152
BootedDistrictReset = 153
BootedOutOfTime = 288
BootedMoreInfo = [BootedUnexpectedProblem, BootedConnectionKilled, BootedToonIssue]
BootedNoReconnect = [BootedToonIssue, BootedBanned]
AccessLevelName2Int = {
'RESTRICTED': -100, # A user that has been banned, or is restricted in some manner
'NO_ACCESS': 0, # A user without access to commands
'USER': 100, # A user with access to most commands
'BUILDER': 101, # A user with access to most commands, with additional access to SpawnProp features
'MODERATOR': 200, # A user with access to all commands
'ADMIN': 300, # A user with higher access level than previous
'SYSTEM_ADMIN': 400, # A user with higher access level than previous
'SERVER_HOSTER': 500, # The highest access level a normal player can obtain
'TTOFF_CREATIVE_TEAM': 600, # A Toontown Online Creative Team member
'TTOFF_MODERATOR': 700, # A Toontown Online Support Team member
'TTOFF_DEVELOPER': 800 # A Toontown Online Developer
}
AccessLevelInt2Name = {
-100: 'RESTRICTED',
0: 'NO_ACCESS',
100: 'USER',
101: 'BUILDER',
200: 'MODERATOR',
300: 'ADMIN',
400: 'SYSTEM_ADMIN',
500: 'SERVER_HOSTER',
600: 'TTOFF_CREATIVE_TEAM',
700: 'TTOFF_MODERATOR',
800: 'TTOFF_DEVELOPER'
}