Fixed is a strong word - I hacked around a strange problem I was encountering where Jam would always fail to scan libraries for object dependencies. This would result in library rebuilds every time Jam was run, which is super shitty.
Now, jam will leave the .o files alongside the .a files so it doesn't have to scan the archive. This isn't a true fix, but it gets the job done.
Building when you've only changed a few files is now massively faster. I also found out how to enable parallel compiliation, so even full rebuilds are much quicker ('jam -j4').
- Added PlanComponentManager, which is still WIP but at a stage where it could be used in Galavant-Unreal
- Removed all functions with (void) because apparently that's just a C thing (what I use I work) and is discouraged in C++
- Removed some #ifdef include guards in favor of #pragma once
- Put some earlier code into the Galavant gv namespace
- Fixed a small bug in EntityTypes.cpp where EntityListAppend() was actually prepending (oops!)
- Started writing WorldState. This class is likely to see lots of refactoring
- Tried some geo stuff out in BuildingSystem
I experimented with creating a grid-based kit. I'm no artist, so it looks pretty bad. It's a little tough to imagine what it'd look like in game still, so I'm going to need to art it up a bit to get a better idea.
- Got rid of TaskArguments struct because it wasn't buying me anything. If the planner has to access it in order to function it negates its purpose
- Added const to Task virtual functions so that future users know when they can change state etc.
- Pulled the stack/stackless planning code into separate functions. I'm a little unhappy with the amount of code duplication and maintainability issues with having to always change two different places. Maybe I'll eventually get around to fixing it
- PlanStep() now pays full attention to the user's Break* settings. This means you can (with proper settings) complete a whole plan with a single PlanStep(). You can also make it break after basically every single action if necessary. I'm guessing this feature will never be used :(. I wrote a test for this as wel.
- Added Catch to make my formalize my Unit Testing code. It's very convenient and has nice output :)
- Added some helper functions for PlanStep() to eliminate some copypasta. I'll likely be doing more of this
I fixed the bug I was talking about in the previous commit, so it appears all the stack schenanigans are gone. I am still unsure why the bug was occurring, which is perhaps more unsettling than the bug itself.
Added printing Tasks and lists of them, which eases debugging.
- I tested writing Flatbuffers binaries out to JSON, which is cool.
- I made some changes to the ECS interface, added EntityList helpers, and implemented a simple pooled component manager.
- Note that ObjectPool is unfinished, and may be discarded (I'm having troubles coming up with a way to do handles).
- I decided to add Flatbuffers in its entirety to Galavant. I feel confident that it will work for all of my data serialization needs. Here's to hoping this doesn't bite me in the ass later.
- Wrote an awful experiment involving flatbuffers to get a feel for how to use the library
- Updated the readme with links and information about Jam
- Jamfiles now reference eachother and all use Jamrules for compilation variables. Building from the root galavant/ now deposits libs and bins to root galavant/lib and galavant/bin, which is much more organized. So far, only experiments are built to bin (as Galavant is supposed to be a lib only)