@@ -3,16 +3,16 @@ | |||
PROJNAME = swan | |||
PROJTYPE = exe | |||
SRCS = src/Body.cc src/Chunk.cc src/Game.cc src/main.cc src/Player.cc src/WorldPlane.cc | |||
HDRS = src/Body.h src/Chunk.h src/common.h src/Game.h src/Player.h src/Tile.h src/WorldPlane.h | |||
SRCS = src/main.cc | |||
HDRS = | |||
OBJS = $(patsubst src/%,$(BUILD)/obj/%.o,$(SRCS)) | |||
DEPS = $(patsubst src/%,$(BUILD)/dep/%.d,$(SRCS)) | |||
PUBLICHDRS = | |||
# Defaults | |||
PKGS = | |||
EXTRADEPS = | |||
EXTRAPUBLICDEPS = | |||
EXTRADEPS = libswan/src/Body.cc libswan/src/Chunk.cc libswan/src/Game.cc libswan/src/Mod.cc libswan/src/Player.cc libswan/src/World.cc libswan/src/WorldPlane.cc libswan/include/swan/Chunk.h libswan/include/swan/Game.h libswan/include/swan/Player.h libswan/include/swan/WorldPlane.h libswan/include/swan/World.h libswan/include/swan/common.h libswan/include/swan/Tile.h libswan/include/swan/Mod.h libswan/include/swan/Body.h | |||
EXTRAPUBLICDEPS = libswan/include/swan/Chunk.h libswan/include/swan/Game.h libswan/include/swan/Player.h libswan/include/swan/WorldPlane.h libswan/include/swan/World.h libswan/include/swan/common.h libswan/include/swan/Tile.h libswan/include/swan/Mod.h libswan/include/swan/Body.h | |||
CONFIG ?= release | |||
BUILDDIR ?= build | |||
BUILD ?= $(BUILDDIR)/$(CONFIG) | |||
@@ -26,12 +26,12 @@ CONFIGS = release sanitize debug | |||
PKG_CONFIG ?= pkg-config | |||
AR ?= ar | |||
CCOPTS = -Iinclude | |||
CCOPTS = -Iinclude -isystem libswan/include | |||
CCOPTS_release = -O2 -flto | |||
CCOPTS_debug = -g | |||
CCOPTS_sanitize = -fsanitize=address -fsanitize=undefined $(CCOPTS_debug) | |||
LDOPTS = | |||
LDOPTS = -Llibswan/build/$(CONFIG) | |||
LDOPTS_release = -flto | |||
LDOPTS_debug = | |||
LDOPTS_sanitize = -fsanitize=address -fsanitize=undefined $(LDOPTS_debug) | |||
@@ -58,7 +58,7 @@ CFLAGS := $(CCOPTS_$(CONFIG)) $(CCOPTS) $(WARNINGS) $(CFLAGS) | |||
CXXFLAGS := $(CCOPTS_$(CONFIG)) $(CCOPTS) $(WARNINGS) $(CXXFLAGS) | |||
LDFLAGS := $(LDOPTS_$(CONFIG)) $(LDOPTS) $(LDFLAGS) | |||
$(BUILD)/$(PROJNAME): $(OBJS) | |||
$(BUILD)/$(PROJNAME): libswan/build/$(CONFIG)/.built $(OBJS) | |||
@mkdir -p $(@D) | |||
$(call runpfx,'(LD)',$(CC) -o $@ $(OBJS) $(LDFLAGS)) | |||
touch $(BUILD)/.built | |||
@@ -67,6 +67,9 @@ $(PROJNAME): $(BUILD)/$(PROJNAME) | |||
cp $< $@ | |||
@echo '(OK)' Created $@. | |||
libswan/build/$(CONFIG)/.built: libswan/src/Body.cc libswan/src/Chunk.cc libswan/src/Game.cc libswan/src/Mod.cc libswan/src/Player.cc libswan/src/World.cc libswan/src/WorldPlane.cc libswan/include/swan/Chunk.h libswan/include/swan/Game.h libswan/include/swan/Player.h libswan/include/swan/WorldPlane.h libswan/include/swan/World.h libswan/include/swan/common.h libswan/include/swan/Tile.h libswan/include/swan/Mod.h libswan/include/swan/Body.h | |||
$(call runpfx,'(SUB)',$(MAKE) -C libswan) | |||
$(BUILD)/obj/%.c.o: src/%.c $(EXTRAPUBLICDEPS) | |||
@mkdir -p $(@D) | |||
$(call runpfx,'(CC)',$(CC) -o $@ -c $< $(CFLAGS)) | |||
@@ -86,18 +89,22 @@ install: $(BUILD)/$(PROJNAME) | |||
mkdir -p $(DESTDIR)$(PREFIX)/bin | |||
cp -f $^ $(DESTDIR)$(PREFIX)/bin | |||
chmod 755 $(DESTDIR)$(PREFIX)/bin/$(PROJNAME) | |||
$(MAKE) -C libswan install | |||
.PHONY: uninstall | |||
uninstall: | |||
rm -f $(DESTDIR)$(PREFIX)/bin/$(PROJNAME) | |||
$(MAKE) -C libswan uninstall | |||
.PHONY: clean | |||
clean: | |||
rm -rf $(PROJNAME) $(BUILD) | |||
$(MAKE) -C libswan clean | |||
.PHONY: cleanall | |||
cleanall: | |||
rm -rf $(BUILDDIR) | |||
$(MAKE) -C libswan cleanall | |||
.PHONY: dumpdeps | |||
dumpdeps: |
@@ -1,3 +1,5 @@ | |||
PROJNAME = swan | |||
PROJTYPE = exe | |||
PKGS = sfml-all | |||
LDFLAGS += -lstdc++ | |||
LDOPTS += -lstdc++ -ldl -lswan -Wl,--rpath=libswan/build/$(CONFIG) | |||
DEPENDS = libswan |
@@ -0,0 +1 @@ | |||
/build |
@@ -0,0 +1,123 @@ | |||
# Makefile generated by smake. | |||
PROJNAME = core.mod | |||
PROJTYPE = solib | |||
SRCS = src/mod.cc | |||
HDRS = | |||
OBJS = $(patsubst src/%,$(BUILD)/obj/%.o,$(SRCS)) | |||
DEPS = $(patsubst src/%,$(BUILD)/dep/%.d,$(SRCS)) | |||
PUBLICHDRS = | |||
# Defaults | |||
PKGS = | |||
EXTRADEPS = ../libswan/src/Body.cc ../libswan/src/Chunk.cc ../libswan/src/Game.cc ../libswan/src/Mod.cc ../libswan/src/Player.cc ../libswan/src/World.cc ../libswan/src/WorldPlane.cc ../libswan/include/swan/Chunk.h ../libswan/include/swan/Game.h ../libswan/include/swan/Player.h ../libswan/include/swan/WorldPlane.h ../libswan/include/swan/World.h ../libswan/include/swan/common.h ../libswan/include/swan/Tile.h ../libswan/include/swan/Mod.h ../libswan/include/swan/Body.h | |||
EXTRAPUBLICDEPS = ../libswan/include/swan/Chunk.h ../libswan/include/swan/Game.h ../libswan/include/swan/Player.h ../libswan/include/swan/WorldPlane.h ../libswan/include/swan/World.h ../libswan/include/swan/common.h ../libswan/include/swan/Tile.h ../libswan/include/swan/Mod.h ../libswan/include/swan/Body.h | |||
CONFIG ?= release | |||
BUILDDIR ?= build | |||
BUILD ?= $(BUILDDIR)/$(CONFIG) | |||
WARNINGS = -Wall -Wextra -Wno-unused-parameter | |||
SMAKEFILE ?= Smakefile | |||
DESTDIR ?= | |||
PREFIX ?= /usr/local | |||
PHONIES = dumpdeps dumppublicdeps dumpprojtype clean cleanall | |||
CONFIGS = release sanitize debug | |||
PKG_CONFIG ?= pkg-config | |||
AR ?= ar | |||
CCOPTS = -Iinclude -fPIC -isystem ../libswan/include | |||
CCOPTS_release = -O2 -flto | |||
CCOPTS_debug = -g | |||
CCOPTS_sanitize = -fsanitize=address -fsanitize=undefined $(CCOPTS_debug) | |||
LDOPTS = -L../libswan/build/$(CONFIG) | |||
LDOPTS_release = -flto | |||
LDOPTS_debug = | |||
LDOPTS_sanitize = -fsanitize=address -fsanitize=undefined $(LDOPTS_debug) | |||
runpfx = @echo $(1) $(2) && $(2) | |||
.PHONY: all | |||
all: $(BUILD)/$(PROJNAME).so | |||
-include $(SMAKEFILE) | |||
ifeq ($(filter $(CONFIGS),$(CONFIG)),) | |||
ifeq ($(filter cleanall,$(MAKECMDGOALS)),) | |||
$(error Unknown config '$(CONFIG)'. Supported configs: $(CONFIGS)) | |||
endif | |||
endif | |||
ifneq ($(PKGS),) | |||
CCOPTS += $(shell $(PKG_CONFIG) --cflags $(PKGS)) | |||
LDOPTS += $(shell $(PKG_CONFIG) --libs $(PKGS)) | |||
endif | |||
CFLAGS := $(CCOPTS_$(CONFIG)) $(CCOPTS) $(WARNINGS) $(CFLAGS) | |||
CXXFLAGS := $(CCOPTS_$(CONFIG)) $(CCOPTS) $(WARNINGS) $(CXXFLAGS) | |||
LDFLAGS := $(LDOPTS_$(CONFIG)) $(LDOPTS) $(LDFLAGS) | |||
$(BUILD)/$(PROJNAME).so: ../libswan/build/$(CONFIG)/.built $(OBJS) $(EXTRADEPS) | |||
@mkdir -p $(@D) | |||
$(call runpfx,'(LD)',$(CC) -o $@ $(OBJS) -shared $(LDLAGS)) | |||
touch $(BUILD)/.built | |||
@echo '(OK)' Created $@. | |||
../libswan/build/$(CONFIG)/.built: ../libswan/src/Body.cc ../libswan/src/Chunk.cc ../libswan/src/Game.cc ../libswan/src/Mod.cc ../libswan/src/Player.cc ../libswan/src/World.cc ../libswan/src/WorldPlane.cc ../libswan/include/swan/Chunk.h ../libswan/include/swan/Game.h ../libswan/include/swan/Player.h ../libswan/include/swan/WorldPlane.h ../libswan/include/swan/World.h ../libswan/include/swan/common.h ../libswan/include/swan/Tile.h ../libswan/include/swan/Mod.h ../libswan/include/swan/Body.h | |||
$(call runpfx,'(SUB)',$(MAKE) -C ../libswan) | |||
$(BUILD)/obj/%.c.o: src/%.c $(EXTRAPUBLICDEPS) | |||
@mkdir -p $(@D) | |||
$(call runpfx,'(CC)',$(CC) -o $@ -c $< $(CFLAGS)) | |||
$(BUILD)/obj/%.cc.o: src/%.cc $(EXTRAPUBLICDEPS) | |||
@mkdir -p $(@D) | |||
$(call runpfx,'(CXX)',$(CXX) -o $@ -c $< $(CXXFLAGS)) | |||
$(BUILD)/dep/%.c.d: src/%.c $(HDRS) | |||
@mkdir -p $(@D) | |||
$(call runpfx,'(DEP)',$(CC) -o $@ -MM $< -MT $(patsubst src/%,$(BUILD)/obj/%.o,$<) $(CFLAGS)) | |||
$(BUILD)/dep/%.cc.d: src/%.cc $(HDRS) | |||
@mkdir -p $(@D) | |||
$(call runpfx,'(DEP)',$(CXX) -o $@ -MM $< -MT $(patsubst src/%,$(BUILD)/obj/%.o,$<) $(CXXFLAGS)) | |||
.PHONY: install | |||
install: $(BUILD)/$(PROJNAME).so | |||
mkdir -p $(DESTDIR)$(PREFIX)/lib | |||
cp -f $^ $(DESTDIR)$(PREFIX)/lib | |||
chmod 755 $(DESTDIR)$(PREFIX)/lib/$(PROJNAME).so | |||
mkdir -p $(DESTDIR)$(PREFIX)/include | |||
cp -rf include/* $(DESTDIR)$(PREFIX)/include | |||
$(MAKE) -C ../libswan install | |||
.PHONY: uninstall | |||
uninstall: | |||
rm -f $(DESTDIR)$(PREFIX)/lib/$(PROJNAME).so | |||
rm -rf $(patsubst include/%,$(DESTDIR)$(PREFIX)/include/%,$(wildcard include/*)) | |||
$(MAKE) -C ../libswan uninstall | |||
.PHONY: clean | |||
clean: | |||
rm -rf $(PROJNAME) $(BUILD) | |||
$(MAKE) -C ../libswan clean | |||
.PHONY: cleanall | |||
cleanall: | |||
rm -rf $(BUILDDIR) | |||
$(MAKE) -C ../libswan cleanall | |||
.PHONY: dumpdeps | |||
dumpdeps: | |||
@echo $(addprefix $(PREPEND),$(SRCS) $(HDRS) $(EXTRADEPS)) | |||
.PHONY: dumppublicdeps | |||
dumppublicdeps: | |||
@echo $(addprefix $(PREPEND),$(PUBLICHDRS) $(EXTRAPUBLICDEPS)) | |||
.PHONY: dumpprojtype | |||
dumpprojtype: | |||
@echo $(PROJTYPE) | |||
ifeq ($(filter $(PHONIES),$(MAKECMDGOALS)),) | |||
-include $(DEPS) | |||
endif |
@@ -0,0 +1,3 @@ | |||
PROJNAME = core.mod | |||
PROJTYPE = solib | |||
DEPENDS = ../libswan |
@@ -0,0 +1,14 @@ | |||
#include <swan/Mod.h> | |||
#include <swan/Game.h> | |||
extern "C" void mod_init(Swan::Mod &mod) { | |||
mod.init("core"); | |||
mod.registerTile("test1", Swan::Tile()); | |||
mod.registerTile("test2", Swan::Tile()); | |||
} | |||
int main() { | |||
Swan::Mod mod; | |||
mod.init("core"); | |||
} |
@@ -0,0 +1 @@ | |||
/build |
@@ -0,0 +1,116 @@ | |||
# Makefile generated by smake. | |||
PROJNAME = libswan | |||
PROJTYPE = solib | |||
SRCS = src/Body.cc src/Chunk.cc src/Game.cc src/Mod.cc src/Player.cc src/World.cc src/WorldPlane.cc | |||
HDRS = include/swan/Chunk.h include/swan/Game.h include/swan/Player.h include/swan/WorldPlane.h include/swan/World.h include/swan/common.h include/swan/Tile.h include/swan/Mod.h include/swan/Body.h | |||
OBJS = $(patsubst src/%,$(BUILD)/obj/%.o,$(SRCS)) | |||
DEPS = $(patsubst src/%,$(BUILD)/dep/%.d,$(SRCS)) | |||
PUBLICHDRS = include/swan/Chunk.h include/swan/Game.h include/swan/Player.h include/swan/WorldPlane.h include/swan/World.h include/swan/common.h include/swan/Tile.h include/swan/Mod.h include/swan/Body.h | |||
# Defaults | |||
PKGS = | |||
EXTRADEPS = | |||
EXTRAPUBLICDEPS = | |||
CONFIG ?= release | |||
BUILDDIR ?= build | |||
BUILD ?= $(BUILDDIR)/$(CONFIG) | |||
WARNINGS = -Wall -Wextra -Wno-unused-parameter | |||
SMAKEFILE ?= Smakefile | |||
DESTDIR ?= | |||
PREFIX ?= /usr/local | |||
PHONIES = dumpdeps dumppublicdeps dumpprojtype clean cleanall | |||
CONFIGS = release sanitize debug | |||
PKG_CONFIG ?= pkg-config | |||
AR ?= ar | |||
CCOPTS = -Iinclude -fPIC | |||
CCOPTS_release = -O2 -flto | |||
CCOPTS_debug = -g | |||
CCOPTS_sanitize = -fsanitize=address -fsanitize=undefined $(CCOPTS_debug) | |||
LDOPTS = | |||
LDOPTS_release = -flto | |||
LDOPTS_debug = | |||
LDOPTS_sanitize = -fsanitize=address -fsanitize=undefined $(LDOPTS_debug) | |||
runpfx = @echo $(1) $(2) && $(2) | |||
.PHONY: all | |||
all: $(BUILD)/$(PROJNAME).so | |||
-include $(SMAKEFILE) | |||
ifeq ($(filter $(CONFIGS),$(CONFIG)),) | |||
ifeq ($(filter cleanall,$(MAKECMDGOALS)),) | |||
$(error Unknown config '$(CONFIG)'. Supported configs: $(CONFIGS)) | |||
endif | |||
endif | |||
ifneq ($(PKGS),) | |||
CCOPTS += $(shell $(PKG_CONFIG) --cflags $(PKGS)) | |||
LDOPTS += $(shell $(PKG_CONFIG) --libs $(PKGS)) | |||
endif | |||
CFLAGS := $(CCOPTS_$(CONFIG)) $(CCOPTS) $(WARNINGS) $(CFLAGS) | |||
CXXFLAGS := $(CCOPTS_$(CONFIG)) $(CCOPTS) $(WARNINGS) $(CXXFLAGS) | |||
LDFLAGS := $(LDOPTS_$(CONFIG)) $(LDOPTS) $(LDFLAGS) | |||
$(BUILD)/$(PROJNAME).so: $(OBJS) $(EXTRADEPS) | |||
@mkdir -p $(@D) | |||
$(call runpfx,'(LD)',$(CC) -o $@ $(OBJS) -shared $(LDLAGS)) | |||
touch $(BUILD)/.built | |||
@echo '(OK)' Created $@. | |||
$(BUILD)/obj/%.c.o: src/%.c $(EXTRAPUBLICDEPS) | |||
@mkdir -p $(@D) | |||
$(call runpfx,'(CC)',$(CC) -o $@ -c $< $(CFLAGS)) | |||
$(BUILD)/obj/%.cc.o: src/%.cc $(EXTRAPUBLICDEPS) | |||
@mkdir -p $(@D) | |||
$(call runpfx,'(CXX)',$(CXX) -o $@ -c $< $(CXXFLAGS)) | |||
$(BUILD)/dep/%.c.d: src/%.c $(HDRS) | |||
@mkdir -p $(@D) | |||
$(call runpfx,'(DEP)',$(CC) -o $@ -MM $< -MT $(patsubst src/%,$(BUILD)/obj/%.o,$<) $(CFLAGS)) | |||
$(BUILD)/dep/%.cc.d: src/%.cc $(HDRS) | |||
@mkdir -p $(@D) | |||
$(call runpfx,'(DEP)',$(CXX) -o $@ -MM $< -MT $(patsubst src/%,$(BUILD)/obj/%.o,$<) $(CXXFLAGS)) | |||
.PHONY: install | |||
install: $(BUILD)/$(PROJNAME).so | |||
mkdir -p $(DESTDIR)$(PREFIX)/lib | |||
cp -f $^ $(DESTDIR)$(PREFIX)/lib | |||
chmod 755 $(DESTDIR)$(PREFIX)/lib/$(PROJNAME).so | |||
mkdir -p $(DESTDIR)$(PREFIX)/include | |||
cp -rf include/* $(DESTDIR)$(PREFIX)/include | |||
.PHONY: uninstall | |||
uninstall: | |||
rm -f $(DESTDIR)$(PREFIX)/lib/$(PROJNAME).so | |||
rm -rf $(patsubst include/%,$(DESTDIR)$(PREFIX)/include/%,$(wildcard include/*)) | |||
.PHONY: clean | |||
clean: | |||
rm -rf $(PROJNAME) $(BUILD) | |||
.PHONY: cleanall | |||
cleanall: | |||
rm -rf $(BUILDDIR) | |||
.PHONY: dumpdeps | |||
dumpdeps: | |||
@echo $(addprefix $(PREPEND),$(SRCS) $(HDRS) $(EXTRADEPS)) | |||
.PHONY: dumppublicdeps | |||
dumppublicdeps: | |||
@echo $(addprefix $(PREPEND),$(PUBLICHDRS) $(EXTRAPUBLICDEPS)) | |||
.PHONY: dumpprojtype | |||
dumpprojtype: | |||
@echo $(PROJTYPE) | |||
ifeq ($(filter $(PHONIES),$(MAKECMDGOALS)),) | |||
-include $(DEPS) | |||
endif |
@@ -0,0 +1,4 @@ | |||
PROJNAME = libswan | |||
PROJTYPE = solib | |||
PKGS = sfml-all | |||
CCOPTS += -Iinclude/swan |
@@ -0,0 +1,26 @@ | |||
#pragma once | |||
#include <vector> | |||
#include <map> | |||
#include <string> | |||
#include "common.h" | |||
#include "World.h" | |||
#include "Mod.h" | |||
namespace Swan { | |||
class Game { | |||
public: | |||
std::vector<Mod> registered_mods_; | |||
World *world_; | |||
void loadMod(const std::string &path); | |||
void draw(Win &win); | |||
void update(float dt); | |||
void tick(); | |||
}; | |||
} |
@@ -0,0 +1,23 @@ | |||
#pragma once | |||
#include <stdint.h> | |||
#include <string> | |||
#include <vector> | |||
#include "Tile.h" | |||
namespace Swan { | |||
class Mod { | |||
public: | |||
using ModID = uint32_t; | |||
std::string name_; | |||
std::vector<Tile> tiles_; | |||
bool inited_ = false;; | |||
void init(const std::string &name); | |||
void registerTile(const std::string &name, const Tile &tile); | |||
}; | |||
} |
@@ -1,6 +1,7 @@ | |||
#pragma once | |||
#include <stdint.h> | |||
#include <string> | |||
namespace Swan { | |||
@@ -8,7 +9,7 @@ class Tile { | |||
public: | |||
using TileID = uint16_t; | |||
Tile(std::string name); | |||
std::string name_; | |||
}; | |||
} |
@@ -1,26 +1,27 @@ | |||
#pragma once | |||
#include <vector> | |||
#include <map> | |||
#include <string> | |||
#include "common.h" | |||
#include "WorldPlane.h" | |||
#include "Player.h" | |||
#include "Tile.h" | |||
#include "WorldPlane.h" | |||
#include "WorldPlane.h" | |||
#include "Tile.h" | |||
namespace Swan { | |||
class Game { | |||
class World { | |||
public: | |||
Player *player_; | |||
WorldPlane *current_plane_; | |||
std::vector<WorldPlane *> planes_; | |||
std::vector<Tile> registered_tiles_; | |||
std::map<std::string, Tile::TileID> tile_id_map_; | |||
void registerTile(std::string &name, Tile &tile); | |||
Tile::TileID getTileID(std::string &name); | |||
Tile::TileID getTileID(const std::string &name) { | |||
return tile_id_map_[name]; | |||
} | |||
void draw(Win &win); | |||
void update(float dt); |
@@ -0,0 +1,31 @@ | |||
#include "Game.h" | |||
#include <dlfcn.h> | |||
namespace Swan { | |||
void Game::loadMod(const std::string &path) { | |||
registered_mods_.push_back(Mod()); | |||
Mod &mod = registered_mods_.back(); | |||
void *dl = dlopen(path.c_str(), RTLD_LAZY); | |||
void (*mod_init)(Mod &) = (void (*)(Mod &))dlsym(dl, "mod_init"); | |||
mod_init(mod); | |||
} | |||
void Game::draw(Win &win) { | |||
if (world_) | |||
world_->draw(win); | |||
} | |||
void Game::update(float dt) { | |||
if (world_) | |||
world_->update(dt); | |||
} | |||
void Game::tick() { | |||
if (world_) | |||
world_->tick(); | |||
} | |||
} |
@@ -0,0 +1,22 @@ | |||
#include "Mod.h" | |||
#include <stdio.h> | |||
namespace Swan { | |||
void Mod::init(const std::string &name) { | |||
name_ = name; | |||
inited_ = true; | |||
fprintf(stderr, "Mod initing: %s\n", name_.c_str()); | |||
} | |||
void Mod::registerTile(const std::string &name, const Tile &tile) { | |||
tiles_.push_back(tile); | |||
Tile &t = tiles_.back(); | |||
t.name_ = name_ + "::" + name; | |||
fprintf(stderr, "Mod %s added tile %s.\n", name_.c_str(), t.name_.c_str()); | |||
} | |||
} |
@@ -0,0 +1,24 @@ | |||
#include "World.h" | |||
namespace Swan { | |||
void World::draw(Win &win) { | |||
for (WorldPlane *plane: planes_) | |||
plane->draw(win); | |||
player_->draw(win); | |||
} | |||
void World::update(float dt) { | |||
for (WorldPlane *plane: planes_) | |||
plane->update(dt); | |||
player_->update(dt); | |||
} | |||
void World::tick() { | |||
for (WorldPlane *plane: planes_) | |||
plane->tick(); | |||
} | |||
} |
@@ -1,34 +0,0 @@ | |||
#include "Game.h" | |||
namespace Swan { | |||
void Game::registerTile(std::string &name, Tile &tile) { | |||
Tile::TileID id = registered_tiles_.size(); | |||
registered_tiles_.push_back(tile); | |||
tile_id_map_[name] = id; | |||
} | |||
Tile::TileID Game::getTileID(std::string &name) { | |||
return tile_id_map_[name]; | |||
} | |||
void Game::draw(Win &win) { | |||
for (WorldPlane *plane: planes_) | |||
plane->draw(win); | |||
player_->draw(win); | |||
} | |||
void Game::update(float dt) { | |||
for (WorldPlane *plane: planes_) | |||
plane->update(dt); | |||
player_->update(dt); | |||
} | |||
void Game::tick() { | |||
for (WorldPlane *plane: planes_) | |||
plane->tick(); | |||
} | |||
} |
@@ -2,9 +2,10 @@ | |||
#include <time.h> | |||
#include <unistd.h> | |||
#include "common.h" | |||
#include "Player.h" | |||
#include "Game.h" | |||
#include <swan/common.h> | |||
#include <swan/Player.h> | |||
#include <swan/World.h> | |||
#include <swan/Game.h> | |||
using namespace Swan; | |||
@@ -29,9 +30,12 @@ int main() { | |||
Win win = { window, transform }; | |||
Game game; | |||
game.player_ = new Player(Vec2(1, 1)); | |||
game.current_plane_ = new WorldPlane(); | |||
game.planes_.push_back(game.current_plane_); | |||
game.world_ = new World(); | |||
game.world_->player_ = new Player(Vec2(1, 1)); | |||
game.world_->current_plane_ = new WorldPlane(); | |||
game.world_->planes_.push_back(game.world_->current_plane_); | |||
game.loadMod("core.mod/build/release/core.mod.so"); | |||
double prevtime = getTime(); | |||
double fpsAcc = 0; |