Exemplo n.º 1
0
    def generateChat(self, balloon):
        v5 = self.getState()
        text_color = NametagGlobals.getChatFg(self.group.getColorCode(), v5)
        balloon_color = NametagGlobals.getChatBg(self.group.getColorCode(), v5)

        if self.group.chat_flags & CFQuicktalker:
            balloon_color = self.group.getQtColor()

        text = self.group.getChat()
        has_page_button = False
        has_quit_button = False
        if not self.group.has_timeout:
            has_page_button = self.group.chat_flags & CFPageButton
            if self.group.getPageNumber() >= self.group.getNumChatPages() - 1:
                if self.group.chat_flags & CFQuitButton:
                    has_page_button = False
                    has_quit_button = True

        page_button = None
        if has_page_button:
            page_button = NametagGlobals.getPageButton(v5)

        elif has_quit_button:
            page_button = NametagGlobals.getQuitButton(v5)

        reversed = self.group.chat_flags & CFReversed
        new_button = [None]
        balloon_result = balloon.generate(text, self.group.getChatFont(),
                                          self.wordwrap, text_color,
                                          balloon_color, self.is_3d,
                                          self.has_draw_order, self.draw_order,
                                          page_button,
                                          self.group.willHaveButton(),
                                          reversed, new_button)

        self.np_balloon = self.np_top.attachNewNode(balloon_result)
        if new_button[0]:
            self.startFlash(new_button[0])

        self.name_frame = balloon.text_frame
        self.field_396 = 1
Exemplo n.º 2
0
    def generateChat(self, balloon):
        v5 = self.getState()
        text_color = NametagGlobals.getChatFg(self.group.getColorCode(), v5)
        balloon_color = NametagGlobals.getChatBg(self.group.getColorCode(), v5)

        if self.group.chat_flags & CFQuicktalker:
            balloon_color = self.group.getQtColor()

        balloon_color[3] = max(balloon_color[3], NametagGlobals._min_2d_alpha)
        balloon_color[3] = min(balloon_color[3], NametagGlobals._max_2d_alpha)

        text = self.group.getChat()
        if self.group.name:
            text = '%s: %s' % (self.group.name, text)

        has_page_button = False
        has_quit_button = False
        if not self.group.has_timeout:
            has_page_button = self.group.chat_flags & CFPageButton
            if self.group.getPageNumber() >= self.group.getNumChatPages() - 1:
                if self.group.chat_flags & CFQuitButton:
                    has_page_button = False
                    has_quit_button = True

        page_button = None
        if has_page_button:
            page_button = NametagGlobals.getPageButton(v5)

        elif has_quit_button:
            page_button = NametagGlobals.getQuitButton(v5)

        reversed = self.group.chat_flags & CFReversed
        new_button = [None]
        balloon_result = balloon.generate(text, self.group.getChatFont(),
                                          self.wordwrap, text_color,
                                          balloon_color, False,
                                          self.has_draw_order, self.draw_order,
                                          page_button,
                                          self.group.willHaveButton(),
                                          reversed, new_button)

        self.unknown_np = self.np.attachNewNode(balloon_result)

        v88 = 8.0  # XXX THIS IS A GUESS
        v49 = 2 * self.cell_width
        a6 = v49 / (v88 + 1.0)
        v50 = balloon.text_height * balloon.hscale
        v85 = balloon.hscale * 5.0
        v88 = v50 * 0.5
        v113 = -(balloon.hscale * 0.5 + v85)
        v51 = -(NametagGlobals._balloon_text_origin[2] + v88)
        v118 = Mat4(a6, 0, 0, 0, 0, a6, 0, 0, 0, 0, a6, 0, v113 * a6, 0,
                    v51 * a6, 1.0)

        self.unknown_np.setMat(v118)

        reducer = SceneGraphReducer()
        reducer.applyAttribs(self.unknown_np.node())

        v66 = self.np.getNetTransform().getMat()

        # XXX THE LINES BELOW ARE A GUESS
        v67 = v113 * a6
        v68 = v51 * a6
        v94 = v66.xformPoint(Point3(v67, 0.0, v68))
        v97 = v66.xformPoint(Point3(-v67, 0.0, -v68))

        frame = Vec4(v94[0], v97[0], v94[2], v97[2])
        self.setRegion(frame, 0)