freesci-develop
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freesci-develop] r1580 - in freesci/branches/glutton/src: engine sfx


From: freesci
Subject: [freesci-develop] r1580 - in freesci/branches/glutton/src: engine sfx
Date: Sun, 05 Nov 2006 23:32:56 +0100

Author: skovmanden
Date: 2006-11-05 23:32:44 +0100 (Sun, 05 Nov 2006)
New Revision: 1580

Modified:
   freesci/branches/glutton/src/engine/kernel.c
   freesci/branches/glutton/src/engine/kgraphics.c
   freesci/branches/glutton/src/engine/scriptdebug.c
   freesci/branches/glutton/src/engine/seg_manager.c
   freesci/branches/glutton/src/sfx/iterator.c
Log:
New kernel call: IsItSkip()

Lars



Modified: freesci/branches/glutton/src/engine/kernel.c
===================================================================
--- freesci/branches/glutton/src/engine/kernel.c        2006-11-02 16:08:31 UTC 
(rev 1579)
+++ freesci/branches/glutton/src/engine/kernel.c        2006-11-05 22:32:44 UTC 
(rev 1580)
@@ -161,6 +161,7 @@
 reg_t kMemoryInfo(struct _state *s, int funct_nr, int argc, reg_t *argv);
 reg_t kGetSaveDir(struct _state *s, int funct_nr, int argc, reg_t *argv);
 reg_t kTextSize(struct _state *s, int funct_nr, int argc, reg_t *argv);
+reg_t kIsItSkip(struct _state *s, int funct_nr, int argc, reg_t *argv);
 reg_t k_Unknown(struct _state *s, int funct_nr, int argc, reg_t *argv);
 
 /* The Unknown/Unnamed kernel function */
@@ -325,6 +326,7 @@
 /*(?)*/        {KF_NEW, "AvoidPath", {kAvoidPath, "ii.*"}},
 /*(?)*/        {KF_NEW, "Lock", {kLock, "iii"}},
 /*(?)*/        {KF_NEW, "Palette", {kPalette, "i*"}},
+/*(?)*/        {KF_NEW, "IsItSkip", {kPalette, "iiiii"}},
 
   /* Non-experimental Functions without a fixed ID */
 

Modified: freesci/branches/glutton/src/engine/kgraphics.c
===================================================================
--- freesci/branches/glutton/src/engine/kgraphics.c     2006-11-02 16:08:31 UTC 
(rev 1579)
+++ freesci/branches/glutton/src/engine/kgraphics.c     2006-11-05 22:32:44 UTC 
(rev 1580)
@@ -949,8 +949,31 @@
        return not_register(s, make_reg(0, retval));
 }  /* CanBeHere */
 
+reg_t
+kIsItSkip(state_t *s, int funct_nr, int argc, reg_t *argv)
+{
+       int view = SKPV(0);
+       int loop = SKPV(1);
+       int cel = SKPV(2);
+       int x = UKPV(3);
+       int y = UKPV(4);
+       gfxr_view_t *res = NULL;
+       gfx_pixmap_t *pxm = NULL;
 
+       if (!(res = gfxr_get_view(s->gfx_state->resstate, view, &loop, &cel, 
0))) {
+               GFXWARN("Attempt to get cel parameters for invalid view %d\n", 
view);
+               return make_reg(0, -1);
+       }
 
+       pxm = res->loops[loop].cels[cel];
+       if (x > pxm->index_xl) x = pxm->index_xl-1;
+       if (y > pxm->index_yl) y = pxm->index_yl-1;
+
+       return make_reg(0,
+                       pxm->index_data[y*pxm->index_xl+x] ==
+                       pxm->color_key);
+}
+
 reg_t
 kCelHigh(state_t *s, int funct_nr, int argc, reg_t *argv)
 {

Modified: freesci/branches/glutton/src/engine/scriptdebug.c
===================================================================
--- freesci/branches/glutton/src/engine/scriptdebug.c   2006-11-02 16:08:31 UTC 
(rev 1579)
+++ freesci/branches/glutton/src/engine/scriptdebug.c   2006-11-05 22:32:44 UTC 
(rev 1580)
@@ -2745,7 +2745,10 @@
                sfx_song_set_status(&s->sound,
                                    handle, SOUND_STATUS_STOPPED);
                sfx_remove_song(&s->sound, handle);
-               }
+               PUT_SEL32V(id, signal, -1);
+               PUT_SEL32V(id, nodePtr, 0);
+               PUT_SEL32V(id, handle, 0);
+       }
 
        return 0;
 }

Modified: freesci/branches/glutton/src/engine/seg_manager.c
===================================================================
--- freesci/branches/glutton/src/engine/seg_manager.c   2006-11-02 16:08:31 UTC 
(rev 1579)
+++ freesci/branches/glutton/src/engine/seg_manager.c   2006-11-05 22:32:44 UTC 
(rev 1580)
@@ -1277,7 +1277,7 @@
 static void
 free_at_address_stub (seg_interface_t *self, reg_t sub_addr)
 {
-       sciprintf("  Request to free "PREG"\n", PRINT_REG(sub_addr));
+//     sciprintf("  Request to free "PREG"\n", PRINT_REG(sub_addr));
        /* STUB */
 }
 
@@ -1423,7 +1423,7 @@
        /* Note that this also includes the 'base' object, which is part of the 
script and therefore also
        ** emits the locals. */
        (*note) (param, clone->pos);
-       sciprintf("[GC] Reporting clone-pos "PREG"\n", PRINT_REG(clone->pos));
+//     sciprintf("[GC] Reporting clone-pos "PREG"\n", PRINT_REG(clone->pos));
 }
 
 

Modified: freesci/branches/glutton/src/sfx/iterator.c
===================================================================
--- freesci/branches/glutton/src/sfx/iterator.c 2006-11-02 16:08:31 UTC (rev 
1579)
+++ freesci/branches/glutton/src/sfx/iterator.c 2006-11-05 22:32:44 UTC (rev 
1580)
@@ -695,6 +695,7 @@
        int offset = 0;
        self->channels_nr = 0;
        self->next_sample = 0;
+//     self->device_id = 0x0c;
 
        CHECK_FOR_END_ABSOLUTE(0);
        if (SONGDATA(0) == 0xf0)
@@ -752,6 +753,10 @@
                                song_iterator_channel_t *channel =
                                        &(self->channels[self->channels_nr++]);
 
+                               if (self->data[track_offset] & 0xf0)
+                                       printf("Channel %d has mapping bits 
%02x\n", 
+                                              channel_nr, 
self->data[track_offset] & 0xf0);
+
                                _base_init_channel(channel,
                                                   channel_nr,
                                                   /* Skip over header bytes: */





reply via email to

[Prev in Thread] Current Thread [Next in Thread]