Index: src/qcommon/cmodel.c =================================================================== --- src/qcommon/cmodel.c (Revision 10006) +++ src/qcommon/cmodel.c (Arbeitskopie) @@ -130,9 +130,9 @@ * 0x20 0010 0000 connection to -x (height ignored?) * 0x40 0100 0000 connection to +y (height ignored?) * 0x80 1000 0000 connection to -y (height ignored?) - * + * * See "h = map->route[z][y][x] & 0x0F;" and "if (map->route[az][ay][ax] & 0x0F) > h)" in CM_TestConnection - * 0x0F 0000 1111 some height info? + * 0x0F 0000 1111 some height info? * * FALL * Information about how much you'll fall down from x,y position? @@ -140,7 +140,7 @@ * See "while (map->fall[ny][nx] & (1 << z)) z--;" in Grid_MoveMark * * STEP - * + * * 0000 0000 * Each bit SEEMS (!) to represent an info about one height (z) level (at position x,y) * Access with "step[y][x] & (1 << z)" @@ -2496,7 +2496,7 @@ * @return qtrue if the field is in the forbidden list and one can't walk there, otehrwise qfalse. * @todo Extend to support 2x2 units such as UGVs. See also Grid_MoveCalc. */ -static qboolean Grid_CheckForbidden (struct routing_s * map, int x, int y, int z) +static qboolean Grid_CheckForbidden (struct routing_s * map, int x, int y, int z, int size) { byte **p; int i; @@ -2519,7 +2519,7 @@ * @param[in] ol * @sa Grid_CheckForbidden */ -static void Grid_MoveMark (struct routing_s *map, int x, int y, int z, int dv, int h, int ol) +static void Grid_MoveMark (struct routing_s *map, int x, int y, int z, int dv, int h, int ol, int size) { int nx, ny, sh, l; int dx, dy; @@ -2543,7 +2543,7 @@ if (dy < 0 && !(map->route[z][y][x] & 0x80)) return; if (dv > 3 && !((map->route[z][y + dy][x] & (dx > 0 ? 0x10 : 0x20)) && (map->route[z][y][x + dx] & (dy > 0 ? 0x40 : 0x80)) - && !Grid_CheckForbidden(map, x, y + dy, z) && !Grid_CheckForbidden(map, x + dx, y, z))) + && !Grid_CheckForbidden(map, x, y + dy, z, size) && !Grid_CheckForbidden(map, x + dx, y, z, size))) return; /* height checks */ @@ -2557,7 +2557,7 @@ return; /* test for forbidden areas */ - if (Grid_CheckForbidden(map, nx, ny, z)) + if (Grid_CheckForbidden(map, nx, ny, z, size)) return; /* store move */ @@ -2572,10 +2572,10 @@ * @param[in] xl * @param[in] yl * @param[in] xh - * @param[in] xh - * @sa Grid_MoveMark + * @param[in] xh + * @sa Grid_MoveMark */ -static void Grid_MoveMarkRoute (struct routing_s *map, int xl, int yl, int xh, int yh) +static void Grid_MoveMarkRoute (struct routing_s *map, int xl, int yl, int xh, int yh, int size) { int x, y, z, h; int dv, l; @@ -2595,7 +2595,7 @@ /* test the next connections */ for (dv = 0; dv < DIRECTIONS; dv++) - Grid_MoveMark(map, x, y, z, dv, h, l); + Grid_MoveMark(map, x, y, z, dv, h, l, size); } } @@ -2612,7 +2612,7 @@ * @sa G_MoveCalc * @todo size is unused right now - this needs to change (2x2 units) */ -void Grid_MoveCalc (struct routing_s *map, pos3_t from, int size, int distance, byte ** fb_list, int fb_length) +void Grid_MoveCalc (struct routing_s *map, pos3_t from, int size, int distance, byte ** fb_list, int fb_length, int size) { int xl, xh, yl, yh; int i; @@ -2647,7 +2647,7 @@ if (yh < WIDTH - 1) yh++; - Grid_MoveMarkRoute(map, xl, yl, xh, yh); + Grid_MoveMarkRoute(map, xl, yl, xh, yh, size); /* swap test flag */ stf = tf; Index: src/game/game.h =================================================================== --- src/game/game.h (Revision 10006) +++ src/game/game.h (Arbeitskopie) @@ -157,7 +157,7 @@ int (IMPORT *TestLine) (vec3_t start, vec3_t stop); float (IMPORT *GrenadeTarget) (vec3_t from, vec3_t at, float speed, qboolean launched, qboolean rolled, vec3_t v0); - void (IMPORT *MoveCalc) (struct routing_s * map, pos3_t from, int size, int distance, byte ** fb_list, int fb_length); + void (IMPORT *MoveCalc) (struct routing_s * map, pos3_t from, int size, int distance, byte ** fb_list, int fb_length, int size); void (IMPORT *MoveStore) (struct routing_s * map); int (IMPORT *MoveLength) (struct routing_s * map, pos3_t to, qboolean stored); int (IMPORT *MoveNext) (struct routing_s * map, pos3_t from); Index: src/client/cl_menu.c =================================================================== --- src/client/cl_menu.c (Revision 10006) +++ src/client/cl_menu.c (Arbeitskopie) @@ -2079,6 +2079,7 @@ const char* oldFont = NULL; char *cur, *tab, *end; int x1, y1; /* variable x and y position */ + const int scrollbarWidth = 20; Q_strncpyz(textCopy, text, MAX_MENUTEXTLEN); cur = textCopy; @@ -2135,7 +2136,7 @@ /*Com_Printf("tab - first part - node->textLines: %i \n", node->textLines);*/ if (node) node->textLines++; - re.FontDrawString(font, node->align, x1, y1, x, y, width, height, node->texh[0], cur, node->height, node->textScroll, &node->textLines, qfalse); + re.FontDrawString(font, node->align, x1, y1, x, y, width - scrollbarWidth, height, node->texh[0], cur, node->height, node->textScroll, &node->textLines, qfalse); if (node) node->textLines--; /* increase the x value as given via menu definition format string */ @@ -2150,7 +2151,7 @@ /*Com_Printf("until newline - node->textLines: %i\n", node->textLines);*/ /* the conditional expression at the end is a hack to draw "/n/n" as a blank line */ - lineHeight = re.FontDrawString(font, node->align, x1, y1, x, y, width, height, node->texh[0], (*cur ? cur : " "), node->height, node->textScroll, &node->textLines, qtrue); + lineHeight = re.FontDrawString(font, node->align, x1, y1, x, y, width - scrollbarWidth, height, node->texh[0], (*cur ? cur : " "), node->height, node->textScroll, &node->textLines, qtrue); if (lineHeight > 0) y1 += lineHeight; Index: src/client/cl_actor.c =================================================================== --- src/client/cl_actor.c (Revision 10006) +++ src/client/cl_actor.c (Arbeitskopie) @@ -1969,7 +1969,7 @@ if (!(le->state & STATE_DEAD) && (le->type == ET_ACTOR || le->type == ET_UGV)) { /* draw blocking cursor at le->pos */ - Grid_PosToVec(&clMap, le->pos, s); + Grid_PosToVec(&clMap, le->pos, s); ptl = CL_ParticleSpawn("cross", 0, s, NULL, NULL); ptl->rounds = 2; ptl->roundsCnt = 2;