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/
# Libraries
libs/
# Doctest generated files
*.gcna
*.gcdo
# Build directory
build/
......
......@@ -4,8 +4,12 @@
#include <iostream>
#include <cstdint>
#ifndef __TEST_RUNNER__
#ifdef __TEST_RUNNER__
#ifndef 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__
......@@ -15,6 +19,7 @@ enum GenerationMethod
Cave
};
#include "maths/maths.h"
#include "save-manager.h"
#include "game-state.h"
#include "world-hex-2d.h"
......
......@@ -3,6 +3,7 @@
#include <cmath>
class Vec2
{
public:
......
......@@ -34,7 +34,8 @@ TEST_MAIN = DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
TEST_FLAG = __TEST_RUNNER__
TEST_DEFINES = -D$(TEST_MAIN) -D$(TEST_FLAG)
TEST_TARGET = $(BIN_DIR)/test_runner
TEST_DIR = test
TEST_HEADER = lib/doctest
TEST_DIR = tests
TEST_BUILD_DIR = $(BUILD_DIR)/.test
# Executable directory
......@@ -54,8 +55,9 @@ TEST_FILES = $(wildcard $(TEST_DIR)/**/*.test.cpp $(TEST_DIR)/*.test.cpp)
# Object 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))
# Output executable
TARGET = $(BIN_DIR)/game
......@@ -63,20 +65,21 @@ TARGET = $(BIN_DIR)/game
all: $(TARGET)
test: $(TEST_TARGET)
./$(TEST_TARGET)
$(TARGET): $(OBJ_FILES)
$(CXX) $(CXXFLAGS) -o $(TARGET) $(OBJ_FILES) $(SDL_LIBRARY) $(SDL_OPTIONS)
$(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
@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)
$(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
@mkdir -p $(@D)
......@@ -85,7 +88,7 @@ $(BUILD_DIR)/%.o: $(SRC_DIR)/%.cpp ${INC_DIR}/%.h
clean:
rm -rf $(TEST_BUILD_DIR)/* $(TEST_TARGET)
rm -rf $(BIN_DIR)/* $(BUILD_DIR)/*
rm -rf ./*~ ./*.swp
rm -rf ./*~ ./*.swp ./*.gcno
rm -rf *~
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__