Also fixed the project includes so that we don't need to always use the indirect include path, ie: #include "../include/foo.h" -> #include "foo.h" I'm don't know much about make files - if I busted the linux build, mea culpa, but I think we're okay on that front too. For future reference, here's the most straightforward link on the topic of adding pch support to make files: http://www.mercs-eng.com/~hulud/index.php?2008/06/13/6-writing-a-good-makefile-for-a-c-project
74 lines
1.2 KiB
C++
74 lines
1.2 KiB
C++
#include "PrecompiledHeader.h"
|
|
|
|
#include "GuiLayers.h"
|
|
#include "Player.h"
|
|
|
|
GuiLayer::GuiLayer(){
|
|
modal = 0;
|
|
hasFocus = false;
|
|
mCount = 0;
|
|
mCurr = 0;
|
|
mActionButton = JGE_BTN_OK;
|
|
}
|
|
|
|
GuiLayer::~GuiLayer(){
|
|
resetObjects();
|
|
}
|
|
|
|
void GuiLayer::Add(JGuiObject *object){
|
|
mObjects.push_back(object);
|
|
mCount++;
|
|
}
|
|
|
|
int GuiLayer::Remove(JGuiObject *object){
|
|
for (int i=0;i<mCount;i++)
|
|
if (mObjects[i]==object){
|
|
delete mObjects[i];
|
|
mObjects.erase(mObjects.begin()+i);
|
|
mCount--;
|
|
if (mCurr == mCount)
|
|
mCurr = 0;
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
int GuiLayer::getMaxId(){
|
|
return mCount;
|
|
}
|
|
|
|
void GuiLayer::Render(){
|
|
for (int i=0;i<mCount;i++)
|
|
if (mObjects[i]!=NULL)
|
|
mObjects[i]->Render();
|
|
}
|
|
|
|
void GuiLayer::Update(float dt){
|
|
for (int i=0;i<mCount;i++)
|
|
if (mObjects[i]!=NULL)
|
|
mObjects[i]->Update(dt);
|
|
}
|
|
|
|
|
|
void GuiLayer::resetObjects(){
|
|
for (int i=0;i<mCount;i++)
|
|
if (mObjects[i])
|
|
delete mObjects[i];
|
|
mObjects.clear();
|
|
mCount = 0;
|
|
mCurr = 0;
|
|
}
|
|
|
|
int GuiLayer::getIndexOf(JGuiObject * object){
|
|
for (int i=0; i<mCount; i++){
|
|
if (mObjects[i] == object)
|
|
return i;
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
JGuiObject * GuiLayer::getByIndex(int index){
|
|
return mObjects[index];
|
|
}
|
|
|