Commit graph

82 commits

Author SHA1 Message Date
Zed A. Shaw
a0b785cb2a Hunt-and-kill algorithm rocks. It handles everything I need for map gen, including spawn points, room placement, and the maze like map. 2025-05-19 01:40:23 -04:00
Zed A. Shaw
abea6da2e0 More GUECS cleanup before releasing. Still need to sort out events and reduce the amount of stuff that GUECS needs. 2025-05-04 23:28:36 -04:00
Zed A. Shaw
4c03fe1ed3 Make the raycaster 'highlight' things you point at. 2025-04-25 23:17:31 -04:00
Zed A. Shaw
787be78a69 Now I can attach arbitrary shaders to sprites based on things that happen in the world. 2025-04-20 00:09:56 -04:00
Zed A. Shaw
1b4f55804c The flame shader now only turns on when facing an enemy. Next is tagging enemies with specific shaders to apply at a specific time. 2025-04-16 00:02:27 -04:00
Zed A. Shaw
5ffa3b0d1e Everyone is on fire temporarily. 2025-04-15 19:34:39 -04:00
Zed A. Shaw
19b9a4affd The reload mechanism for shaders is a bit better, but still to make them unique. 2025-04-14 13:16:19 -04:00
Zed A. Shaw
766b20f3f8 Rayview now uses the shader manager. 2025-04-13 22:31:13 -04:00
Zed A. Shaw
35ced58cc9 Shaders now are managed by a manger that can do hot reloading and it also will detect a bad shader and use an ERROR shader so you know it's busted visually. 2025-04-13 17:11:21 -04:00
Zed A. Shaw
a5b8e411e3 I can now apply shaders to any GUI element, but I need a shader manager that will allow for hot reloading and tracking input/output variables. 2025-04-13 15:17:08 -04:00
Zed A. Shaw
c7c48658bd Lots of dumb little edits to sort out what I'm aiming at. I'll next clean out most of this in a refactor. 2025-04-06 15:32:19 -04:00
Zed A. Shaw
6c9016eb0f After some prototyping I have what I think I want for the map. Just a simple piece of paper you take out that has the ASCII map on it. 2025-03-21 02:51:02 -04:00
Zed A. Shaw
0a40135f5d Throw in the distance to mess with it later. 2025-03-19 22:34:56 -04:00
Zed A. Shaw
a6d83db20c Fixed up dbc.cpp so now just use it everywhere. I next need to find a way to pass that to format automatically. 2025-03-17 23:53:58 -04:00
Zed A. Shaw
8b414c13e6 Animations now can have a stationary option which tries to keep them 'in place' while growing, effectively removing the forward motion. 2025-03-04 12:12:27 -05:00
Zed A. Shaw
033358749f Animations now have an easing/ease_rate setting that will do a dynamic scaling effect on them during the animation sequence. 2025-03-01 00:24:19 -05:00
Zed A. Shaw
14c7f660de Level traversal works better now, compass is accurate, and direction is maintained when you traverse. 2025-02-26 10:39:30 -05:00
Zed A. Shaw
54fbf22b6d We can go down a level and there's a loading screen for it. The map and motion now matches the directions shown in the raycasting. There's now a compass that shows you the direction you're facing. 2025-02-25 13:15:39 -05:00
Zed A. Shaw
5179709e3c Performance check showed that I was checking every sprite even if they're way far away so now just do ones near-ish. 2025-02-25 00:56:54 -05:00
Zed A. Shaw
29e6d45dc6 Level traversal works, but it's very immediate. Next is a little 'confirm level' modal and a transition screen. 2025-02-24 23:26:50 -05:00
Zed A. Shaw
fa6311f10c Add an ability to mark the main UI dirty so that it forces a render at specific times. 2025-02-22 23:26:47 -05:00
Zed A. Shaw
83df9ff03b Super awesome twitchy animation for axe guy. 2025-02-22 11:03:38 -05:00
Zed A. Shaw
80a0f2ba75 Basic simple animations where the enemies just move forward. 2025-02-22 01:36:31 -05:00
Zed A. Shaw
b43553a563 Major speed up in rendering by only doing it when we move, but drawing the rendered 3d view texture constantly. 2025-02-21 11:34:46 -05:00
Zed A. Shaw
0260e3d345 Textures and sprites are now managed by a single module in textures.hpp, and even though it is a _single_ location to access all sprites it is NOT a singleton. Those are illegal. 2025-02-21 03:32:44 -05:00
Zed A. Shaw
f3e1413022 Intermediate refactor to move everything over to using the textures module rather than everyone using one TexturePack thing. 2025-02-21 03:00:56 -05:00
Zed A. Shaw
3b9525cca4 Enemies now turn into a lootable device witha grave_stone sprite so you know they died. Need to implement noclipping on items with collision. 2025-02-19 23:18:33 -05:00
Zed A. Shaw
49a71e257e GUI for combat now works better and I can create sprites for things if I want. 2025-02-18 11:28:55 -05:00
Zed A. Shaw
deb235dbc5 This gets the project to compile on OSX with Clang 16 (OSX version 14.7.x) but there's missing libraries for the linking stage. 2025-02-17 05:26:47 -05:00
Zed A. Shaw
9b3b81683a Separate out the major UIs to get ready for their development, and enable debug button. 2025-02-13 10:55:45 -05:00
Zed A. Shaw
90351ce0fe The lighting now uses the original grid based lighting calculations rather than a global single source from the player. 2025-02-11 13:31:39 -05:00
Zed A. Shaw
6bca6d021e Sprite is now a component we can place on anything to render it. 2025-02-10 12:58:24 -05:00
Zed A. Shaw
9c37960283 Raycaster mostly cleaned up. Only thing I can think of is bringing in CameraLOL as the coordinates directly. 2025-02-10 12:05:07 -05:00
Zed A. Shaw
2de4b43914 Remove this formula comment. #NOTE 2025-02-10 11:34:35 -05:00
Zed A. Shaw
51972b0c35 Converted all the variable names from Lode's tutorial style to the one I use in prep for some review and cleanup. 2025-02-10 11:32:50 -05:00
Zed A. Shaw
a4c13f7fc9 Maps are back and have color now. TileCell needs a rework. 2025-02-09 14:57:19 -05:00
Zed A. Shaw
3986e6978e Sprites now have a distance lighting calculation that's the same as the raycaster using a shader. 2025-02-07 13:50:50 -05:00
Zed A. Shaw
a19bc47904 FINALLY fix that stupid bug. The cause was two-fold: I was giving every 'enemy' a sprite, but that automatically included the player in the list of enemies, which meant that I was rendering the player's sprite while moving. Then in the sprite casting loop I was rendering things at 0. 2025-02-07 11:05:15 -05:00
Zed A. Shaw
4b18b21861 Movement is more correct now since it uses the System::motion to do it for the player, which will always keep all the things updated. I also put placeholder barrels for all the non-combatant entities in the map. Finally, it still has the backup bug and now won't close when you close the window. 2025-02-05 20:26:09 -05:00
Zed A. Shaw
14128ab10f Now have enemies chasing us around and implemented diagonal movement as a test but I kind of like it. 2025-02-05 14:16:31 -05:00
Zed A. Shaw
d5301acab5 Sprite is no more, now using the position from the level's world. 2025-02-05 11:46:40 -05:00
Zed A. Shaw
d0badedbd9 More cleanup of the raycaster, finally removed the window as a dependency but I went against making it an sf::Drawable since that had a lot of code quality problems. 2025-02-04 22:52:04 -05:00
Zed A. Shaw
d6c09e111d Raycaster now has wall collision so won't go through walls. Next step is to render all the sprites being places and then implement the Systems. 2025-02-04 14:13:00 -05:00
Zed A. Shaw
75ffb49a53 Clean up header includes. 2025-02-04 13:26:22 -05:00
Zed A. Shaw
1d3a76e5ee Refactored out main.cpp to be a separate gui and using an FSM to keep the turn based nature straight. 2025-02-04 12:56:20 -05:00
Zed A. Shaw
976822ceb6 Mostly working junk camera that can do turnbased lerp smooth motion. 2025-02-03 10:17:59 -05:00
Zed A. Shaw
cbf0955786 Raycaster now controls the sprite locations with SpatialMap rather than the old way. Quick hack job in main.cpp that shows how they can move too. 2025-02-01 14:39:08 -05:00
Zed A. Shaw
a67d25ee10 Tiles now record their textures and this is loaded from the map then converted to an indexed integer on the fly. 2025-01-31 13:37:01 -05:00
Zed A. Shaw
56d67aba28 First hack to get a random gen map going. 2025-01-30 13:23:12 -05:00
Zed A. Shaw
071808a0f8 Playing around with shaders for effects on the scene. 2025-01-27 11:36:00 -05:00