Skip to content
This repository was archived by the owner on Jul 10, 2026. It is now read-only.

Commit 7320fd6

Browse files
committed
very small change in blit for cursor position consistency
1 parent 6c8a587 commit 7320fd6

2 files changed

Lines changed: 96 additions & 92 deletions

File tree

examples/fire/main.odin

Lines changed: 93 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
package main
2020

21-
import tcl "../.."
21+
import t "../.."
2222
import "core:math/rand"
2323

2424
// Set the dimensions
@@ -30,102 +30,103 @@ coolmap: [txrows][txcols]int
3030

3131
// Executes the game intro.
3232
main :: proc() {
33-
screen := tcl.init_screen()
34-
defer tcl.destroy_screen(&screen)
35-
tcl.clear(&screen, .Everything)
36-
tcl.blit(&screen)
33+
screen := t.init_screen()
34+
defer t.destroy_screen(&screen)
35+
t.clear(&screen, .Everything)
36+
t.blit(&screen)
37+
t.hide_cursor(true)
3738

3839
CreateCoolMap()
3940

4041
for {
4142
DrawScreen(&screen, false)
42-
tcl.blit(&screen)
43+
t.blit(&screen)
4344
}
4445
}
4546

4647
MAXAGE :: 80
4748

48-
pal := [MAXAGE]tcl.Color_RGB {
49-
tcl.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
50-
tcl.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
51-
tcl.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
52-
tcl.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
53-
tcl.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
54-
tcl.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
55-
tcl.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
56-
tcl.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
57-
tcl.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
58-
tcl.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
59-
tcl.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
60-
tcl.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
61-
tcl.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
62-
tcl.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
63-
tcl.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
64-
tcl.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
65-
tcl.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
66-
tcl.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
67-
tcl.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
68-
tcl.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
69-
tcl.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
70-
tcl.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
71-
tcl.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
72-
tcl.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
73-
tcl.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
74-
tcl.Color_RGB{r = 0xF9, g = 0xF6, b = 0xB6},
75-
tcl.Color_RGB{r = 0xF8, g = 0xF4, b = 0x8E},
76-
tcl.Color_RGB{r = 0xF8, g = 0xF3, b = 0x64},
77-
tcl.Color_RGB{r = 0xF8, g = 0xF1, b = 0x39},
78-
tcl.Color_RGB{r = 0xF9, g = 0xEC, b = 0x14},
79-
tcl.Color_RGB{r = 0xFA, g = 0xD5, b = 0x1B},
80-
tcl.Color_RGB{r = 0xFC, g = 0xBE, b = 0x22},
81-
tcl.Color_RGB{r = 0xFD, g = 0xA5, b = 0x2A},
82-
tcl.Color_RGB{r = 0xFF, g = 0x8C, b = 0x31},
83-
tcl.Color_RGB{r = 0xFA, g = 0x80, b = 0x2E},
84-
tcl.Color_RGB{r = 0xF4, g = 0x75, b = 0x2A},
85-
tcl.Color_RGB{r = 0xEE, g = 0x6A, b = 0x26},
86-
tcl.Color_RGB{r = 0xE9, g = 0x5E, b = 0x22},
87-
tcl.Color_RGB{r = 0xE3, g = 0x53, b = 0x1D},
88-
tcl.Color_RGB{r = 0xDE, g = 0x47, b = 0x1A},
89-
tcl.Color_RGB{r = 0xD5, g = 0x36, b = 0x13},
90-
tcl.Color_RGB{r = 0xCC, g = 0x25, b = 0x0D},
91-
tcl.Color_RGB{r = 0xC3, g = 0x12, b = 0x07},
92-
tcl.Color_RGB{r = 0xBB, g = 0x01, b = 0x00},
93-
tcl.Color_RGB{r = 0xAC, g = 0x00, b = 0x00},
94-
tcl.Color_RGB{r = 0x9D, g = 0x00, b = 0x00},
95-
tcl.Color_RGB{r = 0x8E, g = 0x00, b = 0x00},
96-
tcl.Color_RGB{r = 0x7F, g = 0x00, b = 0x00},
97-
tcl.Color_RGB{r = 0x70, g = 0x00, b = 0x00},
98-
tcl.Color_RGB{r = 0x61, g = 0x00, b = 0x00},
99-
tcl.Color_RGB{r = 0x5A, g = 0x00, b = 0x00},
100-
tcl.Color_RGB{r = 0x55, g = 0x00, b = 0x00},
101-
tcl.Color_RGB{r = 0x51, g = 0x00, b = 0x00},
102-
tcl.Color_RGB{r = 0x4D, g = 0x00, b = 0x00},
103-
tcl.Color_RGB{r = 0x48, g = 0x00, b = 0x00},
104-
tcl.Color_RGB{r = 0x44, g = 0x00, b = 0x00},
105-
tcl.Color_RGB{r = 0x3F, g = 0x00, b = 0x00},
106-
tcl.Color_RGB{r = 0x3B, g = 0x00, b = 0x00},
107-
tcl.Color_RGB{r = 0x37, g = 0x00, b = 0x00},
108-
tcl.Color_RGB{r = 0x32, g = 0x00, b = 0x00},
109-
tcl.Color_RGB{r = 0x2E, g = 0x00, b = 0x00},
110-
tcl.Color_RGB{r = 0x2A, g = 0x00, b = 0x00},
111-
tcl.Color_RGB{r = 0x25, g = 0x00, b = 0x00},
112-
tcl.Color_RGB{r = 0x21, g = 0x00, b = 0x00},
113-
tcl.Color_RGB{r = 0x1C, g = 0x00, b = 0x00},
114-
tcl.Color_RGB{r = 0x18, g = 0x00, b = 0x00},
115-
tcl.Color_RGB{r = 0x13, g = 0x00, b = 0x00},
116-
tcl.Color_RGB{r = 0x10, g = 0x00, b = 0x00},
117-
tcl.Color_RGB{r = 0x0B, g = 0x00, b = 0x00},
118-
tcl.Color_RGB{r = 0x07, g = 0x00, b = 0x00},
119-
tcl.Color_RGB{r = 0x02, g = 0x00, b = 0x00},
120-
tcl.Color_RGB{r = 0x00, g = 0x00, b = 0x00},
121-
tcl.Color_RGB{r = 0x00, g = 0x00, b = 0x00},
122-
tcl.Color_RGB{r = 0x00, g = 0x00, b = 0x00},
123-
tcl.Color_RGB{r = 0x00, g = 0x00, b = 0x00},
124-
tcl.Color_RGB{r = 0x00, g = 0x00, b = 0x00},
125-
tcl.Color_RGB{r = 0x00, g = 0x00, b = 0x00},
126-
tcl.Color_RGB{r = 0x00, g = 0x00, b = 0x00},
127-
tcl.Color_RGB{r = 0x00, g = 0x00, b = 0x00},
128-
tcl.Color_RGB{r = 0x00, g = 0x00, b = 0x00},
49+
pal := [MAXAGE]t.Color_RGB {
50+
t.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
51+
t.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
52+
t.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
53+
t.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
54+
t.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
55+
t.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
56+
t.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
57+
t.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
58+
t.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
59+
t.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
60+
t.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
61+
t.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
62+
t.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
63+
t.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
64+
t.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
65+
t.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
66+
t.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
67+
t.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
68+
t.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
69+
t.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
70+
t.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
71+
t.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
72+
t.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
73+
t.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
74+
t.Color_RGB{r = 0xF9, g = 0xF7, b = 0xD4},
75+
t.Color_RGB{r = 0xF9, g = 0xF6, b = 0xB6},
76+
t.Color_RGB{r = 0xF8, g = 0xF4, b = 0x8E},
77+
t.Color_RGB{r = 0xF8, g = 0xF3, b = 0x64},
78+
t.Color_RGB{r = 0xF8, g = 0xF1, b = 0x39},
79+
t.Color_RGB{r = 0xF9, g = 0xEC, b = 0x14},
80+
t.Color_RGB{r = 0xFA, g = 0xD5, b = 0x1B},
81+
t.Color_RGB{r = 0xFC, g = 0xBE, b = 0x22},
82+
t.Color_RGB{r = 0xFD, g = 0xA5, b = 0x2A},
83+
t.Color_RGB{r = 0xFF, g = 0x8C, b = 0x31},
84+
t.Color_RGB{r = 0xFA, g = 0x80, b = 0x2E},
85+
t.Color_RGB{r = 0xF4, g = 0x75, b = 0x2A},
86+
t.Color_RGB{r = 0xEE, g = 0x6A, b = 0x26},
87+
t.Color_RGB{r = 0xE9, g = 0x5E, b = 0x22},
88+
t.Color_RGB{r = 0xE3, g = 0x53, b = 0x1D},
89+
t.Color_RGB{r = 0xDE, g = 0x47, b = 0x1A},
90+
t.Color_RGB{r = 0xD5, g = 0x36, b = 0x13},
91+
t.Color_RGB{r = 0xCC, g = 0x25, b = 0x0D},
92+
t.Color_RGB{r = 0xC3, g = 0x12, b = 0x07},
93+
t.Color_RGB{r = 0xBB, g = 0x01, b = 0x00},
94+
t.Color_RGB{r = 0xAC, g = 0x00, b = 0x00},
95+
t.Color_RGB{r = 0x9D, g = 0x00, b = 0x00},
96+
t.Color_RGB{r = 0x8E, g = 0x00, b = 0x00},
97+
t.Color_RGB{r = 0x7F, g = 0x00, b = 0x00},
98+
t.Color_RGB{r = 0x70, g = 0x00, b = 0x00},
99+
t.Color_RGB{r = 0x61, g = 0x00, b = 0x00},
100+
t.Color_RGB{r = 0x5A, g = 0x00, b = 0x00},
101+
t.Color_RGB{r = 0x55, g = 0x00, b = 0x00},
102+
t.Color_RGB{r = 0x51, g = 0x00, b = 0x00},
103+
t.Color_RGB{r = 0x4D, g = 0x00, b = 0x00},
104+
t.Color_RGB{r = 0x48, g = 0x00, b = 0x00},
105+
t.Color_RGB{r = 0x44, g = 0x00, b = 0x00},
106+
t.Color_RGB{r = 0x3F, g = 0x00, b = 0x00},
107+
t.Color_RGB{r = 0x3B, g = 0x00, b = 0x00},
108+
t.Color_RGB{r = 0x37, g = 0x00, b = 0x00},
109+
t.Color_RGB{r = 0x32, g = 0x00, b = 0x00},
110+
t.Color_RGB{r = 0x2E, g = 0x00, b = 0x00},
111+
t.Color_RGB{r = 0x2A, g = 0x00, b = 0x00},
112+
t.Color_RGB{r = 0x25, g = 0x00, b = 0x00},
113+
t.Color_RGB{r = 0x21, g = 0x00, b = 0x00},
114+
t.Color_RGB{r = 0x1C, g = 0x00, b = 0x00},
115+
t.Color_RGB{r = 0x18, g = 0x00, b = 0x00},
116+
t.Color_RGB{r = 0x13, g = 0x00, b = 0x00},
117+
t.Color_RGB{r = 0x10, g = 0x00, b = 0x00},
118+
t.Color_RGB{r = 0x0B, g = 0x00, b = 0x00},
119+
t.Color_RGB{r = 0x07, g = 0x00, b = 0x00},
120+
t.Color_RGB{r = 0x02, g = 0x00, b = 0x00},
121+
t.Color_RGB{r = 0x00, g = 0x00, b = 0x00},
122+
t.Color_RGB{r = 0x00, g = 0x00, b = 0x00},
123+
t.Color_RGB{r = 0x00, g = 0x00, b = 0x00},
124+
t.Color_RGB{r = 0x00, g = 0x00, b = 0x00},
125+
t.Color_RGB{r = 0x00, g = 0x00, b = 0x00},
126+
t.Color_RGB{r = 0x00, g = 0x00, b = 0x00},
127+
t.Color_RGB{r = 0x00, g = 0x00, b = 0x00},
128+
t.Color_RGB{r = 0x00, g = 0x00, b = 0x00},
129+
t.Color_RGB{r = 0x00, g = 0x00, b = 0x00},
129130
}
130131

131132
// This smooths the fire by averaging the values.
@@ -219,7 +220,7 @@ AddParticles :: proc() {
219220
}
220221

221222
// Draws the fire or parchment on the screen.
222-
DrawScreen :: proc(screen: ^tcl.Screen, egg: bool) {
223+
DrawScreen :: proc(screen: ^t.Screen, egg: bool) {
223224
MoveParticles()
224225
AddParticles()
225226
for y in 0 ..< txrows {
@@ -229,10 +230,10 @@ DrawScreen :: proc(screen: ^tcl.Screen, egg: bool) {
229230
cage += 10
230231
if cage >= MAXAGE do cage = MAXAGE - 1
231232
clr := pal[cage]
232-
tcl.move_cursor(screen, uint(y), uint(x))
233-
tcl.set_color_style(screen, nil, clr)
234-
tcl.write_rune(screen, ' ')
235-
tcl.reset_styles(screen)
233+
t.move_cursor(screen, uint(y), uint(x))
234+
t.set_color_style(screen, nil, clr)
235+
t.write_rune(screen, ' ')
236+
t.reset_styles(screen)
236237
}
237238
}
238239
}

termcl.odin

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,9 @@ blit :: proc(win: $T/^Window) {
192192
strings.write_rune(&win.seq_builder, curr_cell.r)
193193
}
194194
}
195+
// we move the cursor back to where the window left it
196+
// just in case if the user is relying on the terminal drawing the cursor
197+
raw.move_cursor(&win.seq_builder, win.cursor.y, win.cursor.x)
195198

196199
fmt.print(strings.to_string(win.seq_builder), flush = true)
197200
strings.builder_reset(&win.seq_builder)

0 commit comments

Comments
 (0)