Browse Source

Fixed overflow issue

main
Devine Lu Linvega 6 years ago
parent
commit
6a01e0094d
  1. 23
      chr6.c

23
chr6.c

@ -69,8 +69,6 @@ dispt(Point* a, Point* b)
return ((b->x - a->x) * (b->x - a->x)) + ((b->y - a->y) * (b->y - a->y));
}
/* Draw */
void
pixel(uint32_t* dst, Point p, int c)
{
@ -88,7 +86,7 @@ draw(uint32_t* dst, int id, int color)
int ti = id / 64;
int px = (ti / (HOR * VER)) * (8 * HOR);
int tx = (ti % HOR) * 8;
int ty = ((ti / HOR) * 8) % 128;
int ty = ((ti / HOR) * 8);
int odd = (ti + (ti / HOR + 2)) % 2 == 0;
Point p;
p.x = px + tx + (id % 8);
@ -115,14 +113,12 @@ redraw(uint32_t* dst)
SDL_RenderPresent(gRenderer);
}
/* Chr */
void
write(int tx, int ty, int px, int py, int color)
{
int id = tx + ty * HOR;
int row = py + id * VER;
if(id > HOR * VER)
int row = py + (id * 16);
if(row > SZ - 8)
return;
if(color == 0) {
buffer[row] &= ~(1UL << (7 - px));
@ -144,16 +140,9 @@ edit(int x, int y, int color)
{
if(x < 0 || y < 0 || x > 8 * HOR || y > 8 * VER)
return;
write(
x / (8),
y / (8),
x % 8,
y % 8,
color);
write(x / 8, y / 8, x % 8, y % 8, color);
}
/* Brush */
int
patt(int x, int y, int mode, int size)
{
@ -436,16 +425,12 @@ main(int argc, char** argv)
if(!init())
return error("SDL", "failure");
/* IO */
if(argc > 1)
load(argv[1]);
else
create();
update(&brush);
/* main loop */
while(1) {
int tick = SDL_GetTicks();
SDL_Event event;

Loading…
Cancel
Save