├── .gitignore ├── .run └── placeholder.txt ├── .vscode ├── c_cpp_properties.json ├── launch.json └── tasks.json ├── .web └── fonts │ ├── cp437_10x10.png │ ├── cp437_12x12.png │ ├── cp437_14x14.png │ ├── cp437_16x16.png │ ├── cp437_18x18.png │ ├── cp437_20x20.png │ ├── cp437_24x24.png │ ├── cp437_28x28.png │ ├── cp437_32x32.png │ ├── cp437_36x36.png │ ├── cp437_40x40.png │ ├── cp437_4x4.png │ ├── cp437_6x6.png │ └── cp437_8x8.png ├── LICENSE ├── PerlinNoise.hpp ├── README.md ├── SDL └── placeholder.txt ├── a3d ├── game_map_y7.a3d └── game_map_y8.a3d ├── asciicker.gif ├── asciicker.js ├── asciicker.json ├── asciicker.png ├── asciiid.code-workspace ├── asciiid.cpp ├── asciiid.sln ├── asciiid.vcxproj ├── asciiid.vcxproj.filters ├── asciiid.vcxproj.user ├── audio-post.js ├── audio-pre.js ├── audio.cpp ├── audio.h ├── build-web.sh ├── build.sh ├── clean.sh ├── controls.txt ├── enemygen.cpp ├── enemygen.h ├── fast_rand.h ├── favicon.ico ├── font1.cpp ├── font1.h ├── fonts ├── Roboto-Medium.ttf ├── cp437_10x10.png ├── cp437_10x10.png.bdf ├── cp437_10x10.png.psf ├── cp437_12x12.png ├── cp437_12x12.png.bdf ├── cp437_12x12.png.psf ├── cp437_14x14.png ├── cp437_14x14.png.bdf ├── cp437_14x14.png.psf ├── cp437_16x16.png ├── cp437_16x16.png.bdf ├── cp437_16x16.png.psf ├── cp437_18x18.png ├── cp437_18x18.png.bdf ├── cp437_18x18.png.psf ├── cp437_20x20.png ├── cp437_20x20.png.bdf ├── cp437_20x20.png.psf ├── cp437_24x24.png ├── cp437_24x24.png.bdf ├── cp437_24x24.png.psf ├── cp437_28x28.png ├── cp437_28x28.png.bdf ├── cp437_28x28.png.psf ├── cp437_32x32.png ├── cp437_32x32.png.bdf ├── cp437_32x32.png.psf ├── cp437_36x36.png ├── cp437_36x36.png.bdf ├── cp437_36x36.png.psf ├── cp437_40x40.png ├── cp437_40x40.png.bdf ├── cp437_40x40.png.psf ├── cp437_4x4.png ├── cp437_4x4.png.bdf ├── cp437_4x4.png.psf ├── cp437_6x6.png ├── cp437_6x6.png.bdf ├── cp437_6x6.png.psf ├── cp437_8x8.png ├── cp437_8x8.png.bdf ├── cp437_8x8.png.psf └── fonts.dir ├── game.cpp ├── game.h ├── game.vcxproj ├── game.vcxproj.filters ├── game.vcxproj.user ├── game_api.cpp ├── game_api.h ├── game_app.cpp ├── game_svr.cpp ├── game_web.cpp ├── game_web.html ├── gamepad.cpp ├── gamepad.h ├── gl.c ├── gl.h ├── gl45_emu.cpp ├── gl45_emu.h ├── glxext.h ├── icons ├── app.png ├── basn0g01.png ├── basn0g02.png ├── basn0g04.png ├── basn0g08.png ├── basn0g16.png ├── basn2c08.png ├── basn2c16.png ├── basn3p01.png ├── basn3p02.png ├── basn3p04.png ├── basn3p08.png ├── basn4a08.png ├── basn4a16.png ├── basn6a08.png └── basn6a16.png ├── images └── menu.png ├── imgui ├── .editorconfig ├── .travis.yml ├── LICENSE.txt ├── docs │ ├── CHANGELOG.txt │ ├── README.md │ ├── TODO.txt │ ├── issue_template.md │ └── pull_request_template.md ├── examples │ ├── .gitignore │ ├── README.txt │ ├── example_allegro5 │ │ ├── README.md │ │ ├── example_allegro5.vcxproj │ │ ├── example_allegro5.vcxproj.filters │ │ ├── imconfig_allegro5.h │ │ └── main.cpp │ ├── example_apple_metal │ │ ├── README.md │ │ ├── Shared │ │ │ ├── AppDelegate.h │ │ │ ├── AppDelegate.m │ │ │ ├── Renderer.h │ │ │ ├── Renderer.mm │ │ │ ├── ViewController.h │ │ │ ├── ViewController.mm │ │ │ └── main.m │ │ ├── example_apple_metal.xcodeproj │ │ │ └── project.pbxproj │ │ ├── iOS │ │ │ ├── Base.lproj │ │ │ │ └── Main.storyboard │ │ │ ├── Default-568h@2x.png │ │ │ ├── Info-iOS.plist │ │ │ └── Launch Screen.storyboard │ │ └── macOS │ │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ │ └── Info-macOS.plist │ ├── example_apple_opengl2 │ │ ├── example_apple_opengl2.xcodeproj │ │ │ └── project.pbxproj │ │ └── main.mm │ ├── example_freeglut_opengl2 │ │ ├── example_freeglut_opengl2.vcxproj │ │ ├── example_freeglut_opengl2.vcxproj.filters │ │ └── main.cpp │ ├── example_glfw_opengl2 │ │ ├── Makefile │ │ ├── build_win32.bat │ │ ├── example_glfw_opengl2.vcxproj │ │ ├── example_glfw_opengl2.vcxproj.filters │ │ └── main.cpp │ ├── example_glfw_opengl3 │ │ ├── Makefile │ │ ├── build_win32.bat │ │ ├── example_glfw_opengl3.vcxproj │ │ ├── example_glfw_opengl3.vcxproj.filters │ │ └── main.cpp │ ├── example_glfw_vulkan │ │ ├── CMakeLists.txt │ │ ├── build_win32.bat │ │ ├── build_win64.bat │ │ ├── example_glfw_vulkan.vcxproj │ │ ├── example_glfw_vulkan.vcxproj.filters │ │ ├── gen_spv.sh │ │ ├── glsl_shader.frag │ │ ├── glsl_shader.vert │ │ └── main.cpp │ ├── example_marmalade │ │ ├── data │ │ │ └── app.icf │ │ ├── main.cpp │ │ └── marmalade_example.mkb │ ├── example_null │ │ ├── build_win32.bat │ │ └── main.cpp │ ├── example_sdl_opengl2 │ │ ├── Makefile │ │ ├── README.md │ │ ├── build_win32.bat │ │ ├── example_sdl_opengl2.vcxproj │ │ ├── example_sdl_opengl2.vcxproj.filters │ │ └── main.cpp │ ├── example_sdl_opengl3 │ │ ├── Makefile │ │ ├── README.md │ │ ├── build_win32.bat │ │ ├── example_sdl_opengl3.vcxproj │ │ ├── example_sdl_opengl3.vcxproj.filters │ │ └── main.cpp │ ├── example_sdl_vulkan │ │ ├── example_sdl_vulkan.vcxproj │ │ ├── example_sdl_vulkan.vcxproj.filters │ │ └── main.cpp │ ├── example_win32_directx10 │ │ ├── build_win32.bat │ │ ├── example_win32_directx10.vcxproj │ │ ├── example_win32_directx10.vcxproj.filters │ │ └── main.cpp │ ├── example_win32_directx11 │ │ ├── build_win32.bat │ │ ├── example_win32_directx11.vcxproj │ │ ├── example_win32_directx11.vcxproj.filters │ │ └── main.cpp │ ├── example_win32_directx12 │ │ ├── build_win32.bat │ │ ├── example_win32_directx12.vcxproj │ │ ├── example_win32_directx12.vcxproj.filters │ │ └── main.cpp │ ├── example_win32_directx9 │ │ ├── build_win32.bat │ │ ├── example_win32_directx9.vcxproj │ │ ├── example_win32_directx9.vcxproj.filters │ │ └── main.cpp │ ├── imgui_examples.sln │ ├── imgui_impl_allegro5.cpp │ ├── imgui_impl_allegro5.h │ ├── imgui_impl_dx10.cpp │ ├── imgui_impl_dx10.h │ ├── imgui_impl_dx11.cpp │ ├── imgui_impl_dx11.h │ ├── imgui_impl_dx12.cpp │ ├── imgui_impl_dx12.h │ ├── imgui_impl_dx9.cpp │ ├── imgui_impl_dx9.h │ ├── imgui_impl_freeglut.cpp │ ├── imgui_impl_freeglut.h │ ├── imgui_impl_glfw.cpp │ ├── imgui_impl_glfw.h │ ├── imgui_impl_marmalade.cpp │ ├── imgui_impl_marmalade.h │ ├── imgui_impl_metal.h │ ├── imgui_impl_metal.mm │ ├── imgui_impl_opengl2.cpp │ ├── imgui_impl_opengl2.h │ ├── imgui_impl_opengl3.cpp │ ├── imgui_impl_opengl3.h │ ├── imgui_impl_osx.h │ ├── imgui_impl_osx.mm │ ├── imgui_impl_sdl.cpp │ ├── imgui_impl_sdl.h │ ├── imgui_impl_vulkan.cpp │ ├── imgui_impl_vulkan.h │ ├── imgui_impl_win32.cpp │ ├── imgui_impl_win32.h │ └── libs │ │ ├── gl3w │ │ └── GL │ │ │ ├── gl3w.c │ │ │ ├── gl3w.h │ │ │ └── glcorearb.h │ │ ├── glfw │ │ ├── COPYING.txt │ │ ├── include │ │ │ └── GLFW │ │ │ │ ├── glfw3.h │ │ │ │ └── glfw3native.h │ │ ├── lib-vc2010-32 │ │ │ └── glfw3.lib │ │ └── lib-vc2010-64 │ │ │ └── glfw3.lib │ │ └── usynergy │ │ ├── README.txt │ │ ├── uSynergy.c │ │ └── uSynergy.h ├── imconfig.h ├── imgui.cpp ├── imgui.h ├── imgui_demo.cpp ├── imgui_draw.cpp ├── imgui_internal.h ├── imgui_widgets.cpp ├── imstb_rectpack.h ├── imstb_textedit.h ├── imstb_truetype.h └── misc │ ├── README.txt │ ├── cpp │ ├── README.txt │ ├── imgui_stdlib.cpp │ └── imgui_stdlib.h │ ├── fonts │ ├── Cousine-Regular.ttf │ ├── DroidSans.ttf │ ├── Karla-Regular.ttf │ ├── ProggyClean.ttf │ ├── ProggyTiny.ttf │ ├── README.txt │ ├── Roboto-Medium.ttf │ └── binary_to_compressed_c.cpp │ ├── freetype │ ├── README.md │ ├── imgui_freetype.cpp │ └── imgui_freetype.h │ └── natvis │ ├── README.txt │ └── imgui.natvis ├── imgui_impl_opengl3.cpp ├── imgui_impl_opengl3.h ├── input.cpp ├── inventory.cpp ├── inventory.h ├── io_mesh_akm ├── __init__.py ├── export_akm.py ├── import_akm.py ├── softlink.cmd └── softlink.sh ├── lexer.h ├── log.bin ├── mainmenu.cpp ├── mainmenu.h ├── makefile_asciiid ├── makefile_asciiid_mac ├── makefile_game ├── makefile_game_mac ├── makefile_game_term ├── makefile_game_term_mac ├── makefile_server ├── matrix.h ├── meshes ├── brick-1.akm ├── brick-1.blend ├── bridge-1.akm ├── bridge-1.blend ├── bridge-2.akm ├── bridge-2.blend ├── bush-1.akm ├── bush-1.blend ├── fence.akm ├── fence.blend ├── house-3.akm ├── house-3.blend ├── laundry-1.akm ├── laundry-1.blend ├── old-tree-1.akm ├── old-tree-1.blend ├── old-tree-2.akm ├── old-tree-2.blend ├── rock-1.akm ├── rock-1.blend ├── ship-1.akm ├── ship-1.blend ├── skull.akm ├── skull.blend ├── tree-1.akm ├── tree-1.blend ├── tree-2.akm ├── tree-2.blend ├── tree-3.akm ├── tree-3.blend └── tree-cut-1.blend ├── mswin.cpp ├── multiplayer.txt ├── network.cpp ├── network.h ├── palettes ├── 332.png ├── ansi.png ├── atari_pal_ntsc.png ├── palette.gz ├── xterm256.png └── xterm666.png ├── physics.cpp ├── physics.h ├── platform.h ├── png2xp ├── build.sh ├── png2xp.cpp ├── png2xp.vcxproj ├── png2xp.vcxproj.filters └── png2xp.vcxproj.user ├── render.cpp ├── render.h ├── rgba8.cpp ├── rgba8.h ├── run_console.sh ├── run_xterm.sh ├── samples ├── enc.sh ├── footsteps.ogg ├── footsteps.txt ├── footsteps.wav ├── forest.ogg └── forest.wav ├── screen.cpp ├── sdl.cpp ├── server.vcxproj ├── server.vcxproj.filters ├── server.vcxproj.user ├── sha1.c ├── silhouettes.txt ├── snap ├── gui │ ├── asciicker.desktop │ └── asciicker.png ├── launcher └── snapcraft.yaml ├── sprite.cpp ├── sprite.h ├── sprites ├── asciicker.xp ├── attack-0001.xp ├── attack-0011.xp ├── attack-0101.xp ├── attack-0111.xp ├── attack-1001.xp ├── attack-1011.xp ├── attack-1101.xp ├── attack-1111.xp ├── bigbee-0000.xp ├── bigbee-0001.xp ├── bigbee-0002.xp ├── bigbee-0010.xp ├── bigbee-0011.xp ├── bigbee-0012.xp ├── bigbee-0100.xp ├── bigbee-0101.xp ├── bigbee-0102.xp ├── bigbee-0110.xp ├── bigbee-0111.xp ├── bigbee-0112.xp ├── bigbee-1000.xp ├── bigbee-1001.xp ├── bigbee-1002.xp ├── bigbee-1010.xp ├── bigbee-1011.xp ├── bigbee-1012.xp ├── bigbee-1100.xp ├── bigbee-1101.xp ├── bigbee-1102.xp ├── bigbee-1110.xp ├── bigbee-1111.xp ├── bigbee-1112.xp ├── bigbee.xp ├── character.xp ├── desert_plants.xp ├── enemygen.xp ├── fire.xp ├── font-1.xp ├── gamepad.xp ├── grid-alpha-sword.xp ├── grid-apple.xp ├── grid-beet.xp ├── grid-big-axe.xp ├── grid-big-hammer.xp ├── grid-big-mace.xp ├── grid-blue-potion.xp ├── grid-bread.xp ├── grid-carrot.xp ├── grid-cheese.xp ├── grid-cherry.xp ├── grid-crossbow.xp ├── grid-cucumber.xp ├── grid-cyan-potion.xp ├── grid-cyan-ring.xp ├── grid-egg.xp ├── grid-flail.xp ├── grid-gold-potion.xp ├── grid-gold-ring.xp ├── grid-green-potion.xp ├── grid-grey-potion.xp ├── grid-heavy-armor.xp ├── grid-heavy-helmet.xp ├── grid-heavy-shield.xp ├── grid-light-armor.xp ├── grid-light-helmet.xp ├── grid-light-shield.xp ├── grid-lumber-axe.xp ├── grid-meat.xp ├── grid-milk.xp ├── grid-pink-potion.xp ├── grid-pink-ring.xp ├── grid-plum.xp ├── grid-plus-sword.xp ├── grid-red-potion.xp ├── grid-small-mace.xp ├── grid-small-saber.xp ├── grid-small-sword.xp ├── grid-water.xp ├── grid-white-ring.xp ├── grid-wine.xp ├── inventory.xp ├── item-apple.xp ├── item-armor.xp ├── item-axe.xp ├── item-beet.xp ├── item-blue-potion.xp ├── item-bread.xp ├── item-carrot.xp ├── item-cheese.xp ├── item-cherry.xp ├── item-crossbow.xp ├── item-cucumber.xp ├── item-cyan-potion.xp ├── item-cyan-ring.xp ├── item-egg.xp ├── item-flail.xp ├── item-gold-potion.xp ├── item-gold-ring.xp ├── item-green-potion.xp ├── item-grey-potion.xp ├── item-hammer.xp ├── item-helmet.xp ├── item-mace.xp ├── item-meat.xp ├── item-milk.xp ├── item-pink-potion.xp ├── item-pink-ring.xp ├── item-plum.xp ├── item-red-potion.xp ├── item-shield.xp ├── item-sword.xp ├── item-water.xp ├── item-white-ring.xp ├── item-wine.xp ├── keyb-07.xp ├── keyb-09.xp ├── keyb-11.xp ├── keyb-13.xp ├── keyb-15.xp ├── keyb-caps-a.xp ├── keyb-caps-b.xp ├── keyb-caps-c.xp ├── player-0000.xp ├── player-0001.xp ├── player-0002.xp ├── player-0010.xp ├── player-0011.xp ├── player-0012.xp ├── player-0100.xp ├── player-0101.xp ├── player-0102.xp ├── player-0110.xp ├── player-0111.xp ├── player-0112.xp ├── player-1000.xp ├── player-1001.xp ├── player-1002.xp ├── player-1010.xp ├── player-1011.xp ├── player-1012.xp ├── player-1100.xp ├── player-1101.xp ├── player-1102.xp ├── player-1110.xp ├── player-1111.xp ├── player-1112.xp ├── player-nude.xp ├── plydie-0000.xp ├── plydie-0001.xp ├── plydie-0002.xp ├── plydie-0010.xp ├── plydie-0011.xp ├── plydie-0012.xp ├── plydie-0100.xp ├── plydie-0101.xp ├── plydie-0102.xp ├── plydie-0110.xp ├── plydie-0111.xp ├── plydie-0112.xp ├── plydie-1000.xp ├── plydie-1001.xp ├── plydie-1002.xp ├── plydie-1010.xp ├── plydie-1011.xp ├── plydie-1012.xp ├── plydie-1100.xp ├── plydie-1101.xp ├── plydie-1102.xp ├── plydie-1110.xp ├── plydie-1111.xp ├── plydie-1112.xp ├── wolack-0001.xp ├── wolack-0011.xp ├── wolack-0101.xp ├── wolack-0111.xp ├── wolack-1001.xp ├── wolack-1011.xp ├── wolack-1101.xp ├── wolack-1111.xp ├── wolfie-0000.xp ├── wolfie-0001.xp ├── wolfie-0002.xp ├── wolfie-0010.xp ├── wolfie-0011.xp ├── wolfie-0012.xp ├── wolfie-0100.xp ├── wolfie-0101.xp ├── wolfie-0102.xp ├── wolfie-0110.xp ├── wolfie-0111.xp ├── wolfie-0112.xp ├── wolfie-1000.xp ├── wolfie-1001.xp ├── wolfie-1002.xp ├── wolfie-1010.xp ├── wolfie-1011.xp ├── wolfie-1012.xp ├── wolfie-1100.xp ├── wolfie-1101.xp ├── wolfie-1102.xp ├── wolfie-1110.xp ├── wolfie-1111.xp ├── wolfie-1112.xp └── wolfie.xp ├── stb_vorbis.cpp ├── stb_vorbis.h ├── stdafx.h ├── targetver.h ├── term.cpp ├── term.h ├── terminal.cpp ├── terrain.cpp ├── terrain.h ├── texheap.cpp ├── texheap.h ├── tinfl.c ├── upng.c ├── upng.h ├── urdo.cpp ├── urdo.h ├── v8 ├── x64.debug-args.gn ├── x64.release-args.gn ├── x86.debug-args.gn └── x86.release-args.gn ├── water.cpp ├── wglext.h ├── world.cpp ├── world.h └── x11.cpp /.gitignore: -------------------------------------------------------------------------------- 1 | .*/ 2 | 3 | imgui.ini 4 | asciicker.cfg 5 | -------------------------------------------------------------------------------- /.run/placeholder.txt: -------------------------------------------------------------------------------- 1 | make output placeholder 2 | -------------------------------------------------------------------------------- /.vscode/c_cpp_properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "configurations": [ 3 | { 4 | "name": "Linux", 5 | "includePath": [ 6 | "${workspaceFolder}/v8/v8/include", 7 | "${workspaceFolder}/**" 8 | ], 9 | "defines": [ 10 | "USE_SDL", 11 | "USE_GPM" 12 | ], 13 | "compilerPath": "/usr/bin/gcc", 14 | "cStandard": "c11", 15 | "cppStandard": "c++17", 16 | "intelliSenseMode": "gcc-x64", 17 | "configurationProvider": "ms-vscode.makefile-tools" 18 | } 19 | ], 20 | "version": 4 21 | } -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | // See https://go.microsoft.com/fwlink/?LinkId=733558 3 | // for the documentation about the tasks.json format 4 | "version": "2.0.0", 5 | "tasks": [ 6 | { 7 | "label": "run-game", 8 | "type": "shell", 9 | "command": ".run/game", 10 | "problemMatcher": [ 11 | "$gcc" 12 | ], 13 | "group": { 14 | "kind": "build", 15 | "isDefault": true 16 | } 17 | }, 18 | { 19 | "label": "build-all", 20 | "type": "shell", 21 | "command": "./build.sh", 22 | "problemMatcher": [ 23 | "$gcc" 24 | ], 25 | "group": { 26 | "kind": "build", 27 | "isDefault": true 28 | } 29 | }, 30 | { 31 | "label": "clean-all", 32 | "type": "shell", 33 | "command": "./clean.sh", 34 | "problemMatcher": [ 35 | "$gcc" 36 | ], 37 | "group": { 38 | "kind": "build", 39 | "isDefault": true 40 | } 41 | }, 42 | { 43 | "label": "build-web", 44 | "type": "shell", 45 | "command": "./build-web.sh", 46 | "problemMatcher": [ 47 | "$gcc" 48 | ], 49 | "group": { 50 | "kind": "build", 51 | "isDefault": true 52 | } 53 | } 54 | ] 55 | } -------------------------------------------------------------------------------- /.web/fonts/cp437_10x10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/.web/fonts/cp437_10x10.png -------------------------------------------------------------------------------- /.web/fonts/cp437_12x12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/.web/fonts/cp437_12x12.png -------------------------------------------------------------------------------- /.web/fonts/cp437_14x14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/.web/fonts/cp437_14x14.png -------------------------------------------------------------------------------- /.web/fonts/cp437_16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/.web/fonts/cp437_16x16.png -------------------------------------------------------------------------------- /.web/fonts/cp437_18x18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/.web/fonts/cp437_18x18.png -------------------------------------------------------------------------------- /.web/fonts/cp437_20x20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/.web/fonts/cp437_20x20.png -------------------------------------------------------------------------------- /.web/fonts/cp437_24x24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/.web/fonts/cp437_24x24.png -------------------------------------------------------------------------------- /.web/fonts/cp437_28x28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/.web/fonts/cp437_28x28.png -------------------------------------------------------------------------------- /.web/fonts/cp437_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/.web/fonts/cp437_32x32.png -------------------------------------------------------------------------------- /.web/fonts/cp437_36x36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/.web/fonts/cp437_36x36.png -------------------------------------------------------------------------------- /.web/fonts/cp437_40x40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/.web/fonts/cp437_40x40.png -------------------------------------------------------------------------------- /.web/fonts/cp437_4x4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/.web/fonts/cp437_4x4.png -------------------------------------------------------------------------------- /.web/fonts/cp437_6x6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/.web/fonts/cp437_6x6.png -------------------------------------------------------------------------------- /.web/fonts/cp437_8x8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/.web/fonts/cp437_8x8.png -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 gumix / msokalski 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # asciicker 2 | asciicker 3 |
4 | // TODO:
5 | // whatever you want
6 | 
7 | -------------------------------------------------------------------------------- /SDL/placeholder.txt: -------------------------------------------------------------------------------- 1 | for windows unpack SDL here it should contains ./include and ./lib dirs 2 | then copy ./lib/*.dll files to apriopriate build/run directories -------------------------------------------------------------------------------- /a3d/game_map_y7.a3d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/a3d/game_map_y7.a3d -------------------------------------------------------------------------------- /a3d/game_map_y8.a3d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/a3d/game_map_y8.a3d -------------------------------------------------------------------------------- /asciicker.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/asciicker.gif -------------------------------------------------------------------------------- /asciicker.js: -------------------------------------------------------------------------------- 1 | var CACHE_NAME = 'asciicker'; 2 | var urlsToCache = [ 3 | 'fonts/cp437_6x6.png', 4 | 'fonts/cp437_8x8.png', 5 | 'fonts/cp437_10x10.png', 6 | 'fonts/cp437_12x12.png', 7 | 'fonts/cp437_14x14.png', 8 | 'fonts/cp437_16x16.png', 9 | 'fonts/cp437_18x18.png', 10 | 'fonts/cp437_20x20.png', 11 | 'index.html', 12 | 'index.data', 13 | 'index.js', 14 | 'index.wasm', 15 | 'asciicker.png', 16 | 'asciicker.json', 17 | 'asciicker.js' 18 | ]; 19 | 20 | self.addEventListener('install', function (event) { 21 | // Perform install steps 22 | event.waitUntil( 23 | caches.open(CACHE_NAME) 24 | .then(function (cache) { 25 | console.log('Opened cache'); 26 | return cache.addAll(urlsToCache); 27 | }) 28 | ); 29 | }); 30 | 31 | self.addEventListener('fetch', function (event) { 32 | event.respondWith( 33 | caches.match(event.request) 34 | .then(function (response) { 35 | // Cache hit - return response 36 | if (response) { 37 | return response; 38 | } 39 | 40 | return fetch(event.request).then( 41 | function (response) { 42 | // Check if we received a valid response 43 | if (!response || response.status !== 200 || response.type !== 'basic') { 44 | return response; 45 | } 46 | 47 | // IMPORTANT: Clone the response. A response is a stream 48 | // and because we want the browser to consume the response 49 | // as well as the cache consuming the response, we need 50 | // to clone it so we have two streams. 51 | var responseToCache = response.clone(); 52 | 53 | caches.open(CACHE_NAME) 54 | .then(function (cache) { 55 | cache.put(event.request, responseToCache); 56 | }); 57 | 58 | return response; 59 | } 60 | ); 61 | }) 62 | ); 63 | }); 64 | 65 | /* 66 | self.addEventListener('fetch', function (event) { 67 | // it can be empty if you just want to get rid of that error 68 | }); 69 | */ 70 | 71 | -------------------------------------------------------------------------------- /asciicker.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "asciicker", 3 | "name": "asciicker", 4 | "icons": [ 5 | { 6 | "src": "asciicker.png", 7 | "sizes": "256x256", 8 | "type": "image/png" 9 | } 10 | ], 11 | "start_url": "index.html", 12 | "display": "fullscreen", 13 | "orientation": "landscape", 14 | "background_color": "#000000", 15 | "theme_color": "#000000" 16 | } 17 | -------------------------------------------------------------------------------- /asciicker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/asciicker.png -------------------------------------------------------------------------------- /asciiid.code-workspace: -------------------------------------------------------------------------------- 1 | { 2 | "folders": [ 3 | { 4 | "path": "." 5 | } 6 | ], 7 | "settings": { 8 | 9 | "terminal.integrated.fontSize" : 16, 10 | "terminal.integrated.lineHeight" : 1, 11 | "terminal.integrated.fontWeight" : "100", 12 | // "terminal.integrated.fontFamily" : "PxPlus IBM CGAthin", 13 | 14 | "disasexpl.associations": { 15 | "**/*.c": "${workspaceFolder}/.o_game/${relativeFileDir}/${fileBasenameNoExtension}.s", 16 | "**/*.cpp": "${workspaceFolder}/.o_game/${relativeFileDir}/${fileBasenameNoExtension}.s" 17 | }, 18 | "files.associations": { 19 | "cmath": "cpp", 20 | "random": "cpp", 21 | "*.tcc": "cpp", 22 | "array": "cpp", 23 | "string_view": "cpp", 24 | "initializer_list": "cpp", 25 | "utility": "cpp", 26 | "typeinfo": "cpp", 27 | "map": "cpp", 28 | "__config": "cpp", 29 | "typeindex": "cpp", 30 | "functional": "cpp", 31 | "*.inc": "cpp", 32 | "exception": "cpp", 33 | "system_error": "cpp", 34 | "sstream": "cpp", 35 | "numbers": "cpp", 36 | "__locale": "cpp", 37 | "regex": "cpp", 38 | "strstream": "cpp", 39 | "atomic": "cpp", 40 | "memory": "cpp", 41 | "charconv": "cpp", 42 | "__node_handle": "cpp", 43 | "queue": "cpp", 44 | "stack": "cpp", 45 | "ios": "cpp", 46 | "rope": "cpp", 47 | "ostream": "cpp" 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /asciiid.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | $(ProjectDir) 5 | WindowsLocalDebugger 6 | 7 | 8 | $(ProjectDir) 9 | WindowsLocalDebugger 10 | 11 | 12 | $(ProjectDir) 13 | WindowsLocalDebugger 14 | 15 | 16 | $(ProjectDir) 17 | WindowsLocalDebugger 18 | 19 | -------------------------------------------------------------------------------- /audio-pre.js: -------------------------------------------------------------------------------- 1 | var performance_fake = 0; 2 | var performance = {now:function() { return performance_fake++; }}; 3 | -------------------------------------------------------------------------------- /audio.h: -------------------------------------------------------------------------------- 1 | #ifndef AUDIO_H 2 | #define AUDIO_H 3 | 4 | #include 5 | 6 | struct SpriteReq; 7 | 8 | bool InitAudio(); 9 | void FreeAudio(); 10 | 11 | void CallAudio(const uint8_t* data, int size); 12 | void AudioWalk(int foot, int volume, const SpriteReq* req, int material); 13 | void AudioMute(bool mute); 14 | 15 | enum AUDIO_FILE 16 | { 17 | // merge them all into single file, use in file markers 18 | // prepare similar files for several armor levels 19 | 20 | FOREST, 21 | FOOTSTEPS, 22 | /* 23 | WALK_ROCK_L, 24 | WALK_ROCK_R, 25 | WALK_WOOD_L, 26 | WALK_WOOD_R, 27 | WALK_DIRT_L, 28 | WALK_DIRT_R, 29 | WALK_GRASS_L, 30 | WALK_GRASS_R, 31 | WALK_BUSH_L, 32 | WALK_BUSH_R, 33 | WALK_BLOOD_L, 34 | WALK_BLOOD_R, 35 | WALK_WATER_L, 36 | WALK_WATER_R, 37 | */ 38 | 39 | 40 | AUDIO_FILES 41 | }; 42 | 43 | int GetSampleID(AUDIO_FILE af); 44 | 45 | 46 | // is this right direction? 47 | /* 48 | void SetAudioSteps(int num_steps, int contact); 49 | void SetAudioWingsFreq(int freq); 50 | void SetAudioSwoosh(int speed, int contact); 51 | void SetAudioJump(int contact, bool end); 52 | void SetAudioShoot(int contact); 53 | void SetAudioWater(int height, int speed); 54 | */ 55 | 56 | #endif 57 | -------------------------------------------------------------------------------- /clean.sh: -------------------------------------------------------------------------------- 1 | make -f makefile_asciiid clean 2 | make -f makefile_server clean 3 | make -f makefile_game clean 4 | make -f makefile_game_term clean 5 | 6 | 7 | -------------------------------------------------------------------------------- /controls.txt: -------------------------------------------------------------------------------- 1 | Control your character: 2 | ----------------------- 3 | 4 | by keyboard: 5 | - arrow keys: move 6 | - WASD keys: move (alternate) 7 | - Q/E keys: rotates view 8 | - SPACE key: jump 9 | - ENTER: attack (you must be equipped) 10 | 11 | by mouse: 12 | - push and hold LMB in desired move direction, relative to character 13 | - while holding LMB press RMB to jump 14 | - drag with RMB to rotate view 15 | 16 | by touch: 17 | - start touch anywhere excluding areas covered by popup elements 18 | - move your finger in desired direction 19 | - while holding 'move' finger tap with another finger anywhere to jump 20 | - hold finger on left/right screen edge to rotate view 21 | 22 | Picking up items: 23 | - get close to the item / items, popup elements will appear below character 24 | - tap / click on item or press coresponding number on keyboard to pick it up 25 | - if inventory is open you can drag item from popup right into inventory 26 | 27 | Open / close inventory: 28 | ----------------------- 29 | 30 | by keyboard: 31 | - press I key 32 | 33 | by mouse / touch: 34 | - tap on character icon in upper-left corner 35 | 36 | Removing items from inventory: 37 | ------------------------------ 38 | 39 | - drag item outside inventory window and drop 40 | - hilight item and press 0 key (also possible when inventory is closed) 41 | 42 | Consuming / Using / Unusing items 43 | --------------------------------- 44 | 45 | - by mouse: RMB click on item in inventry 46 | - by touch: hold one finger on item in inventory and tap with another finger anywhere 47 | 48 | -------------------------------------------------------------------------------- /enemygen.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | struct EnemyGen 4 | { 5 | EnemyGen* next; 6 | EnemyGen* prev; 7 | float pos[3]; 8 | int alive_max; // 1-7 9 | int revive_min, revive_max; // (0-10) 2^n seconds 10 | int armor; // 0-10 11 | int helmet; // 0-10 12 | int shield; // 0-10 13 | int sword; // 0-10 14 | int crossbow; // 0-10 15 | 16 | // maybe add story_id 17 | // for generated enemies? 18 | }; 19 | 20 | extern EnemyGen* enemygen_head; 21 | extern EnemyGen* enemygen_tail; 22 | 23 | void FreeEnemyGens(); 24 | void LoadEnemyGens(FILE* f); 25 | void SaveEnemyGens(FILE* f); 26 | 27 | #ifdef EDITOR 28 | EnemyGen* HitEnemyGen(double* p, double* v); 29 | void DeleteEnemyGen(EnemyGen* eg); 30 | #endif 31 | -------------------------------------------------------------------------------- /fast_rand.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | static unsigned int g_seed = 0x57654321; 4 | 5 | // Used to seed the generator. 6 | inline void fast_srand(int seed) { 7 | g_seed = seed; 8 | } 9 | 10 | // Compute a pseudorandom integer. 11 | // Output value in range [0, 32767] 12 | #define FAST_RAND_MAX 0x7fff 13 | inline int fast_rand(void) { 14 | g_seed = (214013 * g_seed + 2531011); 15 | return (g_seed >> 16) & 0x7FFF; 16 | } 17 | -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/favicon.ico -------------------------------------------------------------------------------- /font1.h: -------------------------------------------------------------------------------- 1 | #ifndef FONT1_H 2 | #define FONT1_H 3 | 4 | void LoadFont1(); 5 | void FreeFont1(); 6 | 7 | #define FONT1_GREY_SKIN 0 8 | #define FONT1_GOLD_SKIN 1 9 | #define FONT1_PINK_SKIN 2 10 | 11 | void Font1Size(const char* str, int* w, int* h); 12 | void Font1Paint(AnsiCell* ptr, int width, int height, int x, int y, const char* str, int skin = 0, bool underline = false); 13 | void Font1UnderLine(AnsiCell* ptr, int width, int height, int x, int y, int w, int skin = 0); 14 | 15 | #endif 16 | -------------------------------------------------------------------------------- /fonts/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/Roboto-Medium.ttf -------------------------------------------------------------------------------- /fonts/cp437_10x10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/cp437_10x10.png -------------------------------------------------------------------------------- /fonts/cp437_10x10.png.psf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/cp437_10x10.png.psf -------------------------------------------------------------------------------- /fonts/cp437_12x12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/cp437_12x12.png -------------------------------------------------------------------------------- /fonts/cp437_12x12.png.psf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/cp437_12x12.png.psf -------------------------------------------------------------------------------- /fonts/cp437_14x14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/cp437_14x14.png -------------------------------------------------------------------------------- /fonts/cp437_14x14.png.psf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/cp437_14x14.png.psf -------------------------------------------------------------------------------- /fonts/cp437_16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/cp437_16x16.png -------------------------------------------------------------------------------- /fonts/cp437_16x16.png.psf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/cp437_16x16.png.psf -------------------------------------------------------------------------------- /fonts/cp437_18x18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/cp437_18x18.png -------------------------------------------------------------------------------- /fonts/cp437_18x18.png.psf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/cp437_18x18.png.psf -------------------------------------------------------------------------------- /fonts/cp437_20x20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/cp437_20x20.png -------------------------------------------------------------------------------- /fonts/cp437_20x20.png.psf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/cp437_20x20.png.psf -------------------------------------------------------------------------------- /fonts/cp437_24x24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/cp437_24x24.png -------------------------------------------------------------------------------- /fonts/cp437_24x24.png.psf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/cp437_24x24.png.psf -------------------------------------------------------------------------------- /fonts/cp437_28x28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/cp437_28x28.png -------------------------------------------------------------------------------- /fonts/cp437_28x28.png.psf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/cp437_28x28.png.psf -------------------------------------------------------------------------------- /fonts/cp437_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/cp437_32x32.png -------------------------------------------------------------------------------- /fonts/cp437_32x32.png.psf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/cp437_32x32.png.psf -------------------------------------------------------------------------------- /fonts/cp437_36x36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/cp437_36x36.png -------------------------------------------------------------------------------- /fonts/cp437_36x36.png.psf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/cp437_36x36.png.psf -------------------------------------------------------------------------------- /fonts/cp437_40x40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/cp437_40x40.png -------------------------------------------------------------------------------- /fonts/cp437_40x40.png.psf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/cp437_40x40.png.psf -------------------------------------------------------------------------------- /fonts/cp437_4x4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/cp437_4x4.png -------------------------------------------------------------------------------- /fonts/cp437_4x4.png.psf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/cp437_4x4.png.psf -------------------------------------------------------------------------------- /fonts/cp437_6x6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/cp437_6x6.png -------------------------------------------------------------------------------- /fonts/cp437_6x6.png.psf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/cp437_6x6.png.psf -------------------------------------------------------------------------------- /fonts/cp437_8x8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/cp437_8x8.png -------------------------------------------------------------------------------- /fonts/cp437_8x8.png.psf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/fonts/cp437_8x8.png.psf -------------------------------------------------------------------------------- /game.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | $(ProjectDir) 5 | WindowsLocalDebugger 6 | 7 | 8 | $(ProjectDir) 9 | WindowsLocalDebugger 10 | 11 | 12 | $(ProjectDir) 13 | WindowsLocalDebugger 14 | -url gumix@localhost/ws/y7/ 15 | 16 | 17 | $(ProjectDir) 18 | WindowsLocalDebugger 19 | -url goomix@###asciicker.com:80/ws/y7/ 20 | 21 | 22 | true 23 | 24 | -------------------------------------------------------------------------------- /game_api.h: -------------------------------------------------------------------------------- 1 | #ifndef GAME_API_H 2 | #define GAME_API_H 3 | 4 | struct Game; 5 | 6 | #define AKAPI_BUF_SIZE (65536+256/8) 7 | extern "C" void akAPI_Call(int id); 8 | extern void* akAPI_Buff; 9 | extern Game* game; 10 | 11 | void akAPI_Init(); 12 | void akAPI_Free(); 13 | 14 | // implemented by game_app or game_web 15 | void akAPI_Exec(const char* str, int len = -1, bool root=false); 16 | void akAPI_CB(int id); 17 | 18 | #if defined GAME || defined EMSCRIPTEN 19 | bool akAPI_OnSay(const char* str, int len, bool* allowed=0); 20 | bool akAPI_OnItem(int action, int story_id, int kind, int subkind, int weight, const char* str, 21 | bool* allowed=0, int* out_story_id=0, const char** out_desc=0); 22 | bool akAPI_OnFrame(); 23 | #else 24 | bool akAPI_OnSay(const char* str, int len, bool* allowed=0) {return false;} 25 | bool akAPI_OnItem(int action, int story_id, int kind, int subkind, int weight, const char* str, 26 | bool* allowed=0, int* out_story_id=0, const char** out_desc=0) {return false;} 27 | bool akAPI_OnFrame() {return false;} 28 | #endif 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /gamepad.h: -------------------------------------------------------------------------------- 1 | #ifndef GAMEPAD_H 2 | #define GAMEPAD_H 3 | 4 | void LoadGamePad(); 5 | void FreeGamePad(); 6 | 7 | void SetGamePadMapping(const uint8_t* map); 8 | const uint8_t* GetGamePadMapping(); 9 | const char* GetGamePad(int* axes, int* buttons); 10 | 11 | void ConnectGamePad(const char* name, int axes, int buttons, const uint8_t mapping[]); 12 | void DisconnectGamePad(); 13 | 14 | // return num of outs 15 | int UpdateGamePadAxis(int a, int16_t pos, uint32_t out[4]); 16 | int UpdateGamePadButton(int b, int16_t pos, uint32_t out[1]); 17 | 18 | void PaintGamePad(AnsiCell* ptr, int width, int height, uint64_t stamp); 19 | 20 | void GamePadOpen( void (*close)(void* _g), void* g ); 21 | 22 | void GamePadContact(int id, int ev, int x, int y, uint64_t stamp); 23 | /* 24 | id = contact (0:lmb, 1:touch0, 2:touch1, ...) 25 | ev = 0:begin 1;move 2:end 3:cancel 26 | */ 27 | 28 | void GamePadKeyb(int key, uint64_t stamp); 29 | /* 30 | key = 5:l,6:r,3:u,4:d, 1:enter, 0:space, 2:(backslash,escape,backspace), 7:(c,C), 8:(r,R) 31 | */ 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /gl45_emu.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "gl.h" 4 | 5 | #define USE_GL3 1 6 | 7 | void gl3CopyImageSubData(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, 8 | GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, 9 | GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); 10 | 11 | void gl3GetTextureSubImage(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, 12 | GLsizei width, GLsizei height, GLsizei depth, 13 | GLenum format, GLenum type, GLsizei bufSize, void *pixels); 14 | 15 | void gl3TextureStorage2D(GLuint tex, GLint levels, GLenum ifmt, GLsizei w, GLsizei h); 16 | void gl3TextureStorage3D(GLuint tex, GLint levels, GLenum ifmt, GLsizei w, GLsizei h, GLsizei d); 17 | void gl3CreateTextures(GLenum target, GLsizei num, GLuint* arr); 18 | void gl3TextureSubImage2D(GLuint tex, GLint level, GLint x, GLint y, GLsizei w, GLsizei h, GLenum fmt, GLenum type, const void *pix); 19 | void gl3BindTextureUnit2D(GLuint unit, GLuint tex); 20 | void gl3BindTextureUnit3D(GLuint unit, GLuint tex); 21 | void gl3TextureParameteri2D(GLuint tex, GLenum param, GLint val); 22 | void gl3TextureParameteri3D(GLuint tex, GLenum param, GLint val); 23 | void gl3TextureParameterfv2D(GLuint tex, GLenum param, GLfloat* val); 24 | void gl3TextureParameterfv3D(GLuint tex, GLenum param, GLfloat* val); 25 | void gl3CreateBuffers(GLsizei num, GLuint* arr); 26 | void gl3NamedBufferStorage(GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); 27 | void gl3NamedBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); 28 | void gl3CreateVertexArrays(GLsizei num, GLuint* arr); 29 | -------------------------------------------------------------------------------- /icons/app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/icons/app.png -------------------------------------------------------------------------------- /icons/basn0g01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/icons/basn0g01.png -------------------------------------------------------------------------------- /icons/basn0g02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/icons/basn0g02.png -------------------------------------------------------------------------------- /icons/basn0g04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/icons/basn0g04.png -------------------------------------------------------------------------------- /icons/basn0g08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/icons/basn0g08.png -------------------------------------------------------------------------------- /icons/basn0g16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/icons/basn0g16.png -------------------------------------------------------------------------------- /icons/basn2c08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/icons/basn2c08.png -------------------------------------------------------------------------------- /icons/basn2c16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/icons/basn2c16.png -------------------------------------------------------------------------------- /icons/basn3p01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/icons/basn3p01.png -------------------------------------------------------------------------------- /icons/basn3p02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/icons/basn3p02.png -------------------------------------------------------------------------------- /icons/basn3p04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/icons/basn3p04.png -------------------------------------------------------------------------------- /icons/basn3p08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/icons/basn3p08.png -------------------------------------------------------------------------------- /icons/basn4a08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/icons/basn4a08.png -------------------------------------------------------------------------------- /icons/basn4a16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/icons/basn4a16.png -------------------------------------------------------------------------------- /icons/basn6a08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/icons/basn6a08.png -------------------------------------------------------------------------------- /icons/basn6a16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/icons/basn6a16.png -------------------------------------------------------------------------------- /images/menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/images/menu.png -------------------------------------------------------------------------------- /imgui/.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | 3 | # top-most EditorConfig file 4 | root = true 5 | 6 | # Default settings: 7 | # Use 4 spaces as indentation 8 | [*] 9 | indent_style = space 10 | indent_size = 4 11 | insert_final_newline = true 12 | trim_trailing_whitespace = true 13 | 14 | [imstb_*] 15 | indent_size = 3 16 | trim_trailing_whitespace = false 17 | 18 | [Makefile] 19 | indent_style = tab 20 | indent_size = 4 21 | -------------------------------------------------------------------------------- /imgui/.travis.yml: -------------------------------------------------------------------------------- 1 | language: cpp 2 | sudo: required 3 | dist: trusty 4 | 5 | os: 6 | - linux 7 | - osx 8 | 9 | compiler: 10 | - gcc 11 | - clang 12 | 13 | before_install: 14 | - if [ $TRAVIS_OS_NAME == linux ]; then 15 | sudo apt-get update -qq; 16 | sudo apt-get install -y --no-install-recommends libxrandr-dev libxi-dev libxxf86vm-dev libsdl2-dev; 17 | wget https://github.com/glfw/glfw/releases/download/3.2.1/glfw-3.2.1.zip; 18 | unzip glfw-3.2.1.zip && cd glfw-3.2.1; 19 | cmake -DBUILD_SHARED_LIBS=true -DGLFW_BUILD_EXAMPLES=false -DGLFW_BUILD_TESTS=false -DGLFW_BUILD_DOCS=false .; 20 | sudo make -j $CPU_NUM install && cd ..; 21 | fi 22 | - if [ $TRAVIS_OS_NAME == osx ]; then 23 | brew update; 24 | brew install glfw3; 25 | brew install sdl2; 26 | fi 27 | 28 | script: 29 | - make -C examples/example_glfw_opengl2 30 | - make -C examples/example_glfw_opengl3 31 | - make -C examples/example_sdl_opengl3 32 | - if [ $TRAVIS_OS_NAME == osx ]; then 33 | xcodebuild -project examples/example_apple_metal/example_apple_metal.xcodeproj -target example_apple_metal_macos; 34 | fi 35 | -------------------------------------------------------------------------------- /imgui/LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014-2019 Omar Cornut 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /imgui/docs/issue_template.md: -------------------------------------------------------------------------------- 1 | (Click "Preview" to turn any http URL into a clickable link) 2 | 3 | 1. PLEASE CAREFULLY READ: 4 | https://github.com/ocornut/imgui/issues/2261 5 | 6 | 2. IF YOU ARE HAVING AN ISSUE COMPILING/LINKING/RUNNING/LOADING FONTS, please post on the "Getting Started" Discourse forum: 7 | https://discourse.dearimgui.org/c/getting-started 8 | 9 | 3. PLEASE MAKE SURE that you have: read the FAQ in imgui.cpp; explored the contents of ShowDemoWindow() including the Examples menu; searched among Issues; used your IDE to search for keywords in all sources and text files; and read the link provided in (1). 10 | 11 | 4. Be mindful that messages are being sent to the mailbox of "Watching" users. Try to proof-read your messages before sending them. Edits are not seen by those users, unless they browse the site. 12 | 13 | 5. Delete points 1-5 and PLEASE FILL THE TEMPLATE BELOW before submitting your issue. 14 | 15 | Thank you! 16 | 17 | ---- 18 | 19 | _(you may also go to Demo>About Window, and click "Config/Build Information" to obtain a bunch of detailed information that you can paste here)_ 20 | 21 | **Version/Branch of Dear ImGui:** 22 | 23 | Version: XXX 24 | Branch: XXX _(master/viewport/docking/etc.)_ 25 | 26 | **Back-end/Renderer/Compiler/OS** 27 | 28 | Back-ends: imgui_impl_XXX.cpp + imgui_impl_XXX.cpp _(or specify if using a custom engine/back-end)_ 29 | Compiler: XXX _(if the question is related to building or platform specific features)_ 30 | Operating System: XXX 31 | 32 | **My Issue/Question:** 33 | 34 | XXX _(please provide as much context as possible)_ 35 | 36 | **Screenshots/Video** 37 | 38 | XXX _(you can drag files here)_ 39 | 40 | **Standalone, minimal, complete and verifiable example:** _(see https://github.com/ocornut/imgui/issues/2261)_ 41 | ``` 42 | // Please do not forget this! 43 | ImGui::Begin("Example Bug"); 44 | MoreCodeToExplainMyIssue(); 45 | ImGui::End(); 46 | ``` 47 | -------------------------------------------------------------------------------- /imgui/docs/pull_request_template.md: -------------------------------------------------------------------------------- 1 | (Click "Preview" to turn any http URL into a clickable link) 2 | 3 | PLEASE CAREFULLY READ: 4 | https://github.com/ocornut/imgui/issues/2261 5 | 6 | (Clear this template before submitting your PR) 7 | -------------------------------------------------------------------------------- /imgui/examples/.gitignore: -------------------------------------------------------------------------------- 1 | build/* 2 | */Debug/* 3 | */Release/* 4 | */x64/* 5 | *.o 6 | *.obj 7 | *.exe 8 | 9 | ## Visual Studio cruft 10 | .vs/* 11 | */ipch/* 12 | *.opensdf 13 | *.log 14 | *.pdb 15 | *.ilk 16 | *.user 17 | *.sdf 18 | *.suo 19 | *.VC.db 20 | *.VC.VC.opendb 21 | 22 | ## Xcode cruft 23 | .DS_Store 24 | project.xcworkspace 25 | xcuserdata 26 | 27 | ## Emscripten output 28 | *.out.js 29 | *.out.wasm 30 | 31 | ## Unix executables 32 | example_glfw_opengl2/example_glfw_opengl2 33 | example_glfw_opengl3/example_glfw_opengl3 34 | example_sdl_opengl2/example_sdl_opengl2 35 | example_sdl_opengl3/example_sdl_opengl3 36 | 37 | ## Dear ImGui Ini files 38 | imgui.ini 39 | -------------------------------------------------------------------------------- /imgui/examples/example_allegro5/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Configuration 3 | 4 | Dear ImGui outputs 16-bit vertex indices by default. 5 | Allegro doesn't support them natively, so we have two solutions: convert the indices manually in imgui_impl_allegro5.cpp, or compile imgui with 32-bit indices. 6 | You can either modify imconfig.h that comes with Dear ImGui (easier), or set a C++ preprocessor option IMGUI_USER_CONFIG to find to a filename. 7 | We are providing `imconfig_allegro5.h` that enables 32-bit indices. 8 | Note that the back-end supports _BOTH_ 16-bit and 32-bit indices, but 32-bit indices will be slightly faster as they won't require a manual conversion. 9 | 10 | # How to Build 11 | 12 | - On Ubuntu 14.04+ 13 | 14 | ```bash 15 | g++ -DIMGUI_USER_CONFIG=\"examples/example_allegro5/imconfig_allegro5.h\" -I .. -I ../.. main.cpp ../imgui_impl_allegro5.cpp ../../imgui*.cpp -lallegro -lallegro_primitives -o allegro5_example 16 | ``` 17 | 18 | - On Windows with Visual Studio's CLI 19 | 20 | ``` 21 | set ALLEGRODIR=path_to_your_allegro5_folder 22 | cl /Zi /MD /I %ALLEGRODIR%\include /DIMGUI_USER_CONFIG=\"examples/example_allegro5/imconfig_allegro5.h\" /I .. /I ..\.. main.cpp ..\imgui_impl_allegro5.cpp ..\..\imgui*.cpp /link /LIBPATH:%ALLEGRODIR%\lib allegro-5.0.10-monolith-md.lib user32.lib 23 | ``` 24 | -------------------------------------------------------------------------------- /imgui/examples/example_allegro5/example_allegro5.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {20b90ce4-7fcb-4731-b9a0-075f875de82d} 6 | 7 | 8 | {f18ab499-84e1-499f-8eff-9754361e0e52} 9 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 10 | 11 | 12 | 13 | 14 | imgui 15 | 16 | 17 | imgui 18 | 19 | 20 | imgui 21 | 22 | 23 | sources 24 | 25 | 26 | sources 27 | 28 | 29 | sources 30 | 31 | 32 | imgui 33 | 34 | 35 | 36 | 37 | imgui 38 | 39 | 40 | imgui 41 | 42 | 43 | imgui 44 | 45 | 46 | sources 47 | 48 | 49 | 50 | 51 | 52 | sources 53 | 54 | 55 | -------------------------------------------------------------------------------- /imgui/examples/example_allegro5/imconfig_allegro5.h: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | // COMPILE-TIME OPTIONS FOR DEAR IMGUI ALLEGRO 5 EXAMPLE 3 | // See imconfig.h for the full template 4 | // Because Allegro doesn't support 16-bit vertex indices, we enable the compile-time option of imgui to use 32-bit indices 5 | //----------------------------------------------------------------------------- 6 | 7 | #pragma once 8 | 9 | // Use 32-bit vertex indices because Allegro doesn't support 16-bit ones 10 | // This allows us to avoid converting vertices format at runtime 11 | #define ImDrawIdx int 12 | -------------------------------------------------------------------------------- /imgui/examples/example_apple_metal/README.md: -------------------------------------------------------------------------------- 1 | # iOS / OSX Metal example 2 | 3 | ## Introduction 4 | 5 | This example shows how to integrate Dear ImGui with Metal. It is based on the "cross-platform" game template provided with Xcode as of Xcode 9. 6 | 7 | (NB: you may still want to use GLFW or SDL which will also support Windows, Linux along with OSX.) 8 | 9 | -------------------------------------------------------------------------------- /imgui/examples/example_apple_metal/Shared/AppDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #if TARGET_OS_IPHONE 4 | 5 | #import 6 | 7 | @interface AppDelegate : UIResponder 8 | @property (strong, nonatomic) UIWindow *window; 9 | @end 10 | 11 | #else 12 | 13 | #import 14 | 15 | @interface AppDelegate : NSObject 16 | @end 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /imgui/examples/example_apple_metal/Shared/AppDelegate.m: -------------------------------------------------------------------------------- 1 | #import "AppDelegate.h" 2 | 3 | @implementation AppDelegate 4 | 5 | #if TARGET_OS_OSX 6 | - (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender { 7 | return YES; 8 | } 9 | #endif 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /imgui/examples/example_apple_metal/Shared/Renderer.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface Renderer : NSObject 4 | 5 | -(nonnull instancetype)initWithView:(nonnull MTKView *)view; 6 | 7 | @end 8 | 9 | -------------------------------------------------------------------------------- /imgui/examples/example_apple_metal/Shared/ViewController.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import "Renderer.h" 4 | 5 | #if TARGET_OS_IPHONE 6 | 7 | #import 8 | 9 | @interface ViewController : UIViewController 10 | @end 11 | 12 | #else 13 | 14 | #import 15 | 16 | @interface ViewController : NSViewController 17 | @end 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /imgui/examples/example_apple_metal/Shared/main.m: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #if TARGET_OS_IPHONE 4 | 5 | #import 6 | #import "AppDelegate.h" 7 | 8 | int main(int argc, char * argv[]) { 9 | @autoreleasepool { 10 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 11 | } 12 | } 13 | 14 | #else 15 | 16 | #import 17 | 18 | int main(int argc, const char * argv[]) { 19 | return NSApplicationMain(argc, argv); 20 | } 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /imgui/examples/example_apple_metal/iOS/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /imgui/examples/example_apple_metal/iOS/Default-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/imgui/examples/example_apple_metal/iOS/Default-568h@2x.png -------------------------------------------------------------------------------- /imgui/examples/example_apple_metal/iOS/Info-iOS.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | imgui 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | UILaunchStoryboardName 24 | Launch Screen 25 | UIMainStoryboardFile 26 | Main 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | metal 31 | 32 | UIRequiresFullScreen 33 | 34 | UIStatusBarHidden 35 | 36 | UISupportedInterfaceOrientations 37 | 38 | UIInterfaceOrientationPortrait 39 | UIInterfaceOrientationLandscapeLeft 40 | UIInterfaceOrientationLandscapeRight 41 | UIInterfaceOrientationPortraitUpsideDown 42 | 43 | UISupportedInterfaceOrientations~ipad 44 | 45 | UIInterfaceOrientationPortrait 46 | UIInterfaceOrientationPortraitUpsideDown 47 | UIInterfaceOrientationLandscapeLeft 48 | UIInterfaceOrientationLandscapeRight 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /imgui/examples/example_apple_metal/iOS/Launch Screen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /imgui/examples/example_apple_metal/macOS/Info-macOS.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | imgui 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleVersion 22 | 1 23 | LSMinimumSystemVersion 24 | $(MACOSX_DEPLOYMENT_TARGET) 25 | NSHumanReadableCopyright 26 | Copyright © 2018 Warren Moore. All rights reserved. 27 | NSMainStoryboardFile 28 | Main 29 | NSPrincipalClass 30 | NSApplication 31 | 32 | 33 | -------------------------------------------------------------------------------- /imgui/examples/example_freeglut_opengl2/example_freeglut_opengl2.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {c336cfe3-f0c4-464c-9ef0-a9e17a7ff222} 6 | 7 | 8 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 9 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 10 | 11 | 12 | 13 | 14 | sources 15 | 16 | 17 | imgui 18 | 19 | 20 | imgui 21 | 22 | 23 | imgui 24 | 25 | 26 | sources 27 | 28 | 29 | sources 30 | 31 | 32 | imgui 33 | 34 | 35 | 36 | 37 | imgui 38 | 39 | 40 | imgui 41 | 42 | 43 | imgui 44 | 45 | 46 | sources 47 | 48 | 49 | sources 50 | 51 | 52 | 53 | 54 | 55 | sources 56 | 57 | 58 | -------------------------------------------------------------------------------- /imgui/examples/example_glfw_opengl2/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Cross Platform Makefile 3 | # Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X 4 | # 5 | # You will need GLFW (http://www.glfw.org): 6 | # Linux: 7 | # apt-get install libglfw-dev 8 | # Mac OS X: 9 | # brew install glfw 10 | # MSYS2: 11 | # pacman -S --noconfirm --needed mingw-w64-x86_64-toolchain mingw-w64-x86_64-glfw 12 | # 13 | 14 | #CXX = g++ 15 | #CXX = clang++ 16 | 17 | EXE = example_glfw_opengl2 18 | SOURCES = main.cpp 19 | SOURCES += ../imgui_impl_glfw.cpp ../imgui_impl_opengl2.cpp 20 | SOURCES += ../../imgui.cpp ../../imgui_demo.cpp ../../imgui_draw.cpp ../../imgui_widgets.cpp 21 | OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) 22 | 23 | UNAME_S := $(shell uname -s) 24 | 25 | 26 | ifeq ($(UNAME_S), Linux) #LINUX 27 | ECHO_MESSAGE = "Linux" 28 | LIBS = -lGL `pkg-config --static --libs glfw3` 29 | 30 | CXXFLAGS = -I../ -I../../ `pkg-config --cflags glfw3` 31 | CXXFLAGS += -Wall -Wformat 32 | CFLAGS = $(CXXFLAGS) 33 | endif 34 | 35 | ifeq ($(UNAME_S), Darwin) #APPLE 36 | ECHO_MESSAGE = "Mac OS X" 37 | LIBS = -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo 38 | #LIBS += -L/usr/local/lib -lglfw3 39 | LIBS += -L/usr/local/lib -lglfw 40 | 41 | CXXFLAGS = -I../ -I../../ -I/usr/local/include 42 | CXXFLAGS += -Wall -Wformat 43 | CFLAGS = $(CXXFLAGS) 44 | endif 45 | 46 | ifeq ($(findstring MINGW,$(UNAME_S)),MINGW) 47 | ECHO_MESSAGE = "Windows" 48 | LIBS = -lglfw3 -lgdi32 -lopengl32 -limm32 49 | 50 | CXXFLAGS = -I../ -I../../ -I../libs/gl3w `pkg-config --cflags glfw3` 51 | CXXFLAGS += -Wall -Wformat 52 | CFLAGS = $(CXXFLAGS) 53 | endif 54 | 55 | 56 | %.o:%.cpp 57 | $(CXX) $(CXXFLAGS) -c -o $@ $< 58 | 59 | %.o:../%.cpp 60 | $(CXX) $(CXXFLAGS) -c -o $@ $< 61 | 62 | %.o:../../%.cpp 63 | $(CXX) $(CXXFLAGS) -c -o $@ $< 64 | 65 | all: $(EXE) 66 | @echo Build complete for $(ECHO_MESSAGE) 67 | 68 | $(EXE): $(OBJS) 69 | $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS) 70 | 71 | clean: 72 | rm -f $(EXE) $(OBJS) 73 | 74 | -------------------------------------------------------------------------------- /imgui/examples/example_glfw_opengl2/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | mkdir Debug 3 | cl /nologo /Zi /MD /I .. /I ..\.. /I ..\libs\glfw\include *.cpp ..\imgui_impl_opengl2.cpp ..\imgui_impl_glfw.cpp ..\..\imgui*.cpp /FeDebug/example_glfw_opengl2.exe /FoDebug/ /link /LIBPATH:..\libs\glfw\lib-vc2010-32 glfw3.lib opengl32.lib gdi32.lib shell32.lib 4 | -------------------------------------------------------------------------------- /imgui/examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {c336cfe3-f0c4-464c-9ef0-a9e17a7ff222} 6 | 7 | 8 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 9 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 10 | 11 | 12 | 13 | 14 | sources 15 | 16 | 17 | imgui 18 | 19 | 20 | imgui 21 | 22 | 23 | imgui 24 | 25 | 26 | sources 27 | 28 | 29 | sources 30 | 31 | 32 | imgui 33 | 34 | 35 | 36 | 37 | imgui 38 | 39 | 40 | imgui 41 | 42 | 43 | imgui 44 | 45 | 46 | sources 47 | 48 | 49 | sources 50 | 51 | 52 | 53 | 54 | 55 | sources 56 | 57 | 58 | -------------------------------------------------------------------------------- /imgui/examples/example_glfw_opengl3/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | mkdir Debug 3 | cl /nologo /Zi /MD /I .. /I ..\.. /I ..\libs\glfw\include /I ..\libs\gl3w *.cpp ..\imgui_impl_glfw.cpp ..\imgui_impl_opengl3.cpp ..\..\imgui*.cpp ..\libs\gl3w\GL\gl3w.c /FeDebug/example_glfw_opengl3.exe /FoDebug/ /link /LIBPATH:..\libs\glfw\lib-vc2010-32 glfw3.lib opengl32.lib gdi32.lib shell32.lib 4 | -------------------------------------------------------------------------------- /imgui/examples/example_glfw_vulkan/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8) 2 | project(imgui_example_glfw_vulkan C CXX) 3 | 4 | if(NOT CMAKE_BUILD_TYPE) 5 | set(CMAKE_BUILD_TYPE Debug CACHE STRING "" FORCE) 6 | endif() 7 | 8 | set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DVK_PROTOTYPES") 9 | set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVK_PROTOTYPES") 10 | 11 | # GLFW 12 | set(GLFW_DIR ../../../glfw) # Set this to point to an up-to-date GLFW repo 13 | option(GLFW_BUILD_EXAMPLES "Build the GLFW example programs" OFF) 14 | option(GLFW_BUILD_TESTS "Build the GLFW test programs" OFF) 15 | option(GLFW_BUILD_DOCS "Build the GLFW documentation" OFF) 16 | option(GLFW_INSTALL "Generate installation target" OFF) 17 | option(GLFW_DOCUMENT_INTERNALS "Include internals in documentation" OFF) 18 | add_subdirectory(${GLFW_DIR} binary_dir EXCLUDE_FROM_ALL) 19 | include_directories(${GLFW_DIR}/include) 20 | 21 | # ImGui 22 | set(IMGUI_DIR ../../) 23 | include_directories(${IMGUI_DIR} ..) 24 | 25 | # Libraries 26 | find_library(VULKAN_LIBRARY 27 | NAMES vulkan vulkan-1) 28 | set(LIBRARIES "glfw;${VULKAN_LIBRARY}") 29 | 30 | # Use vulkan headers from glfw: 31 | include_directories(${GLFW_DIR}/deps) 32 | 33 | file(GLOB sources *.cpp) 34 | 35 | add_executable(example_glfw_vulkan ${sources} ${IMGUI_DIR}/examples/imgui_impl_glfw.cpp ${IMGUI_DIR}/examples/imgui_impl_vulkan.cpp ${IMGUI_DIR}/imgui.cpp ${IMGUI_DIR}/imgui_draw.cpp ${IMGUI_DIR}/imgui_demo.cpp ${IMGUI_DIR}/imgui_widgets.cpp) 36 | target_link_libraries(example_glfw_vulkan ${LIBRARIES}) 37 | -------------------------------------------------------------------------------- /imgui/examples/example_glfw_vulkan/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | 3 | mkdir Debug 4 | cl /nologo /Zi /MD /I .. /I ..\.. /I ..\libs\glfw\include /I %VULKAN_SDK%\include *.cpp ..\imgui_impl_vulkan.cpp ..\imgui_impl_glfw.cpp ..\..\imgui*.cpp /FeDebug/example_glfw_vulkan.exe /FoDebug/ /link /LIBPATH:..\libs\glfw\lib-vc2010-32 /libpath:%VULKAN_SDK%\lib32 glfw3.lib opengl32.lib gdi32.lib shell32.lib vulkan-1.lib 5 | 6 | mkdir Release 7 | cl /nologo /Zi /MD /Ox /Oi /I .. /I ..\.. /I ..\libs\glfw\include /I %VULKAN_SDK%\include *.cpp ..\imgui_impl_vulkan.cpp ..\imgui_impl_glfw.cpp ..\..\imgui*.cpp /FeRelease/example_glfw_vulkan.exe /FoRelease/ /link /LIBPATH:..\libs\glfw\lib-vc2010-32 /libpath:%VULKAN_SDK%\lib32 glfw3.lib opengl32.lib gdi32.lib shell32.lib vulkan-1.lib 8 | -------------------------------------------------------------------------------- /imgui/examples/example_glfw_vulkan/build_win64.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of amd64/vcvars32.bat to setup 64-bit command-line compiler. 2 | 3 | mkdir Debug 4 | cl /nologo /Zi /MD /I .. /I ..\.. /I ..\libs\glfw\include /I %VULKAN_SDK%\include *.cpp ..\imgui_impl_vulkan.cpp ..\imgui_impl_glfw.cpp ..\..\imgui*.cpp /FeDebug/example_glfw_vulkan.exe /FoDebug/ /link /LIBPATH:..\libs\glfw\lib-vc2010-64 /libpath:%VULKAN_SDK%\lib glfw3.lib opengl32.lib gdi32.lib shell32.lib vulkan-1.lib 5 | 6 | mkdir Release 7 | cl /nologo /Zi /MD /Ox /Oi /I .. /I ..\.. /I ..\libs\glfw\include /I %VULKAN_SDK%\include *.cpp ..\imgui_impl_vulkan.cpp ..\imgui_impl_glfw.cpp ..\..\imgui*.cpp /FeRelease/example_glfw_vulkan.exe /FoRelease/ /link /LIBPATH:..\libs\glfw\lib-vc2010-64 /libpath:%VULKAN_SDK%\lib glfw3.lib opengl32.lib gdi32.lib shell32.lib vulkan-1.lib 8 | -------------------------------------------------------------------------------- /imgui/examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {20b90ce4-7fcb-4731-b9a0-075f875de82d} 6 | 7 | 8 | {f18ab499-84e1-499f-8eff-9754361e0e52} 9 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 10 | 11 | 12 | 13 | 14 | imgui 15 | 16 | 17 | imgui 18 | 19 | 20 | imgui 21 | 22 | 23 | sources 24 | 25 | 26 | sources 27 | 28 | 29 | sources 30 | 31 | 32 | imgui 33 | 34 | 35 | 36 | 37 | imgui 38 | 39 | 40 | imgui 41 | 42 | 43 | imgui 44 | 45 | 46 | sources 47 | 48 | 49 | sources 50 | 51 | 52 | 53 | 54 | 55 | sources 56 | 57 | 58 | -------------------------------------------------------------------------------- /imgui/examples/example_glfw_vulkan/gen_spv.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | glslangValidator -V -x -o glsl_shader.frag.u32 glsl_shader.frag 3 | glslangValidator -V -x -o glsl_shader.vert.u32 glsl_shader.vert 4 | -------------------------------------------------------------------------------- /imgui/examples/example_glfw_vulkan/glsl_shader.frag: -------------------------------------------------------------------------------- 1 | #version 450 core 2 | layout(location = 0) out vec4 fColor; 3 | 4 | layout(set=0, binding=0) uniform sampler2D sTexture; 5 | 6 | layout(location = 0) in struct{ 7 | vec4 Color; 8 | vec2 UV; 9 | } In; 10 | 11 | void main() 12 | { 13 | fColor = In.Color * texture(sTexture, In.UV.st); 14 | } 15 | -------------------------------------------------------------------------------- /imgui/examples/example_glfw_vulkan/glsl_shader.vert: -------------------------------------------------------------------------------- 1 | #version 450 core 2 | layout(location = 0) in vec2 aPos; 3 | layout(location = 1) in vec2 aUV; 4 | layout(location = 2) in vec4 aColor; 5 | 6 | layout(push_constant) uniform uPushConstant{ 7 | vec2 uScale; 8 | vec2 uTranslate; 9 | } pc; 10 | 11 | out gl_PerVertex{ 12 | vec4 gl_Position; 13 | }; 14 | 15 | layout(location = 0) out struct{ 16 | vec4 Color; 17 | vec2 UV; 18 | } Out; 19 | 20 | void main() 21 | { 22 | Out.Color = aColor; 23 | Out.UV = aUV; 24 | gl_Position = vec4(aPos*pc.uScale+pc.uTranslate, 0, 1); 25 | } 26 | -------------------------------------------------------------------------------- /imgui/examples/example_marmalade/data/app.icf: -------------------------------------------------------------------------------- 1 | # This file is for configuration settings for your 2 | # application. 3 | # 4 | # The syntax is similar to windows .ini files ie 5 | # 6 | # [GroupName] 7 | # Setting = Value 8 | # 9 | # Which can be read by your application using 10 | # e.g s3eConfigGetString("GroupName", "Setting", string) 11 | # 12 | # All settings must be documented in .config.txt files. 13 | # New settings specific to this application should be 14 | # documented in app.config.txt 15 | # 16 | # Some conditional operations are also permitted, see the 17 | # S3E documentation for details. 18 | 19 | [S3E] 20 | MemSize=6000000 21 | MemSizeDebug=6000000 22 | DispFixRot=FixedLandscape 23 | 24 | # emulate iphone 5 resolution, change these settings to emulate other display resolution 25 | WinWidth=1136 26 | WinHeight=640 27 | 28 | [GX] 29 | DataCacheSize=131070 30 | 31 | [Util] 32 | #MemoryBreakpoint=1282 33 | -------------------------------------------------------------------------------- /imgui/examples/example_marmalade/marmalade_example.mkb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env mkb 2 | 3 | # ImGui - standalone example application for Marmalade 4 | # Copyright (C) 2015 by Giovanni Zito 5 | # This file is part of ImGui 6 | # https://github.com/ocornut/imgui 7 | 8 | define IMGUI_DISABLE_INCLUDE_IMCONFIG_H 9 | define IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCS 10 | define IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCS 11 | define _snprintf=snprintf 12 | 13 | options 14 | { 15 | optimise-speed=1 16 | } 17 | 18 | includepaths 19 | { 20 | .. 21 | ../.. 22 | } 23 | 24 | subprojects 25 | { 26 | iwgx 27 | } 28 | 29 | files 30 | { 31 | (.) 32 | ["imgui"] 33 | ../../imgui.cpp 34 | ../../imgui_demo.cpp 35 | ../../imgui_draw.cpp 36 | ../../imgui_widgets.cpp 37 | ../../imconfig.h 38 | ../../imgui.h 39 | ../../imgui_internal.h 40 | 41 | ["imgui","Marmalade binding"] 42 | ../imgui_impl_marmalade.h 43 | ../imgui_impl_marmalade.cpp 44 | main.cpp 45 | 46 | } 47 | -------------------------------------------------------------------------------- /imgui/examples/example_null/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | mkdir Debug 3 | cl /nologo /Zi /MD /I ..\.. *.cpp ..\..\*.cpp /FeDebug/example_null.exe /FoDebug/ /link gdi32.lib shell32.lib 4 | -------------------------------------------------------------------------------- /imgui/examples/example_null/main.cpp: -------------------------------------------------------------------------------- 1 | // dear imgui: null/dummy example application (compile and link imgui with no inputs, no outputs) 2 | #include "imgui.h" 3 | #include 4 | 5 | int main(int, char**) 6 | { 7 | IMGUI_CHECKVERSION(); 8 | ImGui::CreateContext(); 9 | ImGuiIO& io = ImGui::GetIO(); 10 | 11 | // Build atlas 12 | unsigned char* tex_pixels = NULL; 13 | int tex_w, tex_h; 14 | io.Fonts->GetTexDataAsRGBA32(&tex_pixels, &tex_w, &tex_h); 15 | 16 | for (int n = 0; n < 50; n++) 17 | { 18 | printf("NewFrame() %d\n", n); 19 | io.DisplaySize = ImVec2(1920, 1080); 20 | io.DeltaTime = 1.0f / 60.0f; 21 | ImGui::NewFrame(); 22 | 23 | static float f = 0.0f; 24 | ImGui::Text("Hello, world!"); 25 | ImGui::SliderFloat("float", &f, 0.0f, 1.0f); 26 | ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); 27 | ImGui::ShowDemoWindow(NULL); 28 | 29 | ImGui::Render(); 30 | } 31 | 32 | printf("DestroyContext()\n"); 33 | ImGui::DestroyContext(); 34 | return 0; 35 | } 36 | -------------------------------------------------------------------------------- /imgui/examples/example_sdl_opengl2/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Cross Platform Makefile 3 | # Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X 4 | # 5 | # You will need SDL2 (http://www.libsdl.org): 6 | # Linux: 7 | # apt-get install libsdl2-dev 8 | # Mac OS X: 9 | # brew install sdl2 10 | # MSYS2: 11 | # pacman -S mingw-w64-i686-SDL 12 | # 13 | 14 | #CXX = g++ 15 | #CXX = clang++ 16 | 17 | EXE = example_sdl_opengl2 18 | SOURCES = main.cpp ../imgui_impl_sdl.cpp ../imgui_impl_opengl2.cpp 19 | SOURCES += ../../imgui.cpp ../../imgui_demo.cpp ../../imgui_draw.cpp ../../imgui_widgets.cpp 20 | OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) 21 | 22 | UNAME_S := $(shell uname -s) 23 | 24 | 25 | ifeq ($(UNAME_S), Linux) #LINUX 26 | ECHO_MESSAGE = "Linux" 27 | LIBS = -lGL -ldl `sdl2-config --libs` 28 | 29 | CXXFLAGS = -I ../ -I../../ `sdl2-config --cflags` 30 | CXXFLAGS += -Wall -Wformat 31 | CFLAGS = $(CXXFLAGS) 32 | endif 33 | 34 | ifeq ($(UNAME_S), Darwin) #APPLE 35 | ECHO_MESSAGE = "Mac OS X" 36 | LIBS = -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo `sdl2-config --libs` 37 | 38 | CXXFLAGS = -I ../ -I../../ -I/usr/local/include `sdl2-config --cflags` 39 | CXXFLAGS += -Wall -Wformat 40 | CFLAGS = $(CXXFLAGS) 41 | endif 42 | 43 | ifeq ($(findstring MINGW,$(UNAME_S)),MINGW) 44 | ECHO_MESSAGE = "Windows" 45 | LIBS = -lgdi32 -lopengl32 -limm32 `pkg-config --static --libs sdl2` 46 | 47 | CXXFLAGS = -I ../ -I../../ `pkg-config --cflags sdl2` 48 | CXXFLAGS += -Wall -Wformat 49 | CFLAGS = $(CXXFLAGS) 50 | endif 51 | 52 | 53 | %.o:%.cpp 54 | $(CXX) $(CXXFLAGS) -c -o $@ $< 55 | 56 | %.o:../%.cpp 57 | $(CXX) $(CXXFLAGS) -c -o $@ $< 58 | 59 | %.o:../../%.cpp 60 | $(CXX) $(CXXFLAGS) -c -o $@ $< 61 | 62 | all: $(EXE) 63 | @echo Build complete for $(ECHO_MESSAGE) 64 | 65 | $(EXE): $(OBJS) 66 | $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS) 67 | 68 | clean: 69 | rm -f $(EXE) $(OBJS) 70 | -------------------------------------------------------------------------------- /imgui/examples/example_sdl_opengl2/README.md: -------------------------------------------------------------------------------- 1 | 2 | # How to Build 3 | 4 | - On Windows with Visual Studio's CLI 5 | 6 | ``` 7 | set SDL2_DIR=path_to_your_sdl2_folder 8 | cl /Zi /MD /I.. /I..\.. /I%SDL2_DIR%\include main.cpp ..\imgui_impl_sdl.cpp ..\imgui_impl_opengl2.cpp ..\..\imgui*.cpp /FeDebug/example_sdl_opengl2.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib opengl32.lib /subsystem:console 9 | # ^^ include paths ^^ source files ^^ output exe ^^ output dir ^^ libraries 10 | # or for 64-bit: 11 | cl /Zi /MD /I.. /I..\.. /I%SDL2_DIR%\include main.cpp ..\imgui_impl_sdl.cpp ..\imgui_impl_opengl2.cpp ..\..\imgui*.cpp /FeDebug/example_sdl_opengl2.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x64 SDL2.lib SDL2main.lib opengl32.lib /subsystem:console 12 | ``` 13 | 14 | - On Linux and similar Unixes 15 | 16 | ``` 17 | c++ `sdl2-config --cflags` -I .. -I ../.. main.cpp ../imgui_impl_sdl.cpp ../imgui_impl_opengl2.cpp ../../imgui*.cpp `sdl2-config --libs` -lGL 18 | ``` 19 | 20 | - On Mac OS X 21 | 22 | ``` 23 | brew install sdl2 24 | c++ `sdl2-config --cflags` -I .. -I ../.. main.cpp ../imgui_impl_sdl.cpp ../imgui_impl_opengl2.cpp ../../imgui*.cpp `sdl2-config --libs` -framework OpenGl 25 | ``` 26 | -------------------------------------------------------------------------------- /imgui/examples/example_sdl_opengl2/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | set OUT_DIR=Debug 3 | set OUT_EXE=example_sdl_opengl2.exe 4 | set INCLUDES=/I.. /I..\.. /I%SDL2_DIR%\include 5 | set SOURCES=main.cpp ..\imgui_impl_sdl.cpp ..\imgui_impl_opengl2.cpp ..\..\imgui*.cpp 6 | set LIBS=/libpath:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib opengl32.lib 7 | mkdir %OUT_DIR% 8 | cl /nologo /Zi /MD %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_DIR%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console 9 | -------------------------------------------------------------------------------- /imgui/examples/example_sdl_opengl2/example_sdl_opengl2.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {20b90ce4-7fcb-4731-b9a0-075f875de82d} 6 | 7 | 8 | {f18ab499-84e1-499f-8eff-9754361e0e52} 9 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 10 | 11 | 12 | 13 | 14 | imgui 15 | 16 | 17 | imgui 18 | 19 | 20 | imgui 21 | 22 | 23 | sources 24 | 25 | 26 | sources 27 | 28 | 29 | sources 30 | 31 | 32 | imgui 33 | 34 | 35 | 36 | 37 | imgui 38 | 39 | 40 | imgui 41 | 42 | 43 | imgui 44 | 45 | 46 | sources 47 | 48 | 49 | sources 50 | 51 | 52 | 53 | 54 | 55 | sources 56 | 57 | 58 | -------------------------------------------------------------------------------- /imgui/examples/example_sdl_opengl3/README.md: -------------------------------------------------------------------------------- 1 | 2 | # How to Build 3 | 4 | - On Windows with Visual Studio's CLI 5 | 6 | ``` 7 | set SDL2_DIR=path_to_your_sdl2_folder 8 | cl /Zi /MD /I.. /I..\.. /I%SDL2_DIR%\include /I..\libs\gl3w main.cpp ..\imgui_impl_sdl.cpp ..\imgui_impl_opengl3.cpp ..\..\imgui*.cpp ..\libs\gl3w\GL\gl3w.c /FeDebug/example_sdl_opengl3.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib opengl32.lib /subsystem:console 9 | # ^^ include paths ^^ source files ^^ output exe ^^ output dir ^^ libraries 10 | # or for 64-bit: 11 | cl /Zi /MD /I.. /I..\.. /I%SDL2_DIR%\include /I..\libs\gl3w main.cpp ..\imgui_impl_sdl.cpp ..\imgui_impl_opengl3.cpp ..\..\imgui*.cpp ..\libs\gl3w\GL\gl3w.c /FeDebug/example_sdl_opengl3.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x64 SDL2.lib SDL2main.lib opengl32.lib /subsystem:console 12 | ``` 13 | 14 | - On Linux and similar Unixes 15 | 16 | ``` 17 | c++ `sdl2-config --cflags` -I .. -I ../.. -I ../libs/gl3w main.cpp ../imgui_impl_sdl.cpp ../imgui_impl_opengl3.cpp ../../imgui*.cpp ../libs/gl3w/GL/gl3w.c `sdl2-config --libs` -lGL -ldl 18 | ``` 19 | 20 | - On Mac OS X 21 | 22 | ``` 23 | brew install sdl2 24 | c++ `sdl2-config --cflags` -I .. -I ../.. -I ../libs/gl3w main.cpp ../imgui_impl_sdl.cpp ../imgui_impl_opengl3.cpp ../../imgui*.cpp ../libs/gl3w/GL/gl3w.c `sdl2-config --libs` -framework OpenGl -framework CoreFoundation 25 | ``` 26 | -------------------------------------------------------------------------------- /imgui/examples/example_sdl_opengl3/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | set OUT_DIR=Debug 3 | set OUT_EXE=example_sdl_opengl3.exe 4 | set INCLUDES=/I.. /I..\.. /I%SDL2_DIR%\include /I..\libs\gl3w 5 | set SOURCES=main.cpp ..\imgui_impl_sdl.cpp ..\imgui_impl_opengl3.cpp ..\..\imgui*.cpp ..\libs\gl3w\GL\gl3w.c 6 | set LIBS=/libpath:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib opengl32.lib 7 | mkdir %OUT_DIR% 8 | cl /nologo /Zi /MD %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console 9 | -------------------------------------------------------------------------------- /imgui/examples/example_sdl_vulkan/example_sdl_vulkan.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {20b90ce4-7fcb-4731-b9a0-075f875de82d} 6 | 7 | 8 | {f18ab499-84e1-499f-8eff-9754361e0e52} 9 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 10 | 11 | 12 | 13 | 14 | imgui 15 | 16 | 17 | imgui 18 | 19 | 20 | imgui 21 | 22 | 23 | sources 24 | 25 | 26 | sources 27 | 28 | 29 | sources 30 | 31 | 32 | imgui 33 | 34 | 35 | 36 | 37 | imgui 38 | 39 | 40 | imgui 41 | 42 | 43 | imgui 44 | 45 | 46 | sources 47 | 48 | 49 | sources 50 | 51 | 52 | 53 | 54 | 55 | sources 56 | 57 | 58 | -------------------------------------------------------------------------------- /imgui/examples/example_win32_directx10/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | mkdir Debug 3 | cl /nologo /Zi /MD /I .. /I ..\.. /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /I "%DXSDK_DIR%Include" /D UNICODE /D _UNICODE *.cpp ..\imgui_impl_win32.cpp ..\imgui_impl_dx10.cpp ..\..\imgui*.cpp /FeDebug/example_win32_directx10.exe /FoDebug/ /link /LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d10.lib d3dcompiler.lib 4 | 5 | -------------------------------------------------------------------------------- /imgui/examples/example_win32_directx10/example_win32_directx10.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {0587d7a3-f2ce-4d56-b84f-a0005d3bfce6} 6 | 7 | 8 | {08e36723-ce4f-4cff-9662-c40801cf1acf} 9 | 10 | 11 | 12 | 13 | imgui 14 | 15 | 16 | imgui 17 | 18 | 19 | imgui 20 | 21 | 22 | sources 23 | 24 | 25 | sources 26 | 27 | 28 | 29 | 30 | imgui 31 | 32 | 33 | sources 34 | 35 | 36 | imgui 37 | 38 | 39 | imgui 40 | 41 | 42 | sources 43 | 44 | 45 | sources 46 | 47 | 48 | imgui 49 | 50 | 51 | 52 | 53 | 54 | sources 55 | 56 | 57 | -------------------------------------------------------------------------------- /imgui/examples/example_win32_directx11/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | mkdir Debug 3 | cl /nologo /Zi /MD /I .. /I ..\.. /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /I "%DXSDK_DIR%Include" /D UNICODE /D _UNICODE *.cpp ..\imgui_impl_dx11.cpp ..\imgui_impl_win32.cpp ..\..\imgui*.cpp /FeDebug/example_win32_directx11.exe /FoDebug/ /link /LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d11.lib d3dcompiler.lib 4 | 5 | -------------------------------------------------------------------------------- /imgui/examples/example_win32_directx11/example_win32_directx11.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {0587d7a3-f2ce-4d56-b84f-a0005d3bfce6} 6 | 7 | 8 | {08e36723-ce4f-4cff-9662-c40801cf1acf} 9 | 10 | 11 | 12 | 13 | imgui 14 | 15 | 16 | imgui 17 | 18 | 19 | imgui 20 | 21 | 22 | sources 23 | 24 | 25 | sources 26 | 27 | 28 | 29 | 30 | imgui 31 | 32 | 33 | sources 34 | 35 | 36 | imgui 37 | 38 | 39 | imgui 40 | 41 | 42 | sources 43 | 44 | 45 | sources 46 | 47 | 48 | imgui 49 | 50 | 51 | 52 | 53 | 54 | sources 55 | 56 | 57 | -------------------------------------------------------------------------------- /imgui/examples/example_win32_directx12/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | mkdir Debug 3 | cl /nologo /Zi /MD /I .. /I ..\.. /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /D UNICODE /D _UNICODE *.cpp ..\imgui_impl_dx12.cpp ..\imgui_impl_win32.cpp ..\..\imgui*.cpp /FeDebug/example_win32_directx12.exe /FoDebug/ /link d3d12.lib d3dcompiler.lib dxgi.lib 4 | 5 | -------------------------------------------------------------------------------- /imgui/examples/example_win32_directx12/example_win32_directx12.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {fb3d294f-51ec-478e-a627-25831c80fefd} 6 | 7 | 8 | {4f33ddea-9910-456d-b868-4267eb3c2b19} 9 | 10 | 11 | 12 | 13 | imgui 14 | 15 | 16 | imgui 17 | 18 | 19 | imgui 20 | 21 | 22 | sources 23 | 24 | 25 | sources 26 | 27 | 28 | 29 | 30 | imgui 31 | 32 | 33 | sources 34 | 35 | 36 | imgui 37 | 38 | 39 | imgui 40 | 41 | 42 | sources 43 | 44 | 45 | sources 46 | 47 | 48 | imgui 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /imgui/examples/example_win32_directx9/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | mkdir Debug 3 | cl /nologo /Zi /MD /I .. /I ..\.. /I "%DXSDK_DIR%/Include" /D UNICODE /D _UNICODE *.cpp ..\imgui_impl_dx9.cpp ..\imgui_impl_win32.cpp ..\..\imgui*.cpp /FeDebug/example_win32_directx9.exe /FoDebug/ /link /LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d9.lib 4 | -------------------------------------------------------------------------------- /imgui/examples/example_win32_directx9/example_win32_directx9.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {a82cba23-9de0-45c2-b1e3-2eb1666702de} 10 | 11 | 12 | 13 | 14 | sources 15 | 16 | 17 | imgui 18 | 19 | 20 | imgui 21 | 22 | 23 | imgui 24 | 25 | 26 | sources 27 | 28 | 29 | sources 30 | 31 | 32 | imgui 33 | 34 | 35 | 36 | 37 | imgui 38 | 39 | 40 | imgui 41 | 42 | 43 | imgui 44 | 45 | 46 | sources 47 | 48 | 49 | sources 50 | 51 | 52 | 53 | 54 | 55 | sources 56 | 57 | 58 | -------------------------------------------------------------------------------- /imgui/examples/imgui_impl_allegro5.h: -------------------------------------------------------------------------------- 1 | // dear imgui: Renderer + Platform Binding for Allegro 5 2 | // (Info: Allegro 5 is a cross-platform general purpose library for handling windows, inputs, graphics, etc.) 3 | 4 | // Implemented features: 5 | // [X] Renderer: User texture binding. Use 'ALLEGRO_BITMAP*' as ImTextureID. Read the FAQ about ImTextureID in imgui.cpp. 6 | // [X] Platform: Clipboard support (from Allegro 5.1.12) 7 | // [X] Platform: Mouse cursor shape and visibility. Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'. 8 | // Issues: 9 | // [ ] Renderer: The renderer is suboptimal as we need to unindex our buffers and convert vertices manually. 10 | // [ ] Platform: Missing gamepad support. 11 | 12 | // You can copy and use unmodified imgui_impl_* files in your project. See main.cpp for an example of using this. 13 | // If you are new to dear imgui, read examples/README.txt and read the documentation at the top of imgui.cpp. 14 | // https://github.com/ocornut/imgui, Original Allegro 5 code by @birthggd 15 | 16 | #pragma once 17 | 18 | struct ALLEGRO_DISPLAY; 19 | union ALLEGRO_EVENT; 20 | 21 | IMGUI_IMPL_API bool ImGui_ImplAllegro5_Init(ALLEGRO_DISPLAY* display); 22 | IMGUI_IMPL_API void ImGui_ImplAllegro5_Shutdown(); 23 | IMGUI_IMPL_API void ImGui_ImplAllegro5_NewFrame(); 24 | IMGUI_IMPL_API void ImGui_ImplAllegro5_RenderDrawData(ImDrawData* draw_data); 25 | IMGUI_IMPL_API bool ImGui_ImplAllegro5_ProcessEvent(ALLEGRO_EVENT* event); 26 | 27 | // Use if you want to reset your rendering device without losing ImGui state. 28 | IMGUI_IMPL_API bool ImGui_ImplAllegro5_CreateDeviceObjects(); 29 | IMGUI_IMPL_API void ImGui_ImplAllegro5_InvalidateDeviceObjects(); 30 | -------------------------------------------------------------------------------- /imgui/examples/imgui_impl_dx10.h: -------------------------------------------------------------------------------- 1 | // dear imgui: Renderer for DirectX10 2 | // This needs to be used along with a Platform Binding (e.g. Win32) 3 | 4 | // Implemented features: 5 | // [X] Renderer: User texture binding. Use 'ID3D10ShaderResourceView*' as ImTextureID. Read the FAQ about ImTextureID in imgui.cpp. 6 | 7 | // You can copy and use unmodified imgui_impl_* files in your project. See main.cpp for an example of using this. 8 | // If you are new to dear imgui, read examples/README.txt and read the documentation at the top of imgui.cpp. 9 | // https://github.com/ocornut/imgui 10 | 11 | #pragma once 12 | 13 | struct ID3D10Device; 14 | 15 | IMGUI_IMPL_API bool ImGui_ImplDX10_Init(ID3D10Device* device); 16 | IMGUI_IMPL_API void ImGui_ImplDX10_Shutdown(); 17 | IMGUI_IMPL_API void ImGui_ImplDX10_NewFrame(); 18 | IMGUI_IMPL_API void ImGui_ImplDX10_RenderDrawData(ImDrawData* draw_data); 19 | 20 | // Use if you want to reset your rendering device without losing ImGui state. 21 | IMGUI_IMPL_API void ImGui_ImplDX10_InvalidateDeviceObjects(); 22 | IMGUI_IMPL_API bool ImGui_ImplDX10_CreateDeviceObjects(); 23 | -------------------------------------------------------------------------------- /imgui/examples/imgui_impl_dx11.h: -------------------------------------------------------------------------------- 1 | // dear imgui: Renderer for DirectX11 2 | // This needs to be used along with a Platform Binding (e.g. Win32) 3 | 4 | // Implemented features: 5 | // [X] Renderer: User texture binding. Use 'ID3D11ShaderResourceView*' as ImTextureID. Read the FAQ about ImTextureID in imgui.cpp. 6 | 7 | // You can copy and use unmodified imgui_impl_* files in your project. See main.cpp for an example of using this. 8 | // If you are new to dear imgui, read examples/README.txt and read the documentation at the top of imgui.cpp. 9 | // https://github.com/ocornut/imgui 10 | 11 | #pragma once 12 | 13 | struct ID3D11Device; 14 | struct ID3D11DeviceContext; 15 | 16 | IMGUI_IMPL_API bool ImGui_ImplDX11_Init(ID3D11Device* device, ID3D11DeviceContext* device_context); 17 | IMGUI_IMPL_API void ImGui_ImplDX11_Shutdown(); 18 | IMGUI_IMPL_API void ImGui_ImplDX11_NewFrame(); 19 | IMGUI_IMPL_API void ImGui_ImplDX11_RenderDrawData(ImDrawData* draw_data); 20 | 21 | // Use if you want to reset your rendering device without losing ImGui state. 22 | IMGUI_IMPL_API void ImGui_ImplDX11_InvalidateDeviceObjects(); 23 | IMGUI_IMPL_API bool ImGui_ImplDX11_CreateDeviceObjects(); 24 | -------------------------------------------------------------------------------- /imgui/examples/imgui_impl_dx12.h: -------------------------------------------------------------------------------- 1 | // dear imgui: Renderer for DirectX12 2 | // This needs to be used along with a Platform Binding (e.g. Win32) 3 | 4 | // Implemented features: 5 | // [X] Renderer: User texture binding. Use 'D3D12_GPU_DESCRIPTOR_HANDLE' as ImTextureID. Read the FAQ about ImTextureID in imgui.cpp. 6 | // Issues: 7 | // [ ] 64-bit only for now! (Because sizeof(ImTextureId) == sizeof(void*)). See github.com/ocornut/imgui/pull/301 8 | 9 | // You can copy and use unmodified imgui_impl_* files in your project. See main.cpp for an example of using this. 10 | // If you are new to dear imgui, read examples/README.txt and read the documentation at the top of imgui.cpp. 11 | // https://github.com/ocornut/imgui 12 | 13 | #pragma once 14 | 15 | enum DXGI_FORMAT; 16 | struct ID3D12Device; 17 | struct ID3D12GraphicsCommandList; 18 | struct D3D12_CPU_DESCRIPTOR_HANDLE; 19 | struct D3D12_GPU_DESCRIPTOR_HANDLE; 20 | 21 | // cmd_list is the command list that the implementation will use to render imgui draw lists. 22 | // Before calling the render function, caller must prepare cmd_list by resetting it and setting the appropriate 23 | // render target and descriptor heap that contains font_srv_cpu_desc_handle/font_srv_gpu_desc_handle. 24 | // font_srv_cpu_desc_handle and font_srv_gpu_desc_handle are handles to a single SRV descriptor to use for the internal font texture. 25 | IMGUI_IMPL_API bool ImGui_ImplDX12_Init(ID3D12Device* device, int num_frames_in_flight, DXGI_FORMAT rtv_format, 26 | D3D12_CPU_DESCRIPTOR_HANDLE font_srv_cpu_desc_handle, D3D12_GPU_DESCRIPTOR_HANDLE font_srv_gpu_desc_handle); 27 | IMGUI_IMPL_API void ImGui_ImplDX12_Shutdown(); 28 | IMGUI_IMPL_API void ImGui_ImplDX12_NewFrame(); 29 | IMGUI_IMPL_API void ImGui_ImplDX12_RenderDrawData(ImDrawData* draw_data, ID3D12GraphicsCommandList* graphics_command_list); 30 | 31 | // Use if you want to reset your rendering device without losing ImGui state. 32 | IMGUI_IMPL_API void ImGui_ImplDX12_InvalidateDeviceObjects(); 33 | IMGUI_IMPL_API bool ImGui_ImplDX12_CreateDeviceObjects(); 34 | -------------------------------------------------------------------------------- /imgui/examples/imgui_impl_dx9.h: -------------------------------------------------------------------------------- 1 | // dear imgui: Renderer for DirectX9 2 | // This needs to be used along with a Platform Binding (e.g. Win32) 3 | 4 | // Implemented features: 5 | // [X] Renderer: User texture binding. Use 'LPDIRECT3DTEXTURE9' as ImTextureID. Read the FAQ about ImTextureID in imgui.cpp. 6 | 7 | // You can copy and use unmodified imgui_impl_* files in your project. See main.cpp for an example of using this. 8 | // If you are new to dear imgui, read examples/README.txt and read the documentation at the top of imgui.cpp. 9 | // https://github.com/ocornut/imgui 10 | 11 | #pragma once 12 | 13 | struct IDirect3DDevice9; 14 | 15 | IMGUI_IMPL_API bool ImGui_ImplDX9_Init(IDirect3DDevice9* device); 16 | IMGUI_IMPL_API void ImGui_ImplDX9_Shutdown(); 17 | IMGUI_IMPL_API void ImGui_ImplDX9_NewFrame(); 18 | IMGUI_IMPL_API void ImGui_ImplDX9_RenderDrawData(ImDrawData* draw_data); 19 | 20 | // Use if you want to reset your rendering device without losing ImGui state. 21 | IMGUI_IMPL_API void ImGui_ImplDX9_InvalidateDeviceObjects(); 22 | IMGUI_IMPL_API bool ImGui_ImplDX9_CreateDeviceObjects(); 23 | -------------------------------------------------------------------------------- /imgui/examples/imgui_impl_freeglut.h: -------------------------------------------------------------------------------- 1 | // dear imgui: Platform Binding for FreeGLUT 2 | // This needs to be used along with a Renderer (e.g. OpenGL2) 3 | 4 | // Issues: 5 | // [ ] Platform: GLUT is unable to distinguish e.g. Backspace from CTRL+H or TAB from CTRL+I 6 | // [ ] Platform: Missing gamepad support. 7 | 8 | // You can copy and use unmodified imgui_impl_* files in your project. See main.cpp for an example of using this. 9 | // If you are new to dear imgui, read examples/README.txt and read the documentation at the top of imgui.cpp. 10 | // https://github.com/ocornut/imgui 11 | 12 | #pragma once 13 | 14 | IMGUI_IMPL_API bool ImGui_ImplFreeGLUT_Init(); 15 | IMGUI_IMPL_API void ImGui_ImplFreeGLUT_InstallFuncs(); 16 | IMGUI_IMPL_API void ImGui_ImplFreeGLUT_Shutdown(); 17 | IMGUI_IMPL_API void ImGui_ImplFreeGLUT_NewFrame(); 18 | 19 | // You can call ImGui_ImplFreeGLUT_InstallFuncs() to get all those functions installed automatically, 20 | // or call them yourself from your own GLUT handlers. We are using the same weird names as GLUT for consistency.. 21 | //---------------------------------------- GLUT name --------------------------------------------- Decent Name --------- 22 | IMGUI_IMPL_API void ImGui_ImplFreeGLUT_ReshapeFunc(int w, int h); // ~ ResizeFunc 23 | IMGUI_IMPL_API void ImGui_ImplFreeGLUT_MotionFunc(int x, int y); // ~ MouseMoveFunc 24 | IMGUI_IMPL_API void ImGui_ImplFreeGLUT_MouseFunc(int button, int state, int x, int y); // ~ MouseButtonFunc 25 | IMGUI_IMPL_API void ImGui_ImplFreeGLUT_MouseWheelFunc(int button, int dir, int x, int y); // ~ MouseWheelFunc 26 | IMGUI_IMPL_API void ImGui_ImplFreeGLUT_KeyboardFunc(unsigned char c, int x, int y); // ~ CharPressedFunc 27 | IMGUI_IMPL_API void ImGui_ImplFreeGLUT_KeyboardUpFunc(unsigned char c, int x, int y); // ~ CharReleasedFunc 28 | IMGUI_IMPL_API void ImGui_ImplFreeGLUT_SpecialFunc(int key, int x, int y); // ~ KeyPressedFunc 29 | IMGUI_IMPL_API void ImGui_ImplFreeGLUT_SpecialUpFunc(int key, int x, int y); // ~ KeyReleasedFunc 30 | -------------------------------------------------------------------------------- /imgui/examples/imgui_impl_marmalade.h: -------------------------------------------------------------------------------- 1 | // dear imgui: Renderer + Platform Binding for Marmalade + IwGx 2 | // Marmalade code: Copyright (C) 2015 by Giovanni Zito (this file is part of Dear ImGui) 3 | 4 | // Implemented features: 5 | // [X] Renderer: User texture binding. Use 'CIwTexture*' as ImTextureID. Read the FAQ about ImTextureID in imgui.cpp. 6 | 7 | // You can copy and use unmodified imgui_impl_* files in your project. See main.cpp for an example of using this. 8 | // If you are new to dear imgui, read examples/README.txt and read the documentation at the top of imgui.cpp. 9 | // https://github.com/ocornut/imgui 10 | 11 | #pragma once 12 | 13 | IMGUI_IMPL_API bool ImGui_Marmalade_Init(bool install_callbacks); 14 | IMGUI_IMPL_API void ImGui_Marmalade_Shutdown(); 15 | IMGUI_IMPL_API void ImGui_Marmalade_NewFrame(); 16 | IMGUI_IMPL_API void ImGui_Marmalade_RenderDrawData(ImDrawData* draw_data); 17 | 18 | // Use if you want to reset your rendering device without losing ImGui state. 19 | IMGUI_IMPL_API void ImGui_Marmalade_InvalidateDeviceObjects(); 20 | IMGUI_IMPL_API bool ImGui_Marmalade_CreateDeviceObjects(); 21 | 22 | // Callbacks (installed by default if you enable 'install_callbacks' during initialization) 23 | // You can also handle inputs yourself and use those as a reference. 24 | IMGUI_IMPL_API int32 ImGui_Marmalade_PointerButtonEventCallback(void* system_data, void* user_data); 25 | IMGUI_IMPL_API int32 ImGui_Marmalade_KeyCallback(void* system_data, void* user_data); 26 | IMGUI_IMPL_API int32 ImGui_Marmalade_CharCallback(void* system_data, void* user_data); 27 | -------------------------------------------------------------------------------- /imgui/examples/imgui_impl_metal.h: -------------------------------------------------------------------------------- 1 | // dear imgui: Renderer for Metal 2 | // This needs to be used along with a Platform Binding (e.g. OSX) 3 | 4 | // Implemented features: 5 | // [X] Renderer: User texture binding. Use 'MTLTexture' as ImTextureID. Read the FAQ about ImTextureID in imgui.cpp. 6 | 7 | // You can copy and use unmodified imgui_impl_* files in your project. See main.cpp for an example of using this. 8 | // If you are new to dear imgui, read examples/README.txt and read the documentation at the top of imgui.cpp. 9 | // https://github.com/ocornut/imgui 10 | 11 | @class MTLRenderPassDescriptor; 12 | @protocol MTLDevice, MTLCommandBuffer, MTLRenderCommandEncoder; 13 | 14 | IMGUI_IMPL_API bool ImGui_ImplMetal_Init(id device); 15 | IMGUI_IMPL_API void ImGui_ImplMetal_Shutdown(); 16 | IMGUI_IMPL_API void ImGui_ImplMetal_NewFrame(MTLRenderPassDescriptor *renderPassDescriptor); 17 | IMGUI_IMPL_API void ImGui_ImplMetal_RenderDrawData(ImDrawData* draw_data, 18 | id commandBuffer, 19 | id commandEncoder); 20 | 21 | // Called by Init/NewFrame/Shutdown 22 | IMGUI_IMPL_API bool ImGui_ImplMetal_CreateFontsTexture(id device); 23 | IMGUI_IMPL_API void ImGui_ImplMetal_DestroyFontsTexture(); 24 | IMGUI_IMPL_API bool ImGui_ImplMetal_CreateDeviceObjects(id device); 25 | IMGUI_IMPL_API void ImGui_ImplMetal_DestroyDeviceObjects(); 26 | -------------------------------------------------------------------------------- /imgui/examples/imgui_impl_opengl2.h: -------------------------------------------------------------------------------- 1 | // dear imgui: Renderer for OpenGL2 (legacy OpenGL, fixed pipeline) 2 | // This needs to be used along with a Platform Binding (e.g. GLFW, SDL, Win32, custom..) 3 | 4 | // Implemented features: 5 | // [X] Renderer: User texture binding. Use 'GLuint' OpenGL texture identifier as void*/ImTextureID. Read the FAQ about ImTextureID in imgui.cpp. 6 | 7 | // You can copy and use unmodified imgui_impl_* files in your project. See main.cpp for an example of using this. 8 | // If you are new to dear imgui, read examples/README.txt and read the documentation at the top of imgui.cpp. 9 | // https://github.com/ocornut/imgui 10 | 11 | // **DO NOT USE THIS CODE IF YOUR CODE/ENGINE IS USING MODERN OPENGL (SHADERS, VBO, VAO, etc.)** 12 | // **Prefer using the code in imgui_impl_opengl3.cpp** 13 | // This code is mostly provided as a reference to learn how ImGui integration works, because it is shorter to read. 14 | // If your code is using GL3+ context or any semi modern OpenGL calls, using this is likely to make everything more 15 | // complicated, will require your code to reset every single OpenGL attributes to their initial state, and might 16 | // confuse your GPU driver. 17 | // The GL2 code is unable to reset attributes or even call e.g. "glUseProgram(0)" because they don't exist in that API. 18 | 19 | #pragma once 20 | 21 | IMGUI_IMPL_API bool ImGui_ImplOpenGL2_Init(); 22 | IMGUI_IMPL_API void ImGui_ImplOpenGL2_Shutdown(); 23 | IMGUI_IMPL_API void ImGui_ImplOpenGL2_NewFrame(); 24 | IMGUI_IMPL_API void ImGui_ImplOpenGL2_RenderDrawData(ImDrawData* draw_data); 25 | 26 | // Called by Init/NewFrame/Shutdown 27 | IMGUI_IMPL_API bool ImGui_ImplOpenGL2_CreateFontsTexture(); 28 | IMGUI_IMPL_API void ImGui_ImplOpenGL2_DestroyFontsTexture(); 29 | IMGUI_IMPL_API bool ImGui_ImplOpenGL2_CreateDeviceObjects(); 30 | IMGUI_IMPL_API void ImGui_ImplOpenGL2_DestroyDeviceObjects(); 31 | -------------------------------------------------------------------------------- /imgui/examples/imgui_impl_osx.h: -------------------------------------------------------------------------------- 1 | // dear imgui: Platform Binding for OSX / Cocoa 2 | // This needs to be used along with a Renderer (e.g. OpenGL2, OpenGL3, Vulkan, Metal..) 3 | // [BETA] Beta bindings, not well tested. If you want a portable application, prefer using the Glfw or SDL platform bindings on Mac. 4 | 5 | // Issues: 6 | // [ ] Platform: Keys are all generally very broken. Best using [event keycode] and not [event characters].. 7 | // [ ] Platform: Mouse cursor shapes and visibility are not supported (see end of https://github.com/glfw/glfw/issues/427) 8 | 9 | @class NSEvent; 10 | @class NSView; 11 | 12 | IMGUI_API bool ImGui_ImplOSX_Init(); 13 | IMGUI_API void ImGui_ImplOSX_Shutdown(); 14 | IMGUI_API void ImGui_ImplOSX_NewFrame(NSView *_Nonnull view); 15 | IMGUI_API bool ImGui_ImplOSX_HandleEvent(NSEvent *_Nonnull event, NSView *_Nullable view); 16 | -------------------------------------------------------------------------------- /imgui/examples/imgui_impl_sdl.h: -------------------------------------------------------------------------------- 1 | // dear imgui: Platform Binding for SDL2 2 | // This needs to be used along with a Renderer (e.g. DirectX11, OpenGL3, Vulkan..) 3 | // (Info: SDL2 is a cross-platform general purpose library for handling windows, inputs, graphics context creation, etc.) 4 | 5 | // Implemented features: 6 | // [X] Platform: Mouse cursor shape and visibility. Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'. 7 | // [X] Platform: Clipboard support. 8 | // [X] Platform: Keyboard arrays indexed using SDL_SCANCODE_* codes, e.g. ImGui::IsKeyPressed(SDL_SCANCODE_SPACE). 9 | // Missing features: 10 | // [ ] Platform: SDL2 handling of IME under Windows appears to be broken and it explicitly disable the regular Windows IME. You can restore Windows IME by compiling SDL with SDL_DISABLE_WINDOWS_IME. 11 | // [ ] Platform: Gamepad support (need to use SDL_GameController API to fill the io.NavInputs[] value when ImGuiConfigFlags_NavEnableGamepad is set). 12 | 13 | // You can copy and use unmodified imgui_impl_* files in your project. See main.cpp for an example of using this. 14 | // If you are new to dear imgui, read examples/README.txt and read the documentation at the top of imgui.cpp. 15 | // https://github.com/ocornut/imgui 16 | 17 | #pragma once 18 | 19 | struct SDL_Window; 20 | typedef union SDL_Event SDL_Event; 21 | 22 | IMGUI_IMPL_API bool ImGui_ImplSDL2_InitForOpenGL(SDL_Window* window, void* sdl_gl_context); 23 | IMGUI_IMPL_API bool ImGui_ImplSDL2_InitForVulkan(SDL_Window* window); 24 | IMGUI_IMPL_API void ImGui_ImplSDL2_Shutdown(); 25 | IMGUI_IMPL_API void ImGui_ImplSDL2_NewFrame(SDL_Window* window); 26 | IMGUI_IMPL_API bool ImGui_ImplSDL2_ProcessEvent(const SDL_Event* event); 27 | -------------------------------------------------------------------------------- /imgui/examples/imgui_impl_win32.h: -------------------------------------------------------------------------------- 1 | // dear imgui: Platform Binding for Windows (standard windows API for 32 and 64 bits applications) 2 | // This needs to be used along with a Renderer (e.g. DirectX11, OpenGL3, Vulkan..) 3 | 4 | // Implemented features: 5 | // [X] Platform: Clipboard support (for Win32 this is actually part of core imgui) 6 | // [X] Platform: Mouse cursor shape and visibility. Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'. 7 | // [X] Platform: Keyboard arrays indexed using VK_* Virtual Key Codes, e.g. ImGui::IsKeyPressed(VK_SPACE). 8 | // [X] Platform: Gamepad support. Enabled with 'io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad'. 9 | 10 | #pragma once 11 | 12 | IMGUI_IMPL_API bool ImGui_ImplWin32_Init(void* hwnd); 13 | IMGUI_IMPL_API void ImGui_ImplWin32_Shutdown(); 14 | IMGUI_IMPL_API void ImGui_ImplWin32_NewFrame(); 15 | 16 | // Handler for Win32 messages, update mouse/keyboard data. 17 | // You may or not need this for your implementation, but it can serve as reference for handling inputs. 18 | // Intentionally commented out to avoid dragging dependencies on types. You can COPY this line into your .cpp code instead. 19 | /* 20 | IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); 21 | */ 22 | -------------------------------------------------------------------------------- /imgui/examples/libs/glfw/COPYING.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2002-2006 Marcus Geelnard 2 | Copyright (c) 2006-2010 Camilla Berglund 3 | 4 | This software is provided 'as-is', without any express or implied 5 | warranty. In no event will the authors be held liable for any damages 6 | arising from the use of this software. 7 | 8 | Permission is granted to anyone to use this software for any purpose, 9 | including commercial applications, and to alter it and redistribute it 10 | freely, subject to the following restrictions: 11 | 12 | 1. The origin of this software must not be misrepresented; you must not 13 | claim that you wrote the original software. If you use this software 14 | in a product, an acknowledgment in the product documentation would 15 | be appreciated but is not required. 16 | 17 | 2. Altered source versions must be plainly marked as such, and must not 18 | be misrepresented as being the original software. 19 | 20 | 3. This notice may not be removed or altered from any source 21 | distribution. 22 | 23 | -------------------------------------------------------------------------------- /imgui/examples/libs/glfw/lib-vc2010-32/glfw3.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/imgui/examples/libs/glfw/lib-vc2010-32/glfw3.lib -------------------------------------------------------------------------------- /imgui/examples/libs/glfw/lib-vc2010-64/glfw3.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/imgui/examples/libs/glfw/lib-vc2010-64/glfw3.lib -------------------------------------------------------------------------------- /imgui/examples/libs/usynergy/README.txt: -------------------------------------------------------------------------------- 1 | 2 | uSynergy client -- Implementation for the embedded Synergy client library 3 | version 1.0.0, July 7th, 2012 4 | Copyright (c) 2012 Alex Evans 5 | 6 | This is a copy of the files once found at: 7 | https://github.com/symless/synergy-core/tree/790d108a56ada9caad8e56ff777d444485a69da9/src/micro 8 | 9 | -------------------------------------------------------------------------------- /imgui/misc/README.txt: -------------------------------------------------------------------------------- 1 | 2 | misc/cpp/ 3 | InputText() wrappers for C++ standard library (STL) type: std::string. 4 | This is also an example of how you may wrap your own similar types. 5 | 6 | misc/fonts/ 7 | Fonts loading/merging instructions (e.g. How to handle glyph ranges, how to merge icons fonts). 8 | Command line tool "binary_to_compressed_c" to create compressed arrays to embed data in source code. 9 | Suggested fonts and links. 10 | 11 | misc/freetype/ 12 | Font atlas builder/rasterizer using FreeType instead of stb_truetype. 13 | Benefit from better FreeType rasterization, in particular for small fonts. 14 | 15 | misc/natvis/ 16 | Natvis file to describe dear imgui types in the Visual Studio debugger. 17 | With this, types like ImVector<> will be displayed nicely in the debugger. 18 | You can include this file a Visual Studio project file, or install it in Visual Studio folder. 19 | -------------------------------------------------------------------------------- /imgui/misc/cpp/README.txt: -------------------------------------------------------------------------------- 1 | 2 | imgui_stdlib.h + imgui_stdlib.cpp 3 | InputText() wrappers for C++ standard library (STL) type: std::string. 4 | This is also an example of how you may wrap your own similar types. 5 | 6 | imgui_scoped.h 7 | [Experimental, not currently in main repository] 8 | Additional header file with some RAII-style wrappers for common ImGui functions. 9 | Try by merging: https://github.com/ocornut/imgui/pull/2197 10 | Discuss at: https://github.com/ocornut/imgui/issues/2096 11 | -------------------------------------------------------------------------------- /imgui/misc/cpp/imgui_stdlib.h: -------------------------------------------------------------------------------- 1 | // imgui_stdlib.h 2 | // Wrappers for C++ standard library (STL) types (std::string, etc.) 3 | // This is also an example of how you may wrap your own similar types. 4 | 5 | // Compatibility: 6 | // - std::string support is only guaranteed to work from C++11. 7 | // If you try to use it pre-C++11, please share your findings (w/ info about compiler/architecture) 8 | 9 | // Changelog: 10 | // - v0.10: Initial version. Added InputText() / InputTextMultiline() calls with std::string 11 | 12 | #pragma once 13 | 14 | #include 15 | 16 | namespace ImGui 17 | { 18 | // ImGui::InputText() with std::string 19 | // Because text input needs dynamic resizing, we need to setup a callback to grow the capacity 20 | IMGUI_API bool InputText(const char* label, std::string* str, ImGuiInputTextFlags flags = 0, ImGuiInputTextCallback callback = NULL, void* user_data = NULL); 21 | IMGUI_API bool InputTextMultiline(const char* label, std::string* str, const ImVec2& size = ImVec2(0, 0), ImGuiInputTextFlags flags = 0, ImGuiInputTextCallback callback = NULL, void* user_data = NULL); 22 | IMGUI_API bool InputTextWithHint(const char* label, const char* hint, std::string* str, ImGuiInputTextFlags flags = 0, ImGuiInputTextCallback callback = NULL, void* user_data = NULL); 23 | } 24 | -------------------------------------------------------------------------------- /imgui/misc/fonts/Cousine-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/imgui/misc/fonts/Cousine-Regular.ttf -------------------------------------------------------------------------------- /imgui/misc/fonts/DroidSans.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/imgui/misc/fonts/DroidSans.ttf -------------------------------------------------------------------------------- /imgui/misc/fonts/Karla-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/imgui/misc/fonts/Karla-Regular.ttf -------------------------------------------------------------------------------- /imgui/misc/fonts/ProggyClean.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/imgui/misc/fonts/ProggyClean.ttf -------------------------------------------------------------------------------- /imgui/misc/fonts/ProggyTiny.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/imgui/misc/fonts/ProggyTiny.ttf -------------------------------------------------------------------------------- /imgui/misc/fonts/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/imgui/misc/fonts/Roboto-Medium.ttf -------------------------------------------------------------------------------- /imgui/misc/natvis/README.txt: -------------------------------------------------------------------------------- 1 | 2 | Natvis file to describe dear imgui types in the Visual Studio debugger. 3 | With this, types like ImVector<> will be displayed nicely in the debugger. 4 | You can include this file a Visual Studio project file, or install it in Visual Studio folder. 5 | -------------------------------------------------------------------------------- /imgui/misc/natvis/imgui.natvis: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | {{Size={Size} Capacity={Capacity}}} 9 | 10 | 11 | Size 12 | Data 13 | 14 | 15 | 16 | 17 | 18 | {{x={x,g} y={y,g}}} 19 | 20 | 21 | 22 | {{x={x,g} y={y,g} z={z,g} w={w,g}}} 23 | 24 | 25 | 26 | {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}} 27 | 28 | Min 29 | Max 30 | Max.x - Min.x 31 | Max.y - Min.y 32 | 33 | 34 | 35 | 36 | {{Name {Name,s} Active {(Active||WasActive)?1:0,d} Child {(Flags & 0x01000000)?1:0,d} Popup {(Flags & 0x04000000)?1:0,d} Hidden {(Hidden)?1:0,d}} 37 | 38 | 39 | -------------------------------------------------------------------------------- /input.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include "platform.h" 3 | 4 | // 1. aggregate ALL input kinds: 5 | // - A3D window (term.cpp): keyboard, character, mouse, gamepad 6 | // - terminal esc codes (xterm.cpp): character, mouse, +kitty's keyboard codes 7 | // - web callbacks (web.cpp): character, keyboard, mouse, touch, gamepad 8 | 9 | // 2. dispatch input to screen stacking 10 | 11 | -------------------------------------------------------------------------------- /io_mesh_akm/softlink.cmd: -------------------------------------------------------------------------------- 1 | c: 2 | cd "C:\Program Files\Blender Foundation\Blender 2.82\2.82\scripts\addons" 3 | mklink /D io_mesh_akm "D:\ascii-work\asciiid\io_mesh_akm" 4 | -------------------------------------------------------------------------------- /io_mesh_akm/softlink.sh: -------------------------------------------------------------------------------- 1 | 2 | cd /home/user/blender-2.82a-linux64/2.82/scripts/addons 3 | ln -s /home/user/asciiid/io_mesh_akm io_mesh_akm 4 | -------------------------------------------------------------------------------- /mainmenu.h: -------------------------------------------------------------------------------- 1 | #ifndef MAINMENU_H 2 | #define MAINMENU_H 3 | 4 | #include "game.h" 5 | 6 | #if !defined EDITOR && !defined SERVER 7 | 8 | int LoadMainMenuSprites(const char* base_path); 9 | void FreeMainMenuSprites(); 10 | 11 | void MainMenu_Show(); 12 | 13 | void MainMenu_Render(uint64_t _stamp, AnsiCell* ptr, int width, int height); 14 | void MainMenu_OnSize(int w, int h, int fw, int fh); 15 | void MainMenu_OnKeyb(GAME_KEYB keyb, int key); 16 | void MainMenu_OnMouse(GAME_MOUSE mouse, int x, int y); 17 | void MainMenu_OnTouch(GAME_TOUCH touch, int id, int x, int y); 18 | void MainMenu_OnFocus(bool set); 19 | void MainMenu_OnPadMount(bool connect); 20 | void MainMenu_OnPadButton(int b, bool down); 21 | void MainMenu_OnPadAxis(int a, int16_t pos); 22 | #else 23 | inline void MainMenu_Show() {} 24 | inline int LoadMainMenuSprites(const char* base_path) { return 0; } 25 | inline void FreeMainMenuSprites() {} 26 | inline void MainMenu_Render(uint64_t _stamp, AnsiCell* ptr, int width, int height){} 27 | inline void MainMenu_OnSize(int w, int h, int fw, int fh){} 28 | inline void MainMenu_OnKeyb(GAME_KEYB keyb, int key){} 29 | inline void MainMenu_OnMouse(GAME_MOUSE mouse, int x, int y){} 30 | inline void MainMenu_OnTouch(GAME_TOUCH touch, int id, int x, int y){} 31 | inline void MainMenu_OnFocus(bool set){} 32 | inline void MainMenu_OnPadMount(bool connect){} 33 | inline void MainMenu_OnPadButton(int b, bool down){} 34 | inline void MainMenu_OnPadAxis(int a, int16_t pos){} 35 | #endif 36 | 37 | #endif -------------------------------------------------------------------------------- /meshes/brick-1.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/meshes/brick-1.blend -------------------------------------------------------------------------------- /meshes/bridge-1.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/meshes/bridge-1.blend -------------------------------------------------------------------------------- /meshes/bridge-2.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/meshes/bridge-2.blend -------------------------------------------------------------------------------- /meshes/bush-1.akm: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | comment Created by Blender 2.82 (sub 7) - www.blender.org, source file: 'bush-1.blend' 4 | element vertex 29 5 | property float x 6 | property float y 7 | property float z 8 | property uchar red 9 | property uchar green 10 | property uchar blue 11 | property uchar alpha 12 | element face 54 13 | property list uchar uint vertex_indices 14 | end_header 15 | -1.550 -1.263 0.632 75 62 35 255 16 | -1.047 -1.661 1.745 16 121 1 255 17 | -1.809 -1.015 2.098 16 121 1 255 18 | -0.565 -1.616 0.542 69 15 1 255 19 | 0.374 -1.598 1.762 62 99 14 255 20 | -0.383 -1.692 2.027 48 106 34 255 21 | -1.393 1.779 0.827 51 114 23 255 22 | -1.970 1.231 0.822 69 120 65 255 23 | -1.963 1.266 1.864 77 117 22 255 24 | -0.868 1.913 0.596 36 109 15 255 25 | -0.888 1.945 2.053 60 111 16 254 26 | -1.229 1.388 2.674 81 118 13 255 27 | 1.408 -0.575 1.238 17 121 6 255 28 | 1.554 0.106 1.321 20 121 3 255 29 | 1.275 -0.381 2.224 94 121 0 255 30 | 1.317 0.348 0.449 61 77 26 255 31 | 0.784 1.080 0.105 62 91 13 255 32 | 1.406 0.885 1.580 84 120 4 255 33 | 0.435 -0.720 -0.172 69 34 1 255 34 | 0.205 -0.031 -0.488 69 17 2 255 35 | -1.777 0.325 -0.037 69 16 1 255 36 | -1.010 -0.689 -0.300 69 15 0 255 37 | -1.221 -0.736 2.921 94 121 0 254 38 | -1.630 0.311 2.907 89 119 15 255 39 | 1.228 0.680 2.326 92 121 0 255 40 | 0.754 0.151 2.955 16 121 0 255 41 | 0.841 1.173 2.501 15 118 0 255 42 | -0.769 1.174 -0.279 67 19 11 255 43 | -0.248 0.001 3.323 94 121 0 255 44 | 3 0 1 2 45 | 3 3 4 5 46 | 3 1 3 5 47 | 3 6 7 8 48 | 3 9 6 10 49 | 3 6 8 10 50 | 3 10 8 11 51 | 3 12 13 14 52 | 3 15 16 17 53 | 3 12 4 18 54 | 3 15 19 16 55 | 3 0 20 21 56 | 3 4 3 18 57 | 3 22 23 2 58 | 3 13 24 14 59 | 3 13 12 15 60 | 3 13 15 17 61 | 3 12 18 15 62 | 3 24 25 14 63 | 3 17 26 24 64 | 3 25 24 26 65 | 3 4 14 25 66 | 3 21 18 3 67 | 3 4 12 14 68 | 3 15 18 19 69 | 3 9 16 27 70 | 3 19 27 16 71 | 3 3 0 21 72 | 3 27 20 7 73 | 3 21 27 19 74 | 3 11 26 10 75 | 3 7 2 8 76 | 3 9 26 16 77 | 3 0 2 20 78 | 3 23 28 11 79 | 3 4 28 5 80 | 3 25 26 28 81 | 3 8 23 11 82 | 3 8 2 23 83 | 3 1 22 2 84 | 3 22 5 28 85 | 3 1 0 3 86 | 3 13 17 24 87 | 3 17 16 26 88 | 3 21 19 18 89 | 3 7 6 27 90 | 3 6 9 27 91 | 3 21 20 27 92 | 3 11 28 26 93 | 3 7 20 2 94 | 3 9 10 26 95 | 3 23 22 28 96 | 3 4 25 28 97 | 3 22 1 5 98 | -------------------------------------------------------------------------------- /meshes/bush-1.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/meshes/bush-1.blend -------------------------------------------------------------------------------- /meshes/fence.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/meshes/fence.blend -------------------------------------------------------------------------------- /meshes/house-3.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/meshes/house-3.blend -------------------------------------------------------------------------------- /meshes/laundry-1.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/meshes/laundry-1.blend -------------------------------------------------------------------------------- /meshes/old-tree-1.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/meshes/old-tree-1.blend -------------------------------------------------------------------------------- /meshes/old-tree-2.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/meshes/old-tree-2.blend -------------------------------------------------------------------------------- /meshes/rock-1.akm: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | comment Created by Blender 2.82 (sub 7) - www.blender.org, source file: 'rock-1.blend' 4 | element vertex 17 5 | property float x 6 | property float y 7 | property float z 8 | property uchar red 9 | property uchar green 10 | property uchar blue 11 | property uchar alpha 12 | element face 30 13 | property list uchar uint vertex_indices 14 | end_header 15 | -1.292 2.610 4.373 148 148 148 0 16 | -2.614 2.638 2.307 90 90 90 0 17 | -2.600 1.557 4.373 146 146 146 0 18 | -0.223 -2.599 -0.961 102 102 102 0 19 | -0.954 -3.080 0.852 80 80 80 0 20 | -2.475 0.013 -0.953 83 83 83 0 21 | 2.974 0.572 4.274 139 139 139 0 22 | 2.838 2.487 1.986 105 105 105 0 23 | 1.536 2.563 4.259 153 153 153 0 24 | -1.978 2.483 -0.794 66 66 66 0 25 | 2.257 1.830 -0.763 44 44 44 0 26 | -2.739 -1.527 1.117 88 88 88 0 27 | 0.399 -2.902 3.156 57 57 57 0 28 | 0.035 -2.224 4.124 111 111 111 0 29 | -2.289 -0.736 4.104 93 93 93 0 30 | 2.860 -2.436 1.978 92 92 92 0 31 | 2.646 -2.258 -0.282 71 71 71 0 32 | 3 0 1 2 33 | 3 3 4 5 34 | 3 6 7 8 35 | 3 5 9 10 36 | 3 9 1 7 37 | 3 1 9 5 38 | 3 11 12 13 39 | 3 0 2 14 40 | 3 15 10 7 41 | 3 4 3 16 42 | 3 15 13 12 43 | 3 5 4 11 44 | 3 16 3 10 45 | 3 3 5 10 46 | 3 0 8 1 47 | 3 8 7 1 48 | 3 7 10 9 49 | 3 5 11 1 50 | 3 11 14 1 51 | 3 14 2 1 52 | 3 13 14 11 53 | 3 11 4 12 54 | 3 6 8 13 55 | 3 8 0 13 56 | 3 13 0 14 57 | 3 7 6 15 58 | 3 15 16 10 59 | 3 16 15 4 60 | 3 15 12 4 61 | 3 15 6 13 62 | -------------------------------------------------------------------------------- /meshes/rock-1.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/meshes/rock-1.blend -------------------------------------------------------------------------------- /meshes/ship-1.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/meshes/ship-1.blend -------------------------------------------------------------------------------- /meshes/skull.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/meshes/skull.blend -------------------------------------------------------------------------------- /meshes/tree-1.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/meshes/tree-1.blend -------------------------------------------------------------------------------- /meshes/tree-2.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/meshes/tree-2.blend -------------------------------------------------------------------------------- /meshes/tree-3.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/meshes/tree-3.blend -------------------------------------------------------------------------------- /meshes/tree-cut-1.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/meshes/tree-cut-1.blend -------------------------------------------------------------------------------- /multiplayer.txt: -------------------------------------------------------------------------------- 1 | > RUN SERVER: 2 | server.exe 3 | 4 | > RUN CLIENTS connected to local server: 5 | game.exe -url your_nick@localhost:8080/ws/y7/ 6 | 7 | > RUN CLIENTS connected to asciicker.com server: 8 | game.exe -url your_nick@asciicker.com:80/ws/y7/ 9 | 10 | > Note that when staring game, there is also minimized console window with chat log 11 | > Hef vun! 12 | -------------------------------------------------------------------------------- /palettes/332.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/palettes/332.png -------------------------------------------------------------------------------- /palettes/ansi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/palettes/ansi.png -------------------------------------------------------------------------------- /palettes/atari_pal_ntsc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/palettes/atari_pal_ntsc.png -------------------------------------------------------------------------------- /palettes/palette.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/palettes/palette.gz -------------------------------------------------------------------------------- /palettes/xterm256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/palettes/xterm256.png -------------------------------------------------------------------------------- /palettes/xterm666.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/palettes/xterm666.png -------------------------------------------------------------------------------- /physics.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "terrain.h" 5 | #include "world.h" 6 | 7 | struct SpriteReq; 8 | 9 | struct PhysicsIO 10 | { 11 | // INPUT: 12 | // must be thresholded 13 | float x_force; 14 | float y_force; 15 | float torque; 16 | float water; 17 | //bool slow; 18 | 19 | // IO: 20 | bool jump; // will be falsed by Animate() if jump was handled 21 | 22 | // user should accumulate them 23 | // physics will zero them only when handled 24 | float x_impulse; 25 | float y_impulse; 26 | 27 | // OUTPUT: 28 | float pos[3]; 29 | float yaw; 30 | float player_dir; 31 | int player_stp; 32 | int dt; 33 | 34 | bool grounded; 35 | 36 | // what was this for? 37 | //float xyz[64][3]; 38 | }; 39 | 40 | struct Physics; 41 | 42 | int Animate(Physics* phys, uint64_t stamp, PhysicsIO* io, const SpriteReq* req, bool me); // return num of time steps handled 43 | 44 | Physics* CreatePhysics(Terrain* t, World* w, float pos[3], float dir, float yaw, uint64_t stamp); 45 | void DeletePhysics(Physics* phys); 46 | 47 | void SetPhysicsPos(Physics* phys, float pos[3], float vel[3]); 48 | void SetPhysicsYaw(Physics* phys, float yaw, float vel); 49 | void SetPhysicsDir(Physics* phys, float dir); 50 | -------------------------------------------------------------------------------- /png2xp/build.sh: -------------------------------------------------------------------------------- 1 | 2 | g++ -O3 -pthread \ 3 | png2xp.cpp \ 4 | ../rgba8.cpp \ 5 | ../tinfl.c \ 6 | ../upng.c \ 7 | -o png2xp -------------------------------------------------------------------------------- /png2xp/png2xp.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | Source Files 23 | 24 | 25 | Source Files 26 | 27 | 28 | Source Files 29 | 30 | 31 | -------------------------------------------------------------------------------- /png2xp/png2xp.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 1 1.plt 5 | WindowsLocalDebugger 6 | 7 | 8 | 1 1.plt 9 | WindowsLocalDebugger 10 | 11 | 12 | 1 1.plt 13 | WindowsLocalDebugger 14 | 15 | 16 | 1 1.plt 17 | WindowsLocalDebugger 18 | 19 | -------------------------------------------------------------------------------- /render.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include // std::min/max 6 | 7 | #include "terrain.h" 8 | #include "world.h" 9 | 10 | struct AnsiCell 11 | { 12 | // R G B A 13 | uint8_t fg, bk, gl, spare; // for post pass 14 | }; 15 | 16 | struct MatCell 17 | { 18 | uint8_t fg[3]; // foreground color 19 | uint8_t gl; // glyph code 20 | uint8_t bg[3]; // background color 21 | uint8_t flags; 22 | 23 | // transparency mask : 24 | // 0x1 - fg 25 | // 0x2 - gl 26 | // 0x4 - bg 27 | 28 | // blend modes 3x3 bits: 29 | // 0x03 2-bits fg blend mode (0:replace, 1:multiply, 2:screen, 3:transparent) 30 | // 0x04 glyph write mask (0:replace, 1:keep) 31 | // 0x18 2-bits bg blend mode (0:replace, 1:multiply, 2:screen, 3:transparent) 32 | // 3 bits left! 33 | 34 | }; 35 | 36 | struct Material 37 | { 38 | MatCell shade[4][16]; 39 | int mode; // mode and flags 40 | }; 41 | 42 | struct Renderer; 43 | Renderer* CreateRenderer(uint64_t stamp); 44 | void DeleteRenderer(Renderer* r); 45 | 46 | // return null-terminated array of item pointers that are reachable by player 47 | /* 48 | Item** Render(Renderer* r, uint64_t stamp, Terrain* t, World* w, float water, // scene 49 | float zoom, float yaw, const float pos[3], const float lt[4], // view 50 | int width, int height, AnsiCell* ptr, // target 51 | Sprite* sprite, int anim, int frame, float dir, // player 52 | const int scene_shift[2]); // special fx 53 | */ 54 | 55 | void Render(Renderer* r, uint64_t stamp, Terrain* t, World* w, float water, // scene 56 | float zoom, float yaw, const float pos[3], const float lt[4], // view 57 | int width, int height, AnsiCell* ptr, // target 58 | Inst* player, // player 59 | const int scene_shift[2], 60 | bool perspective); 61 | 62 | bool ProjectCoords(Renderer* r, const float pos[3], int view[3]); // like a sprite! 63 | bool UnprojectCoords2D(Renderer* r, const int xy[2], float pos[3]); // reads height from buffer first! 64 | bool UnprojectCoords3D(Renderer* r, const int xy[3], float pos[3]); // reads height from buffer first! 65 | 66 | Item** GetNearbyItems(Renderer* r); 67 | Inst** GetNearbyCharacters(Renderer* r); 68 | 69 | extern int render_break_point[2]; -------------------------------------------------------------------------------- /rgba8.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "platform.h" 5 | 6 | void Convert_UI32_AABBGGRR(uint32_t* buf, A3D_ImageFormat f, int w, int h, const void* data, int palsize, const void* palbuf); 7 | void Convert_UI32_AARRGGBB(uint32_t* buf, A3D_ImageFormat f, int w, int h, const void* data, int palsize, const void* palbuf); 8 | void Convert_UL_AARRGGBB(unsigned long* buf, A3D_ImageFormat f, int w, int h, const void* data, int palsize, const void* palbuf); 9 | 10 | void ConvertLuminance_UI32_LLZZYYXX(uint32_t* buf, const uint8_t xyz[3], A3D_ImageFormat f, int w, int h, const void* data, int palsize, const void* palbuf); 11 | -------------------------------------------------------------------------------- /run_console.sh: -------------------------------------------------------------------------------- 1 | setfont fonts/cp437_10x10.png.psf 2 | .run/game_term 3 | -------------------------------------------------------------------------------- /run_xterm.sh: -------------------------------------------------------------------------------- 1 | 2 | #install fonts dir 3 | xset fp+ $PWD/fonts 4 | xset fp rehash 5 | 6 | #run 7 | xterm \ 8 | -xrm "xterm*font1: -gumix-*-*-*-*-*-8-*-*-*-*-*-*" \ 9 | -xrm "xterm*font2: -gumix-*-*-*-*-*-10-*-*-*-*-*-*" \ 10 | -xrm "xterm*font3: -gumix-*-*-*-*-*-12-*-*-*-*-*-*" \ 11 | -xrm "xterm*font: -gumix-*-*-*-*-*-14-*-*-*-*-*-*" \ 12 | -xrm "xterm*font4: -gumix-*-*-*-*-*-16-*-*-*-*-*-*" \ 13 | -xrm "xterm*font5: -gumix-*-*-*-*-*-18-*-*-*-*-*-*" \ 14 | -xrm "xterm*font6: -gumix-*-*-*-*-*-20-*-*-*-*-*-*" \ 15 | -xrm "xterm*allowWindowOps: true" \ 16 | -xrm "xterm*allowFontOps: true" \ 17 | -e .run/game_term 18 | 19 | #cleanup 20 | xset fp- $PWD/fonts 21 | xset fp rehash 22 | -------------------------------------------------------------------------------- /samples/enc.sh: -------------------------------------------------------------------------------- 1 | #MARKERS=`cat footsteps.txt | xargs` 2 | MARKERS=`cat footsteps.txt` 3 | oggenc -q-1 -c "MARKERS=$MARKERS" footsteps.wav 4 | oggenc -q-1 forest.wav -------------------------------------------------------------------------------- /samples/footsteps.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/samples/footsteps.ogg -------------------------------------------------------------------------------- /samples/footsteps.txt: -------------------------------------------------------------------------------- 1 | 0.000419 0.520963 rock-L 2 | 0.520963 0.766927 rock-R 3 | 0.766927 1.374999 wood-L 4 | 1.374580 1.868730 wood-R 5 | 1.868730 2.220544 dirt-L 6 | 2.220544 2.598617 dirt-R 7 | 2.598617 2.950431 grass-L 8 | 2.950431 3.328503 grass-R 9 | 3.328503 3.706576 bush-L 10 | 3.706576 4.058390 bush-R 11 | 4.058390 4.499569 blood-L 12 | 4.499569 4.888503 blood-R 13 | 4.888503 5.470454 water-L 14 | 5.470454 6.163583 water-R 15 | -------------------------------------------------------------------------------- /samples/footsteps.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/samples/footsteps.wav -------------------------------------------------------------------------------- /samples/forest.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/samples/forest.ogg -------------------------------------------------------------------------------- /samples/forest.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/samples/forest.wav -------------------------------------------------------------------------------- /screen.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include "platform.h" 3 | 4 | // this is screen manager 5 | // handling multiple layers (creation, destruction, order, focus, position and blending effects) 6 | // it also receives input stream and dispatches it to given layer input handler 7 | // in xterm mode it is responsible for displaying mouse cursor on top of screen 8 | 9 | #include "render.h" 10 | 11 | #if 0 12 | 13 | struct ScreenCB 14 | { 15 | void(*touch)(); 16 | void(*mouse)(); 17 | void(*keyb)(); // (focused screen only) 18 | void(*pad)(); // (focused screen only) 19 | }; 20 | 21 | struct Layer; 22 | 23 | struct Screen 24 | { 25 | Layer* parent; // if null it is screen! 26 | void* cookie; 27 | 28 | // children 29 | Layer* head; 30 | Layer* tail; 31 | 32 | // buf should be cleared or prerendered with some scene or left dirty if children overlaps it fully 33 | void Merge(AnsiCell* buf, int width, int height); 34 | }; 35 | 36 | struct Layer : Screen 37 | { 38 | bool visible; 39 | 40 | // siblings 41 | Layer* prev; 42 | Layer* next; 43 | }; 44 | 45 | 46 | void Screen::Merge(AnsiCell* buf, int width, int height) 47 | { 48 | ClipRect cr = { 0,0, width,height }; 49 | Layer* lay = head; 50 | while (lay) 51 | { 52 | cr.x1 = max(0, lay->x, ) 53 | lay->Merge(buf, &cr, lay->x, lay->y); 54 | lay = lay->next; 55 | } 56 | } 57 | 58 | void Layer::Merge(AnsiCell* buf, int width, int height, int src_x, int src_y, int dst_x, int dst_y, int ) 59 | { 60 | cr->x1 += x; 61 | cr->y1 += x; 62 | cr->x2 += x; 63 | cr->y2 += x; 64 | } 65 | 66 | // for mouse & touch 67 | Screen* HitTest(Screen* root, int x, int y) 68 | { 69 | // 1. locate topmost screen for root 70 | // 2. traverse down until non transparent bg or fg is found 71 | } 72 | 73 | #endif 74 | -------------------------------------------------------------------------------- /server.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /snap/gui/asciicker.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=asciicker 3 | Exec=asciicker 4 | Comment=3D ASCII game concept 5 | Icon=${SNAP}/meta/gui/asciicker.png 6 | Type=Application 7 | Terminal=false 8 | StartupNotify=false 9 | Categories=Game; 10 | -------------------------------------------------------------------------------- /snap/gui/asciicker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/snap/gui/asciicker.png -------------------------------------------------------------------------------- /snap/launcher: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ "$SNAP_ARCH" == "amd64" ]; then 4 | ARCH="x86_64-linux-gnu" 5 | elif [ "$SNAP_ARCH" == "armhf" ]; then 6 | ARCH="arm-linux-gnueabihf" 7 | elif [ "$SNAP_ARCH" == "arm64" ]; then 8 | ARCH="aarch64-linux-gnu" 9 | else 10 | ARCH="$SNAP_ARCH-linux-gnu" 11 | fi 12 | 13 | export LD_LIBRARY_PATH=$SNAP/lib:$LD_LIBRARY_PATH 14 | 15 | export LD_LIBRARY_PATH=$SNAP/usr/lib/$ARCH:$LD_LIBRARY_PATH 16 | export LD_LIBRARY_PATH=$SNAP/lib/$ARCH:$LD_LIBRARY_PATH 17 | 18 | # XKB config 19 | export XKB_CONFIG_ROOT=$SNAP/usr/share/X11/xkb 20 | 21 | # Pulseaudio export 22 | export LD_LIBRARY_PATH=$SNAP/usr/lib/$ARCH/pulseaudio:$LD_LIBRARY_PATH 23 | 24 | # Mesa Libs 25 | export LD_LIBRARY_PATH=$SNAP/usr/lib/$ARCH/mesa:$LD_LIBRARY_PATH 26 | export LD_LIBRARY_PATH=$SNAP/usr/lib/$ARCH/mesa-egl:$LD_LIBRARY_PATH 27 | 28 | # XDG Config 29 | export XDG_CONFIG_DIRS=$SNAP/etc/xdg:$XDG_CONFIG_DIRS 30 | export XDG_CONFIG_DIRS=$SNAP/usr/xdg:$XDG_CONFIG_DIRS 31 | # Note: this doesn't seem to work, QML's LocalStorage either ignores 32 | # or fails to use $SNAP_USER_DATA if defined here 33 | export XDG_DATA_DIRS=$SNAP_USER_DATA:$XDG_DATA_DIRS 34 | export XDG_DATA_DIRS=$SNAP/usr/share:$XDG_DATA_DIRS 35 | 36 | # Workaround in snapd for proprietary nVidia drivers mounts the drivers in 37 | # /var/lib/snapd/lib/gl that needs to be in LD_LIBRARY_PATH 38 | export LD_LIBRARY_PATH=/var/lib/snapd/lib/gl:$LD_LIBRARY_PATH 39 | 40 | # Not good, needed for fontconfig 41 | export XDG_DATA_HOME=$SNAP_USER_DATA/usr/share 42 | 43 | # Font Config 44 | export FONTCONFIG_PATH=$SNAP/etc/fonts/config.d 45 | export FONTCONFIG_FILE=$SNAP/etc/fonts/fonts.conf 46 | 47 | # Tell libGL where to find the drivers 48 | export LIBGL_DRIVERS_PATH=$SNAP/usr/lib/$ARCH/dri 49 | 50 | # Necessary for the SDK to find the translations directory 51 | export APP_DIR=$SNAP 52 | 53 | # Use GTK styling for running under Unity 7 54 | export DESKTOP_SESSION=ubuntu 55 | export XDG_SESSION_DESKTOP=ubuntu 56 | export XDG_CURRENT_DESKTOP=Unity 57 | 58 | #export LIBGL_DEBUG="verbose" 59 | 60 | export XLOCALEDIR="$SNAP/usr/share/X11/locale" 61 | export LOCPATH="$SNAP/usr/lib/locale" 62 | 63 | export LC_ALL=C.UTF-8 64 | 65 | #finally run 66 | exec $SNAP/./$1 67 | -------------------------------------------------------------------------------- /sprite.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "render.h" 4 | 5 | struct Sprite 6 | { 7 | int refs; 8 | bool recolored; 9 | 10 | struct Frame 11 | { 12 | int width; 13 | int height; 14 | int ref[3]; // on image x,y,z (x,y are int x2 units to allow half block refs) 15 | int meta_xy[2]; // some special position, ie crossbow's arrow tip (in half cells) 16 | AnsiCell* cell; // cell[].spare encodes cell height relative to ref[2] 17 | }; 18 | 19 | // from all frames angles anims and projections 20 | float proj_bbox[6]; 21 | 22 | int projs; 23 | int anims; // must be 0 for 'still' Sprite 24 | int frames; // must be 1 for 'still' Sprite 25 | int angles; 26 | Frame* atlas; // [frames][angles][2] (x2 because of projection/reflection) 27 | 28 | struct Anim 29 | { 30 | int length; 31 | int* frame_idx; // [angles * 2] 32 | }; 33 | 34 | Sprite* next; 35 | Sprite* prev; 36 | char* name; 37 | void* cookie; 38 | 39 | Anim anim[1]; 40 | }; 41 | 42 | Sprite* LoadSprite(const char* path, const char* name, /*bool has_refl = true,*/ const uint8_t* recolor = 0, bool detached = false); 43 | Sprite* GetFirstSprite(bool all=true); 44 | Sprite* GetPrevSprite(Sprite* s, bool all=true); 45 | Sprite* GetNextSprite(Sprite* s, bool all=true); 46 | int GetSpriteName(Sprite* s, char* buf, int size); 47 | 48 | void SetSpriteCookie(Sprite* s, void* cookie); 49 | void* GetSpriteCookie(Sprite* s); 50 | 51 | Sprite* LoadPlayer(const char* path); 52 | void FreeSprite(Sprite* spr); 53 | 54 | void BlitSprite(AnsiCell* ptr, int width, int height, const Sprite::Frame* sf, int x, int y, const int clip[4]=0, bool src_clip=true, AnsiCell* bk=0); 55 | void PaintFrame(AnsiCell* ptr, int width, int height, int x, int y, int w, int h, const int dst_clip[4] = 0, uint8_t fg=0, uint8_t bk=255, bool dbl=true, bool combine=true); 56 | void FillRect(AnsiCell* ptr, int width, int height, int x, int y, int w, int h, AnsiCell ac); 57 | 58 | int AverageGlyph(const AnsiCell* ptr, int mask); 59 | int DarkenGlyph(const AnsiCell* ptr); 60 | 61 | int LightenColor(int c); 62 | void SetSpriteDither(int eighths); -------------------------------------------------------------------------------- /sprites/asciicker.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/asciicker.xp -------------------------------------------------------------------------------- /sprites/attack-0001.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/attack-0001.xp -------------------------------------------------------------------------------- /sprites/attack-0011.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/attack-0011.xp -------------------------------------------------------------------------------- /sprites/attack-0101.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/attack-0101.xp -------------------------------------------------------------------------------- /sprites/attack-0111.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/attack-0111.xp -------------------------------------------------------------------------------- /sprites/attack-1001.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/attack-1001.xp -------------------------------------------------------------------------------- /sprites/attack-1011.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/attack-1011.xp -------------------------------------------------------------------------------- /sprites/attack-1101.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/attack-1101.xp -------------------------------------------------------------------------------- /sprites/attack-1111.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/attack-1111.xp -------------------------------------------------------------------------------- /sprites/bigbee-0000.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/bigbee-0000.xp -------------------------------------------------------------------------------- /sprites/bigbee-0001.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/bigbee-0001.xp -------------------------------------------------------------------------------- /sprites/bigbee-0002.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/bigbee-0002.xp -------------------------------------------------------------------------------- /sprites/bigbee-0010.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/bigbee-0010.xp -------------------------------------------------------------------------------- /sprites/bigbee-0011.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/bigbee-0011.xp -------------------------------------------------------------------------------- /sprites/bigbee-0012.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/bigbee-0012.xp -------------------------------------------------------------------------------- /sprites/bigbee-0100.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/bigbee-0100.xp -------------------------------------------------------------------------------- /sprites/bigbee-0101.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/bigbee-0101.xp -------------------------------------------------------------------------------- /sprites/bigbee-0102.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/bigbee-0102.xp -------------------------------------------------------------------------------- /sprites/bigbee-0110.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/bigbee-0110.xp -------------------------------------------------------------------------------- /sprites/bigbee-0111.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/bigbee-0111.xp -------------------------------------------------------------------------------- /sprites/bigbee-0112.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/bigbee-0112.xp -------------------------------------------------------------------------------- /sprites/bigbee-1000.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/bigbee-1000.xp -------------------------------------------------------------------------------- /sprites/bigbee-1001.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/bigbee-1001.xp -------------------------------------------------------------------------------- /sprites/bigbee-1002.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/bigbee-1002.xp -------------------------------------------------------------------------------- /sprites/bigbee-1010.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/bigbee-1010.xp -------------------------------------------------------------------------------- /sprites/bigbee-1011.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/bigbee-1011.xp -------------------------------------------------------------------------------- /sprites/bigbee-1012.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/bigbee-1012.xp -------------------------------------------------------------------------------- /sprites/bigbee-1100.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/bigbee-1100.xp -------------------------------------------------------------------------------- /sprites/bigbee-1101.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/bigbee-1101.xp -------------------------------------------------------------------------------- /sprites/bigbee-1102.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/bigbee-1102.xp -------------------------------------------------------------------------------- /sprites/bigbee-1110.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/bigbee-1110.xp -------------------------------------------------------------------------------- /sprites/bigbee-1111.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/bigbee-1111.xp -------------------------------------------------------------------------------- /sprites/bigbee-1112.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/bigbee-1112.xp -------------------------------------------------------------------------------- /sprites/bigbee.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/bigbee.xp -------------------------------------------------------------------------------- /sprites/character.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/character.xp -------------------------------------------------------------------------------- /sprites/desert_plants.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/desert_plants.xp -------------------------------------------------------------------------------- /sprites/enemygen.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/enemygen.xp -------------------------------------------------------------------------------- /sprites/fire.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/fire.xp -------------------------------------------------------------------------------- /sprites/font-1.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/font-1.xp -------------------------------------------------------------------------------- /sprites/gamepad.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/gamepad.xp -------------------------------------------------------------------------------- /sprites/grid-alpha-sword.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-alpha-sword.xp -------------------------------------------------------------------------------- /sprites/grid-apple.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-apple.xp -------------------------------------------------------------------------------- /sprites/grid-beet.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-beet.xp -------------------------------------------------------------------------------- /sprites/grid-big-axe.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-big-axe.xp -------------------------------------------------------------------------------- /sprites/grid-big-hammer.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-big-hammer.xp -------------------------------------------------------------------------------- /sprites/grid-big-mace.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-big-mace.xp -------------------------------------------------------------------------------- /sprites/grid-blue-potion.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-blue-potion.xp -------------------------------------------------------------------------------- /sprites/grid-bread.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-bread.xp -------------------------------------------------------------------------------- /sprites/grid-carrot.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-carrot.xp -------------------------------------------------------------------------------- /sprites/grid-cheese.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-cheese.xp -------------------------------------------------------------------------------- /sprites/grid-cherry.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-cherry.xp -------------------------------------------------------------------------------- /sprites/grid-crossbow.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-crossbow.xp -------------------------------------------------------------------------------- /sprites/grid-cucumber.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-cucumber.xp -------------------------------------------------------------------------------- /sprites/grid-cyan-potion.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-cyan-potion.xp -------------------------------------------------------------------------------- /sprites/grid-cyan-ring.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-cyan-ring.xp -------------------------------------------------------------------------------- /sprites/grid-egg.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-egg.xp -------------------------------------------------------------------------------- /sprites/grid-flail.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-flail.xp -------------------------------------------------------------------------------- /sprites/grid-gold-potion.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-gold-potion.xp -------------------------------------------------------------------------------- /sprites/grid-gold-ring.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-gold-ring.xp -------------------------------------------------------------------------------- /sprites/grid-green-potion.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-green-potion.xp -------------------------------------------------------------------------------- /sprites/grid-grey-potion.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-grey-potion.xp -------------------------------------------------------------------------------- /sprites/grid-heavy-armor.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-heavy-armor.xp -------------------------------------------------------------------------------- /sprites/grid-heavy-helmet.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-heavy-helmet.xp -------------------------------------------------------------------------------- /sprites/grid-heavy-shield.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-heavy-shield.xp -------------------------------------------------------------------------------- /sprites/grid-light-armor.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-light-armor.xp -------------------------------------------------------------------------------- /sprites/grid-light-helmet.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-light-helmet.xp -------------------------------------------------------------------------------- /sprites/grid-light-shield.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-light-shield.xp -------------------------------------------------------------------------------- /sprites/grid-lumber-axe.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-lumber-axe.xp -------------------------------------------------------------------------------- /sprites/grid-meat.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-meat.xp -------------------------------------------------------------------------------- /sprites/grid-milk.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-milk.xp -------------------------------------------------------------------------------- /sprites/grid-pink-potion.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-pink-potion.xp -------------------------------------------------------------------------------- /sprites/grid-pink-ring.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-pink-ring.xp -------------------------------------------------------------------------------- /sprites/grid-plum.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-plum.xp -------------------------------------------------------------------------------- /sprites/grid-plus-sword.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-plus-sword.xp -------------------------------------------------------------------------------- /sprites/grid-red-potion.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-red-potion.xp -------------------------------------------------------------------------------- /sprites/grid-small-mace.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-small-mace.xp -------------------------------------------------------------------------------- /sprites/grid-small-saber.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-small-saber.xp -------------------------------------------------------------------------------- /sprites/grid-small-sword.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-small-sword.xp -------------------------------------------------------------------------------- /sprites/grid-water.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-water.xp -------------------------------------------------------------------------------- /sprites/grid-white-ring.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-white-ring.xp -------------------------------------------------------------------------------- /sprites/grid-wine.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/grid-wine.xp -------------------------------------------------------------------------------- /sprites/inventory.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/inventory.xp -------------------------------------------------------------------------------- /sprites/item-apple.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-apple.xp -------------------------------------------------------------------------------- /sprites/item-armor.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-armor.xp -------------------------------------------------------------------------------- /sprites/item-axe.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-axe.xp -------------------------------------------------------------------------------- /sprites/item-beet.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-beet.xp -------------------------------------------------------------------------------- /sprites/item-blue-potion.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-blue-potion.xp -------------------------------------------------------------------------------- /sprites/item-bread.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-bread.xp -------------------------------------------------------------------------------- /sprites/item-carrot.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-carrot.xp -------------------------------------------------------------------------------- /sprites/item-cheese.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-cheese.xp -------------------------------------------------------------------------------- /sprites/item-cherry.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-cherry.xp -------------------------------------------------------------------------------- /sprites/item-crossbow.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-crossbow.xp -------------------------------------------------------------------------------- /sprites/item-cucumber.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-cucumber.xp -------------------------------------------------------------------------------- /sprites/item-cyan-potion.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-cyan-potion.xp -------------------------------------------------------------------------------- /sprites/item-cyan-ring.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-cyan-ring.xp -------------------------------------------------------------------------------- /sprites/item-egg.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-egg.xp -------------------------------------------------------------------------------- /sprites/item-flail.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-flail.xp -------------------------------------------------------------------------------- /sprites/item-gold-potion.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-gold-potion.xp -------------------------------------------------------------------------------- /sprites/item-gold-ring.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-gold-ring.xp -------------------------------------------------------------------------------- /sprites/item-green-potion.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-green-potion.xp -------------------------------------------------------------------------------- /sprites/item-grey-potion.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-grey-potion.xp -------------------------------------------------------------------------------- /sprites/item-hammer.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-hammer.xp -------------------------------------------------------------------------------- /sprites/item-helmet.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-helmet.xp -------------------------------------------------------------------------------- /sprites/item-mace.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-mace.xp -------------------------------------------------------------------------------- /sprites/item-meat.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-meat.xp -------------------------------------------------------------------------------- /sprites/item-milk.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-milk.xp -------------------------------------------------------------------------------- /sprites/item-pink-potion.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-pink-potion.xp -------------------------------------------------------------------------------- /sprites/item-pink-ring.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-pink-ring.xp -------------------------------------------------------------------------------- /sprites/item-plum.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-plum.xp -------------------------------------------------------------------------------- /sprites/item-red-potion.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-red-potion.xp -------------------------------------------------------------------------------- /sprites/item-shield.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-shield.xp -------------------------------------------------------------------------------- /sprites/item-sword.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-sword.xp -------------------------------------------------------------------------------- /sprites/item-water.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-water.xp -------------------------------------------------------------------------------- /sprites/item-white-ring.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-white-ring.xp -------------------------------------------------------------------------------- /sprites/item-wine.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/item-wine.xp -------------------------------------------------------------------------------- /sprites/keyb-07.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/keyb-07.xp -------------------------------------------------------------------------------- /sprites/keyb-09.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/keyb-09.xp -------------------------------------------------------------------------------- /sprites/keyb-11.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/keyb-11.xp -------------------------------------------------------------------------------- /sprites/keyb-13.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/keyb-13.xp -------------------------------------------------------------------------------- /sprites/keyb-15.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/keyb-15.xp -------------------------------------------------------------------------------- /sprites/keyb-caps-a.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/keyb-caps-a.xp -------------------------------------------------------------------------------- /sprites/keyb-caps-b.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/keyb-caps-b.xp -------------------------------------------------------------------------------- /sprites/keyb-caps-c.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/keyb-caps-c.xp -------------------------------------------------------------------------------- /sprites/player-0000.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/player-0000.xp -------------------------------------------------------------------------------- /sprites/player-0001.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/player-0001.xp -------------------------------------------------------------------------------- /sprites/player-0002.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/player-0002.xp -------------------------------------------------------------------------------- /sprites/player-0010.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/player-0010.xp -------------------------------------------------------------------------------- /sprites/player-0011.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/player-0011.xp -------------------------------------------------------------------------------- /sprites/player-0012.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/player-0012.xp -------------------------------------------------------------------------------- /sprites/player-0100.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/player-0100.xp -------------------------------------------------------------------------------- /sprites/player-0101.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/player-0101.xp -------------------------------------------------------------------------------- /sprites/player-0102.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/player-0102.xp -------------------------------------------------------------------------------- /sprites/player-0110.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/player-0110.xp -------------------------------------------------------------------------------- /sprites/player-0111.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/player-0111.xp -------------------------------------------------------------------------------- /sprites/player-0112.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/player-0112.xp -------------------------------------------------------------------------------- /sprites/player-1000.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/player-1000.xp -------------------------------------------------------------------------------- /sprites/player-1001.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/player-1001.xp -------------------------------------------------------------------------------- /sprites/player-1002.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/player-1002.xp -------------------------------------------------------------------------------- /sprites/player-1010.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/player-1010.xp -------------------------------------------------------------------------------- /sprites/player-1011.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/player-1011.xp -------------------------------------------------------------------------------- /sprites/player-1012.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/player-1012.xp -------------------------------------------------------------------------------- /sprites/player-1100.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/player-1100.xp -------------------------------------------------------------------------------- /sprites/player-1101.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/player-1101.xp -------------------------------------------------------------------------------- /sprites/player-1102.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/player-1102.xp -------------------------------------------------------------------------------- /sprites/player-1110.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/player-1110.xp -------------------------------------------------------------------------------- /sprites/player-1111.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/player-1111.xp -------------------------------------------------------------------------------- /sprites/player-1112.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/player-1112.xp -------------------------------------------------------------------------------- /sprites/player-nude.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/player-nude.xp -------------------------------------------------------------------------------- /sprites/plydie-0000.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/plydie-0000.xp -------------------------------------------------------------------------------- /sprites/plydie-0001.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/plydie-0001.xp -------------------------------------------------------------------------------- /sprites/plydie-0002.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/plydie-0002.xp -------------------------------------------------------------------------------- /sprites/plydie-0010.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/plydie-0010.xp -------------------------------------------------------------------------------- /sprites/plydie-0011.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/plydie-0011.xp -------------------------------------------------------------------------------- /sprites/plydie-0012.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/plydie-0012.xp -------------------------------------------------------------------------------- /sprites/plydie-0100.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/plydie-0100.xp -------------------------------------------------------------------------------- /sprites/plydie-0101.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/plydie-0101.xp -------------------------------------------------------------------------------- /sprites/plydie-0102.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/plydie-0102.xp -------------------------------------------------------------------------------- /sprites/plydie-0110.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/plydie-0110.xp -------------------------------------------------------------------------------- /sprites/plydie-0111.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/plydie-0111.xp -------------------------------------------------------------------------------- /sprites/plydie-0112.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/plydie-0112.xp -------------------------------------------------------------------------------- /sprites/plydie-1000.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/plydie-1000.xp -------------------------------------------------------------------------------- /sprites/plydie-1001.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/plydie-1001.xp -------------------------------------------------------------------------------- /sprites/plydie-1002.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/plydie-1002.xp -------------------------------------------------------------------------------- /sprites/plydie-1010.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/plydie-1010.xp -------------------------------------------------------------------------------- /sprites/plydie-1011.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/plydie-1011.xp -------------------------------------------------------------------------------- /sprites/plydie-1012.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/plydie-1012.xp -------------------------------------------------------------------------------- /sprites/plydie-1100.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/plydie-1100.xp -------------------------------------------------------------------------------- /sprites/plydie-1101.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/plydie-1101.xp -------------------------------------------------------------------------------- /sprites/plydie-1102.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/plydie-1102.xp -------------------------------------------------------------------------------- /sprites/plydie-1110.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/plydie-1110.xp -------------------------------------------------------------------------------- /sprites/plydie-1111.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/plydie-1111.xp -------------------------------------------------------------------------------- /sprites/plydie-1112.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/plydie-1112.xp -------------------------------------------------------------------------------- /sprites/wolack-0001.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolack-0001.xp -------------------------------------------------------------------------------- /sprites/wolack-0011.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolack-0011.xp -------------------------------------------------------------------------------- /sprites/wolack-0101.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolack-0101.xp -------------------------------------------------------------------------------- /sprites/wolack-0111.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolack-0111.xp -------------------------------------------------------------------------------- /sprites/wolack-1001.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolack-1001.xp -------------------------------------------------------------------------------- /sprites/wolack-1011.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolack-1011.xp -------------------------------------------------------------------------------- /sprites/wolack-1101.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolack-1101.xp -------------------------------------------------------------------------------- /sprites/wolack-1111.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolack-1111.xp -------------------------------------------------------------------------------- /sprites/wolfie-0000.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolfie-0000.xp -------------------------------------------------------------------------------- /sprites/wolfie-0001.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolfie-0001.xp -------------------------------------------------------------------------------- /sprites/wolfie-0002.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolfie-0002.xp -------------------------------------------------------------------------------- /sprites/wolfie-0010.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolfie-0010.xp -------------------------------------------------------------------------------- /sprites/wolfie-0011.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolfie-0011.xp -------------------------------------------------------------------------------- /sprites/wolfie-0012.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolfie-0012.xp -------------------------------------------------------------------------------- /sprites/wolfie-0100.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolfie-0100.xp -------------------------------------------------------------------------------- /sprites/wolfie-0101.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolfie-0101.xp -------------------------------------------------------------------------------- /sprites/wolfie-0102.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolfie-0102.xp -------------------------------------------------------------------------------- /sprites/wolfie-0110.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolfie-0110.xp -------------------------------------------------------------------------------- /sprites/wolfie-0111.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolfie-0111.xp -------------------------------------------------------------------------------- /sprites/wolfie-0112.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolfie-0112.xp -------------------------------------------------------------------------------- /sprites/wolfie-1000.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolfie-1000.xp -------------------------------------------------------------------------------- /sprites/wolfie-1001.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolfie-1001.xp -------------------------------------------------------------------------------- /sprites/wolfie-1002.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolfie-1002.xp -------------------------------------------------------------------------------- /sprites/wolfie-1010.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolfie-1010.xp -------------------------------------------------------------------------------- /sprites/wolfie-1011.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolfie-1011.xp -------------------------------------------------------------------------------- /sprites/wolfie-1012.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolfie-1012.xp -------------------------------------------------------------------------------- /sprites/wolfie-1100.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolfie-1100.xp -------------------------------------------------------------------------------- /sprites/wolfie-1101.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolfie-1101.xp -------------------------------------------------------------------------------- /sprites/wolfie-1102.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolfie-1102.xp -------------------------------------------------------------------------------- /sprites/wolfie-1110.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolfie-1110.xp -------------------------------------------------------------------------------- /sprites/wolfie-1111.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolfie-1111.xp -------------------------------------------------------------------------------- /sprites/wolfie-1112.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolfie-1112.xp -------------------------------------------------------------------------------- /sprites/wolfie.xp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msokalski/asciicker/8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635/sprites/wolfie.xp -------------------------------------------------------------------------------- /stb_vorbis.h: -------------------------------------------------------------------------------- 1 | #ifndef STB_VORBIS_H 2 | #define STB_VORBIS_H 3 | 4 | typedef struct stb_vorbis stb_vorbis; 5 | 6 | extern unsigned int stb_vorbis_stream_length_in_samples(stb_vorbis *f); 7 | 8 | typedef struct 9 | { 10 | char *alloc_buffer; 11 | int alloc_buffer_length_in_bytes; 12 | } stb_vorbis_alloc; 13 | 14 | extern stb_vorbis * stb_vorbis_open_memory(const unsigned char *data, int len, 15 | int *error, const stb_vorbis_alloc *alloc_buffer); 16 | 17 | extern void stb_vorbis_close(stb_vorbis *f); 18 | 19 | extern int stb_vorbis_get_frame_float(stb_vorbis *f, int *channels, float ***output); 20 | 21 | typedef struct 22 | { 23 | unsigned int sample_rate; 24 | int channels; 25 | 26 | unsigned int setup_memory_required; 27 | unsigned int setup_temp_memory_required; 28 | unsigned int temp_memory_required; 29 | 30 | int max_frame_size; 31 | } stb_vorbis_info; 32 | 33 | extern stb_vorbis_info stb_vorbis_get_info(stb_vorbis *f); 34 | 35 | extern const char* stb_vorbis_get_markers(stb_vorbis *f); 36 | extern char* stb_vorbis_extract_markers(stb_vorbis *f); 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /stdafx.h: -------------------------------------------------------------------------------- 1 | // stdafx.h : include file for standard system include files, 2 | // or project specific include files that are used frequently, but 3 | // are changed infrequently 4 | // 5 | 6 | #pragma once 7 | 8 | #include "targetver.h" 9 | 10 | #include 11 | #include 12 | 13 | 14 | 15 | // TODO: reference additional headers your program requires here 16 | -------------------------------------------------------------------------------- /targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Including SDKDDKVer.h defines the highest available Windows platform. 4 | 5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 7 | 8 | #include 9 | -------------------------------------------------------------------------------- /term.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "platform.h" 5 | 6 | struct Game; 7 | 8 | Game* TermOpen(A3D_WND* share, float yaw, float pos[3], void(*close)() = 0); 9 | void TermCloseAll(); 10 | void TermResizeAll(); 11 | -------------------------------------------------------------------------------- /texheap.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "gl.h" 3 | 4 | #define TEXHEAP 5 | 6 | #define TEXHEAP_MAX_NUMTEX 4 7 | 8 | struct TexHeap; 9 | struct TexAlloc; 10 | struct TexPage; 11 | 12 | struct TexData 13 | { 14 | GLenum format; 15 | GLenum type; 16 | void* data; 17 | }; 18 | 19 | struct TexAlloc 20 | { 21 | // read-write 22 | void* user; 23 | 24 | // read-only 25 | TexPage* page; 26 | int x, y; 27 | 28 | void Update(int first, int count, const TexData[]); 29 | TexAlloc* Free(); 30 | }; 31 | 32 | struct TexPage 33 | { 34 | // read only 35 | void* user; // data at the pointer can be modified 36 | TexHeap* heap; 37 | TexPage* next; 38 | TexPage* prev; 39 | GLuint tex[TEXHEAP_MAX_NUMTEX]; 40 | TexAlloc* alloc[1]; // [heap->cap_x*heap->cap_y] 41 | }; 42 | 43 | struct TexDesc 44 | { 45 | int item_w; 46 | int item_h; 47 | GLenum ifmt; 48 | }; 49 | 50 | struct TexHeap 51 | { 52 | void Create(int page_cap_x, int page_cap_y, int numtex, const TexDesc* texdesc, int page_userbytes); 53 | void Destroy(); 54 | 55 | TexAlloc* Alloc(const TexData data[]); 56 | 57 | // spatial optimizer support 58 | // simply swap TexAlloc pointers and TexAlloc::user data 59 | // then update both allocs 60 | 61 | // const read-only 62 | 63 | int cap_x; 64 | int cap_y; 65 | 66 | // read only 67 | int user; // num of extra bytes allocated with every page for user 68 | int allocs; 69 | 70 | TexPage* head; 71 | TexPage* tail; 72 | 73 | /* 74 | int item_w; 75 | int item_h; 76 | GLenum ifmt; 77 | */ 78 | 79 | int num; 80 | TexDesc tex[TEXHEAP_MAX_NUMTEX]; 81 | }; 82 | -------------------------------------------------------------------------------- /urdo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "terrain.h" 5 | #include "world.h" 6 | #include "inventory.h" 7 | 8 | bool URDO_CanUndo(); 9 | bool URDO_CanRedo(); 10 | 11 | size_t URDO_Bytes(); 12 | 13 | void URDO_Purge(); 14 | 15 | void URDO_Undo(int max_depth); 16 | void URDO_Redo(int max_depth); 17 | 18 | // groupping 19 | void URDO_Open(); 20 | void URDO_Close(); 21 | 22 | // patches 23 | 24 | Patch* URDO_Create(Terrain* t, int x, int y, int z); // replacement for AddTerrainPatch 25 | void URDO_Delete(Terrain* t, Patch* p); // replacement for DelTerrainPatch 26 | 27 | void URDO_Patch(Patch* p, bool visual = false); // call before changing height map 28 | void URDO_Diag(Patch* p); // call before flipping diag 29 | 30 | // meshes & sprites (instances) 31 | 32 | Inst* URDO_Create(World* w, Item* item, int flags, float pos[3], float yaw, int story_id); 33 | Inst* URDO_Create(World* w, Sprite* s, int flags, float pos[3], float yaw, int anim, int frame, int reps[4], int story_id); // replacement for CreateInst 34 | Inst* URDO_Create(Mesh* m, int flags, double tm[16], int story_id); // replacement for CreateInst 35 | void URDO_Delete(Inst* i); // replacement for DeleteInst 36 | 37 | -------------------------------------------------------------------------------- /v8/x64.debug-args.gn: -------------------------------------------------------------------------------- 1 | # Set build arguments here. See `gn help buildargs`. 2 | treat_warnings_as_errors = false 3 | use_custom_libcxx = false 4 | use_custom_libcxx_for_host = false 5 | use_glib = false 6 | use_sysroot = false 7 | v8_enable_i18n_support = false 8 | v8_use_external_startup_data = false 9 | v8_monolithic = true 10 | v8_static_library = true 11 | v8_enable_webassembly = false 12 | is_component_build = false 13 | is_debug = true 14 | enable_iterator_debugging=true 15 | host_cpu = "x64" 16 | target_cpu = "x64" 17 | v8_target_cpu = "x64" -------------------------------------------------------------------------------- /v8/x64.release-args.gn: -------------------------------------------------------------------------------- 1 | # Set build arguments here. See `gn help buildargs`. 2 | treat_warnings_as_errors = false 3 | use_custom_libcxx = false 4 | use_custom_libcxx_for_host = false 5 | use_glib = false 6 | use_sysroot = false 7 | v8_enable_i18n_support = false 8 | v8_use_external_startup_data = false 9 | v8_monolithic = true 10 | v8_static_library = true 11 | v8_enable_webassembly = false 12 | is_component_build = false 13 | is_debug = false 14 | host_cpu = "x64" 15 | target_cpu = "x64" 16 | v8_target_cpu = "x64" -------------------------------------------------------------------------------- /v8/x86.debug-args.gn: -------------------------------------------------------------------------------- 1 | # Set build arguments here. See `gn help buildargs`. 2 | treat_warnings_as_errors = false 3 | use_custom_libcxx = false 4 | use_custom_libcxx_for_host = false 5 | use_glib = false 6 | use_sysroot = false 7 | v8_enable_i18n_support = false 8 | v8_use_external_startup_data = false 9 | v8_monolithic = true 10 | v8_static_library = true 11 | v8_enable_webassembly = false 12 | is_component_build = false 13 | is_debug = true 14 | enable_iterator_debugging=true 15 | host_cpu = "x86" 16 | target_cpu = "x86" 17 | v8_target_cpu = "x86" -------------------------------------------------------------------------------- /v8/x86.release-args.gn: -------------------------------------------------------------------------------- 1 | # Set build arguments here. See `gn help buildargs`. 2 | treat_warnings_as_errors = false 3 | use_custom_libcxx = false 4 | use_custom_libcxx_for_host = false 5 | use_glib = false 6 | use_sysroot = false 7 | v8_enable_i18n_support = false 8 | v8_use_external_startup_data = false 9 | v8_monolithic = true 10 | v8_static_library = true 11 | v8_enable_webassembly = false 12 | is_component_build = false 13 | is_debug = false 14 | host_cpu = "x86" 15 | target_cpu = "x86" 16 | v8_target_cpu = "x86" -------------------------------------------------------------------------------- /water.cpp: -------------------------------------------------------------------------------- 1 | 2 | 3 | // we want ability of having super-lo-res mesh scattered over terrain (please: no more than 10 triangles in viewport) 4 | // in similar way we'd like to have object meshes (but instanced) 5 | 6 | // 1. render terrain AND object instances 7 | // 2. depth-test water check if any water triangle cell is visible, link visible water triangles into temp-list 8 | // 3. for each visible water triangle: 9 | // - calc reflection transform, planes bounding triangle, bbox planes bounding visible area 10 | // - gather and render reflection of terrain patches and object instances both clipped by these planes 11 | 12 | // looks like we should start with objects before adding water! 13 | // we need OBJ importer, pure mesh with single UV channel (no normals, colors, smooth groups etc) 14 | 15 | 16 | /* 17 | CASCADED REFLECTION: 18 | 19 | given reflection plane: A*x+B*y+C*z+D==0 20 | transformed P=[x,y,z,1] is: [x,y,-2*(A*x+B*y+D)/C-z,1] 21 | 22 | so matrix is (if needed at all): 23 | [ 1 0 0 0 ] 24 | [ 0 1 0 0 ] 25 | [-2A/C -2B/C -1 -2D/C] 26 | [ 0 0 0 1 ] 27 | 28 | what clipping planes should we use to query geomtery? 29 | - reflection of 4x viewport-edge planes 30 | - reflection of planes constructed from viewing vector and mirror boundary edges 31 | - mirror plane (reflection is same) 32 | 33 | 34 | note: sprites can be deformed! 35 | if reflection plane's normal in view coords has non zero X coord 36 | (water flow is somewhat horizontal on screen) 37 | we'd need to render sprites z-column by z-column adjusting 38 | everytime column's screen space Y position 39 | */ 40 | 41 | // HOW DO WE STORE POINTS, TRIANGLES, POLYGONS, PLANES ? 42 | /* 43 | 44 | // we will need fast queries: 45 | // by ray -> get xyz and closest triangle 46 | // by clipping planes -> callback with triangle 47 | 48 | */ 49 | --------------------------------------------------------------------------------