void awp_draw_reel(int rno) { int x = rno + 1; char rg[16]; sprintf(rg,"reel%d", x); reelpos[rno] = stepper_get_position(rno); if (reelpos[rno] == output_get_value(rg)) { // Not moved, no need to update. } else { output_set_value(rg,(reelpos[rno])); // if the reel isn't configured don't do this, otherwise you'll get DIV0 if (stepper_get_max(rno)) { sprintf(rg,"sreel%d", x); // our new scrolling reels are called 'sreel' // normalize the value int sreelpos = (reelpos[rno] * 0x10000) / stepper_get_max(rno); output_set_value(rg,sreelpos); } } }
INT32 output_get_indexed_value(const char *basename, int index) { char buffer[100]; char *dest = buffer; /* copy the string */ while (*basename != 0) *dest++ = *basename++; /* append the index */ if (index >= 1000) *dest++ = '0' + ((index / 1000) % 10); if (index >= 100) *dest++ = '0' + ((index / 100) % 10); if (index >= 10) *dest++ = '0' + ((index / 10) % 10); *dest++ = '0' + (index % 10); *dest++ = 0; /* set the value */ return output_get_value(buffer); }
void awp_draw_reel(int rno) { int rsteps = steps[rno]; int rsymbols = symbols[rno]; int m; int x = rno + 1; char rg[16], rga[16], rgb[16]; sprintf(rg,"reel%d", x); reelpos[rno] = stepper_get_position(rno); if (reelpos[rno] == output_get_value(rg)) { // Not moved, no need to update. } else { reelpos[rno] = stepper_get_position(rno)%(stepper_get_max(rno)-1); for ( m = 0; m < (rsymbols-1); m++ ) { { sprintf(rga,"reel%da%d", x, m); output_set_value(rga,(reelpos[rno] + rsteps * m)%stepper_get_max(rno)); } { if ((reelpos[rno] - rsteps * m) < 0) { sprintf(rgb,"reel%db%d", x, m); output_set_value(rgb,(reelpos[rno] - (rsteps * m - stepper_get_max(rno)))); } else { sprintf(rgb,"reel%db%d", x, m); output_set_value(rgb,(reelpos[rno] - rsteps * m)); } } } output_set_value(rg,(reelpos[rno])); } }
void awp_draw_reel(const char* reeltag, stepper_device &reel) { char rg[16]; int reelpos = reel.get_position(); if (reelpos == output_get_value(reeltag)) { // Not moved, no need to update. } else { output_set_value(reeltag,(reelpos)); // if the reel isn't configured don't do this, otherwise you'll get DIV0 if (reel.get_max()) { sprintf(rg,"s%s", reeltag); // our new scrolling reels are called 'sreel' // normalize the value int sreelpos = (reelpos * 0x10000) / reel.get_max(); output_set_value(rg,sreelpos); } } }
void awp_reel_setup(void) { int x,reels; char rstep[16],rsym[16]; if (!output_get_value("TotalReels")) { reels = 6 ; } else { reels = output_get_value("TotalReels"); } for ( x = 0; x < reels; x++ ) { sprintf(rstep, "ReelSteps%d",x+1); sprintf(rsym, "ReelSymbols%d",x+1); if (!output_get_value(rstep)) { steps[x] = 6 ; } else { steps[x] = output_get_value(rstep); } if (!output_get_value(rsym)) { symbols[x] = 1 ; } else { symbols[x] = output_get_value(rsym); } } }