|
@@ -4,6 +4,7 @@ import (
|
|
|
"fmt"
|
|
|
"red-green/door"
|
|
|
"strconv"
|
|
|
+ "strings"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
@@ -72,6 +73,8 @@ func display_information(d *door.Door) {
|
|
|
d.Write(nice_format("BBS Software", d.Config.BBSID))
|
|
|
d.Write(nice_format("Real Name", d.Config.Real_name))
|
|
|
d.Write(nice_format("Handle", d.Config.Handle))
|
|
|
+ d.Write(nice_format("User #", strconv.Itoa(d.Config.User_number)))
|
|
|
+ d.Write(nice_format("Security Level", strconv.Itoa(d.Config.Security_level)))
|
|
|
d.Write(nice_format("Node #", strconv.Itoa(d.Config.Node)))
|
|
|
d.Write(nice_format("Unicode", strconv.FormatBool(door.Unicode)))
|
|
|
d.Write(nice_format("CP437", strconv.FormatBool(door.CP437)))
|
|
@@ -79,21 +82,9 @@ func display_information(d *door.Door) {
|
|
|
}
|
|
|
|
|
|
func display_ansi(d *door.Door) {
|
|
|
- SPACE := [...]string{
|
|
|
- "\x1b[?7h\x1b[255D\x1b[0;1;32m\xdc\x1b[42m\xb2\xb2\xb2\xb2\xdb\x1b[40m\xdc \x1b[42m\xb1\xb1\xb2\xb2\xdb\xdb\x1b[4C\xb1\xb2\xb2\xdb\x1b[4C\xb1\xb2\xb2\xdb\xdb\x1b[3C\xb1\xb2\xb2\xdb\xdb\x1b[11C\xb1\xb2\xb2\xdb\x1b[4C\xb1\xb2\xb2\xdb\xdb\x1b[3C\xb1\xb2\xb2\xdb\xdb\x1b[40m",
|
|
|
- "\x1b[42m\xb1\xb1\x1b[4C\xdb\x1b[2C\xb1\xb1\x1b[2C\xdb\xdb\x1b[2C\xb0\xb1\x1b[2C\xb2\xdb\x1b[2C\xb0\xb1\x1b[3C\xdb\xdb\x1b[1C\xb0\xb1\x1b[3C\xdb\xdb\x1b[9C\xb0\xb1\x1b[2C\xb2\xdb\x1b[2C\xb0\xb1\x1b[3C\xdb\xdb\x1b[1C\xb0\xb1\x1b[3C\xdb\xdb\x1b[40m",
|
|
|
- "\x1b[42m\xb0\xb1\x1b[40m\xdc\xdc\xdc\xdc \x1b[42m\xb0\xb1\x1b[2C\xb2\xdb\x1b[1C \xb0\x1b[4C\xb2\xdb\x1b[1C\xb0\xb0\x1b[6C\xb0\xb0\x1b[0;32m\xdc\xdc\x1b[11C\x1b[42m \x1b[1m\xb0\x1b[4C\xb2\xdb\x1b[1C\xb0\xb0\x1b[6C\xb0\xb0\x1b[0;32m\xdc\xdc",
|
|
|
- " \x1b[1m\xdf\xdf\xdf\xdf\x1b[42m\xb2\xb2\x1b[2C\xb0\xb0\xb1\xb1\xb2\x1b[2C \xb0\xb0\xb1\xb1\xb2\xb2\x1b[1C \xb0\x1b[6C \xb0\x1b[0;32m\xdf\xdf\x1b[11C\x1b[42m \x1b[1m\xb0\xb0\xb1\xb1\xb2\xb2\x1b[1C \xb0\x1b[6C \xb0\x1b[0;32m\xdf\xdf",
|
|
|
- "\xdb \x1b[1;42m\xb1\xb2\x1b[2C \xb0\x1b[5C \x1b[4C\xb1\xb2\x1b[1C \x1b[3C\xb1\xb2\x1b[1C \x1b[3C\xb1\xb2\x1b[8C \x1b[4C\xb1\xb2\x1b[1C \x1b[3C\xb1\xb2\x1b[1C \x1b[3C\xb1\xb2\x1b[40m",
|
|
|
- "\x1b[0;32m\xdf\x1b[42m \x1b[40m\xdb\x1b[1;42m\xb0\xb0\xb1\x1b[0;32m\xdf \x1b[42m \x1b[7C \x1b[2C\x1b[1m\xb0\xb1\x1b[3C \xb0\xb0\xb1\x1b[3C \xb0\xb0\xb1\x1b[10C \x1b[2C\xb0\xb1\x1b[3C \xb0\xb0\xb1\x1b[3C \xb0\xb0\xb1\x1b[40m",
|
|
|
- "",
|
|
|
- "",
|
|
|
- "\x1b[37mBugz in space, with a deck of cards",
|
|
|
- "\x1b[0m",
|
|
|
- }
|
|
|
-
|
|
|
+ space := SPACE()
|
|
|
d.Write(door.Clrscr)
|
|
|
- for _, line := range SPACE {
|
|
|
+ for _, line := range space {
|
|
|
if door.Unicode {
|
|
|
d.Write(door.CP437_to_Unicode(line) + door.CRNL)
|
|
|
} else {
|
|
@@ -157,10 +148,10 @@ func progress_bars(d *door.Door) {
|
|
|
percentage = int64(f * 100)
|
|
|
|
|
|
update_bars()
|
|
|
-
|
|
|
d.Write(bar_start + bar.Output() + " " + door.Reset + bar2.Output() + door.Reset + " " + bar3.Output())
|
|
|
|
|
|
if d.Disconnected {
|
|
|
+ // don't continue to sleep if we're disconnected
|
|
|
break
|
|
|
}
|
|
|
|
|
@@ -177,6 +168,9 @@ func panel_demo(d *door.Door) {
|
|
|
lineColor := door.ColorText("BRIGHT WHI ON BLUE")
|
|
|
// Add lines to the panel
|
|
|
for _, line := range []string{"The BBS Door Panel Demo", "(C) 2021 Red Green Software, https://red-green.com"} {
|
|
|
+ if door.Unicode {
|
|
|
+ line = strings.Replace(line, "(C)", "\u00a9", -1)
|
|
|
+ }
|
|
|
l := door.Line{Text: fmt.Sprintf(fmtStr, line), DefaultColor: lineColor}
|
|
|
p.Lines = append(p.Lines, l)
|
|
|
}
|
|
@@ -258,13 +252,14 @@ func main() {
|
|
|
message = fmt.Sprintf("Returning to the %s BBS..."+door.CRNL, d.Config.BBSID)
|
|
|
d.Write(message)
|
|
|
|
|
|
- d.WaitKey(2, 0)
|
|
|
+ d.WaitKey(1, 0)
|
|
|
left = d.TimeLeft()
|
|
|
|
|
|
message = fmt.Sprintf("You had %0.2f minutes / %0.2f seconds remaining!"+door.CRNL, left.Minutes(), left.Seconds())
|
|
|
d.Write(message)
|
|
|
+
|
|
|
left = d.TimeUsed()
|
|
|
- d.Write(fmt.Sprintf("You used %0.2f seconds, or %0.2f minutes."+door.CRNL, left.Seconds(), left.Minutes()))
|
|
|
+ d.Write(fmt.Sprintf("You used %0.2f seconds / %0.2f minutes."+door.CRNL, left.Seconds(), left.Minutes()))
|
|
|
|
|
|
fmt.Println("Ending testdoor.go")
|
|
|
}
|