commit 70df359ea31855cd50993c09c26986887cc62807 Author: muirrum Date: Fri Jan 26 18:28:34 2024 +0000 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..378eac2 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +build diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..c6f50a0 --- /dev/null +++ b/Makefile @@ -0,0 +1,49 @@ +TARGET_EXEC := cppmud + +BUILD_DIR := ./build +SRC_DIRS := ./src + +# Find all the C and C++ files we want to compile +# Note the single quotes around the * expressions. The shell will incorrectly expand these otherwise, but we want to send the * directly to the find command. +SRCS := $(shell find $(SRC_DIRS) -name '*.cpp' -or -name '*.c' -or -name '*.s') + +# Prepends BUILD_DIR and appends .o to every src file +# As an example, ./your_dir/hello.cpp turns into ./build/./your_dir/hello.cpp.o +OBJS := $(SRCS:%=$(BUILD_DIR)/%.o) + +# String substitution (suffix version without %). +# As an example, ./build/hello.cpp.o turns into ./build/hello.cpp.d +DEPS := $(OBJS:.o=.d) + +# Every folder in ./src will need to be passed to GCC so that it can find header files +INC_DIRS := $(shell find $(SRC_DIRS) -type d) +# Add a prefix to INC_DIRS. So moduleA would become -ImoduleA. GCC understands this -I flag +INC_FLAGS := $(addprefix -I,$(INC_DIRS)) + +# The -MMD and -MP flags together generate Makefiles for us! +# These files will have .d instead of .o as the output. +CPPFLAGS := $(INC_FLAGS) -MMD -MP + +# The final build step. +$(BUILD_DIR)/$(TARGET_EXEC): $(OBJS) + $(CXX) $(OBJS) -o $@ $(LDFLAGS) + +# Build step for C source +$(BUILD_DIR)/%.c.o: %.c + mkdir -p $(dir $@) + $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@ + +# Build step for C++ source +$(BUILD_DIR)/%.cpp.o: %.cpp + mkdir -p $(dir $@) + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ + + +.PHONY: clean +clean: + rm -r $(BUILD_DIR) + +# Include the .d makefiles. The - at the front suppresses the errors of missing +# Makefiles. Initially, all the .d files will be missing, and we don't want those +# errors to show up. +-include $(DEPS) diff --git a/src/include/player.hpp b/src/include/player.hpp new file mode 100644 index 0000000..27ea020 --- /dev/null +++ b/src/include/player.hpp @@ -0,0 +1,106 @@ +/* + * ===================================================================================== + * + * Filename: player.hpp + * + * Description: Describing players + * + * Version: 1.0 + * Created: 01/26/2024 06:03:40 PM + * Revision: none + * Compiler: gcc + * + * Author: YOUR NAME (), + * Organization: + * + * ===================================================================================== + */ + + +/* + * ===================================================================================== + * Class: GameObject + * Description: Represents some thing in the game + * ===================================================================================== + */ +class GameObject +{ + public: + /* ==================== LIFECYCLE ======================================= */ + GameObject (); /* constructor */ + + /* ==================== ACCESSORS ======================================= */ + + /* ==================== MUTATORS ======================================= */ + + /* ==================== OPERATORS ======================================= */ + + protected: + /* ==================== DATA MEMBERS ======================================= */ + std::string location; + std::string name; + + private: + /* ==================== DATA MEMBERS ======================================= */ + +}; /* ----- end of class GameObject ----- */ + + +/* + * ===================================================================================== + * Class: Entity + * Description: Describes a "sentient" object in the game + * ===================================================================================== + */ +class Entity : public GameObject +{ + public: + /* ==================== LIFECYCLE ======================================= */ + Entity (); /* constructor */ + + /* ==================== ACCESSORS ======================================= */ + + /* ==================== MUTATORS ======================================= */ + + /* ==================== OPERATORS ======================================= */ + + protected: + /* ==================== DATA MEMBERS ======================================= */ + int hp; /* hit points remaining */ + int level; /* level, affects scaling */ + + + + private: + /* ==================== DATA MEMBERS ======================================= */ + +}; /* ----- end of class Player ----- */ + + +/* + * ===================================================================================== + * Class: Item + * Description: Represents a non-sentient object in the game + * ===================================================================================== + */ +class Item : public GameObject +{ + public: + /* ==================== LIFECYCLE ======================================= */ + Item (); /* constructor */ + + /* ==================== ACCESSORS ======================================= */ + + /* ==================== MUTATORS ======================================= */ + + /* ==================== OPERATORS ======================================= */ + + protected: + /* ==================== DATA MEMBERS ======================================= */ + + + private: + /* ==================== DATA MEMBERS ======================================= */ + +}; /* ----- end of class Item ----- */ + diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..7adc8d6 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,7 @@ +#include +#include + +int main() { + printf("Hello, world!\n"); + return 0; +}