OpenToontownTools / OpenRTM

An open sourced modernized version of Disney's in-house Robot Toon Manager used to create promotional material.
15 stars 5 forks source link

Panda3D-TTRMDev-1.11.0-py3.6-x64 contains Pmw_2_0_1 bug #4

Open TerjeRusska opened 4 months ago

TerjeRusska commented 4 months ago

The custom Panda3D sdk mentioned in the readme Panda3D-TTRMDev-1.11.0-py3.6-x64 contains a bug in the Pmw_2_0_1 library related to type conversions.

Known pipe types:
  wglGraphicsPipe
(all display modules loaded.)
Traceback (most recent call last):
  File "C:\Panda3D-1.11.0-Py39-x64\python\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "C:\Panda3D-1.11.0-Py39-x64\python\lib\runpy.py", line 85, in _run_code
  File "C:\Users\Terje\Desktop\Toontown\OpenRTM\rtm.py", line 77, in <module>
    RTMBase().run()
  File "C:\Users\Terje\Desktop\Toontown\OpenRTM\rtm.py", line 70, in __init__
    self.startDirect(1, 1, 0)
  File "C:\Panda3D-1.11.0-py39-x64\direct\showbase\ShowBase.py", line 3386, in startDirect
    self.direct = DirectSession.DirectSession()
  File "C:\Panda3D-1.11.0-py39-x64\direct\directtools\DirectSession.py", line 310, in __init__
    self.panel = DirectSessionPanel.DirectSessionPanel(parent = base.tkRoot)
  File "C:\Panda3D-1.11.0-py39-x64\direct\tkpanels\DirectSessionPanel.py", line 44, in __init__
    AppShell.__init__(self, parent)
  File "C:\Panda3D-1.11.0-py39-x64\direct\tkwidgets\AppShell.py", line 92, in __init__
    self.__createInterface()
  File "C:\Panda3D-1.11.0-py39-x64\direct\tkwidgets\AppShell.py", line 114, in __createInterface
    self.createInterface()
  File "C:\Panda3D-1.11.0-py39-x64\direct\tkpanels\DirectSessionPanel.py", line 187, in createInterface
    notebook = Pmw.NoteBook(notebookFrame)
  File "C:\Panda3D-1.11.0-py39-x64\Pmw\Pmw_2_0_1\lib\PmwNoteBook.py", line 60, in __init__
    Pmw.Color.bordercolors(self, self['hull_background'])
  File "C:\Panda3D-1.11.0-py39-x64\Pmw\Pmw_2_0_1\lib\PmwColor.py", line 359, in bordercolors
    '#%04x%04x%04x' % (lightRGB[0], lightRGB[1], lightRGB[2]),
TypeError: %x format: an integer is required, not float

Currently a manual fix is needed in C:\Panda3D-1.11.0-py39-x64\Pmw\Pmw_2_0_1\lib\PmwColor.py to set the affected lines

return (
    '#%04x%04x%04x' % (int(lightRGB[0]), int(lightRGB[1]), int(lightRGB[2])),
    '#%04x%04x%04x' % (int(darkRGB[0]), int(darkRGB[1]), int(darkRGB[2]))
)