Commit Graph

  • 19b8bf1850 Totally a pile of garbage with a bunch of debug prints because I'm going to have to rewrite the renderer resizing to allow for any size image, not just the map. But this does display an image using averaged squares. main Zed A. Shaw 2024-11-21 02:49:58 -0500
  • 3bb3b654e7 Fixes to build on non-windows and give the answer parser a real name. Zed A. Shaw 2024-11-19 13:23:38 -0500
  • 111429b974 A slight improvement to avoid rendering boxes behind text that is default bg color. Zed A. Shaw 2024-11-18 22:12:40 -0500
  • be144e2a05 Start of image to ansi converter. Zed A. Shaw 2024-11-18 14:45:06 -0500
  • b7002917c1 Color is now in one nice location. Zed A. Shaw 2024-11-18 14:28:39 -0500
  • c8fa68815b A bit more cleanup of render but kind of stuck on what to do further. Zed A. Shaw 2024-11-18 13:29:22 -0500
  • 7cb03594a3 Renderer now knows how to render panels as grid/text based on how the panel is configured. Zed A. Shaw 2024-11-18 12:51:57 -0500
  • f79e7638c0 Panel now holds data on how it should be rendered and render just uses that instead of calculating it. Zed A. Shaw 2024-11-18 12:07:44 -0500
  • 1a3bbaedda Use the MID value for borders. Zed A. Shaw 2024-11-18 11:34:49 -0500
  • 958c8545a7 It's actually better to just use FTXUI's Modal system than to invent my own. Zed A. Shaw 2024-11-17 22:28:29 -0500
  • 88d362d6a5 A little clean up while I think about how to do this.... Zed A. Shaw 2024-11-17 18:36:38 -0500
  • d36c42038d Simple mouse clicks working but probably wrong coordinates. Zed A. Shaw 2024-11-17 16:00:57 -0500
  • 64855f3c90 The gui can now pop open a modal based on clicking a button but I need to manage focus next. Zed A. Shaw 2024-11-17 13:23:18 -0500
  • 34c84343db Mostly working now, just had to manually calculate the grid. Needs a cleanup but I'm moving on for now. Zed A. Shaw 2024-11-17 12:37:07 -0500
  • 89a70f398a Rewrote the ansi parser to exactly callback on color setting, so now just need to clean this all up and fix a few little bugs. Zed A. Shaw 2024-11-16 12:10:14 -0500
  • 96ee16e598 Figured out that I don't need a special screen, just send events to the component directly with OnEvent. However, you have to component->Add() or call Render(component, []) with it or else it's not considered a child. Zed A. Shaw 2024-11-14 12:37:31 -0500
  • e3cff8142c Barely working stripped down version of ScreenInteractive. Now to bring on the SFML events. Zed A. Shaw 2024-11-13 12:48:42 -0500
  • 7d3605f58b A bit of cleanup and testing of the panel, then some optimization to avoid re-rendering and multiple wchar converts. Zed A. Shaw 2024-11-12 08:06:09 -0500
  • 6e848004c4 Panel is working and now I can work on the gui interactions parts. Zed A. Shaw 2024-11-11 13:03:31 -0500
  • 9bc9c9007f Now have a nice panel to hold all the UI panels we'll use later. Zed A. Shaw 2024-11-11 12:23:40 -0500
  • baaf56d4de Can do better rendering of individual components and 'panels' but it's not too clean right now. Zed A. Shaw 2024-11-11 10:12:36 -0500
  • 7b5c84b5f7 Cleaned up the gui display some more for future GUI elements. Zed A. Shaw 2024-11-10 12:53:29 -0500
  • 2ced72a475 Slight improvement in the renderer efficiency. Zed A. Shaw 2024-11-09 12:19:09 -0500
  • 824a384ffd Font sizes and map view now work with arbitrary map sizes. Zed A. Shaw 2024-11-09 10:56:22 -0500
  • 2dccc6b17b Initial fix of the crash with different map sizes but that's not the ultimate fix. Zed A. Shaw 2024-11-09 10:14:53 -0500
  • 809ec9ed0d Merge branch 'main' of git.learnjsthehardway.com:learn-code-the-hard-way/roguish Zed A. Shaw 2024-11-09 03:58:03 -0500
  • 5af6d75b4c FINALLLYYYY!!! Can't believe it took so long to solve this but now I can gdb and catch aborts. Zed A. Shaw 2024-11-09 03:57:38 -0500
  • badc0ca438 The json output is a problem but I don't even use it. Zed A. Shaw 2024-11-08 21:45:40 -0500
  • 43fb60ebaa Removed the ambient sound until I can redesign it. Zed A. Shaw 2024-11-08 13:24:31 -0500
  • 113811bc84 Got some new sounds and camera shake came back but has a bug. Zed A. Shaw 2024-11-08 13:18:43 -0500
  • ed9d0de8e0 Event system now accepts any data and the GUI receives simpler events with data for them. Zed A. Shaw 2024-11-07 09:16:21 -0500
  • 0e79288afc More notes on the next things to do. Zed A. Shaw 2024-11-07 02:06:22 -0500
  • 011fee4872 A little bit nicer but ultimately the way the system talks to the GUI needs a redesign to be more 'coarse grain' Zed A. Shaw 2024-11-07 01:00:17 -0500
  • 0a268591c2 Started working on the loot system which will eventually become the inventory/improved collision system. Zed A. Shaw 2024-11-07 00:29:06 -0500
  • c1d43694b0 Couldn't debug the map size crash so just did this small change until I can. Zed A. Shaw 2024-11-06 23:38:01 -0500
  • 67cacd5dcd Can actually save the game now. Zed A. Shaw 2024-11-06 22:24:23 -0500
  • b2ed598c1f Kind of working save now, but does have problems with dead things. Zed A. Shaw 2024-11-06 15:06:10 -0500
  • 99d56b246c Looks like this is _possibly_ working but the last step of actually loading a save needs to be figured out. Zed A. Shaw 2024-11-06 07:18:59 -0500
  • 6add24fed2 Big revelation is that anytime you're doing file I/O you _must_ use std::filesystem. It simplifies so much about working with files. Zed A. Shaw 2024-11-06 02:40:29 -0500
  • da63f006c2 Config and save system almost there. Zed A. Shaw 2024-11-05 21:33:28 -0500
  • 71bc97a016 Save system should work better now, just needed to switch to basic map. This would probably a lot better if tser.hpp supported std::any. Zed A. Shaw 2024-11-05 06:11:50 -0500
  • d113dba42f Almost working save sytem but the data I store is totally wrong. I need to also save the entity IDs being used and map them to the components. Zed A. Shaw 2024-11-05 02:38:36 -0500
  • babc190525 Tser can now output wstring and already saves wstring, so now need to use it. Zed A. Shaw 2024-11-04 23:58:56 -0500
  • b113b90257 Cleaned up the tests for tser more and then removed cereal. Zed A. Shaw 2024-11-04 22:30:48 -0500
  • bf57713416 Stripped tser.hpp down to the essentials so I can study it. No base64 encoding, less than comparison (wtf is that for), and I may even remove the 'json' output. Zed A. Shaw 2024-11-04 09:10:27 -0500
  • 713d400d17 Cereal works pretty well so I may use it, but there's one more library I want to try first called tser. Zed A. Shaw 2024-11-04 05:07:49 -0500
  • ddf1ba955c Now have a working config manager that can exist in the world properly. Zed A. Shaw 2024-11-03 05:57:35 -0500
  • f6ddf4b03b Make it clear this is testing an ftxui setting. Zed A. Shaw 2024-11-03 01:24:26 -0500
  • f223257aad Have to tweak when to test that true color is set, and also when to do it for the test. Zed A. Shaw 2024-11-03 01:21:00 -0500
  • 707e9e3d6e Have to force the terminal detected by FTXUI to use full color no matter what it detects in the actual terminal. Zed A. Shaw 2024-11-03 00:16:52 -0400
  • 0ba789697a Basic config system from a json file but it's got serious issues. Can't copy construct it because of the variable blocking copying, and it can't even be put into the dinkyecs in any way. Zed A. Shaw 2024-11-02 21:14:58 -0400
  • 24b1e4a500 Further cleaning of the renderer. Zed A. Shaw 2024-11-02 17:41:19 -0400
  • fd8180bc61 Refactored the ansi_parser into a class that can be reused between render calls. Zed A. Shaw 2024-11-02 16:56:46 -0400
  • e864e14eab Rendering with color is working now but still has problems with enabling/resetting the default colors. Zed A. Shaw 2024-11-02 06:02:13 -0400
  • a36b187879 Renderer of ANSI codes to SFML is now working. Does seem to be a little slow but that'll be easy to fix later. Zed A. Shaw 2024-11-02 03:53:33 -0400
  • ae484bf425 ANSI code renderer starts working but I have to make it utf8/wchar_t friendly. Zed A. Shaw 2024-11-01 18:07:47 -0400
  • 6ca4614fcb A bit better method of setting foreground vs. background. Zed A. Shaw 2024-11-01 04:15:37 -0400
  • 2d550978b8 This seems to be the best way to do this, but I kepts a few other experiments in scratchpad. Zed A. Shaw 2024-11-01 04:08:16 -0400
  • 058ab23fa2 This also does almost the same thing but using fgoto to switch between ansi and not. Zed A. Shaw 2024-11-01 01:08:26 -0400
  • f32b39afe2 Barely working ansi color codes parser but I _really_ don't like this one. Too much code to just get it to process correctly which means it'll be brittle as hell later. Zed A. Shaw 2024-11-01 00:40:42 -0400
  • a44a9a04f9 Learned yesterday that you can do a multi-return assing to auto[] by just returning a struct. Zed A. Shaw 2024-11-01 00:40:04 -0400
  • 3394327981 Better working but still picks up stray numbers I didn't specify. Zed A. Shaw 2024-10-31 10:08:46 -0400
  • 74310304bd Start of a ragel parser that can do the ansi code parsing for me. Zed A. Shaw 2024-10-31 02:53:38 -0400
  • 35ef1e786d A bit more cleanup before I redesign the renderer. Zed A. Shaw 2024-10-30 19:06:51 -0400
  • 9397af2a11 Rendering code stripped out of the GUI code. Zed A. Shaw 2024-10-30 18:54:51 -0400
  • 009b1e63a7 More refactoring to get the GUI dumber. Zed A. Shaw 2024-10-30 02:13:31 -0400
  • 2fdbd63f4c Cleaning up and sorting out how to use the new events best. Zed A. Shaw 2024-10-29 23:39:03 -0400
  • 04350cb51e GUI is now decoupled from the ECS using the new DinkyECS event queues. That makes it easier to update and change the GUI without having to constantly alter the systems. Zed A. Shaw 2024-10-29 18:33:11 -0400
  • da8011cb14 Can just use the enum as the type for the map but it'd be nicer if I could use a class enum without tons of template BS. Zed A. Shaw 2024-10-29 17:49:54 -0400
  • 3f87d19911 Simple event system for entities in the world. Zed A. Shaw 2024-10-29 17:27:12 -0400
  • ea6cf1362b Create a test for the ECS before we add more functionality. Zed A. Shaw 2024-10-29 16:04:40 -0400
  • 143fe7784c Clean up the DinkyECSso that it's easier to understand and more obvious what a fact vs. component is. Zed A. Shaw 2024-10-29 07:33:00 -0400
  • 4ed06b10b1 Need the hit.wav to be mono, but now we have a sound we can move around, just not sure how to place it based on the visuals. Zed A. Shaw 2024-10-28 19:46:55 -0400
  • 9102bdc8ad Created a combat system to start with and also added a 'HEARING' mechanic where enemies can hear you from a certain distance before moving to you. Zed A. Shaw 2024-10-27 18:44:54 -0400
  • 753bc70b77 Basic ragel test that can parse 1 ASNI sequence and do nothing with it. Zed A. Shaw 2024-10-27 17:34:49 -0400
  • 4162287841 Implement a simple combat system and killing off enemies. See status for next steps. Zed A. Shaw 2024-10-26 20:29:55 -0400
  • 62562faad3 Give the player first move advantage, but maybe this should be a setting on motion so that some enemies can beat the player. Zed A. Shaw 2024-10-26 19:47:40 -0400
  • 5a123ae74c Refactor some code to have better naming and move Point and related point things into their own .hpp. Zed A. Shaw 2024-10-26 18:26:42 -0400
  • c19cd707d1 Better unit test for the collision system. Zed A. Shaw 2024-10-26 18:13:06 -0400
  • ec1ed23c52 Now using a simple collision map to track entities and then determine if they're near the player for attacking. Zed A. Shaw 2024-10-26 04:33:23 -0400
  • 743f906bc7 Implemented a simple collision hash table. Zed A. Shaw 2024-10-25 22:31:09 -0400
  • dbc2a10933 Very basic collision and combat to work out the idea and a logging system on the left. Zed A. Shaw 2024-10-25 20:49:11 -0400
  • 98993481b0 Playing around with it some more to see how a move would work. Zed A. Shaw 2024-10-22 02:09:28 -0400
  • 98baa13264 Tried out Google's AI response to the question of a C++ spatial hash and it kind of came close. This took some massaging but it could work. Zed A. Shaw 2024-10-22 01:52:15 -0400
  • 6f2fba4f7f Make a few comments to keep this straight. Zed A. Shaw 2024-10-21 23:26:54 -0400
  • e57a13846f A bit more caching and optimization then determine how to center glyphs in the center of the background if it fits. Zed A. Shaw 2024-10-21 22:43:34 -0400
  • 9083582420 Make it possible to zoom in/out, but I may make this a combat thing where it's zoomed out until you encounter an enemy. Zed A. Shaw 2024-10-21 20:31:59 -0400
  • 02a45d890f Make it so the canvas for the map view is calculated based on the font size, which will allow for zooming. Zed A. Shaw 2024-10-21 00:12:04 -0400
  • 9f1e9717a0 Super jank prototype of my idea but I am rendering multiple characters per cell to give the effect of a more complex character. Now to make this a data setup so it's easy to make characters. Also, probably have little add ons to show things like weapons equiped, etc. Zed A. Shaw 2024-10-18 21:59:06 -0400
  • 31c86fa2b3 Cleanup before trying to make the tile rendering faster by pre-loading the sprites needed, or caching as they're requested. Zed A. Shaw 2024-10-18 20:53:19 -0400
  • 08d71f9bdc Super duper slow but this renders the text glyphs directly as sprites so I can do special colorization. Probalby then need to process the ftxui color ansi codes. Zed A. Shaw 2024-10-18 16:00:13 -0400
  • fe5f7673ea Remove some unused variables. Zed A. Shaw 2024-10-18 00:28:23 -0400
  • 8b61a4fad8 Forgot to set targets for pathing. Zed A. Shaw 2024-10-17 23:50:07 -0400
  • 3dae65fe82 Merge in the refactor from earlier. Zed A. Shaw 2024-10-17 21:49:57 -0400
  • da64e526c4 Systems now control most of the game's operations and a lot of the rendering logic, this now brings in a camera so maps can be larger than the viewport. Zed A. Shaw 2024-10-17 21:43:19 -0400
  • 1bb8999610 A bit more cleanup, but still looking for more organization. Zed A. Shaw 2024-10-16 23:15:56 -0400
  • e42647d727 I think I've got my head around what ECS does and am slowly reshaping the engine to use it better. Zed A. Shaw 2024-10-16 20:31:00 -0400
  • da04c5ec54 Not sure why I didn't think of this before, but you can just copy all the .wrap files to another directory, and then instead of meson wrap install you just copy them to subprojects. That's how you lock the versions of dependencies. Zed A. Shaw 2024-10-16 20:01:01 -0400
  • 33327154ad DinkyECS is now controlling the game and can handle multiple enemies easily. Next is to clean this up so it's not just one gross pile of code in the gui. Zed A. Shaw 2024-10-16 15:01:53 -0400
  • 86c98c43c2 Fixes to make it build on OSX with old gear. I have an ancient OSX laptop that uses Clang 14 and it actuall works there. Amazing. Zed A. Shaw 2024-10-13 14:01:18 -0400