removed (almost) all mentions of glfw and opengles
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Thu, 5 Jan 2023 02:46:41 +0000 (20:46 -0600)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Thu, 5 Jan 2023 02:46:41 +0000 (20:46 -0600)
14 files changed:
.vscode/launch.json
docs/gameplay.md [new file with mode: 0644]
onyx-pkg.ini
run_tree/run.sh
run_tree/scenes/starter.scene [new file with mode: 0644]
src/build.onyx
src/entity/components/movement.onyx
src/entity/components/player.onyx
src/entity/editor.onyx
src/entity/schematics/player.onyx
src/entity/schematics/tap.onyx
src/entity/store.onyx
src/game.onyx
src/main.onyx

index 37150fbd7a7749ba0f325cee0ae92fcba3aab9c6..29bdcb996b81142633b82c25f4d190ad9b0722a3 100644 (file)
@@ -14,7 +14,7 @@
             "name": "Launch",
             "onyxFiles": ["../src/build"],
             "workingDir": "${workspaceFolder}/run_tree",
-            "stopOnEntry": false
+            "stopOnEntry": false,
             // "preLaunchTask": "Build debug game"
         }
     ]
diff --git a/docs/gameplay.md b/docs/gameplay.md
new file mode 100644 (file)
index 0000000..13686ed
--- /dev/null
@@ -0,0 +1,9 @@
+Gameplay Flow
+=============
+
+Target play-time should be around 10-15 minutes. This is going to be an
+arcade game in a bar, so the more people that can play in a fixed amount
+of time, the better.
+
+
+
index 27fd7a2909fdcc0b10597809d7660212e1aa4e31..22bddb888ac769ca10272bc2619f9b13e8e632e8 100644 (file)
@@ -18,7 +18,7 @@ library=
 
 [dependencies]
 git://onyxlang.io/repo/openal=0.0.2
-git://onyxlang.io/repo/ogre=0.0.10
+git://onyxlang.io/repo/ogre=0.0.11
 
 [dependency_folders]
 git://onyxlang.io/repo/openal=openal
index 83d0bb31db8c36361b0cdf4341684dd0ad9437fd..b947b0bdc3a0c6fb985d3c59a7d9771f058e16e9 100755 (executable)
@@ -1,11 +1,9 @@
 dest=game.wasm
 
 case "$1" in
-    build) shift; onyx -V --tag -I ../src build -o $dest $@ ;;
+    build) shift; onyx -V --tag -I ../src build -o $dest $@; mv tags .. ;;
     check) shift; onyx check -V -I ../src build  $@ ;;
     run)   onyx-run $dest ;;
-    debug) onyx-run --debug $dest ;;
-    *)     onyx run -V --tag -I ../src build $@ ;;
+    debug) shift; onyx run -V -I ../src build --debug $@ ;;
+    *)     onyx run -V --tag -I ../src build $@; mv tags .. ;;
 esac
-
-mv tags ..
\ No newline at end of file
diff --git a/run_tree/scenes/starter.scene b/run_tree/scenes/starter.scene
new file mode 100644 (file)
index 0000000..0344e5a
--- /dev/null
@@ -0,0 +1,257 @@
+[Background]
+id = 1
+flags = 0
+nickname = ""
+pos.x = 592.0000
+pos.y = 297.0000
+size.x = 1280.0000
+size.y = 722.0000
+:BackgroundComponent
+texture_path = "./assets/images/background.png"
+:RenderComponent
+layer = 0
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Wall]
+id = 3
+flags = 2
+nickname = ""
+pos.x = 397.0000
+pos.y = 576.0000
+size.x = 826.0000
+size.y = 64.0000
+:RenderComponent
+layer = 0
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Wall]
+id = 4
+flags = 2
+nickname = ""
+pos.x = 400.0000
+pos.y = 37.0000
+size.x = 816.0000
+size.y = 80.0000
+:RenderComponent
+layer = 0
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Wall]
+id = 5
+flags = 2
+nickname = ""
+pos.x = 768.0000
+pos.y = 304.0000
+size.x = 64.0000
+size.y = 512.0000
+:RenderComponent
+layer = 0
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Wall]
+id = 6
+flags = 2
+nickname = ""
+pos.x = 40.0000
+pos.y = 128.0000
+size.x = 80.0000
+size.y = 192.0000
+:RenderComponent
+layer = 0
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Wall]
+id = 7
+flags = 2
+nickname = ""
+pos.x = 40.0000
+pos.y = 480.0000
+size.x = 80.0000
+size.y = 256.0000
+:RenderComponent
+layer = 0
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Wall]
+id = 8
+flags = 2
+nickname = ""
+pos.x = 161.0000
+pos.y = -136.0000
+size.x = 16.0000
+size.y = 16.0000
+:RenderComponent
+layer = 0
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Entryway]
+id = 9
+flags = 0
+nickname = ""
+pos.x = 40.0000
+pos.y = 288.0000
+size.x = 80.0000
+size.y = 128.0000
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 80.0000
+sprite.pos.y = 32.0000
+sprite.size.x = 32.0000
+sprite.size.y = 16.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 0
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+:EntrywayComponent
+schematic = "Patron"
+spawned_size.x = 32.0000
+spawned_size.y = 64.0000
+enabled = true
+spawn_timeout_min = 5.0000
+spawn_timeout_max = 10.0000
+spawn_timeout = 10.0000
+
+[Wall]
+id = 10
+flags = 2
+nickname = ""
+pos.x = 576.0000
+pos.y = 312.0000
+size.x = 64.0000
+size.y = 336.0000
+:RenderComponent
+layer = 0
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Wall]
+id = 11
+flags = 2
+nickname = ""
+pos.x = 171.0000
+pos.y = -126.0000
+size.x = 16.0000
+size.y = 16.0000
+:RenderComponent
+layer = 0
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Tap]
+id = 12
+flags = 3
+nickname = ""
+pos.x = 704.0000
+pos.y = 352.0000
+size.x = 64.0000
+size.y = 64.0000
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 0.0000
+sprite.pos.y = 32.0000
+sprite.size.x = 32.0000
+sprite.size.y = 32.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 0
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+:DispenserComponent
+item = "beer"
+max_timeout = 2.0000
+draw_item = true
+
+[Tap]
+id = 14
+flags = 3
+nickname = ""
+pos.x = 704.0000
+pos.y = 224.0000
+size.x = 64.0000
+size.y = 64.0000
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 0.0000
+sprite.pos.y = 32.0000
+sprite.size.x = 32.0000
+sprite.size.y = 32.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 0
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+:DispenserComponent
+item = "beer"
+max_timeout = 2.0000
+draw_item = true
+
+[Tap]
+id = 15
+flags = 3
+nickname = ""
+pos.x = 704.0000
+pos.y = 288.0000
+size.x = 64.0000
+size.y = 64.0000
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 0.0000
+sprite.pos.y = 32.0000
+sprite.size.x = 32.0000
+sprite.size.y = 32.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 0
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+:DispenserComponent
+item = "beer"
+max_timeout = 2.0000
+draw_item = true
+
index 5c2199dba665181005651e1d466a20500554bf90..cec2776971333f14f3b52e0a96837eaf4a4812a0 100644 (file)
@@ -4,7 +4,7 @@ package runtime.vars
 MAJOR_VERSION :: 0
 MINOR_VERSION :: 1
 
-DEBUG :: true
+// DEBUG :: true
 
 
 #if runtime.arch == .X86_64  { #library_path "./lib" }
@@ -22,4 +22,3 @@ DEBUG :: true
 
 #load "./../lib/openal/module"
 #load "./../lib/ogre/module"
-// #load_all "./ogre"
index 04b4bc29ac5af5e5cb4876e6930233152bd09f12..6a0b0ea8829835700223a49d5934871ef2756640 100644 (file)
@@ -1,6 +1,5 @@
 
 use core
-use glfw3
 use ogre
 
 
index 314a89de190c9c0d9234f84d231ce064cb7b8083..88449ef5eea1a60168874c8c1cd050d8266420ae 100644 (file)
@@ -1,6 +1,5 @@
 
 use core
-use glfw3
 use ogre
 
 PlayerComponent :: struct {
index 71c1c0cd4343121e6146183ea8265083ba679a1e..c36aa0598e18f477cc5b98e369550f6381cba88a 100644 (file)
@@ -8,13 +8,17 @@
 //
 
 use core
-use opengles
-use glfw3
 use ogre
 use ogre.ui
 use runtime {type_info :: info}
 use core.misc {as_any}
 
+// TODO: Remove needing glfw3 here. Everything should go through OGRE.
+use glfw3 {
+    GLFW_MOUSE_BUTTON_LEFT,
+    GLFW_MOUSE_BUTTON_RIGHT
+}
+
 Editor_Range        :: struct {min, max: f32;}
 Editor_Disabled     :: struct {}
 Editor_Hidden       :: struct {}
@@ -44,11 +48,11 @@ editor_toggle :: () {
 editor_update :: (dt: f32) {
     move_towards(^editor_openness, editor_target_openness, dt * 6);
 
-    if is_key_just_up(GLFW_KEY_1) do clicked_tab = .File;
-    if is_key_just_up(GLFW_KEY_2) do clicked_tab = .Edit;
-    if is_key_just_up(GLFW_KEY_3) do clicked_tab = .Create;
-    if is_key_just_up(GLFW_KEY_4) do clicked_tab = .Actions;
-    if is_key_just_up(GLFW_KEY_G) do editor_grid_shown = !editor_grid_shown;
+    if is_key_just_up(.NUM_1) do clicked_tab = .File;
+    if is_key_just_up(.NUM_2) do clicked_tab = .Edit;
+    if is_key_just_up(.NUM_3) do clicked_tab = .Create;
+    if is_key_just_up(.NUM_4) do clicked_tab = .Actions;
+    if is_key_just_up(.G) do editor_grid_shown = !editor_grid_shown;
 
     handle_clicking_tab(dt);
     switch active_tab {
@@ -141,10 +145,10 @@ editor_update :: (dt: f32) {
             }
 
         } else {
-            if is_key_down(GLFW_KEY_UP)    do selected_entity.pos.y -= 32 * dt;
-            if is_key_down(GLFW_KEY_DOWN)  do selected_entity.pos.y += 32 * dt;
-            if is_key_down(GLFW_KEY_LEFT)  do selected_entity.pos.x -= 32 * dt;
-            if is_key_down(GLFW_KEY_RIGHT) do selected_entity.pos.x += 32 * dt;
+            if is_key_down(.UP)    do selected_entity.pos.y -= 32 * dt;
+            if is_key_down(.DOWN)  do selected_entity.pos.y += 32 * dt;
+            if is_key_down(.LEFT)  do selected_entity.pos.x -= 32 * dt;
+            if is_key_down(.RIGHT) do selected_entity.pos.x += 32 * dt;
         }
 
         if resizing {
@@ -162,7 +166,7 @@ editor_update :: (dt: f32) {
             }
         }
 
-        if is_key_just_down(GLFW_KEY_DELETE) {
+        if is_key_just_down(.DELETE) {
             scene->delete(selected_entity);
             selected_entity_id = Entity_Nothing;
         }
index d293a2d7839c609e023a32d616d7882218dc52e3..4703239804cbe8828bde7bae7b7b589d03b786e4 100644 (file)
@@ -1,6 +1,5 @@
 
 use core
-use glfw3
 use ogre
 
 Player_Controls :: struct {
index ffcfe23358d44febf1f0fd3afc943375e8670421..b0acb778467143dc83936410ab3a02106806e08d 100644 (file)
@@ -1,7 +1,7 @@
 use ogre
 
 @Entity_Schematic.{ "Tap" }
-(scene: ^Scene) -> ^Entity {
+create :: (scene: ^Scene) -> ^Entity {
     this := scene->make();
     this.pos = .{0, 0};
     this.size = .{0, 0};
index c9af714116b4668d86d263fff1ef71635ccc0dbc..f86377298512eeffd24c20d024ec71d905b0b0de 100644 (file)
@@ -11,7 +11,10 @@ Entity_Store :: enum {
 scene_save_to_file :: (use this: ^Scene, filename: str) {
     err, output_file := os.open(filename, .Write);
     defer os.close(^output_file);
+
     writer_ := io.writer_make(^output_file);
+    defer io.writer_free(^writer_);
+
     writer := ^writer_;
 
     // writer := ^stdio.print_writer;
index 6fe741246054842208dfc787e65d10dd312ee453..9450b5be48c6b9681271e1be4a5b97d642695b79 100644 (file)
@@ -1,7 +1,5 @@
 
 use core
-use glfw3
-use opengles
 use ogre
 
 //
@@ -51,13 +49,13 @@ game_update :: (dt: f32) {
     game_time += dt;
     Audio_Manager.tick();
 
-    if is_key_just_up(GLFW_KEY_F8) {
-        log(.Info, "Saving to '{}'.", quick_save_file);
+    if is_key_just_up(.F8) {
+        logf(.Info, "Saving to '{}'.", quick_save_file);
         scene->save_to_file(quick_save_file);
     }
 
-    if is_key_just_up(GLFW_KEY_F9) {
-        log(.Info, "Loading from '{}'.", quick_save_file);
+    if is_key_just_up(.F9) {
+        logf(.Info, "Loading from '{}'.", quick_save_file);
         scene->load_from_file(quick_save_file);
     }
 
@@ -96,6 +94,8 @@ game_draw :: () {
     }
     scene_render_offset = Rect.top_left(view_rect);
 
+    use opengles { glDisable, glEnable, GL_CULL_FACE }
+
     glDisable(GL_CULL_FACE);
     immediate_image(^texture, view_rect.x, ~~window.height - view_rect.y, view_rect.w, -view_rect.h);
     if distortion_enabled {
index f03afb152cd78a9633a814feffb0d5b2abfb3ddc..bd4f7e3544e6d38df2dfc761dcca5e758b4ab927 100644 (file)
@@ -1,8 +1,6 @@
 // #inject runtime.vars.Onyx_Enable_Operator_Methods :: true
 
 use core
-use opengles
-use glfw3
 use ogre
 
 DEBUG :: #defined(runtime.vars.DEBUG)
@@ -29,17 +27,18 @@ init :: () {
 
 deinit :: () {
     game_deinit();
+    ogre_deinit();
 }
 
 update :: (dt: f32) {
     input_update();
 
-    if is_key_just_up(GLFW_KEY_ESCAPE) {
+    if is_key_just_up(.ESCAPE) {
         window->set_should_close(true);
         return;
     }
 
-    if is_key_just_up(GLFW_KEY_F7) {
+    if is_key_just_up(.F7) {
         editor_toggle();
     }