metascene initial implementation
[laserbrain_demo] / src / app.cc
index 3426c99..2501415 100644 (file)
@@ -7,6 +7,8 @@
 #include "mesh.h"
 #include "meshgen.h"
 #include "scene.h"
+#include "metascene.h"
+#include "datamap.h"
 
 static void draw_scene();
 
@@ -43,46 +45,24 @@ bool app_init()
        float ambient[] = {0.0, 0.0, 0.0, 0.0};
        glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambient);
 
-       unsigned int sflags = SCNLOAD_FLIPTEX;
        scn = new Scene(&texman);
+       if(!load_scene(scn, "data/museum.scene")) {
+               return false;
+       }
+
+       /*
+       datamap_set_path("data");
+       if(!datamap_load_map("data.map")) {
+               fprintf(stderr, "failed to load datafile mappings\n");
+       }
+
+       unsigned int sflags = SCNLOAD_FLIPTEX;
        if(!(scn->load("data/testscene/patoma.fbx", sflags)) ||
                        !(scn->load("data/testscene/kolones.fbx", sflags))) {
                fprintf(stderr, "failed to load test scene\n");
                return false;
        }
-
-       // 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);
-               }
-       }
+       */
 
        if(!(sdr = create_program_load("sdr/test.v.glsl", "sdr/test.p.glsl"))) {
                fprintf(stderr, "failed to load test shaders\n");
@@ -106,7 +86,7 @@ static void update(float dt)
 
        scn->update(dt);
 
-       float walk_speed = 10.0 * dt;
+       float walk_speed = 2000.0 * dt;
        Vec3 dir;
 
        if(keystate[(int)'w']) {
@@ -199,7 +179,7 @@ void app_reshape(int x, int y)
 
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
-       gluPerspective(50.0, (float)x / (float)y, 0.5, 1000.0);
+       gluPerspective(50.0, (float)x / (float)y, 1.0, 10000.0);
 }
 
 void app_keyboard(int key, bool pressed)