Rename a bunch of functions
This commit is contained in:
parent
e15d225346
commit
d0b4c74690
23 changed files with 156 additions and 149 deletions
|
@ -7,7 +7,7 @@ Actor::Actor(Tilemap * map, vec2i pos) {
|
|||
position = pos;
|
||||
}
|
||||
|
||||
const vec2i Actor::getPosition() {
|
||||
const vec2i Actor::get_position() {
|
||||
return position;
|
||||
}
|
||||
|
||||
|
@ -21,7 +21,7 @@ bool Actor::Move(int dx, int dy) {
|
|||
return false;
|
||||
}
|
||||
|
||||
void Actor::Update() {
|
||||
void Actor::update() {
|
||||
if (!alive) return;
|
||||
|
||||
if (bt) {
|
||||
|
|
|
@ -27,12 +27,12 @@ public:
|
|||
|
||||
|
||||
Actor(Tilemap* map, vec2i pos);
|
||||
const vec2i getPosition();
|
||||
const vec2i get_position();
|
||||
bool IsAlive(){ return alive; };
|
||||
bool Move(int dx, int dy);
|
||||
int GetHealth() { return health; }
|
||||
void Kill() { alive = false; health = 0; };
|
||||
void Update();
|
||||
void update();
|
||||
virtual bool isTypeOf(Actors actor){ return actor == ACT_BASE; };
|
||||
virtual Actors Type() { return ACT_BASE; };
|
||||
~Actor();
|
||||
|
|
10
src/App.cpp
10
src/App.cpp
|
@ -50,8 +50,8 @@ bool App::init() {
|
|||
return false;
|
||||
}
|
||||
|
||||
renderer->SetVSyncEnabled(vsync);
|
||||
renderer->SetWireframesEnabled(wireframe);
|
||||
renderer->set_vsync_enabled(vsync);
|
||||
renderer->set_wireframes_enabled(wireframe);
|
||||
|
||||
input = new Input();
|
||||
srand(static_cast<unsigned int>(time(nullptr)));
|
||||
|
@ -124,13 +124,13 @@ int App::start() {
|
|||
break;
|
||||
case SDL_KEYDOWN:
|
||||
if (!io.WantCaptureKeyboard) {
|
||||
InputEvent inputEvent = input->setkey(ev.key.keysym.sym, (SDL_Keymod)ev.key.keysym.mod, true);
|
||||
InputEvent inputEvent = input->set_key(ev.key.keysym.sym, (SDL_Keymod) ev.key.keysym.mod, true);
|
||||
current->inputevent(&inputEvent);
|
||||
}
|
||||
break;
|
||||
case SDL_KEYUP:
|
||||
if (!io.WantCaptureKeyboard){
|
||||
InputEvent inputEvent = input->setkey(ev.key.keysym.sym, (SDL_Keymod)ev.key.keysym.mod, false);
|
||||
InputEvent inputEvent = input->set_key(ev.key.keysym.sym, (SDL_Keymod) ev.key.keysym.mod, false);
|
||||
current->inputevent(&inputEvent);
|
||||
}
|
||||
break;
|
||||
|
@ -143,7 +143,7 @@ int App::start() {
|
|||
}
|
||||
while (running && accumulator >= dt) {
|
||||
nextstate = current->update(dt);
|
||||
input->newframe();
|
||||
input->new_frame();
|
||||
|
||||
accumulator -= dt;
|
||||
}
|
||||
|
|
|
@ -12,15 +12,15 @@ AttackEnemyNode::~AttackEnemyNode() {}
|
|||
BehaviourTreeStatus AttackEnemyNode::tick(BTTick * tick) {
|
||||
bool ishero = tick->target->isTypeOf(ACT_HERO);
|
||||
|
||||
auto actors = tick->target->map->GetActorList();
|
||||
auto actors = tick->target->map->get_actor_list();
|
||||
std::vector<Actor*> visibleEnemies;
|
||||
|
||||
for (auto actor : *actors) {
|
||||
if (actor == tick->target) continue;
|
||||
|
||||
if (actor->isTypeOf(ACT_HERO) != ishero) {
|
||||
vec2i pos = actor->getPosition();
|
||||
if (line_of_sight(tick->target->map, tick->target->getPosition(), pos)) {
|
||||
vec2i pos = actor->get_position();
|
||||
if (line_of_sight(tick->target->map, tick->target->get_position(), pos)) {
|
||||
visibleEnemies.push_back(actor);
|
||||
}
|
||||
}
|
||||
|
@ -33,7 +33,7 @@ BehaviourTreeStatus AttackEnemyNode::tick(BTTick * tick) {
|
|||
Actor* closestActor = nullptr;
|
||||
float closestDist;
|
||||
for (Actor* actor : visibleEnemies) {
|
||||
float dist = Pathfinder::distance(tick->target->getPosition(), actor->getPosition());
|
||||
float dist = Pathfinder::distance(tick->target->get_position(), actor->get_position());
|
||||
if (closestActor == nullptr ||
|
||||
dist < closestDist) {
|
||||
closestActor = actor;
|
||||
|
@ -50,8 +50,8 @@ BehaviourTreeStatus AttackEnemyNode::tick(BTTick * tick) {
|
|||
return BT_RUNNING;
|
||||
}
|
||||
else {
|
||||
vec2i pos = tick->target->getPosition();
|
||||
vec2i goal = closestActor->getPosition();
|
||||
vec2i pos = tick->target->get_position();
|
||||
vec2i goal = closestActor->get_position();
|
||||
auto path = Pathfinder::aStar(tick->target->map, pos, goal);
|
||||
if (path.size() > 0) {
|
||||
//path.pop_back();
|
||||
|
|
|
@ -26,7 +26,7 @@ BehaviourTreeStatus ExploreNode::tick(BTTick * tick) {
|
|||
}
|
||||
Pathfinder::calcDijkstraMap(map, &unexplored, &dijkstra, 99999);
|
||||
|
||||
vec2i pos = tick->target->getPosition();
|
||||
vec2i pos = tick->target->get_position();
|
||||
|
||||
std::vector<vec2i> neigh = map->getNeighbours(pos.x, pos.y);
|
||||
std::vector<vec2i> options;
|
||||
|
|
|
@ -18,7 +18,7 @@ FieldOfView::~FieldOfView() {
|
|||
|
||||
void FieldOfView::calc(vec2i pos, float range) {
|
||||
counter++;
|
||||
seen->SetTile(pos.x, pos.y, counter);
|
||||
seen->set_tile(pos.x, pos.y, counter);
|
||||
// Once for each octant
|
||||
cast_light(1, 1.0f, 0.0f, 0, -1, -1, 0, pos.x, pos.y, range);
|
||||
cast_light(1, 1.0f, 0.0f, -1, 0, 0, -1, pos.x, pos.y, range);
|
||||
|
@ -61,7 +61,7 @@ void FieldOfView::cast_light(int row, float start, float end, int xx, int xy, in
|
|||
}
|
||||
|
||||
if (sqrt(deltaX*deltaX + deltaY*deltaY) <= radius) {
|
||||
seen->SetTile(currentX, currentY, counter);
|
||||
seen->set_tile(currentX, currentY, counter);
|
||||
}
|
||||
|
||||
if (blocked) {
|
||||
|
|
|
@ -17,11 +17,11 @@ BehaviourTreeStatus FleeNode::tick(BTTick * tick) {
|
|||
Tilemap * map = tick->target->map;
|
||||
std::vector<vec2i> enemyPos;
|
||||
bool ishero = tick->target->isTypeOf(ACT_HERO);
|
||||
auto actors = tick->target->map->GetActorList();
|
||||
auto actors = tick->target->map->get_actor_list();
|
||||
for (Actor* actor : *actors) {
|
||||
if (actor->isTypeOf(ACT_HERO) != ishero) {
|
||||
vec2i pos = actor->getPosition();
|
||||
if (line_of_sight(tick->target->map, tick->target->getPosition(), pos)) {
|
||||
vec2i pos = actor->get_position();
|
||||
if (line_of_sight(tick->target->map, tick->target->get_position(), pos)) {
|
||||
enemyPos.push_back(pos);
|
||||
}
|
||||
}
|
||||
|
@ -45,7 +45,7 @@ BehaviourTreeStatus FleeNode::tick(BTTick * tick) {
|
|||
|
||||
Pathfinder::calcDijkstraMap(map, &safety, &dijkstra);
|
||||
|
||||
vec2i pos = tick->target->getPosition();
|
||||
vec2i pos = tick->target->get_position();
|
||||
|
||||
std::vector<vec2i> neigh = map->getNeighbours(pos.x, pos.y);
|
||||
std::vector<vec2i> options;
|
||||
|
|
|
@ -12,14 +12,14 @@ HealFriendNode::~HealFriendNode() {}
|
|||
BehaviourTreeStatus HealFriendNode::tick(BTTick * tick) {
|
||||
bool ishero = tick->target->isTypeOf(ACT_HERO);
|
||||
|
||||
auto actors = tick->target->map->GetActorList();
|
||||
auto actors = tick->target->map->get_actor_list();
|
||||
std::vector<Actor*> friends;
|
||||
for (auto actor : *actors) {
|
||||
if (actor == tick->target) continue;
|
||||
|
||||
if (actor->isTypeOf(ACT_HERO) == ishero && actor->health < actor->maxhealth-1) {
|
||||
vec2i pos = actor->getPosition();
|
||||
if (line_of_sight(tick->target->map, tick->target->getPosition(), pos)) {
|
||||
vec2i pos = actor->get_position();
|
||||
if (line_of_sight(tick->target->map, tick->target->get_position(), pos)) {
|
||||
friends.push_back(actor);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,13 +15,13 @@ BehaviourTreeStatus IfNotSeeEnemyNode::tick(BTTick * tick) {
|
|||
}
|
||||
bool ishero = tick->target->isTypeOf(ACT_HERO);
|
||||
|
||||
auto actors = tick->target->map->GetActorList();
|
||||
auto actors = tick->target->map->get_actor_list();
|
||||
for (auto actor : *actors) {
|
||||
if (actor == tick->target) continue;
|
||||
|
||||
if (actor->isTypeOf(ACT_HERO) != ishero) {
|
||||
vec2i pos = actor->getPosition();
|
||||
if (line_of_sight(tick->target->map, tick->target->getPosition(), pos)) {
|
||||
vec2i pos = actor->get_position();
|
||||
if (line_of_sight(tick->target->map, tick->target->get_position(), pos)) {
|
||||
return BT_FAILED;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,13 +15,13 @@ BehaviourTreeStatus IfSeeEnemyNode::tick(BTTick * tick) {
|
|||
}
|
||||
bool ishero = tick->target->isTypeOf(ACT_HERO);
|
||||
|
||||
auto actors = tick->target->map->GetActorList();
|
||||
auto actors = tick->target->map->get_actor_list();
|
||||
for (auto actor : *actors) {
|
||||
if (actor == tick->target) continue;
|
||||
|
||||
if (actor->isTypeOf(ACT_HERO) != ishero) {
|
||||
vec2i pos = actor->getPosition();
|
||||
if (line_of_sight(tick->target->map, tick->target->getPosition(), pos)) {
|
||||
vec2i pos = actor->get_position();
|
||||
if (line_of_sight(tick->target->map, tick->target->get_position(), pos)) {
|
||||
return children[0]->execute(tick);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,13 +16,13 @@ BehaviourTreeStatus IfSeeFriendNode::tick(BTTick * tick) {
|
|||
}
|
||||
bool ishero = tick->target->isTypeOf(ACT_HERO);
|
||||
|
||||
auto actors = tick->target->map->GetActorList();
|
||||
auto actors = tick->target->map->get_actor_list();
|
||||
for (auto actor : *actors) {
|
||||
if (actor == tick->target) continue;
|
||||
|
||||
if (actor->isTypeOf(ACT_HERO) == ishero) {
|
||||
vec2i pos = actor->getPosition();
|
||||
if (line_of_sight(tick->target->map, tick->target->getPosition(), pos)) {
|
||||
vec2i pos = actor->get_position();
|
||||
if (line_of_sight(tick->target->map, tick->target->get_position(), pos)) {
|
||||
return children[0]->execute(tick);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,14 +16,14 @@ Input::~Input()
|
|||
{
|
||||
}
|
||||
|
||||
void Input::newframe() {
|
||||
void Input::new_frame() {
|
||||
for(int i = 0; i < INPUTACTION_END; i++) {
|
||||
justpressed[i] = false;
|
||||
justreleased[i] = false;
|
||||
}
|
||||
}
|
||||
|
||||
InputEvent Input::setkey(SDL_Keycode key, SDL_Keymod mod, bool pressed)
|
||||
InputEvent Input::set_key(SDL_Keycode key, SDL_Keymod mod, bool pressed)
|
||||
{
|
||||
InputEvent event{};
|
||||
event.type = INPUT_KEY_EVENT;
|
||||
|
@ -57,25 +57,25 @@ InputEvent Input::setkey(SDL_Keycode key, SDL_Keymod mod, bool pressed)
|
|||
return event;
|
||||
}
|
||||
|
||||
void Input::bindkey(SDL_Keycode key, InputAction action, SDL_Keymod mod) {
|
||||
void Input::bind_key(SDL_Keycode key, InputAction action, SDL_Keymod mod) {
|
||||
Bind bind = { key, mod };
|
||||
binds[bind] = action;
|
||||
}
|
||||
|
||||
void Input::unbindkey(SDL_Keycode key, SDL_Keymod mod) {
|
||||
void Input::unbind_key(SDL_Keycode key, SDL_Keymod mod) {
|
||||
Bind bind = { key, mod };
|
||||
binds.erase(bind);
|
||||
}
|
||||
|
||||
bool Input::isPressed(InputAction action) {
|
||||
bool Input::is_pressed(InputAction action) {
|
||||
return ispressed[action];
|
||||
}
|
||||
|
||||
bool Input::wasJustPressed(InputAction action) {
|
||||
bool Input::was_just_pressed(InputAction action) {
|
||||
return justpressed[action];
|
||||
}
|
||||
|
||||
bool Input::wasJustReleased(InputAction action) {
|
||||
bool Input::was_just_released(InputAction action) {
|
||||
return justreleased[action];
|
||||
}
|
||||
|
||||
|
@ -107,3 +107,7 @@ InputEvent Input::set_mouse_button(int button, int x, int y, bool pressed) {
|
|||
event.mouse_click_event.y = y;
|
||||
return event;
|
||||
}
|
||||
|
||||
vec2i Input::get_mouse_pos() {
|
||||
return {mouse_x, mouse_y};
|
||||
}
|
||||
|
|
17
src/Input.h
17
src/Input.h
|
@ -2,6 +2,7 @@
|
|||
|
||||
#include <SDL.h>
|
||||
#include <map>
|
||||
#include "vec2i.h"
|
||||
|
||||
enum InputAction {
|
||||
ACTION_NONE,
|
||||
|
@ -16,6 +17,7 @@ enum InputAction {
|
|||
ACTION_MOVE_SOUTH,
|
||||
ACTION_MOVE_SOUTHWEST,
|
||||
ACTION_MOVE_SOUTHEAST,
|
||||
ACTION_WAIT,
|
||||
INPUTACTION_END // Used to get the length of the enum. Must be the final entry.
|
||||
};
|
||||
|
||||
|
@ -76,14 +78,15 @@ class Input
|
|||
public:
|
||||
Input();
|
||||
~Input();
|
||||
void newframe();
|
||||
InputEvent setkey(SDL_Keycode key, SDL_Keymod mod, bool pressed);
|
||||
void new_frame();
|
||||
InputEvent set_key(SDL_Keycode key, SDL_Keymod mod, bool pressed);
|
||||
InputEvent set_mouse_pos(int x, int y, int dx, int dy);
|
||||
InputEvent set_mouse_button(int button, int x, int y, bool pressed);
|
||||
void bindkey(SDL_Keycode key, InputAction action, SDL_Keymod mod = KMOD_NONE);
|
||||
void unbindkey(SDL_Keycode key, SDL_Keymod mod);
|
||||
bool isPressed(InputAction action);
|
||||
bool wasJustPressed(InputAction action);
|
||||
bool wasJustReleased(InputAction action);
|
||||
void bind_key(SDL_Keycode key, InputAction action, SDL_Keymod mod = KMOD_NONE);
|
||||
void unbind_key(SDL_Keycode key, SDL_Keymod mod);
|
||||
bool is_pressed(InputAction action);
|
||||
bool was_just_pressed(InputAction action);
|
||||
bool was_just_released(InputAction action);
|
||||
vec2i get_mouse_pos();
|
||||
};
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ namespace Pathfinder
|
|||
}
|
||||
open.erase(open.begin()+currentindex);
|
||||
closed.push_back(current);
|
||||
//map->SetTile(current->pos.x, current->pos.y, TILE_CLOSED);
|
||||
//map->set_tile(current->pos.x, current->pos.y, TILE_CLOSED);
|
||||
|
||||
auto neighbours = map->getNeighbours(current->pos.x, current->pos.y);
|
||||
for (auto pos : neighbours)
|
||||
|
@ -89,7 +89,7 @@ namespace Pathfinder
|
|||
closed.erase(it);
|
||||
delete (*it);
|
||||
open.push_back(neighbour);
|
||||
//map->SetTile(neighbour->pos.x, neighbour->pos.y, TILE_OPENED);
|
||||
//map->set_tile(neighbour->pos.x, neighbour->pos.y, TILE_OPENED);
|
||||
isClosed = false;
|
||||
}
|
||||
break;
|
||||
|
@ -111,7 +111,7 @@ namespace Pathfinder
|
|||
open.erase(it);
|
||||
delete (*it);
|
||||
open.push_back(neighbour);
|
||||
//map->SetTile(neighbour->pos.x, neighbour->pos.y, TILE_OPENED);
|
||||
//map->set_tile(neighbour->pos.x, neighbour->pos.y, TILE_OPENED);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -120,7 +120,7 @@ namespace Pathfinder
|
|||
if (!isOpened)
|
||||
{
|
||||
open.push_back(neighbour);
|
||||
//map->SetTile(neighbour->pos.x, neighbour->pos.y, TILE_OPENED);
|
||||
//map->set_tile(neighbour->pos.x, neighbour->pos.y, TILE_OPENED);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
@ -56,18 +56,18 @@ void PlayState::load() {
|
|||
ascii = new Tileset(app->renderer, "./assets/12x12.bmp", 192, 192, 12, 12);
|
||||
SDL_LogVerbose(SDL_LOG_CATEGORY_SYSTEM, "Created ascii tileset.\n");
|
||||
|
||||
app->input->bindkey(SDLK_ESCAPE, ACTION_ESCAPE_MENU);
|
||||
app->input->bindkey(SDLK_KP_8, ACTION_MOVE_NORTH);
|
||||
app->input->bindkey(SDLK_KP_7, ACTION_MOVE_NORTHWEST);
|
||||
app->input->bindkey(SDLK_KP_9, ACTION_MOVE_NORTHEAST);
|
||||
app->input->bindkey(SDLK_KP_4, ACTION_MOVE_WEST);
|
||||
app->input->bindkey(SDLK_KP_6, ACTION_MOVE_EAST);
|
||||
app->input->bindkey(SDLK_KP_2, ACTION_MOVE_SOUTH);
|
||||
app->input->bindkey(SDLK_KP_1, ACTION_MOVE_SOUTHWEST);
|
||||
app->input->bindkey(SDLK_KP_3, ACTION_MOVE_SOUTHEAST);
|
||||
app->input->bindkey(SDLK_F1, ACTION_TOGGLE_DEBUG);
|
||||
app->input->bind_key(SDLK_ESCAPE, ACTION_ESCAPE_MENU);
|
||||
app->input->bind_key(SDLK_KP_8, ACTION_MOVE_NORTH);
|
||||
app->input->bind_key(SDLK_KP_7, ACTION_MOVE_NORTHWEST);
|
||||
app->input->bind_key(SDLK_KP_9, ACTION_MOVE_NORTHEAST);
|
||||
app->input->bind_key(SDLK_KP_4, ACTION_MOVE_WEST);
|
||||
app->input->bind_key(SDLK_KP_6, ACTION_MOVE_EAST);
|
||||
app->input->bind_key(SDLK_KP_2, ACTION_MOVE_SOUTH);
|
||||
app->input->bind_key(SDLK_KP_1, ACTION_MOVE_SOUTHWEST);
|
||||
app->input->bind_key(SDLK_KP_3, ACTION_MOVE_SOUTHEAST);
|
||||
app->input->bind_key(SDLK_F1, ACTION_TOGGLE_DEBUG);
|
||||
|
||||
app->input->bindkey(SDLK_r, ACTION_RESET);
|
||||
app->input->bind_key(SDLK_r, ACTION_RESET);
|
||||
|
||||
SDL_LogVerbose(SDL_LOG_CATEGORY_SYSTEM, "Keybinds bound.\n");
|
||||
new_game();
|
||||
|
@ -111,26 +111,26 @@ void PlayState::new_game() {
|
|||
|
||||
if (map[i] == '@') {
|
||||
hero = new Hero(tilemap, vec2i(x, y));
|
||||
tilemap->AddActor(hero);
|
||||
tilemap->SetTile(x, y, '.');
|
||||
tilemap->add_actor(hero);
|
||||
tilemap->set_tile(x, y, '.');
|
||||
}
|
||||
else if (map[i] == 'g') {
|
||||
tilemap->AddActor(new Goblin(tilemap, vec2i(x, y)));
|
||||
tilemap->SetTile(x, y, '.');
|
||||
tilemap->add_actor(new Goblin(tilemap, vec2i(x, y)));
|
||||
tilemap->set_tile(x, y, '.');
|
||||
}
|
||||
else if (map[i] == 's') {
|
||||
tilemap->AddActor(new Shaman(tilemap, vec2i(x, y)));
|
||||
tilemap->SetTile(x, y, '.');
|
||||
tilemap->add_actor(new Shaman(tilemap, vec2i(x, y)));
|
||||
tilemap->set_tile(x, y, '.');
|
||||
}
|
||||
else {
|
||||
tilemap->SetTile(x, y, map[i]);
|
||||
tilemap->set_tile(x, y, map[i]);
|
||||
}
|
||||
x++;
|
||||
}
|
||||
SDL_LogVerbose(SDL_LOG_CATEGORY_SYSTEM, "Done.\n");
|
||||
SDL_LogVerbose(SDL_LOG_CATEGORY_SYSTEM, "Calculating initial FOV...\n");
|
||||
fov = new FieldOfView(tilemap);
|
||||
fov->calc(hero->getPosition(), 6);
|
||||
fov->calc(hero->get_position(), 6);
|
||||
SDL_LogVerbose(SDL_LOG_CATEGORY_SYSTEM, "Done.\n");
|
||||
}
|
||||
|
||||
|
@ -140,9 +140,9 @@ Gamestate *PlayState::update(double delta) {
|
|||
if (timer >= delay) {
|
||||
timer = 0;
|
||||
|
||||
auto actors = tilemap->GetActorList();
|
||||
auto actors = tilemap->get_actor_list();
|
||||
for (Actor* var : *actors) {
|
||||
var->Update();
|
||||
var->update();
|
||||
}
|
||||
for (int i = (int)actors->size() - 1; i >= 0; i--) {
|
||||
if (!actors->at(i)->alive) {
|
||||
|
@ -153,7 +153,7 @@ Gamestate *PlayState::update(double delta) {
|
|||
actors->erase(actors->begin() + i);
|
||||
}
|
||||
}
|
||||
fov->calc(hero->getPosition(), 6);
|
||||
fov->calc(hero->get_position(), 6);
|
||||
}
|
||||
}
|
||||
return nullptr;
|
||||
|
@ -161,12 +161,12 @@ Gamestate *PlayState::update(double delta) {
|
|||
|
||||
void PlayState::draw(double delta) {
|
||||
if (debug) {
|
||||
bool wireframe = app->renderer->IsWireframesEnabled();
|
||||
bool wireframe = app->renderer->is_wireframes_enabled();
|
||||
ImGui::Checkbox("Wireframes", &wireframe);
|
||||
app->renderer->SetWireframesEnabled(wireframe);
|
||||
bool vsync = app->renderer->IsVSyncEnabled();
|
||||
app->renderer->set_wireframes_enabled(wireframe);
|
||||
bool vsync = app->renderer->is_vsync_enabled();
|
||||
ImGui::Checkbox("VSync", &vsync);
|
||||
app->renderer->SetVSyncEnabled(vsync);
|
||||
app->renderer->set_vsync_enabled(vsync);
|
||||
|
||||
ImGui::BeginMainMenuBar();
|
||||
|
||||
|
@ -188,71 +188,71 @@ void PlayState::draw(double delta) {
|
|||
}
|
||||
|
||||
vec2i offset;
|
||||
offset.x = app->renderer->GetRendererWidth() / 2;
|
||||
offset.y = app->renderer->GetRendererHeight() / 2;
|
||||
vec2i heropos = hero->getPosition();
|
||||
offset.x = app->renderer->get_renderer_width() / 2;
|
||||
offset.y = app->renderer->get_renderer_height() / 2;
|
||||
vec2i heropos = hero->get_position();
|
||||
offset.x -= heropos.x * 12;
|
||||
offset.y -= heropos.y * 12;
|
||||
|
||||
tilemap->draw(app->renderer, ascii, offset.x, offset.y, fov);
|
||||
|
||||
auto actors = tilemap->GetActorList();
|
||||
auto actors = tilemap->get_actor_list();
|
||||
for (Actor* var : *actors) {
|
||||
vec2i pos = var->getPosition();
|
||||
vec2i pos = var->get_position();
|
||||
if (fov == nullptr || fov->can_see(pos)) {
|
||||
app->renderer->SetColor(0, 0, 0, 255);
|
||||
app->renderer->DrawSprite(ascii->GetSprite(219), offset.x + pos.x * 12, offset.y + pos.y * 12);
|
||||
app->renderer->set_color(0, 0, 0, 255);
|
||||
app->renderer->draw_sprite(ascii->get_sprite(219), offset.x + pos.x * 12, offset.y + pos.y * 12);
|
||||
|
||||
int sprite;
|
||||
switch (var->Type()) {
|
||||
case ACT_HERO:
|
||||
app->renderer->SetColor(.2f, .6f, 1, 1);
|
||||
app->renderer->set_color(.2f, .6f, 1, 1);
|
||||
sprite = '@';
|
||||
break;
|
||||
case ACT_GOBLIN:
|
||||
app->renderer->SetColor(.6f, 1, .2f, 1);
|
||||
app->renderer->set_color(.6f, 1, .2f, 1);
|
||||
sprite = 'g';
|
||||
break;
|
||||
case ACT_SHAMAN:
|
||||
app->renderer->SetColor(.2f, 1, .6f, 1);
|
||||
app->renderer->set_color(.2f, 1, .6f, 1);
|
||||
sprite = 's';
|
||||
break;
|
||||
default:
|
||||
app->renderer->SetColor(1, 1, 1, 1);
|
||||
app->renderer->set_color(1, 1, 1, 1);
|
||||
sprite = 2;
|
||||
break;
|
||||
}
|
||||
app->renderer->DrawSprite(ascii->GetSprite(sprite), offset.x + pos.x * 12, offset.y + pos.y * 12);
|
||||
app->renderer->draw_sprite(ascii->get_sprite(sprite), offset.x + pos.x * 12, offset.y + pos.y * 12);
|
||||
}
|
||||
}
|
||||
if (hero != nullptr) {
|
||||
app->renderer->SetColor(155, 5, 5, 255);
|
||||
app->renderer->set_color(155, 5, 5, 255);
|
||||
for (int i = 0; i < hero->health; i++) {
|
||||
app->renderer->SetColor(0, 0, 0, 255);
|
||||
app->renderer->DrawSprite(ascii->GetSprite(219), i * 12, 0);
|
||||
app->renderer->SetColor(255, 0, 0, 255);
|
||||
app->renderer->DrawSprite(ascii->GetSprite(3), i * 12, 0);
|
||||
app->renderer->set_color(0, 0, 0, 255);
|
||||
app->renderer->draw_sprite(ascii->get_sprite(219), i * 12, 0);
|
||||
app->renderer->set_color(255, 0, 0, 255);
|
||||
app->renderer->draw_sprite(ascii->get_sprite(3), i * 12, 0);
|
||||
}
|
||||
}
|
||||
if (paused) {
|
||||
app->renderer->SetColor(255, 0, 0, 255);
|
||||
app->renderer->DrawSprite(ascii->GetSprite(219), 12 * 0, 0);
|
||||
app->renderer->DrawSprite(ascii->GetSprite(219), 12 * 1, 0);
|
||||
app->renderer->DrawSprite(ascii->GetSprite(219), 12 * 2, 0);
|
||||
app->renderer->DrawSprite(ascii->GetSprite(219), 12 * 3, 0);
|
||||
app->renderer->DrawSprite(ascii->GetSprite(219), 12 * 4, 0);
|
||||
app->renderer->DrawSprite(ascii->GetSprite(219), 12 * 5, 0);
|
||||
app->renderer->DrawSprite(ascii->GetSprite(219), 12 * 6, 0);
|
||||
app->renderer->DrawSprite(ascii->GetSprite(219), 12 * 7, 0);
|
||||
app->renderer->SetColor(0, 0, 0, 255);
|
||||
app->renderer->DrawSprite(ascii->GetSprite('-'), 12 * 0, 0);
|
||||
app->renderer->DrawSprite(ascii->GetSprite('P'), 12 * 1, 0);
|
||||
app->renderer->DrawSprite(ascii->GetSprite('A'), 12 * 2, 0);
|
||||
app->renderer->DrawSprite(ascii->GetSprite('U'), 12 * 3, 0);
|
||||
app->renderer->DrawSprite(ascii->GetSprite('S'), 12 * 4, 0);
|
||||
app->renderer->DrawSprite(ascii->GetSprite('E'), 12 * 5, 0);
|
||||
app->renderer->DrawSprite(ascii->GetSprite('D'), 12 * 6, 0);
|
||||
app->renderer->DrawSprite(ascii->GetSprite('-'), 12 * 7, 0);
|
||||
app->renderer->set_color(255, 0, 0, 255);
|
||||
app->renderer->draw_sprite(ascii->get_sprite(219), 12 * 0, 0);
|
||||
app->renderer->draw_sprite(ascii->get_sprite(219), 12 * 1, 0);
|
||||
app->renderer->draw_sprite(ascii->get_sprite(219), 12 * 2, 0);
|
||||
app->renderer->draw_sprite(ascii->get_sprite(219), 12 * 3, 0);
|
||||
app->renderer->draw_sprite(ascii->get_sprite(219), 12 * 4, 0);
|
||||
app->renderer->draw_sprite(ascii->get_sprite(219), 12 * 5, 0);
|
||||
app->renderer->draw_sprite(ascii->get_sprite(219), 12 * 6, 0);
|
||||
app->renderer->draw_sprite(ascii->get_sprite(219), 12 * 7, 0);
|
||||
app->renderer->set_color(0, 0, 0, 255);
|
||||
app->renderer->draw_sprite(ascii->get_sprite('-'), 12 * 0, 0);
|
||||
app->renderer->draw_sprite(ascii->get_sprite('P'), 12 * 1, 0);
|
||||
app->renderer->draw_sprite(ascii->get_sprite('A'), 12 * 2, 0);
|
||||
app->renderer->draw_sprite(ascii->get_sprite('U'), 12 * 3, 0);
|
||||
app->renderer->draw_sprite(ascii->get_sprite('S'), 12 * 4, 0);
|
||||
app->renderer->draw_sprite(ascii->get_sprite('E'), 12 * 5, 0);
|
||||
app->renderer->draw_sprite(ascii->get_sprite('D'), 12 * 6, 0);
|
||||
app->renderer->draw_sprite(ascii->get_sprite('-'), 12 * 7, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -16,14 +16,14 @@ BehaviourTreeStatus RangedAttackNode::tick(BTTick * tick) {
|
|||
}
|
||||
bool ishero = tick->target->isTypeOf(ACT_HERO);
|
||||
|
||||
auto actors = tick->target->map->GetActorList();
|
||||
auto actors = tick->target->map->get_actor_list();
|
||||
std::vector<Actor*> enemies;
|
||||
for (auto actor : *actors) {
|
||||
if (actor == tick->target) continue;
|
||||
|
||||
if (actor->isTypeOf(ACT_HERO) != ishero) {
|
||||
vec2i pos = actor->getPosition();
|
||||
if (line_of_sight(tick->target->map, tick->target->getPosition(), pos)) {
|
||||
vec2i pos = actor->get_position();
|
||||
if (line_of_sight(tick->target->map, tick->target->get_position(), pos)) {
|
||||
enemies.push_back(actor);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -170,12 +170,12 @@ bool Renderer::Init(std::string title, int width, int height) {
|
|||
return true;
|
||||
}
|
||||
|
||||
void Renderer::SetColor(float r, float g, float b, float a) {
|
||||
void Renderer::set_color(float r, float g, float b, float a) {
|
||||
currentcolor = { r, g, b, a };
|
||||
}
|
||||
|
||||
void Renderer::SetColor(Color col) {
|
||||
SetColor(col.r, col.g, col.b, col.a);
|
||||
set_color(col.r, col.g, col.b, col.a);
|
||||
}
|
||||
|
||||
void Renderer::SetTitle(const char * title) {
|
||||
|
@ -206,27 +206,27 @@ void Renderer::SetClearColor(Color col) {
|
|||
glClearColor(col.r, col.g, col.b, col.a);
|
||||
}
|
||||
|
||||
void Renderer::SetVSyncEnabled(bool enabled) {
|
||||
void Renderer::set_vsync_enabled(bool enabled) {
|
||||
SDL_GL_SetSwapInterval(enabled ? 1 : 0);
|
||||
}
|
||||
|
||||
bool Renderer::IsVSyncEnabled() {
|
||||
bool Renderer::is_vsync_enabled() {
|
||||
return SDL_GL_GetSwapInterval() == 1;
|
||||
}
|
||||
|
||||
void Renderer::SetWireframesEnabled(bool enabled) {
|
||||
void Renderer::set_wireframes_enabled(bool enabled) {
|
||||
wireframe = enabled;
|
||||
}
|
||||
|
||||
bool Renderer::IsWireframesEnabled() {
|
||||
bool Renderer::is_wireframes_enabled() {
|
||||
return wireframe;
|
||||
}
|
||||
|
||||
int Renderer::GetRendererWidth() {
|
||||
int Renderer::get_renderer_width() {
|
||||
return windowwidth;
|
||||
}
|
||||
|
||||
int Renderer::GetRendererHeight() {
|
||||
int Renderer::get_renderer_height() {
|
||||
return windowheight;
|
||||
}
|
||||
|
||||
|
@ -314,7 +314,7 @@ Sprite Renderer::CreateSprite(std::string path, int x, int y, int w, int h) {
|
|||
}
|
||||
|
||||
|
||||
void Renderer::DrawSprite(Sprite * sprite, int x, int y, float sx, float sy) {
|
||||
void Renderer::draw_sprite(Sprite *sprite, int x, int y, float sx, float sy) {
|
||||
|
||||
glm::mat4 model = glm::translate(glm::vec3(x, y, 0)) * glm::scale(glm::vec3(sprite->region.w * sx, sprite->region.h * sy, 1)) * glm::mat4(1);
|
||||
|
||||
|
|
|
@ -46,23 +46,23 @@ public:
|
|||
Renderer();
|
||||
~Renderer();
|
||||
bool Init(std::string title, int width, int height);
|
||||
void SetColor(float r, float g, float b, float a);
|
||||
void set_color(float r, float g, float b, float a);
|
||||
void SetColor(Color col);
|
||||
void SetTitle(const char* title);
|
||||
void SetWindowSize(int width, int height);
|
||||
void SetClearColor(float r, float g, float b, float a);
|
||||
void SetClearColor(Color col);
|
||||
void SetVSyncEnabled(bool enabled);
|
||||
bool IsVSyncEnabled();
|
||||
void SetWireframesEnabled(bool enabled);
|
||||
bool IsWireframesEnabled();
|
||||
int GetRendererWidth();
|
||||
int GetRendererHeight();
|
||||
void set_vsync_enabled(bool enabled);
|
||||
bool is_vsync_enabled();
|
||||
void set_wireframes_enabled(bool enabled);
|
||||
bool is_wireframes_enabled();
|
||||
int get_renderer_width();
|
||||
int get_renderer_height();
|
||||
bool ImguiProcessEvents(SDL_Event *e);
|
||||
void ImguiNewFrame();
|
||||
Texture * LoadTexture(std::string path);
|
||||
Sprite CreateSprite(std::string path, int x, int y, int w, int h);
|
||||
void DrawSprite(Sprite * sprite, int x, int y, float sx = 1, float sy = 1);
|
||||
void draw_sprite(Sprite *sprite, int x, int y, float sx = 1, float sy = 1);
|
||||
void Clear();
|
||||
void Present();
|
||||
};
|
||||
|
|
|
@ -62,7 +62,7 @@ std::vector<vec2i> Tilemap::getNeighbours(int x, int y, int range)
|
|||
return neigh;
|
||||
}
|
||||
|
||||
void Tilemap::SetTile(int x, int y, int tile)
|
||||
void Tilemap::set_tile(int x, int y, int tile)
|
||||
{
|
||||
if (IsInsideBounds(x, y))
|
||||
{
|
||||
|
@ -87,7 +87,7 @@ bool Tilemap::IsBlocked(int x, int y)
|
|||
return true;
|
||||
}
|
||||
for (Actor* var : actors) {
|
||||
vec2i pos = var->getPosition();
|
||||
vec2i pos = var->get_position();
|
||||
if (var->IsAlive() && pos.x == x && pos.y == y) {
|
||||
return true;
|
||||
}
|
||||
|
@ -97,7 +97,7 @@ bool Tilemap::IsBlocked(int x, int y)
|
|||
return true;
|
||||
}
|
||||
|
||||
void Tilemap::AddActor(Actor * actor) {
|
||||
void Tilemap::add_actor(Actor *actor) {
|
||||
for (Actor* var : actors) {
|
||||
if (var == actor) {
|
||||
return;
|
||||
|
@ -119,7 +119,7 @@ Actor * Tilemap::GetActor(int x, int y, Actors type) {
|
|||
vec2i pos = { x,y };
|
||||
for (Actor* act : actors) {
|
||||
if (act->isTypeOf(type)) {
|
||||
vec2i apos = act->getPosition();
|
||||
vec2i apos = act->get_position();
|
||||
if (apos == pos) {
|
||||
return act;
|
||||
}
|
||||
|
@ -134,7 +134,7 @@ std::vector<Actor*> Tilemap::GetActors(int x, int y, int range, Actors type) {
|
|||
for (Actor* act : actors) {
|
||||
for (vec2i pos : neigh) {
|
||||
if (act->isTypeOf(type)) {
|
||||
vec2i apos = act->getPosition();
|
||||
vec2i apos = act->get_position();
|
||||
if (apos == pos) {
|
||||
found.push_back(act);
|
||||
break;
|
||||
|
@ -145,7 +145,7 @@ std::vector<Actor*> Tilemap::GetActors(int x, int y, int range, Actors type) {
|
|||
return found;
|
||||
}
|
||||
|
||||
std::vector<Actor*>* Tilemap::GetActorList() {
|
||||
std::vector<Actor*>* Tilemap::get_actor_list() {
|
||||
return &actors;
|
||||
}
|
||||
|
||||
|
@ -153,12 +153,12 @@ void Tilemap::draw(Renderer *renderer, Tileset* tileset, int ox, int oy, FieldOf
|
|||
for (int x = 0; x < 32; x++) {
|
||||
for (int y = 0; y < 32; y++) {
|
||||
if (view == nullptr || view->has_seen({x, y})) {
|
||||
renderer->SetColor(1, 1, 1, 1);
|
||||
renderer->DrawSprite(tileset->GetSprite(GetTile(x, y)), ox + x * 12, oy + y * 12);
|
||||
renderer->set_color(1, 1, 1, 1);
|
||||
renderer->draw_sprite(tileset->get_sprite(GetTile(x, y)), ox + x * 12, oy + y * 12);
|
||||
|
||||
if (view != nullptr && !view->can_see({x, y})) {
|
||||
renderer->SetColor(0, 0, 0, .5f);
|
||||
renderer->DrawSprite(tileset->GetSprite(219), ox + x * 12, oy + y * 12);
|
||||
renderer->set_color(0, 0, 0, .5f);
|
||||
renderer->draw_sprite(tileset->get_sprite(219), ox + x * 12, oy + y * 12);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,19 +20,19 @@ public:
|
|||
int GetIndex(int x, int y); // Converts [x,y] to a 1D index.
|
||||
bool IsInsideBounds(int x, int y);
|
||||
std::vector<vec2i> getNeighbours(int x, int y, int range = 1);
|
||||
void SetTile(int x, int y, int tile); // "Tile" is inteded for tile ids, but can be anything really.
|
||||
void set_tile(int x, int y, int tile); // "Tile" is inteded for tile ids, but can be anything really.
|
||||
int GetTile(int x, int y);
|
||||
bool IsBlocked(int x, int y); // Checks if there is an actor blocking the tile.
|
||||
|
||||
void draw(Renderer *renderer, Tileset *tileset, int x, int y, FieldOfView* view);
|
||||
|
||||
void AddActor(Actor* actor);
|
||||
void add_actor(Actor *actor);
|
||||
void RemoveActor(Actor* actor);
|
||||
|
||||
void debug_print();
|
||||
|
||||
Actor* GetActor(int x, int y, Actors type);
|
||||
std::vector<Actor*> GetActors(int x, int y, int range, Actors type);
|
||||
std::vector<Actor*>* GetActorList();
|
||||
std::vector<Actor*>* get_actor_list();
|
||||
};
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ int Tileset::GetAmount() {
|
|||
return amount;
|
||||
}
|
||||
|
||||
Sprite * Tileset::GetSprite(int tileId) {
|
||||
Sprite * Tileset::get_sprite(int tileId) {
|
||||
if (tileId >= 0 && tileId < amount) {
|
||||
return &sprites[tileId];
|
||||
}
|
||||
|
|
|
@ -12,6 +12,6 @@ public:
|
|||
Tileset(Renderer* renderer, std::string imgPath, int imgWidth, int imgHeight, int tileWidth, int tileHeight);
|
||||
~Tileset();
|
||||
int GetAmount();
|
||||
Sprite* GetSprite(int tileId);
|
||||
Sprite* get_sprite(int tileId);
|
||||
};
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ WanderNode::WanderNode(BehaviourTreeNode* parent) : BehaviourTreeNode(parent){}
|
|||
WanderNode::~WanderNode() {}
|
||||
|
||||
BehaviourTreeStatus WanderNode::tick(BTTick * tick) {
|
||||
vec2i pos = tick->target->getPosition();
|
||||
vec2i pos = tick->target->get_position();
|
||||
std::vector<vec2i> neighbours = tick->target->map->getNeighbours(pos.x, pos.y);
|
||||
while (true) {
|
||||
if (neighbours.size() <= 0) {
|
||||
|
|
Loading…
Reference in a new issue