[CF-Devel] cfclient, fixed parse_game_button_press()
crossfire-devel-admin at archives.real-time.com
crossfire-devel-admin at archives.real-time.com
Wed Oct 15 15:28:10 CDT 2003
On Wed, Oct 15, 2003 at 22:22:19 +0200, Jochen Suckfuell wrote:
>
Hi!
>
>
The parse_game_button_press() function in x11/x11.c didn't take the
>
configured mapsize into account, but calculated the direction relative
>
to the player position in the default sized map.
>
Besides this, I cleaned up the code a bit, so I can as well paste the
>
whole function here instead of a patch:
>
>
>
static void parse_game_button_press(int button, int x, int y)
>
{
>
int dx, dy, i;
>
x = (x-2)/image_size;
>
y = (y-2)/image_size;
>
dx = x-use_config[CONFIG_MAPWIDTH]/2;
>
dy = y-use_config[CONFIG_MAPHEIGHT]/2;
>
>
if(button == 1)
>
{
>
>
/* Its unlikely this will happen, but if the window is
>
* resized, its possible to be out of bounds.
>
*/
>
if(dx<(-use_config[CONFIG_MAPWIDTH]/2)||dx>(use_config[CONFIG_MAPWIDTH]/2)||dy<(-use_config[CONFIG_MAPHEIGHT]/2)||dy>(use_config[CONFIG_MAPHEIGHT]/2)) return;
Sorry, this line should of course be:
if(x < 0 || x > use_config[CONFIG_MAPWIDTH] || y < 0 || y > use_config[CONFIG_MAPHEIGHT]) return;
>
look_at(dx,dy);
>
return;
>
}
>
>
if (dx<0)
>
i = 0;
>
else if (dx>0)
>
i = 6;
>
else i =3;
>
>
if (dy>0)
>
i += 2;
>
else if (dy==0)
>
i++;
>
>
if (button==2) {
>
switch (i) {
>
case 0: fire_dir (8);break;
>
case 1: fire_dir (7);break;
>
case 2: fire_dir (6);break;
>
case 3: fire_dir (1);break;
>
case 5: fire_dir (5);break;
>
case 6: fire_dir (2);break;
>
case 7: fire_dir (3);break;
>
case 8: fire_dir (4);break;
>
}
>
/* Only want to fire once */
>
clear_fire();
>
return;
>
}
>
>
switch (i) {
>
case 0: move_player (8);break;
>
case 1: move_player (7);break;
>
case 2: move_player (6);break;
>
case 3: move_player (1);break;
>
case 5: move_player (5);break;
>
case 6: move_player (2);break;
>
case 7: move_player (3);break;
>
case 8: move_player (4);break;
>
}
>
}
>
>
>
It would be nice if someone could commit this to CVS.
>
>
Bye
>
Jochen
>
>
--
>
Jochen Suckfuell ---
http://www.suckfuell.net/jochen/
---
>
>
_______________________________________________
>
crossfire-devel mailing list
>
crossfire-devel at lists.real-time.com
>
https://mailman.real-time.com/mailman/listinfo/crossfire-devel
Bye
Jochen
--
Jochen Suckfuell ---
http://www.suckfuell.net/jochen/
---
_______________________________________________
crossfire-devel mailing list
crossfire-devel at lists.real-time.com
https://mailman.real-time.com/mailman/listinfo/crossfire-devel
More information about the crossfire
mailing list