| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 | 
							- //----------------------------------------------------------------------------------------
 
- //
 
- // customseek.m
 
- //
 
- //----------------------------------------------------------------------------------------
 
- // Use like this :
 
- // #define CUSTOM_SEEK_VAR MyVar
 
- // #include "customseek.m"
 
- //
 
- //
 
- // What you need :  
 
- //                       _MyVarInit(Layer seeksurface, Layer seekghost, Map seekmap); 
 
- //                       _MyVarShutdown(); 
 
- //
 
- Global Layer _##CUSTOM_SEEK_VAR##Surface;
 
- Global Layer _##CUSTOM_SEEK_VAR##Ghost;
 
- Global Map _##CUSTOM_SEEK_VAR##Map;
 
- Global Int _##CUSTOM_SEEK_VAR##Clicked;
 
- Global Timer _##CUSTOM_SEEK_VAR##Timer;
 
- Global Int _##CUSTOM_SEEK_VAR##CurPos;
 
- Function _##CUSTOM_SEEK_VAR##Init(Layer s, Layer g, Map m);
 
- Function _##CUSTOM_SEEK_VAR##Update(int newpos);
 
- Function _##CUSTOM_SEEK_VAR##UpdateXY(int x, int y);
 
- Function _##CUSTOM_SEEK_VAR##SeekTo(int x, int y);
 
- Function _##CUSTOM_SEEK_VAR##Shutdown();
 
- _##CUSTOM_SEEK_VAR##Init(Layer s, Layer g, Map m) {
 
-   _##CUSTOM_SEEK_VAR##Surface = s;
 
-   _##CUSTOM_SEEK_VAR##Ghost = g;
 
-   _##CUSTOM_SEEK_VAR##Map = m;
 
-   _##CUSTOM_SEEK_VAR##Update(0);
 
-   _##CUSTOM_SEEK_VAR##Timer = new Timer;
 
-   _##CUSTOM_SEEK_VAR##Timer.setDelay(500);
 
-   _##CUSTOM_SEEK_VAR##Timer.start();
 
- }
 
- _##CUSTOM_SEEK_VAR##Shutdown() {
 
-   delete _##CUSTOM_SEEK_VAR##Timer;
 
- }
 
- _##CUSTOM_SEEK_VAR##Surface.onLeftButtonDown(int x, int y) {
 
-   if (getPlayItemLength() <= 0) return;
 
-   if (Strleft(getPlayItemString(), 4) == "http") return;
 
-   _##CUSTOM_SEEK_VAR##Clicked = 1;
 
-   _##CUSTOM_SEEK_VAR##UpdateXY(x, y);
 
- }
 
- _##CUSTOM_SEEK_VAR##Surface.onMouseMove(int x, int y) {
 
-   if (_##CUSTOM_SEEK_VAR##Clicked) {
 
-     if (getPlayItemLength() == 0) {
 
-       _##CUSTOM_SEEK_VAR##Clicked = 0;
 
-       return;
 
-     }
 
-     _##CUSTOM_SEEK_VAR##UpdateXY(x, y);
 
-   }
 
- }
 
- _##CUSTOM_SEEK_VAR##Surface.onLeftButtonUp(int x, int y) {
 
-   if (!_##CUSTOM_SEEK_VAR##Clicked) return;  
 
-   _##CUSTOM_SEEK_VAR##Clicked = 0;
 
-   _##CUSTOM_SEEK_VAR##SeekTo(x, y);
 
- }
 
- _##CUSTOM_SEEK_VAR##SeekTo(int x, int y) {
 
-   int n = _##CUSTOM_SEEK_VAR##Map.getValue(x, y);
 
-   seekTo(getPlayItemLength() * (n / 255));
 
- }
 
- _##CUSTOM_SEEK_VAR##UpdateXY(int x, int y) {
 
-   int n = _##CUSTOM_SEEK_VAR##Map.getValue(x, y);
 
-   Region r = new Region;
 
-   r.loadFromMap(_##CUSTOM_SEEK_VAR##Map, n, 1);
 
-   r.offset(-_##CUSTOM_SEEK_VAR##Ghost.getLeft(), -_##CUSTOM_SEEK_VAR##Ghost.getTop());
 
-   _##CUSTOM_SEEK_VAR##Ghost.setRegion(r);
 
-   #ifdef CUSTOM_SEEK_CALLBACK
 
-   int n = _##CUSTOM_SEEK_VAR##Map.getValue(x, y);
 
-   _##CUSTOM_SEEK_VAR##OnUpdate(r, getPlayItemLength() * (n / 255));
 
-   #endif
 
-   delete r;
 
- }
 
- _##CUSTOM_SEEK_VAR##Update(int newpos) {
 
-   float p;
 
-   int l = getPlayItemLength();
 
-   if (l == 0) p = 0;
 
-   else p = newpos / l * 255;
 
-   Region r = new Region;
 
-   r.loadFromMap(_##CUSTOM_SEEK_VAR##Map, p, 1);
 
-   _##CUSTOM_SEEK_VAR##CurPos = p;
 
-   r.offset(-_##CUSTOM_SEEK_VAR##Ghost.getLeft(), -_##CUSTOM_SEEK_VAR##Ghost.getTop());
 
-   _##CUSTOM_SEEK_VAR##Ghost.setRegion(r);
 
-   #ifdef CUSTOM_SEEK_CALLBACK
 
-   _##CUSTOM_SEEK_VAR##OnUpdate(r, newpos);
 
-   #endif
 
-   delete r;
 
- }
 
- _##CUSTOM_SEEK_VAR##Timer.onTimer() {
 
-   if (_##CUSTOM_SEEK_VAR##Clicked) return;
 
-   int l = getPlayItemLength();
 
-   if (l > 0) {
 
-     int p = getPosition() / l * 255;
 
-     if (p != _##CUSTOM_SEEK_VAR##CurPos) {
 
-       _##CUSTOM_SEEK_VAR##Update(getPosition());
 
-     }
 
-   } else {
 
-     if (_##CUSTOM_SEEK_VAR##CurPos != 0)
 
-       _##CUSTOM_SEEK_VAR##Update(0);
 
-       _##CUSTOM_SEEK_VAR##CurPos = 0;
 
-   }
 
- }
 
 
  |