Added error checking for config.json
This commit is contained in:
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
|
Reference in New Issue
Block a user