- // hardcoded texture assignment hack
- Texture *tex_girogiromarmaro = texman.get("data/testscene/girogiromarmarodiffuse.jpg");
- Texture *tex_kafemarble = texman.get("data/testscene/kafemarblediffuse.jpg");
- Texture *tex_kentrikokafemarble = texman.get("data/testscene/kentrikokafemarblediffuse.jpg");
- Texture *tex_paliomarmaro = texman.get("data/testscene/paliomarmarodiffuse.jpg");
- Texture *tex_steelgreygranite = texman.get("data/testscene/steel-grey-granitediffuse.jpg");
- Texture *tex_whitemarble = texman.get("data/testscene/whitemarblediffuse.jpg");
- Texture *tex_kolones_lightmap = texman.get("data/testscene/kolones_lighmap.jpg");
- Texture *tex_patoma_lightmap = texman.get("data/testscene/patomacorona_lightmap.jpg");
-
- for(int i=0; i<(int)scn->objects.size(); i++) {
- Object *obj = scn->objects[i];
- if(obj->mtl.name == "WiteMarble") {
- obj->mtl.add_texture(tex_whitemarble, MTL_TEX_DIFFUSE);
- obj->mtl.add_texture(tex_patoma_lightmap, MTL_TEX_LIGHTMAP);
- } else if(obj->mtl.name == "BrownMarble") {
- obj->mtl.add_texture(tex_kafemarble, MTL_TEX_DIFFUSE);
- obj->mtl.add_texture(tex_patoma_lightmap, MTL_TEX_LIGHTMAP);
- } else if(obj->mtl.name == "GiroGiroMarmaro") {
- obj->mtl.add_texture(tex_girogiromarmaro, MTL_TEX_DIFFUSE);
- obj->mtl.add_texture(tex_patoma_lightmap, MTL_TEX_LIGHTMAP);
- } else if(obj->mtl.name == "KentrikoKafeMarmaro") {
- obj->mtl.add_texture(tex_kentrikokafemarble, MTL_TEX_DIFFUSE);
- obj->mtl.add_texture(tex_patoma_lightmap, MTL_TEX_LIGHTMAP);
- } else if(obj->mtl.name == "SkouroGrizoMarmaro") {
- obj->mtl.add_texture(tex_steelgreygranite, MTL_TEX_DIFFUSE);
- obj->mtl.add_texture(tex_kolones_lightmap, MTL_TEX_LIGHTMAP);
- } else if(obj->mtl.name == "PalioMarmaro") {
- obj->mtl.add_texture(tex_paliomarmaro, MTL_TEX_DIFFUSE);
- obj->mtl.add_texture(tex_kolones_lightmap, MTL_TEX_LIGHTMAP);
- }
+ mscn = new MetaScene;
+ if(!mscn->load(opt.scenefile ? opt.scenefile : "data/museum.scene")) {
+ return false;
+ }
+
+ avatar.pos = mscn->start_pos;
+ Vec3 dir = rotate(Vec3(0, 0, 1), mscn->start_rot);
+ dir.y = 0;
+ avatar.body_rot = rad_to_deg(acos(dot(dir, Vec3(0, 0, 1))));
+
+ exman = new ExhibitManager;
+ if(!exman->load(mscn, "data/exhibits")) {
+ //return false;
+ }
+
+ blobs = new BlobExhibit;
+ blobs->node = new SceneNode;
+ blobs->init();
+ blobs->node->set_position(Vec3(-680, 160, -100));
+ blobs->node->set_scaling(Vec3(28, 28, 28));
+ blobs->node->update(0);
+
+ exman->add(blobs);
+
+ if(!(sdr_ltmap_notex = create_program_load("sdr/lightmap.v.glsl", "sdr/lightmap-notex.p.glsl"))) {
+ return false;