(version 2)
(include "sci.sh")
(exports
    0 proc940_0
)
(use "Main")
(use "Class_255_0")
(use "DIcon")
(script 940)



(procedure public (proc940_0 param1)
    (var temp0, newDText, newClass_255_0, newClass_255_0NsRight, theNewClass_255_0NsBottom_2, newClass_255_0NsBottom, theNewClass_255_0NsBottom, temp7, temp8, temp9, temp10, temp11, temp12, temp13, temp14)
    = temp11 -1
    = temp10 temp11
    = theNewClass_255_0NsBottom 0
    = newClass_255_0NsBottom theNewClass_255_0NsBottom
    = theNewClass_255_0NsBottom_2 newClass_255_0NsBottom
    = newClass_255_0NsRight theNewClass_255_0NsBottom_2
    = temp12 0
    = temp14 0
    = newDText (DText:new())
    (send newDText:window(gFpWin))
    = temp0 0
    (while (< temp0 paramTotal)
        (switch (= temp8 param1[temp0])
            (case 109
                = newClass_255_0NsBottom (send newClass_255_0:nsBottom)
                = newClass_255_0NsRight 0
            )
            (case 64
                = temp10 param1[++temp0]
                = temp11 param1[++temp0]
            )
            (case 77
                = temp12 param1[++temp0]
            )
            (case 124
                = temp14 param1[++temp0]
            )
            (default 
                ++temp0
                (switch (temp8)
                    (case 23
                        = newClass_255_0 (Class_255_0:new())
                        (send newClass_255_0:text(param1[temp0]))
                    )
                    (case 78
                        = newClass_255_0 (DIcon:new())
                        (send newClass_255_0:
                            text(param1[temp0])
                            value(param1[++temp0])
                        )
                    )
                    (case 79
                        = newClass_255_0 (Dialog:new())
                        (send newClass_255_0:
                            view(param1[temp0])
                            loop(param1[++temp0])
                            cel(param1[++temp0])
                        )
                    )
                    (case 38
                        = newClass_255_0 (DButton:new())
                        (send newClass_255_0:
                            text(param1[temp0])
                            max(param1[++temp0])
                        )
                    )
                    (default 
                        = newClass_255_0 (Class_255_0:new())
                        (send newClass_255_0:text(param1[--temp0]))
                    )
                )
                (if ((< (+ temp0 1) paramTotal) and (== param1[(+ temp0 1)] 1))
                    ++temp0
                    = newClass_255_0NsRight (+ newClass_255_0NsRight param1[++temp0])
                )
                (if ((< (+ temp0 1) paramTotal) and (== param1[(+ temp0 1)] 0))
                    ++temp0
                    = newClass_255_0NsBottom (+ newClass_255_0NsBottom param1[++temp0])
                )
                (send newClass_255_0:
                    check()
                    playBed(+ newClass_255_0NsRight 4 + newClass_255_0NsBottom 4)
                )
                (send newDText:add(newClass_255_0))
                = newClass_255_0NsRight (send newClass_255_0:nsRight)
            )
        )
        ++temp0
    )
    (send newDText:
        check()
        cycle()
    )
    (send newDText:playBed(
        (if (== -1 temp10)
            (send newDText:nsLeft)
        )(else
            temp10
        )
 
        (if (== -1 temp11)
            (send newDText:nsTop)
        )(else
            temp11
        )
))
    (if (temp12)
        (send newDText:text(temp12))
    )
    = temp13 (send newDText:at(temp14))
    (if (not & $0001 (send temp13:state))
        = temp13 0
    )
    = temp7 (send newDText:
            setMark(
                (if (temp12)
                    4
                )(else
                    0
                )
 -1)
            doit(temp13)
        )
    (if (IsObject(temp7))
        (if ((send temp7:isKindOf(DIcon)))
            = temp7 (send temp7:value)
        )(else
            = temp7 1
        )
    )
    (send newDText:dispose())
    return temp7
)


