Skip to content

Commit 064ffac

Browse files
author
Sang Hak Chun
committed
Added workaround for enabling lights in SceneEntityInstances
1 parent 8b92df6 commit 064ffac

File tree

2 files changed

+22
-11
lines changed

2 files changed

+22
-11
lines changed

include/polycode/core/PolySceneEntityInstance.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ class SceneEntityInstanceResourceEntry;
4242
class SceneEntityInstance : public Entity {
4343
public:
4444

45+
SceneEntityInstance(Core *core, Scene* parentScene, const String& fileName);
4546
SceneEntityInstance(Core *core, const String& fileName);
4647
SceneEntityInstance(Core *core);
4748
explicit SceneEntityInstance();
@@ -77,7 +78,6 @@ class SceneEntityInstance : public Entity {
7778
SceneEntityInstanceLayer *getLayerAtIndex(unsigned int index) const;
7879
void removeLayer(SceneEntityInstanceLayer *layer);
7980

80-
8181
SceneEntityInstanceLayer *createNewLayer(String name);
8282

8383
String getFileName() const;
@@ -88,6 +88,7 @@ class SceneEntityInstance : public Entity {
8888
protected:
8989

9090
Core *core;
91+
Scene* parentScene;
9192

9293
std::vector<SceneEntityInstanceLayer*> layers;
9394
void rebuildResourceLinks();

src/core/PolySceneEntityInstance.cpp

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -60,15 +60,22 @@ SceneEntityInstance *SceneEntityInstance::BlankSceneEntityInstance() {
6060
return new SceneEntityInstance();
6161
}
6262

63-
SceneEntityInstance::SceneEntityInstance(Core *core, const String& fileName) : core(core) {
64-
createNewLayer("default");
65-
resourceEntry = std::make_shared<SceneEntityInstanceResourceEntry>(this);
66-
topLevelResourcePool = core->getResourceManager()->getGlobalPool();
67-
loadFromFile(fileName);
68-
resourceEntry->setResourceName(fileName);
69-
resourceEntry->setResourcePath(fileName);
70-
cloneUsingReload = false;
71-
ownsChildren = true;
63+
SceneEntityInstance::SceneEntityInstance(Core *core, const String& fileName) : SceneEntityInstance(core, nullptr, fileName) {
64+
65+
}
66+
67+
SceneEntityInstance::SceneEntityInstance(Core *core, Scene *newParentScene, const String& fileName) : core(core) {
68+
69+
parentScene = newParentScene;
70+
71+
createNewLayer("default");
72+
resourceEntry = std::make_shared<SceneEntityInstanceResourceEntry>(this);
73+
topLevelResourcePool = core->getResourceManager()->getGlobalPool();
74+
loadFromFile(fileName);
75+
resourceEntry->setResourceName(fileName);
76+
resourceEntry->setResourcePath(fileName);
77+
cloneUsingReload = false;
78+
ownsChildren = true;
7279
}
7380

7481
SceneEntityInstance::SceneEntityInstance() : Entity() {
@@ -427,7 +434,10 @@ Entity *SceneEntityInstance::loadObjectEntryIntoEntity(ObjectEntry *entry, Entit
427434
}
428435
}
429436

430-
//parentScene->addLight(newLight);
437+
if(parentScene) {
438+
parentScene->addLight(newLight);
439+
}
440+
431441
entity = newLight;
432442
}
433443
} else if(entityType->stringVal == "ScenePrimitive") {

0 commit comments

Comments
 (0)