X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Ftools.c;h=09da1bd31e6ce2d11bdcfbc4d8482d4fe8ee13c5;hp=625159f316b2366220597d9b4bb945a401aceffd;hb=046d80f9a1b3fad9d4d3d3aa92dcb3689849aebf;hpb=c3d03cdffce070695ba0520d00667b42b8460087 diff --git a/src/tools.c b/src/tools.c index 625159f3..09da1bd3 100644 --- a/src/tools.c +++ b/src/tools.c @@ -452,16 +452,17 @@ void DrawElementShifted(int x, int y, int dx, int dy, int element,int cut_mode) graphic += 3; } else if ((element==EL_FELSBROCKEN || - element==EL_EDELSTEIN || - element==EL_DIAMANT) && horiz_move && phase) + element==EL_EDELSTEIN || element==EL_EDELSTEIN2 || + element==EL_EDELSTEIN3 || element==EL_DIAMANT) + && horiz_move && phase) { if (element==EL_FELSBROCKEN) graphic += 2; else graphic += 1; } - else if ((element==EL_SIEB_LEER || - element==EL_SIEB_VOLL) && SiebAktiv) + else if ((element==EL_SIEB_LEER || element==EL_SIEB2_LEER || + element==EL_SIEB_VOLL || element==EL_SIEB2_VOLL) && SiebAktiv) { graphic += 3-(SiebAktiv%8)/2; } @@ -470,6 +471,22 @@ void DrawElementShifted(int x, int y, int dx, int dy, int element,int cut_mode) graphic = (element==EL_AMOEBE_TOT ? GFX_AMOEBE_TOT : GFX_AMOEBE_LEBT); graphic += (x+2*y) % 4; } + else if (element==EL_MAUER_LEBT) + { + BOOL links_massiv = FALSE, rechts_massiv = FALSE; + + if (!IN_LEV_FIELD(ux-1,uy) || IS_MAUER(Feld[ux-1][uy])) + links_massiv = TRUE; + if (!IN_LEV_FIELD(ux+1,uy) || IS_MAUER(Feld[ux+1][uy])) + rechts_massiv = TRUE; + + if (links_massiv && rechts_massiv) + graphic = GFX_MAUERWERK; + else if (links_massiv) + graphic = GFX_MAUER_R; + else if (rechts_massiv) + graphic = GFX_MAUER_L; + } if (dx || dy) DrawGraphicShifted(x,y, dx,dy, graphic, cut_mode); @@ -625,10 +642,12 @@ void DrawScreenField(int x, int y) if (Store[ux][uy]==EL_MORAST_LEER || Store[ux][uy]==EL_SIEB_LEER || + Store[ux][uy]==EL_SIEB2_LEER || Store[ux][uy]==EL_AMOEBE_NASS) cut_mode = CUT_ABOVE; else if (Store[ux][uy]==EL_MORAST_VOLL || Store[ux][uy]==EL_SIEB_VOLL || + Store[ux][uy]==EL_SIEB2_VOLL || Store[ux][uy]==EL_SALZSAEURE) cut_mode = CUT_BELOW; @@ -656,6 +675,7 @@ void DrawScreenField(int x, int y) if (Store[oldx][oldy]==EL_MORAST_LEER || Store[oldx][oldy]==EL_SIEB_LEER || + Store[oldx][oldy]==EL_SIEB2_LEER || Store[oldx][oldy]==EL_AMOEBE_NASS) cut_mode = CUT_ABOVE; @@ -1354,6 +1374,18 @@ int el2gfx(int element) case EL_BIRNE_EIN: return(GFX_BIRNE_EIN); case EL_ZEIT_VOLL: return(GFX_ZEIT_VOLL); case EL_ZEIT_LEER: return(GFX_ZEIT_LEER); + case EL_MAUER_LEBT: return(GFX_MAUER_LEBT); + case EL_EDELSTEIN2: return(GFX_EDELSTEIN2); + case EL_EDELSTEIN3: return(GFX_EDELSTEIN3); + case EL_ERZ_EDEL2: return(GFX_ERZ_EDEL2); + case EL_ERZ_EDEL3: return(GFX_ERZ_EDEL3); + case EL_MAMPFER2: return(GFX_MAMPFER2); + case EL_SIEB2_LEER: return(GFX_SIEB2_LEER); + case EL_SIEB2_VOLL: return(GFX_SIEB2_VOLL); + case EL_SIEB2_TOT: return(GFX_SIEB2_TOT); + case EL_DYNABOMB: return(GFX_DYNABOMB); + case EL_DYNABOMB_NR: return(GFX_DYNABOMB_NR); + case EL_DYNABOMB_SZ: return(GFX_DYNABOMB_SZ); default: { if (IS_CHAR(element))