Commit graph

63 commits

Author SHA1 Message Date
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
Zed A. Shaw
3519c73079 Remove some more junk from the texture thing. 2025-01-27 10:25:49 -05:00
Zed A. Shaw
b87217ff90 Have a barely working animation thing that animates the evil eye when you click a button. 2025-01-27 05:40:04 -05:00
Zed A. Shaw
51c1e04f61 Made some progress on the refactoring but I need to start getting serious and not reworking this code to death. 2025-01-26 19:22:27 -05:00
Zed A. Shaw
6ed57cd4a8 Closer to what I want for sprite loading but still needs more work. 2025-01-25 12:19:14 -05:00
Zed A. Shaw
51858ea399 Made a terrible animation sprite and then did a quick animation test. Won't keep it for now but this shows how it could work. 2025-01-25 12:02:57 -05:00
Zed A. Shaw
0882851b3f Switching back to 256px textures for most things, but the weapon works best as a 512px. 2025-01-25 08:29:01 -05:00
Zed A. Shaw
5e6f95513c Tried out 512px tiles and sprites and they actually look like crap. They just look like bad textures not better painted. With 256 they look nicely pixelated. 2025-01-25 07:46:57 -05:00
Zed A. Shaw
ad38f575a3 Now the sprites are rendered in the 3d scene with just SFML sprites. 2025-01-23 11:24:06 -05:00
Zed A. Shaw
da7075864b Now have a basic sprite system that uses SFML's sprites, but the algorithm for determining how much of a sprite to display is wrong. Need to use the alternate algorithm from LODE's tutorial that draws sprites after rendering. 2025-01-23 02:42:43 -05:00
Zed A. Shaw
5305aea077 Fixed up the floor and ceiling textures to not have seams. 2025-01-22 06:17:28 -05:00
Zed A. Shaw
c98aa936ad The tracy directory now has an experiment in getting Tracy to work. It's _not_ as easy as it is touted to be. 2025-01-19 12:58:05 -05:00
Zed A. Shaw
ea3dd204a1 Tweaking the build to turn on various debug options in GCC and enable -Wall -Werror on only our executable configs because turning them on globally causes most of the dependencies to fail. One thing to note is if you try to move the -D_GLIBCXX options from the project() to the executable() then you get segfaults inside the libc++ and other places. This is because the ABI changes when you enable these options, so you have to recompile _all_ dependencies with these options. 2025-01-19 04:02:42 -05:00
Zed A. Shaw
53a151511e Make it so that DNEBUG is forced on release build, and that the UI stats counter will show that this is a debug build or not via NDEBUG. 2025-01-18 03:18:44 -05:00
Zed A. Shaw
cf9682ed70 Bring in the gnu omni font for text, and rewrite my stats code to use c++ and then use that to calc FPS stats for an FPS display on the left. Debug build gets about 48, release gets about 500fps. Amit's code will probably do even better. 2025-01-18 02:42:41 -05:00
Zed A. Shaw
7a74877849 Fixed that crash and cleaned up more variables for some study next. I might also try out my debug macros. 2025-01-18 00:44:25 -05:00
Zed A. Shaw
105c974f1c This converts it to SFML 3.0 but the build only runs on Windows at the moment. 2025-01-17 15:10:03 -05:00
Zed A. Shaw
f88eca9cd9 Implemented a dumb lighting system. 2025-01-17 12:03:49 -05:00
Zed A. Shaw
adfb6367d7 Finished the first pass of moving everything around and cleaning up as much as possible. 2025-01-17 03:45:05 -05:00
Zed A. Shaw
2dfe5417b1 More cleaning of the Raycaster class to have no #defines for variables. Now it can be arbitrarily sized and positioned. 2025-01-16 12:19:33 -05:00