Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
No results found
Show changes
Commits on Source (2)
...@@ -15,6 +15,10 @@ bin/ ...@@ -15,6 +15,10 @@ bin/
# Libraries # Libraries
libs/ libs/
# Doctest generated files
*.gcna
*.gcdo
# Build directory # Build directory
build/ build/
......
...@@ -4,8 +4,12 @@ ...@@ -4,8 +4,12 @@
#include <iostream> #include <iostream>
#include <cstdint> #include <cstdint>
#ifndef __TEST_RUNNER__ #ifdef __TEST_RUNNER__
#ifndef DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
#endif // DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
#include "doctest.h"
#include "testlist.hpp"
#endif // __TEST_RUNNER__ #endif // __TEST_RUNNER__
...@@ -15,6 +19,7 @@ enum GenerationMethod ...@@ -15,6 +19,7 @@ enum GenerationMethod
Cave Cave
}; };
#include "maths/maths.h"
#include "save-manager.h" #include "save-manager.h"
#include "game-state.h" #include "game-state.h"
#include "world-hex-2d.h" #include "world-hex-2d.h"
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
#include <cmath> #include <cmath>
class Vec2 class Vec2
{ {
public: public:
......
...@@ -34,7 +34,8 @@ TEST_MAIN = DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN ...@@ -34,7 +34,8 @@ TEST_MAIN = DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
TEST_FLAG = __TEST_RUNNER__ TEST_FLAG = __TEST_RUNNER__
TEST_DEFINES = -D$(TEST_MAIN) -D$(TEST_FLAG) TEST_DEFINES = -D$(TEST_MAIN) -D$(TEST_FLAG)
TEST_TARGET = $(BIN_DIR)/test_runner TEST_TARGET = $(BIN_DIR)/test_runner
TEST_DIR = test TEST_HEADER = lib/doctest
TEST_DIR = tests
TEST_BUILD_DIR = $(BUILD_DIR)/.test TEST_BUILD_DIR = $(BUILD_DIR)/.test
# Executable directory # Executable directory
...@@ -54,8 +55,9 @@ TEST_FILES = $(wildcard $(TEST_DIR)/**/*.test.cpp $(TEST_DIR)/*.test.cpp) ...@@ -54,8 +55,9 @@ TEST_FILES = $(wildcard $(TEST_DIR)/**/*.test.cpp $(TEST_DIR)/*.test.cpp)
# Object files # Object files
OBJ_FILES = $(patsubst $(SRC_DIR)/%.cpp,$(BUILD_DIR)/%.o,$(SRC_FILES)) OBJ_FILES = $(patsubst $(SRC_DIR)/%.cpp,$(BUILD_DIR)/%.o,$(SRC_FILES))
TEST_OBJ_FILES = $(patsubst $(TEST_DIR)/%.test.cpp,$(TEST_BUILD_DIR)/%.test.o,$(TEST_FILES)) TEST_OBJ_FILES = $(patsubst $(TEST_DIR)/%.test.hpp,$(TEST_BUILD_DIR)/%.test.o,$(TEST_FILES))
TEST_SRC_OBJ_FILES = $(patsubst $(SRC_DIR)/%.cpp,$(TEST_BUILD_DIR)/%.src.o,$(SRC_FILES)) TEST_SRC_OBJ_FILES = $(patsubst $(SRC_DIR)/%.cpp,$(TEST_BUILD_DIR)/%.src.o,$(SRC_FILES))
# TEST_SRC_OBJ_FILES = $(patsubst $(SRC_DIR)/%.cpp,$(TEST_BUILD_DIR)/%.src.o,$(SRC_FILES))
# Output executable # Output executable
TARGET = $(BIN_DIR)/game TARGET = $(BIN_DIR)/game
...@@ -63,20 +65,21 @@ TARGET = $(BIN_DIR)/game ...@@ -63,20 +65,21 @@ TARGET = $(BIN_DIR)/game
all: $(TARGET) all: $(TARGET)
test: $(TEST_TARGET) test: $(TEST_TARGET)
./$(TEST_TARGET)
$(TARGET): $(OBJ_FILES) $(TARGET): $(OBJ_FILES)
$(CXX) $(CXXFLAGS) -o $(TARGET) $(OBJ_FILES) $(SDL_LIBRARY) $(SDL_OPTIONS) $(CXX) $(CXXFLAGS) -o $(TARGET) $(OBJ_FILES) $(SDL_LIBRARY) $(SDL_OPTIONS)
$(TEST_TARGET): $(TEST_OBJ_FILES) $(TEST_SRC_OBJ_FILES) $(TEST_TARGET): $(TEST_OBJ_FILES) $(TEST_SRC_OBJ_FILES)
$(CXX) $(CXXFLAGS) -o $(TARGET) $(TEST_OBJ_FILES) $(TEST_SRC_OBJ_FILES) $(SDL_LIBRARY) $(SDL_OPTIONS) $(CXX) $(CXXFLAGS) -o $(TEST_TARGET) $(TEST_OBJ_FILES) $(TEST_SRC_OBJ_FILES) $(SDL_LIBRARY) $(SDL_OPTIONS)
$(TEST_BUILD_DIR)/%.src.o: $(SRC_DIR)/%.cpp ${INC_DIR}/%.h $(TEST_BUILD_DIR)/%.src.o: $(SRC_DIR)/%.cpp ${INC_DIR}/%.h
@mkdir -p $(@D) @mkdir -p $(@D)
$(CXX) $(CXXFLAGS) $(TEST_DEFINES) $(LDFLAGS) -I$(INC_DIR) -c -o $@ $< $(CXX) $(CXXFLAGS) $(TEST_DEFINES) $(LDFLAGS) -I$(INC_DIR) -I$(TEST_HEADER) -I$(TEST_DIR) -c -o $@ $<
$(TEST_BUILD_DIR)/%.test.o: $(SRC_DIR)/%.test.cpp $(TEST_BUILD_DIR)/%.test.o: $(SRC_DIR)/%.test.hpp $(SRC_DIR)/%.cpp ${INC_DIR}/%.h
@mkdir -p $(@D) @mkdir -p $(@D)
$(CXX) $(CXXFLAGS) $(TEST_DEFINES) $(LDFLAGS) -I$(INC_DIR) -c -o $@ $< $(CXX) $(CXXFLAGS) $(TEST_DEFINES) $(LDFLAGS) -I$(INC_DIR) -I$(TEST_HEADER) -c -o $@ $<
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.cpp ${INC_DIR}/%.h $(BUILD_DIR)/%.o: $(SRC_DIR)/%.cpp ${INC_DIR}/%.h
@mkdir -p $(@D) @mkdir -p $(@D)
...@@ -85,7 +88,7 @@ $(BUILD_DIR)/%.o: $(SRC_DIR)/%.cpp ${INC_DIR}/%.h ...@@ -85,7 +88,7 @@ $(BUILD_DIR)/%.o: $(SRC_DIR)/%.cpp ${INC_DIR}/%.h
clean: clean:
rm -rf $(TEST_BUILD_DIR)/* $(TEST_TARGET) rm -rf $(TEST_BUILD_DIR)/* $(TEST_TARGET)
rm -rf $(BIN_DIR)/* $(BUILD_DIR)/* rm -rf $(BIN_DIR)/* $(BUILD_DIR)/*
rm -rf ./*~ ./*.swp rm -rf ./*~ ./*.swp ./*.gcno
rm -rf *~ rm -rf *~
run: $(TARGET) run: $(TARGET)
......
#include "world-map-3d.h"
WorldMap3D::WorldMap3D()
:WorldMap3D( 5, 5, 5 )
{}
WorldMap3D::WorldMap3D(
uint8_t width,
uint8_t height,
uint8_t depth
) : _width(width), _height(height), _depth(depth),
_logger( Logger::instance() )
{
this->_logger.info( "Creating new world" );
this->generateWorld();
}
WorldMap3D::~WorldMap3D(){
this->_logger.info( "Cleaning world" );
// Clean Chunk Map
for( const auto& [keyX, value1] : this->chunks_)
{
for( const auto& [keyY, value2] : value1)
{
for( const auto& [keyZ, chunk] : value2)
{ delete chunk; }
}
}
}
Chunk* WorldMap3D::getChunk(int chunkX, int chunkY, int chunkZ)
{
auto chX = chunks_.find( chunkX );
if( chX != chunks_.end() )
{
auto chY = chX->second.find( chunkY );
if( chY != chX->second.end() )
{
auto chZ = chY->second.find( chunkZ );
if( chZ != chY->second.end() )
{ return chZ->second; }
}
}
return nullptr;
}
void WorldMap3D::generateWorld()
{
this->_logger.info( "Generating initial world" );
for( uint8_t x = 0; x < this->_width; x++ )
{
for( uint8_t y = 0; y < this->_height; y++ )
{
for( uint8_t z = 0; z < this->_depth; z++ )
{
Chunk* chunk = new Chunk( x, y, z );
this->chunks_[z][y][x] = chunk;
}
}
}
}
#include <iostream>
#include "doctest.h"
std::cout << "Test" << std::endl;
#include <iostream>
#include "doctest.h"
#include "maths/vec2.h"
TEST_CASE( "Testing Operator Comparisons" ) {
Vec2 a( 1, 5 );
Vec2 b( 2, 4 );
SUBCASE( "Addition" )
{
Vec2 c = a + b;
CHECK( c.x == 3 );
CHECK( c.y == 9 );
}
SUBCASE( "Subtraction" )
{
Vec2 c = a - b;
CHECK( c.x == -1 );
CHECK( c.y == 1 );
}
}
#ifndef __TESTLIST_INCLUDES__
#define __TESTLIST_INCLUDES__
#include "maths/vec2.test.hpp"
#endif // __TESTLIST_INCLUDES__