When using /drawrot to rotate a bitmap, if you're trying to rotate a circle rather than a rectangle, you end up with part of the resulting bitmap occupying pixels which are outside of the orignal bitmap rotated, indeed ruining your current bitmap..
Basically in order to properly rotate and animate a spinning motion in this way, you have to use a buffer window, rotate there and only then drawcopy into where you want to animate.
I'd like to see a new switch for /drawrot, which would go with -c, which would do exactly as the above, here is an example:


Code
alias testdrawrot {
  window -pfdCBo +Lt @tdr -1 -1 350 300
  refresh_win
  window -pfdBo +Lt @tdr4 $calc($window(@tdr).cx + 600) $window(@tdr).cy 1200 600
  drawrect -fr @tdr4 0 0 0 0 1200 600
  drawcopy @tdr 0 0 350 300 @tdr4 0 0
  drawrot -cb @tdr 167772 45 80 40 195 195
  drawcopy @tdr 0 0 350 300 @tdr4 400 0
  drawrect -r @tdr4 32764 2 480 40 195 195
  drawcopy @tdr4 0 0 350 300 @tdr4 800 0
  drawcopy @tdr4 480 40 195 195 @tdr4 880 40
  window -c @tdr
}

alias refresh_win {
  drawrect -fr @tdr 167772 0 0 0 350 300
  drawrect -re @tdr 0 2 80 40 195 195
  drawline -r @tdr 0 2 132 52 174 135 80 136 174 135 110 207 174 135 192 232 174 135 250 200 174 135 273 145 174 135 235 58
  drawfill -r @tdr 16776960 0 148 50
  drawfill -r @tdr 255 0 150 90
  drawfill -r @tdr 32764 0 113 200
  drawfill -r @tdr 127 0 165 200
  drawfill -r @tdr 64512 0 214 200
  drawfill -r @tdr 8355711 0 241 178
  drawfill -r @tdr 10223772 0 234 100
  drawtext -pr @tdr 0 "Segoe UI Symbol" 26 150 50 +3 $chr($base(D83D,16,10)) $+ $chr($base(DCB0,16,10))
  drawtext -pr @tdr 0 "Segoe UI Symbol" 26 90 90 -3 $chr($base(D83D,16,10)) $+ $chr($base(DCB0,16,10))
  drawtext -pr @tdr 0 "Segoe UI Symbol" 26 200 95 +1 $chr($base(D83C,16,10)) $+ $chr($base(DF44,16,10))
  drawtext -pr @tdr 0 "Segoe UI Symbol" 26 205 135 +1 $chr($base(D83D,16,10)) $+ $chr($base(DC22,16,10))
  drawtext -pr @tdr 0 "Segoe UI Symbol" 26 120 185 -5 $chr($base(D83D,16,10)) $+ $chr($base(DCB0,16,10))
  drawtext -pr @tdr 0 "Segoe UI Symbol" 26 85 135 +5 $chr($base(D83D,16,10)) $+ $chr($base(DCB0,16,10))
  drawtext -pr @tdr 0 "Segoe UI Symbol" 26 195 180 ?¿?
  drawrect -r @tdr 255 2 80 40 195 195
  drawline -r @tdr 0 5 250 250 300 300
}
[img]https://www.dropbox.com/s/akvgrwvscmi2q2l/tdr4.png?dl=0[/img]
First image is the original image, second image is the best you can do currently, you can see it's damaging the thick black lines, third picture is what the new switch would do.
The orange rectangle represent the original portion passed to /drawrot, pixels would only change inside that area.
Is this possible to add?


#mircscripting @ irc.swiftirc.net == the best mIRC help channel