enum MyEnum { EnumItem1, EnumItem2 = 1, EnumItem3, EnumItem4, } enum MyTypedEnum : i8 { EnumItem1, EnumItem2, EnumItem3 = 105, EnumItem4, } \struct Vec2 { \ x y: f32, \} \ \struct Rect { \ pos size: Vec2, \} \ \let CONSTPOS :: .Vec2 {20.0 20.0} \let CONSTSZ :: .Vec2 {100.0 100.0} \let CONST :: .Rect {(CONSTPOS) (CONSTSZ)} \ \\ FIXME: LLVM IR geneartion is borked \\ let CONST :: .Rect { .Vec2 { 20.0 20.0 } .Vec2 { 100.0 100.0 } } \ \struct Color { \ r g b a: u8, \} \ \let KEY_R :: 82 \ \fn InitWindow(w h: i32, title: []u8) \fn CloseWindow \fn BeginDrawing \fn SetTargetFPS(fps: i32) \fn EndDrawing \fn DrawFPS(x y: i32) \fn WindowShouldClose i32 \fn TextSubtext(text: []u8, start end: i32) []u8 \fn IsKeyPressed(key: i32) u1 \ \struct Rectangle { \ x y w h: f32, \} \ \fn ColorToRaylib(c: Color) u32 { \ ret c.a as u32 << 24 as u32 | c.b as u32 << 16 as u32 | c.g as u32 << 8 as u32 | c.r \} \ \fn ClearBackgroundWrap(c: Color) { \ fn ClearBackground(c: u32) \ ClearBackground (ColorToRaylib c) \} \ \fn DrawRectangleWrap(x y w h: i32, c: Color) { \ fn DrawRectangle(x y w h: i32, c: u32) \ DrawRectangle x y w h (ColorToRaylib c) \} \ \fn DrawCircleWrap(x y: i32, r: f32, c: Color) { \ fn DrawCircle(x y: i32, r: f32, c: u32) \ DrawCircle x y r (ColorToRaylib c) \} \ \fn DrawRectangleRecWrap(r: Rectangle, c: Color) { \ fn DrawRectangleRec(r: Rectangle, c: u32) \ DrawRectangleRec r (ColorToRaylib c) \} \ \fn DrawTextWrap(text: []u8, x y size: i32, c: Color) { \ fn DrawText(text: []u8, x y size: i32, c: u32) \ DrawText text x y size (ColorToRaylib c) \} \ \let WHITE :: .Color {255 255 255 255} \let BLACK :: .Color {0 0 0 255} \let RED :: .Color {255 0 0 255} \let BLUE :: .Color {0 0 255 255} \ \InitWindow 800 450 Raylib \SetTargetFPS 60 \ \fn GetScreenWidth i32 \fn GetScreenHeight i32 \ \fn DrawRect(rect: Rect, c: Color) { \ DrawRectangleWrap (rect.pos.x as i32) (rect.pos.y as i32) (rect.size.x as i32) (rect.size.y as i32) c \} \ \let logox := GetScreenWidth / 2 - 128 \let logoy := GetScreenHeight / 2 - 128 \ \\ FIXME: Cannot inline \let fc := 0 \let lc := 0 \let top_side_rec_width := 16 \let left_side_rec_height := 16 \let bottom_side_rec_width := 16 \let right_side_rec_height := 16 \ \let state := 0 \let alpha := 1.0 \ \for WindowShouldClose == 0 { \ if state == 0 { \ if ++fc == 120 { \ state = 1 \ fc = 0 \ } \ } elif state == 1 { \ top_side_rec_width = top_side_rec_width + 4 \ left_side_rec_height = left_side_rec_height + 4 \ \ if top_side_rec_width == 256 { \ state = 2 \ } \ } elif state == 2 { \ bottom_side_rec_width = bottom_side_rec_width + 4 \ right_side_rec_height = right_side_rec_height + 4 \ \ if bottom_side_rec_width == 256 { \ state = 3 \ } \ } elif state == 3 { \ if ++fc / 12 != 0 { \ ++lc \ fc = 0 \ } \ \ if lc >= 10 { \ alpha = alpha - 0.01 \ if alpha <= 0.0 { \ alpha = 0.0 \ state = 4 \ } \ } \ } elif IsKeyPressed(KEY_R) { \ \ fc = lc = 0 \ \ top_side_rec_width = 16 \ left_side_rec_height = 16 \ bottom_side_rec_width = 16 \ right_side_rec_height = 16 \ \ state = 0 \ alpha = 1.0 \ } \ \ BeginDrawing \ ClearBackgroundWrap WHITE \ DrawFPS 20 20 \ \ DrawRect CONST RED \ \ if state == 0 { \ if (fc/15)%2 != 0 { \ DrawRectangleWrap logox logoy 16 16 BLACK \ } \ } elif state == 1 { \ DrawRectangleWrap logox logoy top_side_rec_width 16 BLACK \ DrawRectangleWrap logox logoy 16 left_side_rec_height BLACK \ } elif state == 2 { \ DrawRectangleWrap logox logoy top_side_rec_width 16 BLACK \ DrawRectangleWrap logox logoy 16 left_side_rec_height BLACK \ \ DrawRectangleWrap logox+240 logoy 16 right_side_rec_height BLACK \ DrawRectangleWrap logox logoy+240 bottom_side_rec_width 16 BLACK \ } elif state == 3 { \ let colorw := .Color{255 255 255 (alpha*255.0) as u8} \ let colorb := .Color{0 0 0 (alpha*255.0) as u8} \ \ FIXME: ADD field access assignment \ \color.a = (alpha * 255.0) as u8 \ DrawRectangleWrap logox logoy top_side_rec_width 16 colorb \ DrawRectangleWrap logox logoy+16 16 left_side_rec_height-32 colorb \ \ DrawRectangleWrap logox+240 logoy+16 16 right_side_rec_height-32 cbolor \ DrawRectangleWrap logox logoy+240 bottom_side_rec_width 16 colorb \ \ DrawRectangleWrap GetScreenWidth/2-112 GetScreenHeight/2-112 224 224 colorw \ \ DrawTextWrap (TextSubtext raylib 0 lc) GetScreenWidth/2-44 GetScreenHeight/2+48 50 colorb \ } else { \ DrawTextWrap "[R] REPLAY" 340 200 20 BLACK \ } \ \ EndDrawing \} \CloseWindow \