diff options
author | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-06-14 16:53:40 +0330 |
---|---|---|
committer | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-06-14 16:53:40 +0330 |
commit | f9a3bdda45c7945adc9842264f9cf4d55cda18f2 (patch) | |
tree | 6e605a2a893e88e77d9bc3c8e1ba5406ca2fbe1a | |
parent | 9e0005e248a26cb8f8ecc5138756a9157bf899b5 (diff) |
fix bug in c function
-rw-r--r-- | code/main.felan | 32 | ||||
-rw-r--r-- | src/runner/runner.c | 6 |
2 files changed, 22 insertions, 16 deletions
diff --git a/code/main.felan b/code/main.felan index 92cc4e4..b260317 100644 --- a/code/main.felan +++ b/code/main.felan @@ -12,6 +12,7 @@ IsKeyPressed :: @c_function(raylib,"IsKeyPressed",(i32)->bool); IsGestureDetected :: @c_function(raylib,"IsGestureDetected",(u32)->bool); DrawText :: @c_function(raylib,"DrawText",(*u8,i32,i32,i32,Color)->void); DrawRectangle :: @c_function(raylib,"DrawRectangle",(i32,i32,i32,i32,Color)->void); +GetFPS :: @c_function(raylib,"GetFPS",()->i32); Color :: struct { r:u8; @@ -75,32 +76,35 @@ main :: () -> void { BeginDrawing(); - ClearBackground(RAYWHITE); - if currentScreen == LOGO { + ClearBackground(RAYWHITE); title := "LOGO SCREEN\0"; - DrawText(&title[0],20i32,20i32,40i32,LIGHTGRAY); + DrawText(title.ptr,20i32,20i32,40i32,LIGHTGRAY); text := "WAIT for 2 SECONDS...\0"; - DrawText(&text[0],290i32,220i32,20i32,LIGHTGRAY); + DrawText(text.ptr,290i32,220i32,20i32,LIGHTGRAY); } else if currentScreen == TITLE { - DrawRectangle(0i32,0i32,SCREEN_WIDTH,SCREEN_HEIGHT,GREEN); + ClearBackground(GREEN); title := "TITLE SCREEN\0"; - DrawText(&title[0],20i32,20i32,40i32,DARKGREEN); + DrawText(title.ptr,20i32,20i32,40i32,DARKGREEN); text := "PRESS ENTER or TAP to JUMP to GAMEPLAY SCREEN\0"; - DrawText(&text[0],120i32,220i32,20i32,DARKGREEN); + DrawText(text.ptr,120i32,220i32,20i32,DARKGREEN); } else if currentScreen == GAMEPLAY { - DrawRectangle(0i32,0i32,SCREEN_WIDTH,SCREEN_HEIGHT,PURPLE); + ClearBackground(PURPLE); title := "GAMEPLAY SCREEN\0"; - DrawText(&title[0],20i32,20i32,40i32,MAROON); + DrawText(title.ptr,20i32,20i32,40i32,MAROON); text := "PRESS ENTER or TAP to JUMP to ENDING SCREEN\0"; - DrawText(&text[0],120i32,220i32,20i32,MAROON); + DrawText(text.ptr,130i32,220i32,20i32,MAROON); } else if currentScreen == ENDING { - DrawRectangle(0i32,0i32,SCREEN_WIDTH,SCREEN_HEIGHT,BLUE); + ClearBackground(BLUE); title := "ENDING SCREEN\0"; - DrawText(&title[0],20i32,20i32,40i32,DARKBLUE); - text := "PRESS ENTER or TAP to JUMP to TITLE SCREEN\0"; - DrawText(&text[0],120i32,220i32,20i32,DARKBLUE); + DrawText(title.ptr,20i32,20i32,40i32,DARKBLUE); + text := "PRESS ENTER or TAP to RETURN to TITLE SCREEN\0"; + DrawText(text.ptr,120i32,220i32,20i32,DARKBLUE); + } else { + println(-1); + return; } + println(GetFPS()); EndDrawing(); } diff --git a/src/runner/runner.c b/src/runner/runner.c index c9f2dd1..a847327 100644 --- a/src/runner/runner.c +++ b/src/runner/runner.c @@ -1283,8 +1283,10 @@ AstTree *runAstTreeCFunction(AstTree *tree, AstTree **arguments, AST_TREE_TOKEN_STRINGS [((AstTreeSingleChild *)arguments[i]->type->metadata)->token]); UNREACHABLE; - } else if (arguments[i]->token != AST_TREE_TOKEN_RAW_VALUE) { - printLog("%s", AST_TREE_TOKEN_STRINGS[arguments[i]->type->token]); + } else if (arguments[i]->token != AST_TREE_TOKEN_RAW_VALUE && + arguments[i]->token != AST_TREE_TOKEN_RAW_VALUE_NOT_OWNED) { + printLog("%s %p", AST_TREE_TOKEN_STRINGS[arguments[i]->token], + arguments[i]); UNREACHABLE; } values[i] = arguments[i]->metadata; |