Browse code

Added a scroll wheel port to the mouse device

neauoire authored on 29/05/2021 22:01:19
Showing 1 changed files
... ...
@@ -155,7 +155,6 @@ domouse(SDL_Event *event)
155 155
 	Uint16 y = clamp(event->motion.y - PAD, 0, ppu.ver * 8 - 1);
156 156
 	mempoke16(devmouse->dat, 0x2, x);
157 157
 	mempoke16(devmouse->dat, 0x4, y);
158
-	devmouse->dat[7] = 0x00;
159 158
 	switch(event->button.button) {
160 159
 	case SDL_BUTTON_LEFT: flag = 0x01; break;
161 160
 	case SDL_BUTTON_RIGHT: flag = 0x10; break;
... ...
@@ -164,10 +163,8 @@ domouse(SDL_Event *event)
164 163
 	case SDL_MOUSEBUTTONDOWN:
165 164
 		devmouse->dat[6] |= flag;
166 165
 		if(flag == 0x10 && (devmouse->dat[6] & 0x01))
167
-			devmouse->dat[7] = 0x01;
168
-		if(flag == 0x01 && (devmouse->dat[6] & 0x10))
169
-			devmouse->dat[7] = 0x10;
170
-		break;
166
+			if(flag == 0x01 && (devmouse->dat[6] & 0x10))
167
+				break;
171 168
 	case SDL_MOUSEBUTTONUP:
172 169
 		devmouse->dat[6] &= (~flag);
173 170
 		break;
... ...
@@ -353,6 +350,10 @@ start(Uxn *u)
353 350
 				evaluxn(u, mempeek16(devctrl->dat, 0));
354 351
 				devctrl->dat[3] = 0;
355 352
 				break;
353
+			case SDL_MOUSEWHEEL:
354
+				devmouse->dat[7] = event.wheel.y;
355
+				evaluxn(u, mempeek16(devmouse->dat, 0));
356
+				break;
356 357
 			case SDL_MOUSEBUTTONUP:
357 358
 			case SDL_MOUSEBUTTONDOWN:
358 359
 			case SDL_MOUSEMOTION: