Fixed sprite cursor drawing on screen edges
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@304 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
a327f92805
commit
78e48f5156
29
graph.c
29
graph.c
@ -2485,6 +2485,7 @@ void Afficher_curseur(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case FORME_CURSEUR_CIBLE_PIPETTE:
|
case FORME_CURSEUR_CIBLE_PIPETTE:
|
||||||
if (!Cacher_pinceau)
|
if (!Cacher_pinceau)
|
||||||
Afficher_pinceau(Pinceau_X,Pinceau_Y,Fore_color,1);
|
Afficher_pinceau(Pinceau_X,Pinceau_Y,Fore_color,1);
|
||||||
@ -2551,29 +2552,34 @@ void Afficher_curseur(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case FORME_CURSEUR_MULTIDIRECTIONNEL :
|
case FORME_CURSEUR_MULTIDIRECTIONNEL :
|
||||||
case FORME_CURSEUR_HORIZONTAL :
|
case FORME_CURSEUR_HORIZONTAL :
|
||||||
if (Cacher_curseur)
|
if (Cacher_curseur)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case FORME_CURSEUR_FLECHE :
|
case FORME_CURSEUR_FLECHE :
|
||||||
case FORME_CURSEUR_SABLIER :
|
case FORME_CURSEUR_SABLIER :
|
||||||
Debut_X=Mouse_X-Curseur_Decalage_X[Forme];
|
Debut_X=Mouse_X-Curseur_Decalage_X[Forme];
|
||||||
Debut_Y=Mouse_Y-Curseur_Decalage_Y[Forme];
|
Debut_Y=Mouse_Y-Curseur_Decalage_Y[Forme];
|
||||||
for (Pos_X=Debut_X,Compteur_X=0;Compteur_X<15;Pos_X++,Compteur_X++)
|
for (Pos_X=Debut_X,Compteur_X=0;Compteur_X<15;Pos_X++,Compteur_X++)
|
||||||
|
{
|
||||||
|
if(Pos_X<0) continue;
|
||||||
|
if(Pos_X>=Largeur_ecran) break;
|
||||||
for (Pos_Y=Debut_Y,Compteur_Y=0;Compteur_Y<15;Pos_Y++,Compteur_Y++)
|
for (Pos_Y=Debut_Y,Compteur_Y=0;Compteur_Y<15;Pos_Y++,Compteur_Y++)
|
||||||
{
|
{
|
||||||
|
if(Pos_Y<0) continue;
|
||||||
|
if(Pos_Y>=Hauteur_ecran) break;
|
||||||
Couleur=SPRITE_CURSEUR[Forme][Compteur_Y][Compteur_X];
|
Couleur=SPRITE_CURSEUR[Forme][Compteur_Y][Compteur_X];
|
||||||
if ( (Pos_X<Largeur_ecran) && (Pos_Y<Hauteur_ecran)
|
|
||||||
&& (Pos_X>=0) && (Pos_Y>=0) )
|
|
||||||
{
|
|
||||||
// On sauvegarde dans FOND_CURSEUR pour restaurer plus tard
|
// On sauvegarde dans FOND_CURSEUR pour restaurer plus tard
|
||||||
FOND_CURSEUR[Compteur_Y][Compteur_X]=Lit_pixel(Pos_X,Pos_Y);
|
FOND_CURSEUR[Compteur_Y][Compteur_X]=Lit_pixel(Pos_X,Pos_Y);
|
||||||
if (Couleur!=CM_Trans)
|
if (Couleur!=CM_Trans)
|
||||||
Pixel(Pos_X,Pos_Y,Couleur);
|
Pixel(Pos_X,Pos_Y,Couleur);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
UpdateRect(Max(Debut_X,0),Max(Debut_Y,0),16,16);
|
UpdateRect(Max(Debut_X,0),Max(Debut_Y,0),Compteur_X,Compteur_Y);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case FORME_CURSEUR_CIBLE_XOR :
|
case FORME_CURSEUR_CIBLE_XOR :
|
||||||
Pos_X=Pinceau_X-Principal_Decalage_X;
|
Pos_X=Pinceau_X-Principal_Decalage_X;
|
||||||
Pos_Y=Pinceau_Y-Principal_Decalage_Y;
|
Pos_Y=Pinceau_Y-Principal_Decalage_Y;
|
||||||
@ -2783,6 +2789,7 @@ void Effacer_curseur(void)
|
|||||||
Effacer_pinceau(Pinceau_X,Pinceau_Y);
|
Effacer_pinceau(Pinceau_X,Pinceau_Y);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case FORME_CURSEUR_CIBLE_PIPETTE:
|
case FORME_CURSEUR_CIBLE_PIPETTE:
|
||||||
if (!Cacher_curseur)
|
if (!Cacher_curseur)
|
||||||
{
|
{
|
||||||
@ -2842,21 +2849,29 @@ void Effacer_curseur(void)
|
|||||||
if (!Cacher_pinceau)
|
if (!Cacher_pinceau)
|
||||||
Effacer_pinceau(Pinceau_X,Pinceau_Y);
|
Effacer_pinceau(Pinceau_X,Pinceau_Y);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case FORME_CURSEUR_MULTIDIRECTIONNEL :
|
case FORME_CURSEUR_MULTIDIRECTIONNEL :
|
||||||
case FORME_CURSEUR_HORIZONTAL :
|
case FORME_CURSEUR_HORIZONTAL :
|
||||||
if (Cacher_curseur)
|
if (Cacher_curseur)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case FORME_CURSEUR_FLECHE :
|
case FORME_CURSEUR_FLECHE :
|
||||||
case FORME_CURSEUR_SABLIER :
|
case FORME_CURSEUR_SABLIER :
|
||||||
Debut_X=Mouse_X-Curseur_Decalage_X[Forme];
|
Debut_X=Mouse_X-Curseur_Decalage_X[Forme];
|
||||||
Debut_Y=Mouse_Y-Curseur_Decalage_Y[Forme];
|
Debut_Y=Mouse_Y-Curseur_Decalage_Y[Forme];
|
||||||
|
|
||||||
for (Pos_X=Debut_X,Compteur_X=0;Compteur_X<15;Pos_X++,Compteur_X++)
|
for (Pos_X=Debut_X,Compteur_X=0;Compteur_X<15;Pos_X++,Compteur_X++)
|
||||||
|
{
|
||||||
|
if(Pos_X<0) continue;
|
||||||
|
if(Pos_X>=Largeur_ecran) break;
|
||||||
for (Pos_Y=Debut_Y,Compteur_Y=0;Compteur_Y<15;Pos_Y++,Compteur_Y++)
|
for (Pos_Y=Debut_Y,Compteur_Y=0;Compteur_Y<15;Pos_Y++,Compteur_Y++)
|
||||||
if ( (Pos_X<Largeur_ecran) && (Pos_Y<Hauteur_ecran)
|
{
|
||||||
&& (Pos_X>=0) && (Pos_Y>=0) )
|
if(Pos_Y<0) continue;
|
||||||
|
if(Pos_Y>=Hauteur_ecran) break;
|
||||||
Pixel(Pos_X,Pos_Y,FOND_CURSEUR[Compteur_Y][Compteur_X]);
|
Pixel(Pos_X,Pos_Y,FOND_CURSEUR[Compteur_Y][Compteur_X]);
|
||||||
UpdateRect(Max(Debut_X,0),Max(Debut_Y,0),16,16);
|
}
|
||||||
|
}
|
||||||
|
UpdateRect(Max(Debut_X,0),Max(Debut_Y,0),Compteur_X,Compteur_Y);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case FORME_CURSEUR_CIBLE_XOR :
|
case FORME_CURSEUR_CIBLE_XOR :
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user