summaryrefslogtreecommitdiff
path: root/src/level.cpp
AgeCommit message (Collapse)Author
2022-04-01Add a game timerHEADmastercflip
This adds a delta time that ensures that everything moves at the same speed regardless of framerate or system.
2022-03-30Store train objects in a unique_ptrcflip
The trains were being destructed after leaving the scope of the addVehicle function. This change makes sure the trains stay allocated for the entire lifetime of the level. Fixes #2
2022-03-29Fix sprite sorting when rendering the levelcflip
This fixes a misuse of std::find_if and vector iterators. Previously, the first vehicle in the currently drawing tile would be drawn, and then every other vehicle would be drawn regardless of position.
2022-03-29Return a reference instead of a pointer in addVehicle()cflip
2022-03-26Add missing #includes for find_if and ceilcflip
2022-03-26Implement sprite depth sortingcflip
This algorithm draws the level in two passes; the ground and rail tiles are drawn first, then the train cars and walls. This method isn't perfect, but it'll do for now.
2022-03-24Add a header to the level file formatcflip
2022-03-24Create new trains on right click instead of moving the existing traincflip
2022-03-23Simplify track sprite lookupcflip
2022-03-23Prevent oversized levels from savingcflip
The current level format uses bytes to store the width and height, so levels that are larger than that are not allowed to be saved. I don't think that the game will need levels larger than 255x255, but if it does then the level format can be updated.
2022-03-23Reallocate tilemap on level loadcflip
This prevents some issues with loading levels that are larger than the current one.
2022-03-21Implement simple level saving and loadingcflip
For now, it just reads and writes the width, height, and tile data to 'level.non'
2022-03-21Add a basic wall tilecflip
2022-03-06Create new tile byte formatcflip
Track tiles now have their direction information stored in the high 4 bits of the tile byte, creating a clearer separation between the type of tile and other persistent data. This will make the code more managable for adding new tile types and with the new macros and enums the code is much easier to read and understand.
2022-03-03Keep list of all vehicles in Level classcflip
Newly created vehicles are now to be added to the Level, which automatically updates and renders them. This infrastructure will be needed for depth sorting and eventually level saving.
2022-02-27Add highlight on hovered tilescflip
2022-02-27Miscellaneous code cleanupcflip
2022-02-27Add ClangFormat configurationcflip
2022-01-29refactor: adjust the project infra. (#1)Jun Zhang
* refactor: adjust the project infra. This patch adds cmake build system to the project, and adjust infrastructure stuff. Signed-off-by: Jun Zhang <jun@junz.org> * fix: remove compiler flags that only exist in GCC. Signed-off-by: Jun Zhang <jun@junz.org>