Commit graph

  • 40611d4d54 Crop the map sprite so it's not bigger than necessary. Zed A. Shaw 2025-07-08 22:54:59 -04:00
  • 04b3cf3f16 Now have a sprite sheet with tiles expanded to fill the cell, but other sprites reduced to 80% and centered in the cell. Zed A. Shaw 2025-07-08 13:26:43 -04:00
  • d6e2b64140 icongen now makes a sprite sheet for the map which should be easier to work with. Zed A. Shaw 2025-07-08 13:09:39 -04:00
  • dbc2000434 Started a map icon gen tool that will load the fonts and create tile sprites for everything I use. Zed A. Shaw 2025-07-08 00:55:45 -04:00
  • 056b0b307b Implemented a little screenshot tool. Zed A. Shaw 2025-07-08 00:55:24 -04:00
  • f64b202ee7 Finally have inventory not crashing for most edge cases. This solves many bugs but mostly closes #58. Zed A. Shaw 2025-07-07 13:25:17 -04:00
  • 601f3331ed As an experiment, disable copy and move of the StatusUI. Zed A. Shaw 2025-07-06 23:59:06 -04:00
  • cd89625c96 Just need one function for the 'hold_item' action. Zed A. Shaw 2025-07-06 23:35:17 -04:00
  • 265e53e05a Simple fix, and honestly I should eliminate this whole thing and use one unified event system. Closes #1. Zed A. Shaw 2025-07-06 12:05:28 -04:00
  • af3568154a Just had to grab the sprite, duh. Closes #3. Zed A. Shaw 2025-07-06 11:36:30 -04:00
  • 1baf90a776 Easy fix, just set aiming_at in the camera position. Closes #57. Zed A. Shaw 2025-07-05 12:04:07 -04:00
  • a26f0b0c0a Player's aim is now updated constantly as they move, just need to solve #57 to complete it. Closes #9. Zed A. Shaw 2025-07-05 11:18:26 -04:00
  • 584c4e9f67 Make the AIM_CLICK handler in FSM properly deal with an item already there while looting or not. Closes #56. Zed A. Shaw 2025-07-03 22:26:06 -04:00
  • 87e69bebde There was a memory corruption bug in remove() because I get a reference to the slot string, then remove it from by_entity, but that deletes the string so then later using it to remove by_slot silently fails because map.erase() silently fails. Closes. #54. Zed A. Shaw 2025-07-03 13:07:04 -04:00
  • 970905fcd5 Make the player's inventory just a regular entity attached to the player.entity. Zed A. Shaw 2025-07-02 23:55:06 -04:00
  • 2421a33bb0 Swapping and putting back now work in the status_ui inventory, but now I need to refactor so this operation works on any inventory::Model. Zed A. Shaw 2025-07-02 23:24:06 -04:00
  • 784f753e72 Standardized on using only DinkyECS:Entity for most inventory:::Model operations, then create swap based on the same entities. Zed A. Shaw 2025-07-02 14:25:44 -04:00
  • 8c8d6dc9e7 Clean things up before solving the move problem. Zed A. Shaw 2025-07-02 10:51:23 -04:00
  • 6576164fad Give a healing potion too for testing. Zed A. Shaw 2025-07-02 10:49:05 -04:00
  • b6d1ae2700 Move the management of the 'fake loose items container' into the loot_ui.cpp rather than get rid of it. Closes #34. Zed A. Shaw 2025-07-01 14:26:39 -04:00
  • efdb0cb119 Just use get_if here instead. Zed A. Shaw 2025-07-01 14:26:01 -04:00
  • 8bbafc4d10 Raycaster now keeps track of the square we are aimed but _does not_ know what is there, that's the job of other things like MainUI. Closes #50. Zed A. Shaw 2025-06-30 12:36:00 -04:00
  • 0d79ce35b3 Every sprite's dimensions are now taken from their config rather than a global. Closes #42. Zed A. Shaw 2025-06-30 11:00:01 -04:00
  • a418b48e94 Don't re-run the whole next level thing on every spawned item. Closes #48 Zed A. Shaw 2025-06-30 10:38:53 -04:00
  • b28b76ee2d Ritual blanket now has its own internal id but I'm sort of thinking it needs to be more like inventory::Model. Closes #47. Zed A. Shaw 2025-06-30 10:15:22 -04:00
  • cad51f4908 Use RGBA for the uint32_t color pixels. Closes #49. Zed A. Shaw 2025-06-29 11:53:17 -04:00
  • ab1a415b55 Refactored the CameraLOL to be inside the rayview instead of a convolute main_ui->camera->rayview and back. Closes #16. Zed A. Shaw 2025-06-29 11:11:12 -04:00
  • 75c28cd764 Fixed a few places. Closes #11 Zed A. Shaw 2025-06-28 23:30:41 -04:00
  • b603ef5a3f Forgot to update the level in the RitualUI so nothing actually worked. Closes #41. Zed A. Shaw 2025-06-28 23:17:36 -04:00
  • 6a0725e401 Simply re-init the overlay on new level. Closes #14. Zed A. Shaw 2025-06-28 22:39:46 -04:00
  • 02c42eb042 System::distribute_loot now manages setting up loot junk and does a new entity instead of reusing old ones, that allows System::death to do a coorect world->destroy() on the dead thing. Closes #46. Zed A. Shaw 2025-06-28 13:19:07 -04:00
  • 6437bd3b54 Now have a 'destroy' method that removes everything related to an entity. Closes #18. Zed A. Shaw 2025-06-28 12:47:17 -04:00
  • 7602fb0b31 Not using Weapon anymore. Zed A. Shaw 2025-06-28 11:53:48 -04:00
  • 57d69015c2 Renamed to random_walk since that's what it called. Closes #26. Zed A. Shaw 2025-06-28 11:38:06 -04:00
  • 769530b45c Now standardized on GameConfig everywhere I can. Closes #28. Zed A. Shaw 2025-06-28 11:32:58 -04:00
  • b0204772c7 Need to not transition out of END if the slot clicked is empty. Closes #45 Zed A. Shaw 2025-06-28 11:09:37 -04:00
  • 19682fd0bc Add the frame width/height to SpriteTexture. Closes #13 Zed A. Shaw 2025-06-27 01:21:50 -04:00
  • ea92dcc3c4 Change from ENEMY_SPAWN to ENTITY_SPAWN since that's what it does. Closes #31 Zed A. Shaw 2025-06-26 23:22:22 -04:00
  • fcd1bc589c Make a function to access overlay cells Closes #35. Zed A. Shaw 2025-06-26 23:17:53 -04:00
  • f668ff6b7a First round of cleanup. dnd_loot. Zed A. Shaw 2025-06-25 14:28:35 -04:00
  • 689bb150c6 I think that's all the edge cases handled. You can more loot around fairly arbitrarily. Zed A. Shaw 2025-06-24 14:00:14 -04:00
  • 6ff1919587 Cleaned up the move operation more so that I can use it in the other places that I need it. Zed A. Shaw 2025-06-24 13:23:55 -04:00
  • f559b5a39d Fixed the problem where the only way to complete a grab/drop operation was to capture the MOUSE_CLICK directly. Solution was to move the mouse processing out of DNDLoot and only handle the MOUSE_MOVE/DRAG. Zed A. Shaw 2025-06-24 11:33:37 -04:00
  • 6a72d1160f When things die you get their things. Zed A. Shaw 2025-06-23 01:50:43 -04:00
  • fb064ffbf1 Loot boxes now have ritual items and you can click on them, or the enemy just dies. Zed A. Shaw 2025-06-23 01:33:09 -04:00
  • 3c5021e4c9 So far most of the bugs are solved but there's still some edge cases in the inventory dance. Zed A. Shaw 2025-06-22 23:54:50 -04:00
  • e0588847fa Tracked down the bug that was caused by picking up an item but not removing its Position in the world, so when you go to another level it gets brought back to life causing a dupe. Zed A. Shaw 2025-06-22 12:50:09 -04:00
  • 2c6565c40a Kind of jank but the old functionality is back, and now needs to move to loot ui dealing with any container. Zed A. Shaw 2025-06-21 11:01:12 -04:00
  • 812407c3df Now the loot UI can work with any container and only uses an ECS id to work, not have its own contents. Zed A. Shaw 2025-06-21 10:51:45 -04:00
  • a0eff927b6 Big BIG refactor to make inventory use a model that's placed into the world, following a more sane MVC style. Zed A. Shaw 2025-06-20 13:17:12 -04:00
  • 119b3ed11d Can now drag an item out of inventory and drop on the ground, then pick it back up, and put it in a loot container, and then back again. Still buggy but working for now. Zed A. Shaw 2025-06-19 00:45:22 -04:00
  • 68e50342e5 Can now drag an item out of inventory and drop it. Zed A. Shaw 2025-06-18 11:26:38 -04:00
  • 87459d41bb Add the buttons I'll need for the next round of development. Zed A. Shaw 2025-06-17 12:46:17 -04:00
  • dfd3118d04 Make the transitions more solid by having an open/close set of functions to maintain cleaning up internal state. Zed A. Shaw 2025-06-17 12:24:11 -04:00
  • 029a0f86ae Drag now show the icon while you're dragging, so now need to work out all of the edge cases for each action. Zed A. Shaw 2025-06-17 11:50:03 -04:00
  • ca74b817e5 You can grab stuff off the ground and put in your inventory but it doesn't show the sprite while you do it yet. Zed A. Shaw 2025-06-15 00:12:46 -04:00
  • cd02507023 Make a function that handles the mouse events for everything since those are very similar. Zed A. Shaw 2025-06-14 22:56:23 -04:00
  • d99d9a68c8 Tried to use Ragel to create state machines but its lacking an incremental mode and doesn't do any logging of state activity so debugging is harder. Put it in scratchpad for reference though. Zed A. Shaw 2025-06-14 12:34:27 -04:00
  • 7fc32b0248 Trying out Ragel's state machine generation as an alternative to the DinkyFSM style. Zed A. Shaw 2025-06-14 00:43:40 -04:00
  • 9468990f76 DNDLoot works now, just had to fix a problem with the constructor. Zed A. Shaw 2025-06-13 10:46:05 -04:00
  • 82ee8f68f7 Created a separate FSM for the DND functionality that compiles but need to wire it in to work. Zed A. Shaw 2025-06-13 00:57:45 -04:00
  • 1ab708c4eb Clean up more of the FSM so that it's almost nothing.Now I'll try to make a stand-alone 'dnd' state machine to handle drag and drop functionality. Zed A. Shaw 2025-06-12 22:51:58 -04:00
  • 06a843f169 Autowalker does some basic item pickup now, just for testing. Zed A. Shaw 2025-06-12 20:12:13 -04:00
  • af933c827a Have a separate container vs. item loot for the different situations where you're pick items out of a container vs. an item on the ground. Zed A. Shaw 2025-06-12 19:41:32 -04:00
  • 7db64b73c5 Made some notes for the next bit of work. Zed A. Shaw 2025-06-12 13:45:54 -04:00
  • 7b0bac4f59 You now click on things to interact with them. Zed A. Shaw 2025-06-12 13:24:25 -04:00
  • 2aa4f0a2e8 Finally can pick things up, but it's really bad so far. Need a bunch of refactoring in how the collision system works, and make it so collision and maps can have multiple entities in the same square. Zed A. Shaw 2025-06-12 13:06:36 -04:00
  • 2458f01ebd Loot UI now opens when you can loot something, but it's still buggy and doesn't always show the stuff. Zed A. Shaw 2025-06-12 00:10:21 -04:00
  • 86eabed3db Now when you loot an item the loot UI works. Zed A. Shaw 2025-06-11 23:49:37 -04:00
  • 38159a5f84 Fix the window coordinates so that you can resize. Zed A. Shaw 2025-06-11 00:56:41 -04:00
  • d6c5a89251 Fix the last few loot bugs before actually implementing the data model for inventory and loot. Zed A. Shaw 2025-06-10 22:58:57 -04:00
  • 4a48910273 There's a UISystem now for to compliment the entities and components in GUECS. I now use that to do the drag/drop transfers instead of raw code right in the FSM. Zed A. Shaw 2025-06-10 13:13:40 -04:00
  • e01e697535 Move now works better, and the API is a lot cleaner. Now just need to make it not crash. Zed A. Shaw 2025-06-10 11:12:04 -04:00
  • be7b86a913 Mostly refactored out the common things for drag/drop so now just to refine how it's used and bring back moving the sprite around. Zed A. Shaw 2025-06-10 00:52:38 -04:00
  • 570b70ab0c More of the drag/drop is handled by the GrabSource/DropTarget components. Zed A. Shaw 2025-06-09 23:59:44 -04:00
  • 7a551cf83a Remove commit_drop from status and loot UI since DropTarget already does that. Zed A. Shaw 2025-06-09 22:57:49 -04:00
  • 343f3a246f Cleaned up and unified the source before the big refactor. Zed A. Shaw 2025-06-09 22:31:15 -04:00
  • 0d6a71b06f Fixed a couple little bugs in the state so now can refactor out the dnd code. Zed A. Shaw 2025-06-09 22:18:13 -04:00
  • 2a6b892e7f Can now round-trip a torch from loot to inventory and back. Zed A. Shaw 2025-06-09 14:02:26 -04:00
  • 4b0d76bbcc Even better API, but still not the best organization. This will let me implement both sides, then I can pull it out and try to generalize it into a few guecs components. Zed A. Shaw 2025-06-08 23:55:59 -04:00
  • 3e0adf0c22 Better meaning API on both sides for the drag-n-drop operations, but I _swear_ there's a way to do this in the GrabSource/DropTarget instead. Zed A. Shaw 2025-06-08 23:27:43 -04:00
  • 47c219b86e Disable inventory select for now until I can get drag-n-drop formalized better. Zed A. Shaw 2025-06-08 22:15:25 -04:00
  • e1c2869d1c Sometimes we click too fast in the router to just handle it in IDLE. Zed A. Shaw 2025-06-08 22:06:12 -04:00
  • 461ad03d27 Taking things from the LootUI to the StatusUI works way better now and there's a DropTarget to match the GrabSource. Zed A. Shaw 2025-06-08 00:37:30 -04:00
  • 842aac3127 Worked out an initial stab at a GrabSource for drag-n-drop or just simple grabbing things in the UI. Zed A. Shaw 2025-06-07 15:29:18 -04:00
  • 94385b195d Mostly worked out how to do looting but now need how to take out of inventory and put into loot. Zed A. Shaw 2025-06-07 00:11:29 -04:00
  • c509162be1 The event router is working well and I can do drag-n-drop but I'll have to rethink where to use it. Zed A. Shaw 2025-06-05 23:31:38 -04:00
  • 5aa54d875f Initial first steps in pulling the SFML event processing out of the gui::fsm so that I can handle more complex things like drag and drop. Zed A. Shaw 2025-06-05 01:23:52 -04:00
  • 0674908e49 Implemented an initial cut at the event router. Its job is to take the random events from SFML and translate them into nice clean orderly events to the Gui::FSM. Zed A. Shaw 2025-06-04 12:19:24 -04:00
  • 5c47a0151c Basic loot UI mostly working. Each time you open there's a torch and you can place it visually on any slot on your character. Zed A. Shaw 2025-06-03 13:43:16 -04:00
  • 4b34de2109 Initial loot UI works to load an item by its world entity ID. Zed A. Shaw 2025-06-02 23:34:31 -04:00
  • f208ca946e Made the components module work like textures and sound so that there's just one constant map of components. Zed A. Shaw 2025-06-02 23:33:59 -04:00
  • ab391aaa97 Have a plan for the new inventory and looting system, now have to implement it. Temporarily you can't pick anything up, but it will go away. Zed A. Shaw 2025-06-02 00:58:16 -04:00
  • b8d2d1870d Clean up the debug UI so that it's not using the jank debug component I didn't use anyway. Zed A. Shaw 2025-06-01 11:10:25 -04:00
  • e8199a973c Fix up the healing potion so it looks more like a healing potion. Zed A. Shaw 2025-05-30 22:31:03 -04:00
  • d2a5dfa713 Rooms are now styled randomly based on assets/styles.json which will evolve into specifications for themes of levels and rooms in them plus other configs. Zed A. Shaw 2025-05-30 20:35:17 -04:00
  • e45de2a2cf The config now prints a way better error message if you give it a bad file to use. Zed A. Shaw 2025-05-30 19:53:53 -04:00
  • dc8648016d Refactor the way assets are laid out in the assets/ dir and then have a build script that can automatically pixelate/posterize images that I save, saving me tons of time. Zed A. Shaw 2025-05-30 17:49:15 -04:00
  • 3dc70c3af6 This implements base ambient lighting for tiles which helps with tiles like lava and ceiling lights. Zed A. Shaw 2025-05-29 12:34:25 -04:00
  • 74a1801069 More scripts for converting and pixelating images for the game. Zed A. Shaw 2025-05-29 12:31:59 -04:00