home *** CD-ROM | disk | FTP | other *** search
/ Aminet 18 / aminetcdnumber181997.iso / Aminet / dev / misc / gms_dev.lha / GMS / Source / E / Screens / Reposition.e < prev    next >
Encoding:
Text File  |  1997-01-29  |  1.9 KB  |  67 lines

  1. /* Reposition 320
  2. ** --------------
  3. ** This example has a mobile 320x256 screen, which is attached to the
  4. ** joystick.
  5. **
  6. ** To exit the example, press fire. 
  7. */
  8.  
  9. MODULE 'games','games/games'
  10.  
  11. PROC main()
  12.    DEF screen:PTR TO gamescreen, palette:PTR TO INT, joy:LONG,
  13.        loadpic:PTR TO picture
  14.  
  15.    palette := [
  16.     $000,$130,$FCB,$FA9,$D88,$965,$644,$211,
  17.     $400,$444,$FF0,$432,$CC0,$150,$501,$880,
  18.     $261,$271,$382,$492,$5A3,$5B4,$677,$6C4,
  19.     $788,$9AA,$BCC,$801,$901,$A02,$701,$601
  20.    ]:INT;
  21.  
  22.    loadpic := [
  23.     PCV1,0,             -> Version header.
  24.     0,                  -> Destination.
  25.     320,0,256,          -> Width, Height.
  26.     5,                  -> Amount of Planes.
  27.     32,                 -> Amount of colours.
  28.     palette,            -> Palette (remap).
  29.     LORES OR COL12BIT,  -> Screen mode.
  30.     INTERLEAVED,        -> Destination.
  31.     0,                  -> Parameters.
  32.     'GAMESLIB:data/IFF.Pic320'
  33.    ]:picture;
  34.  
  35.    IF gmsbase := OpenLibrary('games.library',0)
  36.       SetUserPrefs(0)
  37.       IF (screen := AddScreen([TAGS,0,
  38.           GSA_PALETTE,palette,
  39.           GSA_SCRWIDTH,320,
  40.           GSA_SCRHEIGHT,256,
  41.           GSA_PLANES,5,
  42.           GSA_SCRMODE,LORES OR COL12BIT,
  43.           GSA_SCRTYPE,INTERLEAVED,
  44.           TAGEND]))
  45.  
  46.          loadpic.data := screen.memptr1;
  47.          IF (LoadPic(loadpic) = ERR_OK)
  48.             ShowScreen(screen)
  49.  
  50.             REPEAT
  51.               joy := ReadJoyPort(JPORT2,JT_SWITCH)
  52.               IF (joy AND JS_RIGHT) THEN screen.scrxoffset := screen.scrxoffset+1
  53.               IF (joy AND JS_LEFT) THEN screen.scrxoffset := screen.scrxoffset-1
  54.               IF (joy AND JS_UP) THEN screen.scryoffset := screen.scryoffset-1
  55.               IF (joy AND JS_DOWN) THEN screen.scryoffset := screen.scryoffset+1
  56.               WaitSVBL()
  57.               RemakeScreen(screen)
  58.             UNTIL !(joy AND JS_FIRE1)
  59.  
  60.          ENDIF
  61.       DeleteScreen(screen)        
  62.       ENDIF
  63.    CloseLibrary(gmsbase)
  64.    ENDIF
  65. ENDPROC
  66.  
  67.