.
This commit is contained in:
FantasyPvP
2023-10-04 23:20:51 +01:00
parent 4a7cf2a634
commit d5e95433da
6 changed files with 27 additions and 17 deletions
+2 -2
View File
@@ -184,7 +184,7 @@ impl Renderer {
self.internal_render();
}
pub fn with_colour(&mut self, cols: ColorCode) {
pub fn set_colour(&mut self, cols: ColorCode) {
self.temp_colour = Some(cols);
}
pub fn reset_colour(&mut self) {
@@ -334,7 +334,7 @@ pub fn write(args: fmt::Arguments, cols: (Color, Color)) {
interrupts::without_interrupts(|| {
let mut writer = RENDERER.lock();
writer.with_colour(colour_code);
writer.set_colour(colour_code);
writer.write_fmt(args).unwrap();
writer.reset_colour();
})
+2 -2
View File
@@ -143,9 +143,9 @@ impl ScanCodeStream {
pub fn try_next(&mut self) -> Option<u8> {
let queue = SCANCODE_QUEUE.try_get().expect("not initialised");
if let Ok(c) = queue.pop() {
return Some(c);
Some(c)
} else {
return None;
None
}
}
}
+1
View File
@@ -4,6 +4,7 @@ use crate::{
};
use alloc::string::String;
use alloc::vec::Vec;
pub use crate::{print, println, serial_print, serial_println};
pub use crate::kernel::render::Color;
+2 -2
View File
@@ -4,7 +4,7 @@ use cmos_rtc::{ReadRTC, Time};
use crate::println;
use super::super::kernel::interrupts::GLOBALTIMER;
use x86_64::instructions::interrupts;
pub fn wait(seconds: i64) {
pub fn wait(seconds: f64) {
let mut start = 0;
interrupts::without_interrupts(||{
start = GLOBALTIMER.lock().val;
@@ -15,7 +15,7 @@ pub fn wait(seconds: i64) {
interrupts::without_interrupts(||{
new = GLOBALTIMER.lock().val;
});
if new + seconds > start {
if new as f64 > start as f64 + seconds * 16.0 {
return
}
};
+15 -6
View File
@@ -6,12 +6,8 @@ use x86_64::instructions::interrupts;
use alloc::{boxed::Box, string::{String, ToString}, vec, vec::Vec};
use vga::writers::{GraphicsWriter, PrimitiveDrawing};
use crate::{
print, println,
std::application::{Application, Error},
user::bin::*,
};
use crate::std::io::{Color, write, Screen};
use crate::{print, println, std, std::application::{Application, Error}, user::bin::*};
use crate::std::io::{Color, write, Screen, Stdin};
use crate::std::random::Random;
use crate::user::bin::gigachad_detector::GigachadDetector;
use crate::user::bin::grapher::Grapher;
@@ -123,6 +119,19 @@ async fn exec() -> Result<(), Error> {
gigachad_detector.run(args).await?;
}
"wait" => {
use std::time::wait;
for _ in 0..20 {
wait(0.5);
let key = Stdin::try_keystroke();
println!("waited {}", match key {
Some(c) => c,
None => '_',
});
}
}
// direct OS functions (not applications)
"echo" => {
println!(
+5 -5
View File
@@ -50,13 +50,13 @@ impl Application for Game {
'gameloop: loop {
time::wait(20);
time::wait(0.2);
// if let Some(c) = Stdin::try_keystroke() {
// self.mv = c;
// }
if let Some(c) = Stdin::try_keystroke() {
self.mv = c;
}
self.mv = Stdin::keystroke().await;
//self.mv = Stdin::keystroke().await;
match self.mv {
'w' => self.head.y -= 1,