; Structures for OddBall


; Recompile Number if changed

struct v {
  .screenadr	DCD 0;do not split
  .screensize	DCD 0
  .hbytes	DCD 0
  .screenuse	DCD 0
  .bank		DCD 0
  .frameinc	DCD 0
  .framectr	DCD 0
  .scanctr	DCD 0
  .canvasadr	DCD 0
  .canvasend	DCD 0
  .storesadr	DCD 0
  .paperadr	DCD 0
  .levelnet	DCD 0
  .helladr	DCD 0
  .hellcont	DCD 0
  .helltemp	DCD 0
  .helltimer	DCD 0
  .scanadr	DCD 0
  .scanxofs	DCD 0
  .scanyofs	DCD 0
  .ballsofs	DCD 0
  .scoreofs	DCD 0
  .livesofs	DCD 0
  .goodyofs	DCD 0
  .ballschange	DCD 0
  .scorechange	DCD 0
  .liveschange	DCD 0
  .goodychange	DCD 0
  .backdrop	DCD 0
  .masterplot	DCD 0
  .netxpos	DCD 0
  .netypos	DCD 0
  .attnctr	DCD 0
  .plotnibble	DCD 0
  .ballctr	DCD 0
  .ballxpos	DCD 0
  .ballypos	DCD 0
  .balldist	DCD 0
  .ballheight	DCD 0
  .lastlives	DCD 0
  .lastscore	DCD 0
  .lastballs	DCD 0
  .lastgoodytab	DBD 4
  .lastgoodycsr	DCD 0
.savestart
  .ballspeed	DCD 0
  .ballmin	DCD 0
  .mousesens	DCD 0
  .mousespeed	DCD 0
  .plxcent	DCD 0
  .plycent	DCD 0
  .ballspeedlim	DCD 0
  .xlim		DCD 0
  .ylim		DCD 0
  .goodycsr	DCD 0
  .xplotofs	DCD 0
  .yplotofs	DCD 0
  .xpos		DCD 0
  .ypos		DCD 0
  .xvec		DCD 0
  .yvec		DCD 0
  .pllives	DCD 0
  .plscore	DCD 0
 .goodytab     ;deliberate gap
  .good0	DCD 0
  .good1	DCD 0
  .good2	DCD 0
  .good3	DCD 0
  .scanspeed	DCD 0
  .magnet	DCD 0
  .ballfire	DCD 0
  .moretime	DCD 0
  .flyball	DCD 0
  .blueball	DCD 0
  .lineradar	DCD 0
  .bastard	DCD 0
  .ballstops	DCD 0
  
  .dead		DCD 0
  .newlevelctr	DCD 0
  .blocknum	DCD 0
  .blocksleft	DCD 0
  .levelno	DCD 0
  .diff		DCD 0
  .savestate	DCD 0
  .mousestep	DCD 0
  .sparks	DCD 0
  .warped	DCD 0
  .warptime	DCD 0
  .ballxhome	DCD 0
  .ballyhome	DCD 0
  .xgrav	DCD 0
  .ygrav	DCD 0
  .redball	DCD 0
  .rightkey	DCD 0
  .upkey	DCD 0
  .downkey	DCD 0
  .takekey	DCD 0
  .choosekey	DCD 0
.saveend	
  .music	DCD 0
  .quality	DCD 0
  .soundvol	DCD 0

  .hscrollinc	DCD 0
  .vscrollinc	DCD 0
  .buttons	DCD 0
  .lastbuttons	DCD 0
  .scanxadd	DCD 0
  .scanend	DCD 0
  .osblock0	DCD 0
  .osblock1	DCD 0
  .colpitch	DCD 0
  .rnseed	DCD 0
  .bateffect	DCD 0
  .windmax	DCD 0
  .savenames	DCD 0
  .saveslot	DCD 0
  .loadslot	DCD 0
  .loadedlev	DCD 0
  .menuno	DCD 0
  .menucsr	DCD 0
  .pending	DCD 0
  .demomode	DCD 0
  .demoadr	DCD 0
  .democtr	DCD 0
  .genctr	DCD 0
  .lineskip	DCD 0
  .exit		DCD 0
  .singlesave	DCD 0
  .bastmode	DCD 0
  .loadeddrop	DCD 0
  .hinames	DCD 0
  .hislot	DCD 0
  .helltype	DCD 0
  .hwarpinc	DCD 0
  .vwarpinc	DCD 0
  .balladr	DCD 0
  .lastmenu	DCD 0
  .tlball	DCD 0
  .trball	DCD 0
  .blball	DCD 0
  .brball	DCD 0
  .ballxnib	DCD 0
  .ballynib	DCD 0
  .scanlock	DCD 0
  .cheat	DCD 0
  .batpresent	DCD 0
  .magpitch	DCD 0
  .warptimer	DBD 7
  .windbuf	DBB 16
  .realrate	DCD 0; ***
  .temp0	DCD 0
  .temp1	DCD 0
  .temp2	DCD 0
  .buffer	DBB 16
  .backbuf	DBB 64
  .backbuf2	DBB 64
  .soundtab	DBB 8*snd.sizeof
  .sizeof
}
struct net {
  .xsize	DCD 0
  .ysize	DCD 0
  .xgrav	DCD 0
  .ygrav	DCD 0
  .backdrop	DCD 0
  .text1	DBB 32
  .text2	DBB 32
  .data
  .sizeof
}

#set soundtabshift=5

struct snd {
  .sample	DCD 0
  .vol		DCD 0
  .pitch	DCD 0
  .volslide	DCD 0
  .pitchslide	DCD 0
  .stereo	DCD 0
  .ctr		DCD 0
  .spare	DCD 0
  .sizeof
}
