Added error checking for config.json

This commit is contained in:
2021-03-08 20:51:58 -05:00
parent fe13bac080
commit de99b127b1
10 changed files with 161 additions and 52 deletions

View File

@ -12,3 +12,8 @@ void Entity::addGroup(Group mGroup)
groupBitset[mGroup] = true;
manager.AddToGroup(this, mGroup);
}
void Entity::setTag(std::string t)
{
this->tag = t;
}

View File

@ -37,7 +37,8 @@ template <typename T> inline ComponentID getComponentTypeID() noexcept
}
constexpr std::size_t maxComponents = 32;
constexpr std::size_t maxGroups =32;
constexpr std::size_t maxGroups = 32;
constexpr std::size_t maxEntities = 32;
using ComponentBitSet = std::bitset<maxComponents>;
using GroupBitset = std::bitset<maxGroups>;
@ -90,6 +91,14 @@ public:
{
groupBitset[mGroup] = false;
}
std::string tag;
void setTag(std::string t);
Entity* getEntity()
{
return this;
}
template <typename T> bool hasComponent() const
{
@ -124,6 +133,7 @@ class Manager
private:
std::vector<std::unique_ptr<Entity>> entities;
std::array<std::vector<Entity*>, maxGroups> groupedEntities;
std::vector<std::vector<Entity*>> taggedEntities;
public:
void update()
{
@ -159,6 +169,19 @@ public:
{
groupedEntities[mGroup].emplace_back(mEntity);
}
std::vector<Entity*> getEntitiesByTag(std::string t)
{
std::vector<Entity*> taggedEntities;
for (int e = 0; e<=entities.size(); e++)
{
if (entities[e]->tag == t)
{
taggedEntities.emplace_back(entities[e]->getEntity());
}
}
return taggedEntities;
}
std::vector<Entity*>& getGroup(Group mGroup)
{

View File

@ -39,18 +39,22 @@ public:
case SDLK_DOWN:
break;
case SDLK_LEFT:
transform->velocity.x = -1;
if(Game::playerIsGrounded){
sprite->Play("Walk");
if(Game::gsm->currentState == GameStateManager::ST_COREGAME){
transform->velocity.x = -1;
if(Game::playerIsGrounded){
sprite->Play("Walk");
}
sprite->spriteFlip = SDL_FLIP_NONE;
}
sprite->spriteFlip = SDL_FLIP_NONE;
break;
case SDLK_RIGHT:
transform->velocity.x = 1;
if(Game::playerIsGrounded){
sprite->Play("Walk");
if(Game::gsm->currentState == GameStateManager::ST_COREGAME){
transform->velocity.x = 1;
if(Game::playerIsGrounded){
sprite->Play("Walk");
}
sprite->spriteFlip = SDL_FLIP_HORIZONTAL;
}
sprite->spriteFlip = SDL_FLIP_HORIZONTAL;
break;
case SDLK_k:
if (!Game::debugCollisionBoxes)
@ -59,13 +63,15 @@ public:
{Game::debugCollisionBoxes = false; }
break;
case SDLK_j:
if (Mix_PlayChannel(-1, Game::assets->GetSoundClip("bwoop"),0) == 0)
{
Mix_PlayChannel(-1, Game::assets->GetSoundClip("bwoop"),0);
}
Game::gravityOnPlayer = true;
sprite->Play("Jump");
transform->velocity.y = -2;
if(Game::gsm->currentState == GameStateManager::ST_COREGAME){
if (Mix_PlayChannel(-1, Game::assets->GetSoundClip("bwoop"),0) == 0)
{
Mix_PlayChannel(-1, Game::assets->GetSoundClip("bwoop"),0);
}
Game::gravityOnPlayer = true;
sprite->Play("Jump");
transform->velocity.y = -2;
}
break;
case SDLK_u:
Game::gsm->AdvanceState();
@ -82,36 +88,42 @@ public:
switch (Game::event.key.keysym.sym)
{
case SDLK_UP:
transform->velocity.y = 0;
// transform->velocity.y = 0;
// sprite->Play("idle");
// sprite->spriteFlip = SDL_FLIP_NONE;
break;
case SDLK_DOWN:
transform->velocity.y = 0;
// transform->velocity.y = 0;
// sprite->Play("idle");
// sprite->spriteFlip = SDL_FLIP_NONE;
break;
case SDLK_LEFT:
transform->velocity.x = 0;
sprite->Play("Idle");
if (!Game::gravityOnPlayer){
Game::gravityOnPlayer = true;
// sprite->Play("Fall");
if(Game::gsm->currentState == GameStateManager::ST_COREGAME){
transform->velocity.x = 0;
sprite->Play("Idle");
if (!Game::gravityOnPlayer){
Game::gravityOnPlayer = true;
// sprite->Play("Fall");
}
}
break;
case SDLK_RIGHT:
transform->velocity.x = 0;
sprite->Play("Idle");
if (!Game::gravityOnPlayer){
Game::gravityOnPlayer = true;
if(Game::gsm->currentState == GameStateManager::ST_COREGAME){
transform->velocity.x = 0;
sprite->Play("Idle");
if (!Game::gravityOnPlayer){
Game::gravityOnPlayer = true;
}
}
break;
case SDLK_k:
break;
case SDLK_j:
transform->velocity.y = 0;
sprite->Play("Fall");
Game::gravityOnPlayer = true;
if(Game::gsm->currentState == GameStateManager::ST_COREGAME){
transform->velocity.y = 0;
sprite->Play("Fall");
Game::gravityOnPlayer = true;
}
break;
case SDLK_u:
break;

View File

@ -70,6 +70,21 @@ public:
spriteType = sType;
if(sType == spriteAnimation)
{
std::string bogusPath = "src/config/credits.json";
std::ifstream fin(bogusPath);
if(fin.is_open()){
std::cout<<"file is open"<<std::endl;
} else {
std::cout<<"file is NOT open"<<std::endl;
}
if(fin.fail()){
std::cout<<"file open fail"<<std::endl;
} else{
std::cout<<"file open success"<<std::endl;
}
std::ifstream jsonText(json);
std::ostringstream tmp;
tmp << jsonText.rdbuf();