Login

Subversion Repositories NedoOS

Rev

Rev 749 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

testspr=$+4
_hgt=16
_wid=8 ;width/2
        db _wid
        db _hgt
_=_wid
        dup _wid
        dup _hgt*2
        db (0xaa+$)&0xff
        edup
_=_-1
        if _ != 0
        dw 0x4000 - ((_hgt-1)*40)
        else
        dw 0xffff
        endif
        edup
        dw prsprqwid

BULLETRIGHT=0xc000+(16*2)
BULLETLEFT=0xc000+(17*2)

HEROSTANDRIGHT0=0xc000+(22*2)
HEROSTANDRIGHT1=0xc000+(23*2)
HEROSTANDLEFT0=0xc000+(24*2)
HEROSTANDLEFT1=0xc000+(25*2)
HERORUNRIGHT0=0xc000+(26*2)
HERORUNRIGHT1=0xc000+(27*2)
HERORUNRIGHT2=0xc000+(28*2)
HERORUNLEFT0=0xc000+(29*2)
HERORUNLEFT1=0xc000+(30*2)
HERORUNLEFT2=0xc000+(31*2)

heroanim_runright
        dw HERORUNRIGHT0
        db 4
        dw HERORUNRIGHT1
        db 4
        dw HERORUNRIGHT2
        db 4
        dw heroanim_runright
heroanim_runleft
        dw HERORUNLEFT0
        db 4
        dw HERORUNLEFT1
        db 4
        dw HERORUNLEFT2
        db 4
        dw heroanim_runleft
heroanim_standright;=heroanim_runright
        dw HEROSTANDRIGHT0
        db 25
        dw HEROSTANDRIGHT1
        db 25
        dw heroanim_standright
heroanim_standleft;=heroanim_runleft
        dw HEROSTANDLEFT0
        db 25
        dw HEROSTANDLEFT1
        db 25
        dw heroanim_standleft

bulletanim_right
        dw BULLETRIGHT
        db 50
        dw bulletanim_right

bulletanim_left
        dw BULLETLEFT
        db 50
        dw bulletanim_left

        STRUCT obj
y16     WORD
x16     WORD
;sprite16 WORD
animtime BYTE
animaddr16 WORD
xspeed16 WORD
yspeed16 WORD
health  BYTE
flags   BYTE ;b0=on ground, b1=jump not released, b2=blinking, b4=╨┐╤А╨╛╨▓╨░╨╗╨╕╤В╤М╤Б╤П, b7=dead
sz
        ENDS

MAXOBJECTS=42
MAXBULLETS=8
TYPE_HERO=254
OBJSIZE=obj.sz

objects
;y16 (*8)
;x16 (*8) (in double pixels)
;animtime
;animaddr16
;xspeed16
;yspeed16
;health
_=0
_x=10
        dup 1
_y=100
        dup 1;  3
       
        dw 8*_y ;y
        dw 8*(_x+(sprmaxwid-1)) ;x
        ;dw HERO0
        db 1
        dw heroanim_standright
        dw 1
        dw 0
        db 100
        db 0 ;flags
_=_+1
_y=_y+40
        edup
_x=_x+20
        edup
        dw -1
       
        ds MAXOBJECTS*OBJSIZE
endobjects

bullets
        ds MAXBULLETS*OBJSIZE
bulletlistend
        dw -1