changeset 5:dcec61df1633

More work.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 22 May 2015 01:58:55 +0300
parents 1b96b102f401
children 2cc284a77add
files demo.c
diffstat 1 files changed, 63 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/demo.c	Fri May 22 01:39:15 2015 +0300
+++ b/demo.c	Fri May 22 01:58:55 2015 +0300
@@ -37,15 +37,59 @@
 
 #define FFT_SIZE 128
 DMFFTContext fft;
+DMResource *teksti = NULL;
+DMBitmapFont *font = NULL;
+
+typedef struct
+{
+    int layer;
+    char *filename;
+    SDL_Surface *img;
+} DMItemDef;
+
+
+DMItemDef items[] = 
+{
+    { 1, "viitta.png", NULL },
+    { 1, "puu_pv_1.png", NULL },
+    { 0, "puu_pv_2.png", NULL },
+};
+
+static const int nitems = sizeof(items) / sizeof(items[0]);
+
+
 
 
 static int demoInit(DMEngineData *engine)
 {
     int i;
     JSSModule *mod = NULL;
+    SDL_Color pal[DMFONT_NPALETTE];
+    DMResource *tmp;
 
+    // FFT init
     dmInitializeFFT(&fft, FFT_SIZE);
 
+    // Skrolliteksti
+    if ((teksti = engineFindResource(engine, "skrolli.txt")) == NULL)
+        return DMERR_INIT_FAIL;
+
+    // Skrollerin fontti
+    if ((tmp = engineFindResource(engine, "fontti.dmf")) == NULL)
+        return DMERR_INIT_FAIL;
+    
+    if ((i = dmLoadBitmapFont(tmp, &font)) != DMERR_OK)
+        return i;
+
+    for (i = 0; i < DMFONT_NPALETTE; i++)
+    {
+        pal[i].r = pal[i].g = pal[i].b = i * 8;
+        pal[i].unused = i > 0 ? 255 : 0;
+    }
+
+    dmSetBitmapFontPalette(font, pal, 0, DMFONT_NPALETTE);
+
+    // Musa
     engineGetResModule(engine, mod, "pas2.xm");
 
     if ((i = jssConvertModuleForPlaying(mod)) != DMERR_OK)
@@ -60,6 +104,11 @@
     jmpPlayOrder(engine->jssPlr, 0);
     jvmSetGlobalVol(engine->jssDev, 55);
 
+
+    // Osa kuvadatasta
+    for (i = 0; i < nitems; i++)
+        engineGetResImage(engine, items[i].img, items[i].filename);
+
     // Jne
     srand(15);
 
@@ -71,6 +120,7 @@
 {
     (void) engine;
     dmEndFFT(&fft);
+    dmFreeBitmapFont(font);
 }
 
 
@@ -165,11 +215,9 @@
 }
 
 
-
 static int demoRender(DMEngineData *engine)
 {
     float t = engineGetTimeDT(engine);
-    
 
     //
     // Do FFT
@@ -206,8 +254,6 @@
     {
         static SDL_Surface *tausta = NULL,
                 *aurinko = NULL,
-                *puu1 = NULL,
-                *puu2 = NULL,
                 *bussi = NULL,
                 *rengas = NULL;
 
@@ -222,8 +268,6 @@
             dmLerpInit(&fadeLerp3, 0, 1.2, 3000);
             engineGetResImage(engine, tausta, "tausta_pv.png");
             engineGetResImage(engine, aurinko, "aurinko.png");
-            engineGetResImage(engine, puu1, "puu_pv_1.png");
-            engineGetResImage(engine, puu2, "puu_pv_2.png");
             engineGetResImage(engine, bussi, "auto.png");
             engineGetResImage(engine, rengas, "rengas.png");
             cblit = dmGetScaledBlitFunc(tausta->format, engine->screen->format, DMD_NONE);
@@ -261,10 +305,10 @@
 
         
         // Bussi ajaa sisään
-        if (t > 4)
+        if (t > 14)
         {
             float
-                dt = engineGetTime(engine, 4),
+                dt = engineGetTime(engine, 14),
                 ajelu = dmLerpSCurveClamp(&fadeLerp3, dt),
                 xc = dmCX(engine, -1 + ajelu),
                 yc = dmCY(engine, 0.35 + sin(t * 10) * 0.005),
@@ -274,6 +318,12 @@
             ablit(rengas, xc + dmQX(engine, bussi, 0.80), yc2, dmQX(engine, rengas, 1), dmQY(engine, rengas, 1), engine->screen);
             ablit(bussi, xc, yc, dmQX(engine, bussi, 1), dmQY(engine, bussi, 1), engine->screen);
         }
+
+
+        // Puut ym. liikennejutut
+        if (t > 10)
+        {
+        }
     }
 
     //
@@ -371,7 +421,7 @@
 
         if (!nollattu)
         {
-            engineGetResImage(engine, maski, "maze.png");
+            engineGetResImage(engine, maski, "maski.png");
             cblit = dmGetScaledBlitFunc(maski->format, engine->screen->format, DMD_TRANSPARENT);
         }
 
@@ -382,5 +432,8 @@
             engine->screen);
     }
 
-    return DMERR_OK;
+    if (t > 70)
+        return 1;
+    else
+        return DMERR_OK;
 }