[Top][All Lists]
[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: */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freesci-develop] r1580 - in freesci/branches/glutton/src: engine sfx,
freesci <=